bgpwtf/cccampix: add and deploy octorpki
Change-Id: I8d5de697925b65d8f0e762b2f2acad3a7e560fe6
diff --git a/bgpwtf/cccampix/kube/camp.jsonnet b/bgpwtf/cccampix/kube/camp.jsonnet
new file mode 100644
index 0000000..c059401
--- /dev/null
+++ b/bgpwtf/cccampix/kube/camp.jsonnet
@@ -0,0 +1,9 @@
+local ix = import "ix.libsonnet";
+
+{
+ camp: ix.IX {
+ cfg+: {
+ namespace: "cccamp-ix",
+ },
+ },
+}
diff --git a/bgpwtf/cccampix/kube/ix.libsonnet b/bgpwtf/cccampix/kube/ix.libsonnet
new file mode 100644
index 0000000..def1d79
--- /dev/null
+++ b/bgpwtf/cccampix/kube/ix.libsonnet
@@ -0,0 +1,84 @@
+local kube = import "../../../kube/kube.libsonnet";
+
+{
+ IX: {
+ local ix = self,
+ local cfg = ix.cfg,
+ cfg:: {
+ octorpki: {
+ image: "registry.k0.hswaw.net/q3k/octorpki:1564072856-3bfb2ef7fd180e774f74bbc9eebf6d97b9d80003",
+ storageClassName: "waw-hdd-redundant-1",
+ resources: {
+ requests: { cpu: "100m", memory: "500Mi" },
+ limits: { cpu: "500m", memory: "1Gi" },
+ },
+ },
+
+ appName: "ix",
+ namespace: error "namespace must be defined",
+ prefix: "",
+ },
+
+ namespace: kube.Namespace(cfg.namespace),
+ name(component):: cfg.prefix + component,
+ metadata(component):: {
+ namespace: cfg.namespace,
+ labels: {
+ "app.kubernetes.io/name": cfg.appName,
+ "app.kubernetes.io/managed-by": "kubecfg",
+ "app.kubernetes.io/component": component,
+ },
+ },
+
+ octorpki: {
+ cache: kube.PersistentVolumeClaim(ix.name("octorpki")) {
+ metadata+: ix.metadata("octorpki"),
+ spec+: {
+ storageClassName: cfg.octorpki.storageClassName,
+ accessModes: [ "ReadWriteOnce" ],
+ resources: {
+ requests: {
+ storage: "2Gi",
+ },
+ },
+ },
+ },
+ deployment: kube.Deployment(ix.name("octorpki")) {
+ metadata+: ix.metadata("octorpki"),
+ spec+: {
+ template+: {
+ spec+: {
+ volumes_: {
+ cache: kube.PersistentVolumeClaimVolume(ix.octorpki.cache),
+ },
+ containers_: {
+ octorpki: kube.Container(ix.name("octorpki")){
+ image: cfg.octorpki.image,
+ args: [
+ "/octorpki/entrypoint.sh",
+ ],
+ ports_: {
+ client: { containerPort: 8080 },
+ },
+ volumeMounts_: {
+ cache: { mountPath: "/cache" },
+ },
+ resources: cfg.octorpki.resources,
+ },
+ },
+ },
+ },
+ },
+ },
+ svc: kube.Service(ix.name("octorpki")) {
+ metadata+: ix.metadata("octorpki"),
+ target_pod:: ix.octorpki.deployment.spec.template,
+ spec+: {
+ ports: [
+ { name: "client", port: 8080, targetPort: 8080, protocol: "TCP" },
+ ],
+ },
+ },
+ },
+ },
+}