From d7194da6f76ce1ac5f395d890b2b7cd23c0461e0 Mon Sep 17 00:00:00 2001 From: Falk Pollok Date: Fri, 11 Jan 2019 12:23:15 -0500 Subject: [PATCH] Added helm charts. --- deploy/helm_charts/Chart.yaml | 4 ++ deploy/helm_charts/templates/deployer.yaml | 38 +++++++++++ .../ibmc-s3fs-standard-StorageClass.yaml | 16 +++++ .../helm_charts/templates/provisioner-sa.yaml | 63 +++++++++++++++++++ deploy/helm_charts/templates/provisioner.yaml | 29 +++++++++ deploy/helm_charts/templates/volume.yaml | 17 +++++ deploy/helm_charts/values.yaml | 10 +++ 7 files changed, 177 insertions(+) create mode 100644 deploy/helm_charts/Chart.yaml create mode 100644 deploy/helm_charts/templates/deployer.yaml create mode 100644 deploy/helm_charts/templates/ibmc-s3fs-standard-StorageClass.yaml create mode 100644 deploy/helm_charts/templates/provisioner-sa.yaml create mode 100644 deploy/helm_charts/templates/provisioner.yaml create mode 100644 deploy/helm_charts/templates/volume.yaml create mode 100644 deploy/helm_charts/values.yaml diff --git a/deploy/helm_charts/Chart.yaml b/deploy/helm_charts/Chart.yaml new file mode 100644 index 000000000..c3e9da825 --- /dev/null +++ b/deploy/helm_charts/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: A Helm chart for ibmcloud-object-storage plugin +name: ibmcloud-object-storage-plugin +version: 0.1 diff --git a/deploy/helm_charts/templates/deployer.yaml b/deploy/helm_charts/templates/deployer.yaml new file mode 100644 index 000000000..8306132cf --- /dev/null +++ b/deploy/helm_charts/templates/deployer.yaml @@ -0,0 +1,38 @@ +{{ if .Values.cloud }} +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: "ibmcloud-object-storage-deployer" + namespace: kube-system + labels: + app: "ibmcloud-object-storage-deployer" +spec: + updateStrategy: + type: RollingUpdate + template: + metadata: + labels: + app: "ibmcloud-object-storage-deployer" + spec: + tolerations: + - operator: "Exists" + hostNetwork: true + containers: + - name: "ibmcloud-object-storage-deployer-container" + image: "{{ .Values.image.pluginrepository }}:{{ .Values.image.pluginBuild }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + volumeMounts: + - mountPath: /host + name: root-fs + - mountPath: /run/systemd + name: systemd + volumes: + - name: root-fs + hostPath: + path: / + - name: systemd + hostPath: + path: /run/systemd + imagePullSecrets: + - name: regcred +{{ end }} diff --git a/deploy/helm_charts/templates/ibmc-s3fs-standard-StorageClass.yaml b/deploy/helm_charts/templates/ibmc-s3fs-standard-StorageClass.yaml new file mode 100644 index 000000000..7b86700cb --- /dev/null +++ b/deploy/helm_charts/templates/ibmc-s3fs-standard-StorageClass.yaml @@ -0,0 +1,16 @@ +--- +kind: StorageClass +apiVersion: storage.k8s.io/v1beta1 +metadata: + name: ibmc-s3fs-standard +provisioner: ibm.io/ibmc-s3fs +parameters: + ibm.io/chunk-size-mb: "10" + ibm.io/parallel-count: "5" + ibm.io/tls-cipher-suite: "AES" + ibm.io/multireq-max: "20" + ibm.io/stat-cache-size: "100000" + ibm.io/debug-level: "warn" + ibm.io/curl-debug: "false" + ibm.io/kernel-cache: "true" + ibm.io/s3fs-fuse-retry-count: "5" diff --git a/deploy/helm_charts/templates/provisioner-sa.yaml b/deploy/helm_charts/templates/provisioner-sa.yaml new file mode 100644 index 000000000..0dd1ed1fb --- /dev/null +++ b/deploy/helm_charts/templates/provisioner-sa.yaml @@ -0,0 +1,63 @@ +# ServiceAccount for ibmcloud-object-storage-plugin +apiVersion: v1 +kind: ServiceAccount +metadata: + name: ibmcloud-object-storage-plugin + namespace: kube-system +--- +#ClusterRole with minimum permissions required for ibmcloud-object-storage-plugin +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1beta1 +metadata: + name: ibmcloud-object-storage-plugin +rules: +- apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] +- apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] +- apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["list", "watch"] +- apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create"] +--- +#ClusterRole for giving read secrets permission to ibmcloud-object-storage-plugin +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1beta1 +metadata: + name: ibmcloud-object-storage-secret-reader +rules: +- apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] +--- +#ClusterRoleBinding for binding ClusterRole "ibmcloud-object-storage-plugin" +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1beta1 +metadata: + name: ibmcloud-object-storage-plugin +subjects: +- kind: ServiceAccount + name: ibmcloud-object-storage-plugin + namespace: kube-system +roleRef: + kind: ClusterRole + name: ibmcloud-object-storage-plugin + apiGroup: rbac.authorization.k8s.io +--- +#ClusterRoleBinding for binding ClusterRole "ibmcloud-object-storage-secret-reader" +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1beta1 +metadata: + name: ibmcloud-object-storage-secret-reader +subjects: +- kind: ServiceAccount + name: ibmcloud-object-storage-plugin + namespace: kube-system +roleRef: + kind: ClusterRole + name: ibmcloud-object-storage-secret-reader + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/helm_charts/templates/provisioner.yaml b/deploy/helm_charts/templates/provisioner.yaml new file mode 100644 index 000000000..198f26dd3 --- /dev/null +++ b/deploy/helm_charts/templates/provisioner.yaml @@ -0,0 +1,29 @@ +#ibmcloud-object-storage-plugin deployment +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ .Chart.Name }} + namespace: kube-system + labels: + app: {{ .Chart.Name }} +spec: + strategy: + type: RollingUpdate + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ .Chart.Name }} + spec: + tolerations: + - operator: "Exists" + serviceAccountName: ibmcloud-object-storage-plugin + containers: + - name: {{ .Chart.Name }}-container + image: "{{ .Values.image.repository }}:{{ .Values.image.Build }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + args: + - "-provisioner=ibm.io/ibmc-s3fs" + env: + - name: DEBUG_TRACE + value: 'false' diff --git a/deploy/helm_charts/templates/volume.yaml b/deploy/helm_charts/templates/volume.yaml new file mode 100644 index 000000000..5bc80feda --- /dev/null +++ b/deploy/helm_charts/templates/volume.yaml @@ -0,0 +1,17 @@ +{{ if .Values.dind }} +apiVersion: v1 +kind: PersistentVolume +metadata: + name: local-volume-1 + namespace: {{.Values.namespace}} + labels: + type: local +spec: + capacity: + storage: 20Gi + accessModes: + - ReadWriteMany + hostPath: + path: "/mnt" + persistentVolumeReclaimPolicy: Delete +{{ end }} diff --git a/deploy/helm_charts/values.yaml b/deploy/helm_charts/values.yaml new file mode 100644 index 000000000..2f90a7b7b --- /dev/null +++ b/deploy/helm_charts/values.yaml @@ -0,0 +1,10 @@ +replicaCount: 1 +image: + repository: ffdl/ibmcloud-object-storage-plugin + pluginrepository: ffdl/ibmcloud-object-storage-deployer + Build: v0.1 + pluginBuild: v0.1 + pullPolicy: IfNotPresent +dind: false +cloud: true +namespace: default