diff --git a/apps/openebs/app.yaml b/apps/openebs/app.yaml new file mode 100644 index 0000000..138a9e1 --- /dev/null +++ b/apps/openebs/app.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: openebs +metadata: + name: openebs +resources: + - app/namespace.yaml + - app/release.yaml + - app/ssd-storageclass.yaml + - app/hdd-storageclass.yaml diff --git a/apps/openebs/app/hdd-storageclass.yaml b/apps/openebs/app/hdd-storageclass.yaml new file mode 100644 index 0000000..207ae1e --- /dev/null +++ b/apps/openebs/app/hdd-storageclass.yaml @@ -0,0 +1,19 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: ebs-hdd + namespace: openebs + annotations: + openebs.io/cas-type: local + cas.openebs.io/config: | + - name: StorageType + value: hostpath + - name: BasePath + value: /mnt/data/clusterstore +provisioner: openebs.io/local +volumeBindingMode: WaitForFirstConsumer +allowedTopologies: +- matchLabelExpressions: + - key: kubernetes.io/hostname + values: + - cluster-dedicated-1 diff --git a/apps/openebs/app/namespace.yaml b/apps/openebs/app/namespace.yaml new file mode 100644 index 0000000..21db8a9 --- /dev/null +++ b/apps/openebs/app/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: openebs + labels: + name: openebs diff --git a/apps/openebs/app/release.yaml b/apps/openebs/app/release.yaml new file mode 100644 index 0000000..9b0e9c0 --- /dev/null +++ b/apps/openebs/app/release.yaml @@ -0,0 +1,19 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: openebs + namespace: openebs +spec: + releaseName: openebs + chart: + spec: + chart: openebs + sourceRef: + kind: HelmRepository + name: openebs + namespace: repos + interval: 60m + install: + remediation: + retries: 3 + values: diff --git a/apps/openebs/app/ssd-storageclass.yaml b/apps/openebs/app/ssd-storageclass.yaml new file mode 100644 index 0000000..5e57d1d --- /dev/null +++ b/apps/openebs/app/ssd-storageclass.yaml @@ -0,0 +1,21 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: ebs-ssd + namespace: openebs + annotations: + openebs.io/cas-type: local + cas.openebs.io/config: | + - name: StorageType + value: hostpath + - name: BasePath + value: /var/clusterstore +provisioner: openebs.io/local +volumeBindingMode: WaitForFirstConsumer +allowedTopologies: +- matchLabelExpressions: + - key: kubernetes.io/hostname + values: + - cluster-server-1 + - cluster-server-2 + - cluster-dedicated-1 diff --git a/cluster/apps.yaml b/cluster/apps.yaml index dc28202..99233bc 100644 --- a/cluster/apps.yaml +++ b/cluster/apps.yaml @@ -34,6 +34,23 @@ spec: --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization +metadata: + name: apps-openebs + namespace: flux-system +spec: + dependsOn: + - name: repos + interval: 5m + sourceRef: + kind: GitRepository + name: flux-system + path: ./apps/openebs + prune: true + wait: true + timeout: 5m0s +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization metadata: name: apps-longhorn namespace: flux-system diff --git a/repos/openebs.yaml b/repos/openebs.yaml new file mode 100644 index 0000000..fff0f92 --- /dev/null +++ b/repos/openebs.yaml @@ -0,0 +1,9 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: openebs + namespace: repos +spec: + type: oci + interval: 60m + url: oci://ghcr.io/openebs/charts