function (slug) { local namespace = slug + "-rego-dev", local domain = slug + ".dev.lca2019.org", local tls_certname = slug + "-dev-lca2019-org", local tls_secret = tls_certname + "-tls", "apiVersion": "v1", "items": [ { "apiVersion": "v1", "kind": "Namespace", "metadata": { "name": namespace, "namespace": "", }, "spec": { "finalizers": [ "kubernetes" ] } }, { "apiVersion": "certmanager.k8s.io/v1alpha1", "kind": "Certificate", "metadata": { "name": tls_certname, "namespace": namespace }, "spec": { "acme": { "config": [ { "domains": [ domain ], "http01": { "ingress": "", "ingressClass": "nginx" } } ] }, "commonName": domain, "issuerRef": { "kind": "ClusterIssuer", "name": "letsencrypt-prod" }, "secretName": tls_secret } }, { "apiVersion": "extensions/v1beta1", "kind": "Ingress", "metadata": { "name": "symposion-app-ingress", "namespace": namespace }, "spec": { "backend": { "serviceName": "symposion-app", "servicePort": 80 }, "rules": [ { "host": domain, "http": { "paths": [ { "backend": { "serviceName": "symposion-app", "servicePort": 8000 }, "path": "/" } ] } } ], "tls": [ { "hosts": [ domain ], "secretName": tls_secret } ] } }, { "apiVersion": "v1", "kind": "Service", "metadata": { "labels": { "app": "symposion-app" }, "name": "symposion-app", "namespace": namespace }, "spec": { "ports": [ { "port": 8000, "protocol": "TCP", "targetPort": 8000 } ], "selector": { "app": "symposion-app" }, "sessionAffinity": "None", "type": "ClusterIP" } }, { "apiVersion": "extensions/v1beta1", "kind": "Deployment", "metadata": { "labels": { "app": "symposion-app" }, "name": "symposion-app", "namespace": namespace }, "spec": { "replicas": 1, "revisionHistoryLimit": 1, "selector": { "matchLabels": { "app": "symposion-app" } }, "strategy": { "rollingUpdate": { "maxSurge": 1, "maxUnavailable": 1 }, "type": "RollingUpdate" }, "template": { "metadata": { "labels": { "app": "symposion-app" } }, "spec": { "containers": [ { "env": [ { "name": "SYMPOSION_APP_DEBUG", "value": "1" }, { "name": "DJANGO_SECRET_KEY", "value": "paGhahQuain5ohYoh0moorai" }, { "name": "DATABASE_URL", "value": "sqlite:////tmp/symposion.sqlite" }, { "name": "GCS_BUCKET", "value": "CEA51A5-A613-4AEF-A9FB-D0A57D77C13B" }, { "name": "GOOGLE_APPLICATION_CREDENTIALS", "value": "/dev/null" }, { "name": "STRIPE_PUBLIC_KEY", "value": "5CEA51A5-A613-4AEF-A9FB-D0A57D77C13B" }, { "name": "STRIPE_SECRET_KEY", "value": "5CEA51A5-A613-4AEF-A9FB-D0A57D77C13B" }, ], "image": "asia.gcr.io/linuxconfsydney/symposion_app_2019_dev:" + slug, "imagePullPolicy": "Always", "livenessProbe": { "failureThreshold": 3, "httpGet": { "path": "/admin/login/", "port": 8000, "scheme": "HTTP" }, "initialDelaySeconds": 120, "periodSeconds": 10, "successThreshold": 1, "timeoutSeconds": 2 }, "name": "symposion-app", "ports": [ { "containerPort": 8000, "protocol": "TCP" } ], "resources": {}, "terminationMessagePath": "/dev/termination-log", "terminationMessagePolicy": "File" } ], "dnsPolicy": "ClusterFirst", "restartPolicy": "Always", "schedulerName": "default-scheduler", "securityContext": {}, "terminationGracePeriodSeconds": 30, "volumes": [ { "hostPath": { "path": "/etc/ssl/certs", "type": "" }, "name": "ssl-certs" } ] } } } } ], "kind": "List" }