From 9f622982434f2210cd970ac1ba462b6a6ae843e3 Mon Sep 17 00:00:00 2001 From: Fleur Kelpin Date: Thu, 6 Sep 2018 13:46:40 +0200 Subject: [PATCH 1/8] chore (molgenis-vault): helm init molgenis-vault --- molgenis-vault/.helmignore | 21 ++++++++++ molgenis-vault/Chart.yaml | 5 +++ molgenis-vault/templates/NOTES.txt | 19 +++++++++ molgenis-vault/templates/_helpers.tpl | 32 +++++++++++++++ molgenis-vault/templates/deployment.yaml | 51 ++++++++++++++++++++++++ molgenis-vault/templates/ingress.yaml | 38 ++++++++++++++++++ molgenis-vault/templates/service.yaml | 19 +++++++++ molgenis-vault/values.yaml | 45 +++++++++++++++++++++ 8 files changed, 230 insertions(+) create mode 100644 molgenis-vault/.helmignore create mode 100644 molgenis-vault/Chart.yaml create mode 100644 molgenis-vault/templates/NOTES.txt create mode 100644 molgenis-vault/templates/_helpers.tpl create mode 100644 molgenis-vault/templates/deployment.yaml create mode 100644 molgenis-vault/templates/ingress.yaml create mode 100644 molgenis-vault/templates/service.yaml create mode 100644 molgenis-vault/values.yaml diff --git a/molgenis-vault/.helmignore b/molgenis-vault/.helmignore new file mode 100644 index 0000000..f0c1319 --- /dev/null +++ b/molgenis-vault/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/molgenis-vault/Chart.yaml b/molgenis-vault/Chart.yaml new file mode 100644 index 0000000..fb0fa84 --- /dev/null +++ b/molgenis-vault/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: "1.0" +description: Vault for secrets +name: molgenis-vault +version: 0.1.0 diff --git a/molgenis-vault/templates/NOTES.txt b/molgenis-vault/templates/NOTES.txt new file mode 100644 index 0000000..bab1cc7 --- /dev/null +++ b/molgenis-vault/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "molgenis-vault.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ template "molgenis-vault.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "molgenis-vault.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "molgenis-vault.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:80 +{{- end }} diff --git a/molgenis-vault/templates/_helpers.tpl b/molgenis-vault/templates/_helpers.tpl new file mode 100644 index 0000000..97006e3 --- /dev/null +++ b/molgenis-vault/templates/_helpers.tpl @@ -0,0 +1,32 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "molgenis-vault.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "molgenis-vault.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "molgenis-vault.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/molgenis-vault/templates/deployment.yaml b/molgenis-vault/templates/deployment.yaml new file mode 100644 index 0000000..e201f30 --- /dev/null +++ b/molgenis-vault/templates/deployment.yaml @@ -0,0 +1,51 @@ +apiVersion: apps/v1beta2 +kind: Deployment +metadata: + name: {{ template "molgenis-vault.fullname" . }} + labels: + app: {{ template "molgenis-vault.name" . }} + chart: {{ template "molgenis-vault.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: {{ template "molgenis-vault.name" . }} + release: {{ .Release.Name }} + template: + metadata: + labels: + app: {{ template "molgenis-vault.name" . }} + release: {{ .Release.Name }} + spec: + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: +{{ toYaml . | indent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: +{{ toYaml . | indent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} + {{- end }} diff --git a/molgenis-vault/templates/ingress.yaml b/molgenis-vault/templates/ingress.yaml new file mode 100644 index 0000000..020b7a4 --- /dev/null +++ b/molgenis-vault/templates/ingress.yaml @@ -0,0 +1,38 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "molgenis-vault.fullname" . -}} +{{- $ingressPath := .Values.ingress.path -}} +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + app: {{ template "molgenis-vault.name" . }} + chart: {{ template "molgenis-vault.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +{{- with .Values.ingress.annotations }} + annotations: +{{ toYaml . | indent 4 }} +{{- end }} +spec: +{{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} +{{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ . }} + http: + paths: + - path: {{ $ingressPath }} + backend: + serviceName: {{ $fullName }} + servicePort: http + {{- end }} +{{- end }} diff --git a/molgenis-vault/templates/service.yaml b/molgenis-vault/templates/service.yaml new file mode 100644 index 0000000..09aaaed --- /dev/null +++ b/molgenis-vault/templates/service.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "molgenis-vault.fullname" . }} + labels: + app: {{ template "molgenis-vault.name" . }} + chart: {{ template "molgenis-vault.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + app: {{ template "molgenis-vault.name" . }} + release: {{ .Release.Name }} diff --git a/molgenis-vault/values.yaml b/molgenis-vault/values.yaml new file mode 100644 index 0000000..ce610a8 --- /dev/null +++ b/molgenis-vault/values.yaml @@ -0,0 +1,45 @@ +# Default values for molgenis-vault. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: + repository: nginx + tag: stable + pullPolicy: IfNotPresent + +service: + type: ClusterIP + port: 80 + +ingress: + enabled: false + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + path: / + hosts: + - chart-example.local + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} From 4683bd6649d1037efa37013939c6053a32ca30e1 Mon Sep 17 00:00:00 2001 From: Fleur Kelpin Date: Thu, 6 Sep 2018 16:47:31 +0200 Subject: [PATCH 2/8] chore (molgenis-vault): Add dependencies vault-operator and etcd-operator --- molgenis-vault/charts/etcd-operator-0.8.0.tgz | Bin 0 -> 7467 bytes molgenis-vault/charts/vault-operator-0.1.1.tgz | Bin 0 -> 11319 bytes molgenis-vault/requirements.lock | 9 +++++++++ molgenis-vault/requirements.yaml | 7 +++++++ 4 files changed, 16 insertions(+) create mode 100644 molgenis-vault/charts/etcd-operator-0.8.0.tgz create mode 100644 molgenis-vault/charts/vault-operator-0.1.1.tgz create mode 100644 molgenis-vault/requirements.lock create mode 100644 molgenis-vault/requirements.yaml diff --git a/molgenis-vault/charts/etcd-operator-0.8.0.tgz b/molgenis-vault/charts/etcd-operator-0.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f2c2bc10796cc25aedd91d88492a3ff2efbd7504 GIT binary patch literal 7467 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 literal 0 HcmV?d00001 diff --git a/molgenis-vault/requirements.lock b/molgenis-vault/requirements.lock new file mode 100644 index 0000000..c8a680a --- /dev/null +++ b/molgenis-vault/requirements.lock @@ -0,0 +1,9 @@ +dependencies: +- name: vault-operator + repository: https://kubernetes-charts.storage.googleapis.com/ + version: 0.1.1 +- name: etcd-operator + repository: https://kubernetes-charts.storage.googleapis.com/ + version: 0.8.0 +digest: sha256:47aa645df7dfce9760905800321599de05995ae50090735d45310936dbaa46de +generated: 2018-09-06T18:59:39.861922543+02:00 diff --git a/molgenis-vault/requirements.yaml b/molgenis-vault/requirements.yaml new file mode 100644 index 0000000..63b31d4 --- /dev/null +++ b/molgenis-vault/requirements.yaml @@ -0,0 +1,7 @@ +dependencies: + - name: vault-operator + version: ^0.1.1 + repository: https://kubernetes-charts.storage.googleapis.com/ + - name: etcd-operator + version: ^0.8.0 + repository: https://kubernetes-charts.storage.googleapis.com/ \ No newline at end of file From 7df68882b6766abae0f2fecdfe5b5e90bf493f21 Mon Sep 17 00:00:00 2001 From: Fleur Kelpin Date: Fri, 7 Sep 2018 15:13:00 +0200 Subject: [PATCH 3/8] feat (molgenis-vault): Use vault-operator chart and etcd-operator chart to deploy a vault with backup secret. --- molgenis-vault/Chart.yaml | 2 +- molgenis-vault/README.md | 25 ++++++++++ molgenis-vault/resources/backup.yaml | 12 +++++ molgenis-vault/resources/restore.yaml | 14 ++++++ molgenis-vault/resources/vault.yaml | 8 +++ molgenis-vault/templates/NOTES.txt | 20 +------- molgenis-vault/templates/abs-secret.yaml | 9 ++++ molgenis-vault/templates/deployment.yaml | 51 ------------------- molgenis-vault/templates/service.yaml | 19 ------- molgenis-vault/values.yaml | 63 +++++++++++++----------- rbac-config.yml | 18 ------- 11 files changed, 104 insertions(+), 137 deletions(-) create mode 100644 molgenis-vault/README.md create mode 100644 molgenis-vault/resources/backup.yaml create mode 100644 molgenis-vault/resources/restore.yaml create mode 100644 molgenis-vault/resources/vault.yaml create mode 100644 molgenis-vault/templates/abs-secret.yaml delete mode 100644 molgenis-vault/templates/deployment.yaml delete mode 100644 molgenis-vault/templates/service.yaml delete mode 100644 rbac-config.yml diff --git a/molgenis-vault/Chart.yaml b/molgenis-vault/Chart.yaml index fb0fa84..cc807f6 100644 --- a/molgenis-vault/Chart.yaml +++ b/molgenis-vault/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 appVersion: "1.0" -description: Vault for secrets +description: MOLGENIS vault name: molgenis-vault version: 0.1.0 diff --git a/molgenis-vault/README.md b/molgenis-vault/README.md new file mode 100644 index 0000000..3f9255b --- /dev/null +++ b/molgenis-vault/README.md @@ -0,0 +1,25 @@ +# MOLGENIS Vault helm chart + +This chart creates a vault operator, but NO vault. +The vault operator defines a new custom resource named `vault` that you can use to create vaults. + +After launching the operator, create the molgenis vault manually: +`kubectl create -f resources/vault.yaml` + +That creates a new vault with two vault pods. + +See https://github.com/coreos/vault-operator/blob/master/doc/user/vault.md + +The UI will be exposed on the host name you specify. + +## Parameters + +### Azure cloud credentials +Define credentials for backup to the Azure Blob Store. +See [etcd-operator documentation](https://github.com/coreos/etcd-operator/blob/master/doc/user/abs_backup.md). + +| Parameter | Description | Default | +| --------------- | ----------------------------- | ------------------ | +| `abs.account` | name of storage account | `fdlkops` | +| `abs.accessKey` | access key of storage account | `xxxx` | +| `abs.cloud` | name of cloud environment | `AzurePublicCloud` | \ No newline at end of file diff --git a/molgenis-vault/resources/backup.yaml b/molgenis-vault/resources/backup.yaml new file mode 100644 index 0000000..3945a00 --- /dev/null +++ b/molgenis-vault/resources/backup.yaml @@ -0,0 +1,12 @@ +apiVersion: "etcd.database.coreos.com/v1beta2" +kind: "EtcdBackup" +metadata: + name: backup + namespace: "vault-operator" +spec: + etcdEndpoints: ["https://vault-etcd-client:2379"] + storageType: ABS + clientTLSSecret: vault-etcd-client-tls + abs: + path: vault/backup + absSecret: abs \ No newline at end of file diff --git a/molgenis-vault/resources/restore.yaml b/molgenis-vault/resources/restore.yaml new file mode 100644 index 0000000..a819724 --- /dev/null +++ b/molgenis-vault/resources/restore.yaml @@ -0,0 +1,14 @@ +apiVersion: "etcd.database.coreos.com/v1beta2" +kind: "EtcdRestore" +metadata: + # The restore CR name must be the same as spec.etcdCluster.name + name: vault-etcd + namespace: vault-operator +spec: + etcdCluster: + # The namespace is the same as this EtcdRestore CR + name: vault-etcd + backupStorageType: ABS + abs: + path: vault/backup + absSecret: abs \ No newline at end of file diff --git a/molgenis-vault/resources/vault.yaml b/molgenis-vault/resources/vault.yaml new file mode 100644 index 0000000..a4158b8 --- /dev/null +++ b/molgenis-vault/resources/vault.yaml @@ -0,0 +1,8 @@ +apiVersion: "vault.security.coreos.com/v1alpha1" +kind: "VaultService" +metadata: + name: "vault" + namespace: "vault-operator" +spec: + nodes: 2 + version: "0.9.1-0" \ No newline at end of file diff --git a/molgenis-vault/templates/NOTES.txt b/molgenis-vault/templates/NOTES.txt index bab1cc7..ae4cce7 100644 --- a/molgenis-vault/templates/NOTES.txt +++ b/molgenis-vault/templates/NOTES.txt @@ -1,19 +1 @@ -1. Get the application URL by running these commands: -{{- if .Values.ingress.enabled }} -{{- range .Values.ingress.hosts }} - http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }} -{{- end }} -{{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "molgenis-vault.fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo http://$NODE_IP:$NODE_PORT -{{- else if contains "LoadBalancer" .Values.service.type }} - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get svc -w {{ template "molgenis-vault.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "molgenis-vault.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') - echo http://$SERVICE_IP:{{ .Values.service.port }} -{{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "molgenis-vault.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") - echo "Visit http://127.0.0.1:8080 to use your application" - kubectl port-forward $POD_NAME 8080:80 -{{- end }} +Good luck! \ No newline at end of file diff --git a/molgenis-vault/templates/abs-secret.yaml b/molgenis-vault/templates/abs-secret.yaml new file mode 100644 index 0000000..519c814 --- /dev/null +++ b/molgenis-vault/templates/abs-secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Secret +metadata: + name: abs +type: Opaque +stringData: + storage-account: {{ .Values.abs.account }} + storage-key: {{ .Values.abs.accessKey }} + cloud: {{ .Values.abs.cloud }} \ No newline at end of file diff --git a/molgenis-vault/templates/deployment.yaml b/molgenis-vault/templates/deployment.yaml deleted file mode 100644 index e201f30..0000000 --- a/molgenis-vault/templates/deployment.yaml +++ /dev/null @@ -1,51 +0,0 @@ -apiVersion: apps/v1beta2 -kind: Deployment -metadata: - name: {{ template "molgenis-vault.fullname" . }} - labels: - app: {{ template "molgenis-vault.name" . }} - chart: {{ template "molgenis-vault.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - replicas: {{ .Values.replicaCount }} - selector: - matchLabels: - app: {{ template "molgenis-vault.name" . }} - release: {{ .Release.Name }} - template: - metadata: - labels: - app: {{ template "molgenis-vault.name" . }} - release: {{ .Release.Name }} - spec: - containers: - - name: {{ .Chart.Name }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - ports: - - name: http - containerPort: 80 - protocol: TCP - livenessProbe: - httpGet: - path: / - port: http - readinessProbe: - httpGet: - path: / - port: http - resources: -{{ toYaml .Values.resources | indent 12 }} - {{- with .Values.nodeSelector }} - nodeSelector: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} - {{- end }} diff --git a/molgenis-vault/templates/service.yaml b/molgenis-vault/templates/service.yaml deleted file mode 100644 index 09aaaed..0000000 --- a/molgenis-vault/templates/service.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "molgenis-vault.fullname" . }} - labels: - app: {{ template "molgenis-vault.name" . }} - chart: {{ template "molgenis-vault.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - type: {{ .Values.service.type }} - ports: - - port: {{ .Values.service.port }} - targetPort: http - protocol: TCP - name: http - selector: - app: {{ template "molgenis-vault.name" . }} - release: {{ .Release.Name }} diff --git a/molgenis-vault/values.yaml b/molgenis-vault/values.yaml index ce610a8..5d47683 100644 --- a/molgenis-vault/values.yaml +++ b/molgenis-vault/values.yaml @@ -2,16 +2,41 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. -replicaCount: 1 +#abs details of the credentials to reach the azure backup storage +abs: + # account is the name of the Storage account + account: fdlkops + # access key for the Storage account + accessKey: xxxx + # default cloud + cloud: AzurePublicCloud -image: - repository: nginx - tag: stable - pullPolicy: IfNotPresent - -service: - type: ClusterIP - port: 80 +### +# All of the config variables related to setting up the etcd-operator +# If you want more information about the variables exposed, please visit: +# https://github.com/kubernetes/charts/tree/master/stable/etcd-operator#configuration +### +etcd-operator: + deployments: + etcdOperator: true + backupOperator: true + restoreOperator: true + serviceAccount: + etcdOperatorServiceAccount: + create: true + backupOperatorServiceAccount: + create: true + restoreOperatorServiceAccount: + create: true + etcdOperator: + image: + tag: v0.9.2 + backupOperator: + image: + tag: v0.9.2 + restoreOperator: + image: + tag: v0.9.2 ingress: enabled: false @@ -22,24 +47,4 @@ ingress: hosts: - chart-example.local tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local -resources: {} - # We usually recommend not to specify default resources and to leave this as a conscious - # choice for the user. This also increases chances charts run on environments with little - # resources, such as Minikube. If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - -nodeSelector: {} - -tolerations: [] - -affinity: {} diff --git a/rbac-config.yml b/rbac-config.yml deleted file mode 100644 index c5ae63a..0000000 --- a/rbac-config.yml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: tiller - namespace: kube-system ---- -apiVersion: rbac.authorization.k8s.io/v1beta1 -kind: ClusterRoleBinding -metadata: - name: tiller -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin -subjects: - - kind: ServiceAccount - name: tiller - namespace: kube-system From ca939363f8c2c6fc0ab554821aa14fe39cca1162 Mon Sep 17 00:00:00 2001 From: Fleur Kelpin Date: Fri, 7 Sep 2018 16:09:15 +0200 Subject: [PATCH 4/8] feat (molgenis-vault): Add backup cronjob Needs to run under service account created by the etcd-operator subchart so there's some template magic needed to figure out what it's called. --- molgenis-vault/Chart.yaml | 2 +- molgenis-vault/README.md | 10 ++++++- molgenis-vault/resources/backup.yaml | 12 -------- molgenis-vault/resources/restore.yaml | 3 +- molgenis-vault/templates/_helpers.tpl | 8 +++++ .../templates/backup-configmap.yaml | 17 +++++++++++ molgenis-vault/templates/backup-cronjob.yaml | 30 +++++++++++++++++++ molgenis-vault/values.yaml | 9 +++++- 8 files changed, 75 insertions(+), 16 deletions(-) delete mode 100644 molgenis-vault/resources/backup.yaml create mode 100644 molgenis-vault/templates/backup-configmap.yaml create mode 100644 molgenis-vault/templates/backup-cronjob.yaml diff --git a/molgenis-vault/Chart.yaml b/molgenis-vault/Chart.yaml index cc807f6..d14c86c 100644 --- a/molgenis-vault/Chart.yaml +++ b/molgenis-vault/Chart.yaml @@ -2,4 +2,4 @@ apiVersion: v1 appVersion: "1.0" description: MOLGENIS vault name: molgenis-vault -version: 0.1.0 +version: 0.1.1 diff --git a/molgenis-vault/README.md b/molgenis-vault/README.md index 3f9255b..a534657 100644 --- a/molgenis-vault/README.md +++ b/molgenis-vault/README.md @@ -22,4 +22,12 @@ See [etcd-operator documentation](https://github.com/coreos/etcd-operator/blob/m | --------------- | ----------------------------- | ------------------ | | `abs.account` | name of storage account | `fdlkops` | | `abs.accessKey` | access key of storage account | `xxxx` | -| `abs.cloud` | name of cloud environment | `AzurePublicCloud` | \ No newline at end of file +| `abs.cloud` | name of cloud environment | `AzurePublicCloud` | + +### Backup job +Define the schedule of the backup job + +| Parameter | Description | Default | +| -------------------- | ---------------------------- | ------------------ | +| `backupJob.enable` | Enable backup cronjob | `true` | +| `backupJob.schedule` | cron schedule for the backup | `0 0 0 ? * MON *` | diff --git a/molgenis-vault/resources/backup.yaml b/molgenis-vault/resources/backup.yaml deleted file mode 100644 index 3945a00..0000000 --- a/molgenis-vault/resources/backup.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: "etcd.database.coreos.com/v1beta2" -kind: "EtcdBackup" -metadata: - name: backup - namespace: "vault-operator" -spec: - etcdEndpoints: ["https://vault-etcd-client:2379"] - storageType: ABS - clientTLSSecret: vault-etcd-client-tls - abs: - path: vault/backup - absSecret: abs \ No newline at end of file diff --git a/molgenis-vault/resources/restore.yaml b/molgenis-vault/resources/restore.yaml index a819724..c7db422 100644 --- a/molgenis-vault/resources/restore.yaml +++ b/molgenis-vault/resources/restore.yaml @@ -1,3 +1,4 @@ +# Use kubectl create -f restore.yaml to manually execute a restore of the vault apiVersion: "etcd.database.coreos.com/v1beta2" kind: "EtcdRestore" metadata: @@ -10,5 +11,5 @@ spec: name: vault-etcd backupStorageType: ABS abs: - path: vault/backup + path: vault/backup- absSecret: abs \ No newline at end of file diff --git a/molgenis-vault/templates/_helpers.tpl b/molgenis-vault/templates/_helpers.tpl index 97006e3..81f6497 100644 --- a/molgenis-vault/templates/_helpers.tpl +++ b/molgenis-vault/templates/_helpers.tpl @@ -1,3 +1,11 @@ +{{/* See https://github.com/helm/helm/issues/4535 */}} +{{- define "call-nested" }} +{{- $dot := index . 0 }} +{{- $subchart := index . 1 }} +{{- $template := index . 2 }} +{{- include $template (dict "Chart" (dict "Name" $subchart) "Values" (index $dot.Values $subchart) "Release" $dot.Release "Capabilities" $dot.Capabilities) }} +{{- end }} + {{/* vim: set filetype=mustache: */}} {{/* Expand the name of the chart. diff --git a/molgenis-vault/templates/backup-configmap.yaml b/molgenis-vault/templates/backup-configmap.yaml new file mode 100644 index 0000000..89f5404 --- /dev/null +++ b/molgenis-vault/templates/backup-configmap.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: backup-config +data: + backup_cr.yaml: | + apiVersion: "etcd.database.coreos.com/v1beta2" + kind: "EtcdBackup" + metadata: + generateName: vault-backup- + spec: + etcdEndpoints: ["https://vault-etcd-client:2379"] + storageType: ABS + clientTLSSecret: vault-etcd-client-tls + abs: + path: vault/backup. + absSecret: abs \ No newline at end of file diff --git a/molgenis-vault/templates/backup-cronjob.yaml b/molgenis-vault/templates/backup-cronjob.yaml new file mode 100644 index 0000000..e5687fc --- /dev/null +++ b/molgenis-vault/templates/backup-cronjob.yaml @@ -0,0 +1,30 @@ +{{- if .Values.backupJob.enable }} +# cronjob that creates etcdbackups using the etcd backup serviceaccount +apiVersion: batch/v1beta1 +kind: CronJob +metadata: + name: etcd-backup +spec: + schedule: {{ .Values.backupJob.schedule | quote }} + jobTemplate: + spec: + template: + spec: + serviceAccountName: {{ include "call-nested" (list . "etcd-operator" "etcd-operator.serviceAccountName") }} + containers: + - name: etcd-backup + image: lachlanevenson/k8s-kubectl + command: + - /bin/sh + - "-ec" + - | + sed -e "s||$(date '+%Y-%m-%d_%H:%M:%S')|g" /var/etcd_backup/backup_cr.yaml | kubectl create -f - + volumeMounts: + - name: backup-config + mountPath: /var/etcd_backup + restartPolicy: OnFailure + volumes: + - name: backup-config + configMap: + name: backup-config +{{- end }} \ No newline at end of file diff --git a/molgenis-vault/values.yaml b/molgenis-vault/values.yaml index 5d47683..92ac470 100644 --- a/molgenis-vault/values.yaml +++ b/molgenis-vault/values.yaml @@ -2,7 +2,7 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. -#abs details of the credentials to reach the azure backup storage +# abs gives details of the credentials to reach the azure backup storage abs: # account is the name of the Storage account account: fdlkops @@ -11,6 +11,13 @@ abs: # default cloud cloud: AzurePublicCloud +# backupjob describes the backup cronjob +backupJob: + # enable enables the backup job + enable: true + # schedule gives the cron schedule for the backup job + schedule: "0 0 0 ? * MON *" + ### # All of the config variables related to setting up the etcd-operator # If you want more information about the variables exposed, please visit: From 49be7be93ed2cf597bcd45578a7087eb4bf0b5ea Mon Sep 17 00:00:00 2001 From: Fleur Kelpin Date: Fri, 7 Sep 2018 21:44:41 +0200 Subject: [PATCH 5/8] chore (molgenis-vault): Remove unused ingress configuration --- molgenis-vault/README.md | 2 -- molgenis-vault/templates/ingress.yaml | 38 --------------------------- molgenis-vault/values.yaml | 10 ------- 3 files changed, 50 deletions(-) delete mode 100644 molgenis-vault/templates/ingress.yaml diff --git a/molgenis-vault/README.md b/molgenis-vault/README.md index a534657..0e0ac70 100644 --- a/molgenis-vault/README.md +++ b/molgenis-vault/README.md @@ -10,8 +10,6 @@ That creates a new vault with two vault pods. See https://github.com/coreos/vault-operator/blob/master/doc/user/vault.md -The UI will be exposed on the host name you specify. - ## Parameters ### Azure cloud credentials diff --git a/molgenis-vault/templates/ingress.yaml b/molgenis-vault/templates/ingress.yaml deleted file mode 100644 index 020b7a4..0000000 --- a/molgenis-vault/templates/ingress.yaml +++ /dev/null @@ -1,38 +0,0 @@ -{{- if .Values.ingress.enabled -}} -{{- $fullName := include "molgenis-vault.fullname" . -}} -{{- $ingressPath := .Values.ingress.path -}} -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - name: {{ $fullName }} - labels: - app: {{ template "molgenis-vault.name" . }} - chart: {{ template "molgenis-vault.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -{{- with .Values.ingress.annotations }} - annotations: -{{ toYaml . | indent 4 }} -{{- end }} -spec: -{{- if .Values.ingress.tls }} - tls: - {{- range .Values.ingress.tls }} - - hosts: - {{- range .hosts }} - - {{ . }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} -{{- end }} - rules: - {{- range .Values.ingress.hosts }} - - host: {{ . }} - http: - paths: - - path: {{ $ingressPath }} - backend: - serviceName: {{ $fullName }} - servicePort: http - {{- end }} -{{- end }} diff --git a/molgenis-vault/values.yaml b/molgenis-vault/values.yaml index 92ac470..f77f5ff 100644 --- a/molgenis-vault/values.yaml +++ b/molgenis-vault/values.yaml @@ -45,13 +45,3 @@ etcd-operator: image: tag: v0.9.2 -ingress: - enabled: false - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - path: / - hosts: - - chart-example.local - tls: [] - From 1cd6e0f1dbdb7dd6b60018ba7859af30bdc1e1a8 Mon Sep 17 00:00:00 2001 From: Fleur Kelpin Date: Fri, 7 Sep 2018 21:45:24 +0200 Subject: [PATCH 6/8] doc (molgenis-vault): Clean up documentation --- README.md | 3 ++- molgenis-vault/resources/vault.yaml | 1 + molgenis-vault/templates/NOTES.txt | 14 +++++++++++++- molgenis-vault/templates/abs-secret.yaml | 1 + molgenis-vault/templates/backup-configmap.yaml | 1 + 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a9f0db7..ce8c869 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,8 @@ This repository is serves also as a catalogue for Rancher. We have serveral apps - [Jenkins](molgenis-jenkins/README.md) - [NEXUS](molgenis-nexus/README.md) - [HTTPD](molgenis-httpd/README.md) -- [MOLNIGES preview](molgenis-preview/README.md) +- [MOLGENIS preview](molgenis-preview/README.md) +- [MOLGENIS vault](molgenis-vault/README.md) ### Useful commands You can you need to know to easily develop and deploy helm-charts diff --git a/molgenis-vault/resources/vault.yaml b/molgenis-vault/resources/vault.yaml index a4158b8..fa1c83b 100644 --- a/molgenis-vault/resources/vault.yaml +++ b/molgenis-vault/resources/vault.yaml @@ -1,3 +1,4 @@ +# Use kubectl create -f vault.yaml to manually create a vault apiVersion: "vault.security.coreos.com/v1alpha1" kind: "VaultService" metadata: diff --git a/molgenis-vault/templates/NOTES.txt b/molgenis-vault/templates/NOTES.txt index ae4cce7..5df45af 100644 --- a/molgenis-vault/templates/NOTES.txt +++ b/molgenis-vault/templates/NOTES.txt @@ -1 +1,13 @@ -Good luck! \ No newline at end of file +Vault operator created + +Next steps: + +* Manually create a vault using resources/vault.yaml +* Manually restore a backup using resources/backup.yaml +* Unseal the vault pods + +{{ if .Values.backupJob.enable }} +!! Make sure to check if the backups succeed !! +{{ else }} +!!!!!! NO BACKUPS CONFIGURED !!!!!! +{{ end }} \ No newline at end of file diff --git a/molgenis-vault/templates/abs-secret.yaml b/molgenis-vault/templates/abs-secret.yaml index 519c814..5f31f41 100644 --- a/molgenis-vault/templates/abs-secret.yaml +++ b/molgenis-vault/templates/abs-secret.yaml @@ -1,3 +1,4 @@ +# Secret to access microsoft azure blob store apiVersion: v1 kind: Secret metadata: diff --git a/molgenis-vault/templates/backup-configmap.yaml b/molgenis-vault/templates/backup-configmap.yaml index 89f5404..8eb22d4 100644 --- a/molgenis-vault/templates/backup-configmap.yaml +++ b/molgenis-vault/templates/backup-configmap.yaml @@ -1,3 +1,4 @@ +# configmap to use as a template by the backup cronjob to create etcdbackup instances apiVersion: v1 kind: ConfigMap metadata: From 5b9b653601d760acbc0a2c2b5812852706d1c580 Mon Sep 17 00:00:00 2001 From: Fleur Kelpin Date: Fri, 7 Sep 2018 22:44:57 +0200 Subject: [PATCH 7/8] doc (molgenis-vault): add icon --- molgenis-vault/Chart.yaml | 1 + molgenis-vault/catalogIcon-molgenis-vault.svg | 627 ++++++++++++++++++ 2 files changed, 628 insertions(+) create mode 100644 molgenis-vault/catalogIcon-molgenis-vault.svg diff --git a/molgenis-vault/Chart.yaml b/molgenis-vault/Chart.yaml index d14c86c..f6b75e4 100644 --- a/molgenis-vault/Chart.yaml +++ b/molgenis-vault/Chart.yaml @@ -3,3 +3,4 @@ appVersion: "1.0" description: MOLGENIS vault name: molgenis-vault version: 0.1.1 +icon: https://git.webhosting.rug.nl/molgenis/molgenis-ops-docker-helm/raw/master/molgenis-vault/catalogIcon-molgenis-vault.svg diff --git a/molgenis-vault/catalogIcon-molgenis-vault.svg b/molgenis-vault/catalogIcon-molgenis-vault.svg new file mode 100644 index 0000000..61d68a3 --- /dev/null +++ b/molgenis-vault/catalogIcon-molgenis-vault.svg @@ -0,0 +1,627 @@ + +image/svg+xml \ No newline at end of file From 12de8ad404eefb10b01f47e22ebd0c0895f41607 Mon Sep 17 00:00:00 2001 From: Fleur Kelpin Date: Mon, 10 Sep 2018 12:07:09 +0200 Subject: [PATCH 8/8] fix (molgenis-vault): default cronjob schedule invalid --- molgenis-vault/README.md | 8 ++++---- molgenis-vault/values.yaml | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/molgenis-vault/README.md b/molgenis-vault/README.md index 0e0ac70..fe03a13 100644 --- a/molgenis-vault/README.md +++ b/molgenis-vault/README.md @@ -25,7 +25,7 @@ See [etcd-operator documentation](https://github.com/coreos/etcd-operator/blob/m ### Backup job Define the schedule of the backup job -| Parameter | Description | Default | -| -------------------- | ---------------------------- | ------------------ | -| `backupJob.enable` | Enable backup cronjob | `true` | -| `backupJob.schedule` | cron schedule for the backup | `0 0 0 ? * MON *` | +| Parameter | Description | Default | +| -------------------- | ---------------------------- | ------------- | +| `backupJob.enable` | Enable backup cronjob | `true` | +| `backupJob.schedule` | cron schedule for the backup | `0 12 * * 1` | diff --git a/molgenis-vault/values.yaml b/molgenis-vault/values.yaml index f77f5ff..701417c 100644 --- a/molgenis-vault/values.yaml +++ b/molgenis-vault/values.yaml @@ -16,7 +16,7 @@ backupJob: # enable enables the backup job enable: true # schedule gives the cron schedule for the backup job - schedule: "0 0 0 ? * MON *" + schedule: "0 12 * * 1" ### # All of the config variables related to setting up the etcd-operator @@ -45,3 +45,34 @@ etcd-operator: image: tag: v0.9.2 +ui: + name: "vault-ui" + replicaCount: 1 + image: + repository: djenriquez/vault-ui + tag: latest + service: + name: vault-ui + type: ClusterIP + externalPort: 8000 + internalPort: 8000 + # nodePort: 32001 + ingress: + enabled: true + # Used to create Ingress record (should used with service.type: ClusterIP). + host: vault.molgenis.org + + resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + #requests: + # cpu: 100m + # memory: 128Mi + nodeSelector: {} + vault: + auth: TOKEN \ No newline at end of file