Changeset - 65bed40fafa0
[Not reviewed]
0 2 0
James Polley - 6 years ago 2018-06-17 04:43:45
jp@jamezpolley.com
Switch to building in the rego-dev namespace
2 files changed with 37 insertions and 97 deletions:
0 comments (0 inline, 0 general)
.gitlab-ci.yml
Show inline comments
...
 
@@ -44,10 +44,11 @@ build_review_deployment:
 
    - docker:dind
 
  stage: build
 
  script:
 
    - docker run -v "${PWD}"/k8s:/src sparkprime/jsonnet /src/deployment_template.jsonnet --tla-str slug="${CI_COMMIT_REF_SLUG}" > "${CI_COMMIT_REF_SLUG}".json
 
    - docker run -v "${PWD}"/k8s:/src sparkprime/jsonnet /src/deployment_template.jsonnet --tla-str slug="${CI_COMMIT_REF_SLUG}" -m /src
 
  artifacts:
 
    paths:
 
      - "${CI_COMMIT_REF_SLUG}.json" 
 
    - k8s/deployment.json
 
    - k8s/ingress-patch.json
 

	
 
build_2019_dev_image:
 
  image: docker:git
...
 
@@ -91,7 +92,8 @@ k8s-2019_dev_review-deploy:
 
  - kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
 
  - kubectl config set-context cluster --cluster=cluster --namespace=rego-dev --user=gitlab-sa
 
  - kubectl config use-context cluster
 
  - kubectl --token "${GL_KUBE_TOKEN}" apply -f ${CI_COMMIT_REF_SLUG}.json
 
  - kubectl --token "${GL_KUBE_TOKEN}" apply -f k8s/deployment.json
 
  - kubectl --token "${GL_KUBE_TOKEN}" describe ingress | grep "${CI_COMMIT_REF_SLUG}" || kubectl --token "${GL_KUBE_TOKEN}" patch ingress symposion-app-ingress -p "$(cat k8s/ingress-patch.json)" --type json
 
  only:
 
  - /^dev\/.*$/
 
  environment:
...
 
@@ -107,7 +109,7 @@ k8s-2019_dev_review-stop-deploy:
 
  - kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
 
  - kubectl config set-context cluster --cluster=cluster --namespace=rego-dev --user=gitlab-sa
 
  - kubectl config use-context cluster
 
  - kubectl --token "${GL_KUBE_TOKEN}" delete -f ${CI_COMMIT_REF_SLUG}.json
 
  - kubectl --token "${GL_KUBE_TOKEN}" delete -f k8s/deployment.json
 
  only:
 
  - /^dev\/.*$/
 
  when: manual
k8s/deployment_template.jsonnet
Show inline comments
 
function (slug) {
 
  
 
  local namespace = slug + "-rego-dev",
 
  local app = "symposion-app-" + slug,
 
  local namespace = "rego-dev",
 
  local domain = slug + ".dev.lca2019.org",
 
  local tls_certname = slug + "-dev-lca2019-org",
 
  local tls_secret = tls_certname + "-tls",
 
  
 
  "apiVersion": "v1",
 
  "items": [
 
  "deployment.json":
 
    {
 
      "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
 
          }
 
        ]
 
      }
 
    },
 
      "items": [
 
        {
 
          "apiVersion": "v1",
 
          "kind": "Service",
...
 
@@ -94,7 +15,7 @@ function (slug) {
 
            "labels": {
 
              "app": "symposion-app"
 
            },
 
        "name": "symposion-app",
 
            "name": app,
 
            "namespace": namespace
 
          },
 
          "spec": {
...
 
@@ -119,7 +40,7 @@ function (slug) {
 
            "labels": {
 
              "app": "symposion-app"
 
            },
 
        "name": "symposion-app",
 
            "name": app,
 
            "namespace": namespace
 
          },
 
          "spec": {
...
 
@@ -206,20 +127,37 @@ function (slug) {
 
                "restartPolicy": "Always",
 
                "schedulerName": "default-scheduler",
 
                "securityContext": {},
 
            "terminationGracePeriodSeconds": 30,
 
            "volumes": [
 
                "terminationGracePeriodSeconds": 30
 
              }
 
            }
 
          }
 
        }
 
      ],
 
      "kind": "List"
 
    },
 
  "ingress-patch.json": [
 
      {
 
                "hostPath": {
 
                  "path": "/etc/ssl/certs",
 
                  "type": ""
 
        "op": "add",
 
        "path": "/spec/rules/-",
 
        "value": {
 
          "host": domain,
 
          "http": {
 
            "paths": [
 
              {
 
                "backend": {
 
                  "serviceName": app,
 
                  "servicePort": 8000
 
                },
 
                "name": "ssl-certs"
 
                "path": "/"
 
              }
 
            ]
 
          }
 
        }
 
      }
 
      },
 
      {
 
        "op": "add",
 
        "path": "/spec/tls/0/hosts/-",
 
        "value": domain
 
      }
 
  ],
 
  "kind": "List"
 
}
0 comments (0 inline, 0 general)