Add Ceph RBD storageclass support
Change-Id: I90795e7b89833ce780796f556dc1f34cfa78af64
Implements: PROD-22552
diff --git a/README.rst b/README.rst
index 5eab3ee..7ec845b 100644
--- a/README.rst
+++ b/README.rst
@@ -708,6 +708,25 @@
server: 10.0.0.1
path: /exported_path
+Ceph RBD storageclass integration.
+
+.. code-block:: yaml
+
+ kubernetes:
+ common:
+ addons:
+ storageclass:
+ rbd:
+ enabled: True
+ default: True
+ provisioner: rbd
+ name: rbd
+ user_id: kubernetes
+ user_key: AQAOoo5bGqtPExAABGSPtThpt5s+iq97KAE+WQ==
+ monitors: cmn01:6789,cmn02:6789,cmn03:6789
+ pool: kubernetes
+ fstype: ext4
+
Kubernetes namespaces
---------------------
diff --git a/kubernetes/files/kube-addons/storageclass/rbd.yaml b/kubernetes/files/kube-addons/storageclass/rbd.yaml
new file mode 100644
index 0000000..6c07e89
--- /dev/null
+++ b/kubernetes/files/kube-addons/storageclass/rbd.yaml
@@ -0,0 +1,35 @@
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: rbd-secret
+ namespace: kube-system
+ labels:
+ addonmanager.kubernetes.io/mode: Reconcile
+data:
+ key: {{ salt['hashutil.base64_b64encode'](storageclass.user_key) }}
+type: kubernetes.io/rbd
+---
+kind: StorageClass
+apiVersion: storage.k8s.io/v1
+metadata:
+ name: {{ storageclass.name }}
+ {%- if storageclass.default %}
+ annotations:
+ storageclass.beta.kubernetes.io/is-default-class: "true"
+ {%- endif %}
+ labels:
+ addonmanager.kubernetes.io/mode: Reconcile
+provisioner: kubernetes.io/rbd
+parameters:
+ monitors: {{ storageclass.monitors }}
+ adminId: {{ storageclass.user_id }}
+ adminSecretName: rbd-secret
+ adminSecretNamespace: kube-system
+ pool: {{ storageclass.pool }}
+ userId: {{ storageclass.user_id }}
+ userSecretName: rbd-secret
+ userSecretNamespace: kube-system
+ fsType: {{ storageclass.get('fstype', 'ext4') }}
+ imageFormat: "2"
+ imageFeatures: "layering"