From e20abddd0b698221ebbd7173bf2febbea8aa3aa3 Mon Sep 17 00:00:00 2001 From: Samuel Galson <samgalson@gmail.com> Date: Thu, 25 Jan 2018 16:06:00 +0000 Subject: [PATCH] add per-app couchdb --- .gitignore | 2 + provisioning/couchdb-ingress.yaml | 23 +++++++ provisioning/couchdb-service-internal.yaml | 15 +++++ provisioning/couchdb-service.yaml | 16 +++++ provisioning/couchdb-statefulset.yaml | 71 ++++++++++++++++++++++ 5 files changed, 127 insertions(+) create mode 100644 .gitignore create mode 100644 provisioning/couchdb-ingress.yaml create mode 100644 provisioning/couchdb-service-internal.yaml create mode 100644 provisioning/couchdb-service.yaml create mode 100644 provisioning/couchdb-statefulset.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..90bc627 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +deployment +.DS_Store diff --git a/provisioning/couchdb-ingress.yaml b/provisioning/couchdb-ingress.yaml new file mode 100644 index 0000000..fe3df6e --- /dev/null +++ b/provisioning/couchdb-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: couchdb-${CI_ENVIRONMENT_SLUG} + namespace: ${KUBE_NAMESPACE} + labels: + app: couchdb-${CI_ENVIRONMENT_SLUG} + annotations: + kubernetes.io/tls-acme: "true" + kubernetes.io/ingress.class: "nginx" +spec: + tls: + - hosts: + - ${CI_ENVIRONMENT_SLUG}.gateway.xpub.semioticsquares.com + secretName: couchdb-tls-${CI_ENVIRONMENT_SLUG} + rules: + - host: ${CI_ENVIRONMENT_SLUG}.gateway.xpub.semioticsquares.com + http: + paths: + - path: / + backend: + serviceName: couchdb-${CI_ENVIRONMENT_SLUG} + servicePort: 5984 diff --git a/provisioning/couchdb-service-internal.yaml b/provisioning/couchdb-service-internal.yaml new file mode 100644 index 0000000..dbcd518 --- /dev/null +++ b/provisioning/couchdb-service-internal.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: couchdb-internal-${CI_ENVIRONMENT_SLUG} + namespace: ${KUBE_NAMESPACE} + labels: + app: couchdb-${CI_ENVIRONMENT_SLUG} +spec: + clusterIP: None + ports: + - protocol: TCP + name: couchdb + port: 5984 + selector: + app: couchdb-${CI_ENVIRONMENT_SLUG} diff --git a/provisioning/couchdb-service.yaml b/provisioning/couchdb-service.yaml new file mode 100644 index 0000000..c37af06 --- /dev/null +++ b/provisioning/couchdb-service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: couchdb-${CI_ENVIRONMENT_SLUG} + namespace: ${KUBE_NAMESPACE} + labels: + app: couchdb-${CI_ENVIRONMENT_SLUG} +spec: + type: ClusterIP + ports: + - protocol: TCP + name: couchdb + port: 5984 + selector: + app: couchdb-${CI_ENVIRONMENT_SLUG} + diff --git a/provisioning/couchdb-statefulset.yaml b/provisioning/couchdb-statefulset.yaml new file mode 100644 index 0000000..b1b06f9 --- /dev/null +++ b/provisioning/couchdb-statefulset.yaml @@ -0,0 +1,71 @@ +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: couchdb-${CI_ENVIRONMENT_SLUG} + namespace: ${KUBE_NAMESPACE} + labels: + app: couchdb-${CI_ENVIRONMENT_SLUG} + track: stable +spec: + replicas: 1 + serviceName: couchdb-internal-${CI_ENVIRONMENT_SLUG} + selector: + matchLabels: + app: couchdb-${CI_ENVIRONMENT_SLUG} + template: + metadata: + labels: + app: couchdb-${CI_ENVIRONMENT_SLUG} + spec: + containers: + - name: couchdb + image: couchdb:2.1.1 + imagePullPolicy: Always + ports: + - name: couchdb + containerPort: 5984 + - name: epmd + containerPort: 4369 + - containerPort: 9100 + env: + - name: ERL_FLAGS + value: "-name couchdb -setcookie monster" + - name: COUCHDB_USER + valueFrom: + secretKeyRef: + name: couchdb + key: adminUsername + - name: COUCHDB_PASSWORD + valueFrom: + secretKeyRef: + name: couchdb + key: adminPassword + - name: COUCHDB_SECRET + valueFrom: + secretKeyRef: + name: couchdb + key: cookieAuthSecret + livenessProbe: + httpGet: + path: / + port: 5984 + readinessProbe: + httpGet: + path: /_up + port: 5984 + volumeMounts: + - name: couchdb-${CI_ENVIRONMENT_SLUG} + mountPath: /var/lib/couchdb + volumes: + - name: couchdb-${CI_ENVIRONMENT_SLUG} + volumeClaimTemplates: + - metadata: + name: couchdb-${CI_ENVIRONMENT_SLUG} + labels: + app: couchdb-${CI_ENVIRONMENT_SLUG} + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi -- GitLab