Add m-data
diff --git a/charts/manila/templates/bin/_bootstrap.sh.tpl b/charts/manila/templates/bin/_bootstrap.sh.tpl
index 5e4b78e..df2bbbc 100644
--- a/charts/manila/templates/bin/_bootstrap.sh.tpl
+++ b/charts/manila/templates/bin/_bootstrap.sh.tpl
@@ -35,6 +35,21 @@
{{- end -}}; }
{{ end }}
+{{ range .Values.bootstrap.structured.flavors }}
+openstack flavor show {{ .name | quote }} || \
+ openstack flavor create {{ .name | quote }} \
+ {{ if .id -}} --id {{ .id }} {{ end -}} \
+ --ram {{ .ram }} \
+ --vcpus {{ .vcpus }} \
+ --disk {{ .disk }} \
+ --ephemeral {{ .ephemeral }} \
+ {{ if .public -}}
+ --public
+ {{- else -}}
+ --private
+ {{- end -}}; }
+{{ end }}
+
openstack share type show default || \
openstack share type create default true \
--public true --description "default generic share type"
diff --git a/charts/manila/templates/bin/_manila-data.sh.tpl b/charts/manila/templates/bin/_manila-data.sh.tpl
new file mode 100644
index 0000000..f8a94d1
--- /dev/null
+++ b/charts/manila/templates/bin/_manila-data.sh.tpl
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+{{/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
+
+set -ex
+exec manila-data \
+ --config-file /etc/manila/manila.conf
diff --git a/charts/manila/templates/bin/_manila-scheduler.sh.tpl b/charts/manila/templates/bin/_manila-scheduler.sh.tpl
index 7a3c180..7a6835a 100644
--- a/charts/manila/templates/bin/_manila-scheduler.sh.tpl
+++ b/charts/manila/templates/bin/_manila-scheduler.sh.tpl
@@ -16,4 +16,4 @@
set -ex
exec manila-scheduler \
- --config-file /etc/manila/manila.conf
+ --config-file /etc/manila/manila.conf
diff --git a/charts/manila/templates/deployment-data.yaml b/charts/manila/templates/deployment-data.yaml
new file mode 100644
index 0000000..21db299
--- /dev/null
+++ b/charts/manila/templates/deployment-data.yaml
@@ -0,0 +1,121 @@
+{{/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
+
+{{- if .Values.manifests.deployment_data }}
+{{- $envAll := . }}
+
+{{- $mounts_manila_data := .Values.pod.mounts.manila_data.manila_data }}
+{{- $mounts_manila_data_init := .Values.pod.mounts.manila_data.init_container }}
+
+{{- $serviceAccountName := "manila-data" }}
+{{ tuple $envAll "data" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: manila-data
+ annotations:
+ {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
+ labels:
+{{ tuple $envAll "manila" "data" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
+spec:
+ replicas: {{ .Values.pod.replicas.data }}
+ selector:
+ matchLabels:
+{{ tuple $envAll "manila" "data" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{ tuple $envAll | include "helm-toolkit.snippets.kubernetes_upgrades_deployment" | indent 2 }}
+ template:
+ metadata:
+ labels:
+{{ tuple $envAll "manila" "data" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
+ annotations:
+{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
+ configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
+ configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
+{{ dict "envAll" $envAll "podName" "manila-data" "containerNames" (list "init" "manila-data") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
+ spec:
+{{ dict "envAll" $envAll "application" "manila" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+ serviceAccountName: {{ $serviceAccountName }}
+ affinity:
+{{ tuple $envAll "manila" "data" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
+ nodeSelector:
+ {{ .Values.labels.data.node_selector_key }}: {{ .Values.labels.data.node_selector_value }}
+{{ if $envAll.Values.pod.tolerations.manila.enabled }}
+{{ tuple $envAll "manila" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+{{ end }}
+ initContainers:
+{{ tuple $envAll "data" $mounts_manila_data_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
+ containers:
+ - name: manila-data
+{{ tuple $envAll "manila_data" | include "helm-toolkit.snippets.image" | indent 10 }}
+{{ tuple $envAll $envAll.Values.pod.resources.data | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
+{{ dict "envAll" $envAll "application" "manila" "container" "manila_data" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
+ command:
+ - /tmp/manila-data.sh
+ env:
+{{- if or .Values.manifests.certificates .Values.tls.identity }}
+ - name: REQUESTS_CA_BUNDLE
+ value: "/etc/manila/certs/ca.crt"
+{{- end }}
+ volumeMounts:
+ - name: pod-tmp
+ mountPath: /tmp
+ - name: etcmanila
+ mountPath: /etc/manila
+ - name: state-tmp
+ mountPath: /var/lib/manila
+ - name: manila-etc
+ mountPath: /etc/manila/manila.conf
+ subPath: manila.conf
+ readOnly: true
+ {{- if .Values.conf.manila.DEFAULT.log_config_append }}
+ - name: manila-etc
+ mountPath: {{ .Values.conf.manila.DEFAULT.log_config_append }}
+ subPath: {{ base .Values.conf.manila.DEFAULT.log_config_append }}
+ readOnly: true
+ {{- end }}
+ - name: manila-etc
+ mountPath: /etc/manila/policy.yaml
+ subPath: policy.yaml
+ readOnly: true
+ - name: manila-bin
+ mountPath: /tmp/manila-data.sh
+ subPath: manila-data.sh
+ readOnly: true
+{{- dict "enabled" .Values.manifests.certificates "name" .Values.endpoints.oslo_db.auth.admin.secret.tls.internal "path" "/etc/mysql/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 12 }}
+{{- dict "enabled" (or .Values.manifests.certificates .Values.tls.identity) "name" .Values.secrets.tls.share.api.internal "path" "/etc/manila/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 12 }}
+{{- dict "enabled" $envAll.Values.manifests.certificates "name" $envAll.Values.endpoints.oslo_messaging.auth.admin.secret.tls.internal "path" "/etc/rabbitmq/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 12 }}
+
+{{ if $mounts_manila_data.volumeMounts }}{{ toYaml $mounts_manila_data.volumeMounts | indent 12 }}{{ end }}
+ volumes:
+ - name: pod-tmp
+ emptyDir: {}
+ - name: state-tmp
+ emptyDir: {}
+ - name: etcmanila
+ emptyDir: {}
+ - name: manila-etc
+ secret:
+ secretName: manila-etc
+ defaultMode: 0444
+ - name: manila-bin
+ configMap:
+ name: manila-bin
+ defaultMode: 0555
+{{- dict "enabled" .Values.manifests.certificates "name" .Values.endpoints.oslo_db.auth.admin.secret.tls.internal | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
+{{- dict "enabled" (or .Values.manifests.certificates .Values.tls.identity) "name" .Values.secrets.tls.share.api.internal | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
+{{- dict "enabled" $envAll.Values.manifests.certificates "name" $envAll.Values.endpoints.oslo_messaging.auth.admin.secret.tls.internal | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
+
+{{ if $mounts_manila_data.volumes }}{{ toYaml $mounts_manila_data.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/charts/manila/values.yaml b/charts/manila/values.yaml
index 331bccf..27605f8 100644
--- a/charts/manila/values.yaml
+++ b/charts/manila/values.yaml
@@ -20,6 +20,9 @@
api:
node_selector_key: openstack-control-plane
node_selector_value: enabled
+ data:
+ node_selector_key: openstack-control-plane
+ node_selector_value: enabled
scheduler:
node_selector_key: openstack-control-plane
node_selector_value: enabled
@@ -50,6 +53,7 @@
ks_service: docker.io/openstackhelm/heat:wallaby-ubuntu_focal
ks_endpoints: docker.io/openstackhelm/heat:wallaby-ubuntu_focal
manila_api: docker.io/openstackhelm/manila:wallaby-ubuntu_focal
+ manila_data: docker.io/openstackhelm/manila:wallaby-ubuntu_focal
manila_scheduler: docker.io/openstackhelm/manila:wallaby-ubuntu_focal
manila_share: docker.io/openstackhelm/manila:wallaby-ubuntu_focal
rabbit_init: docker.io/rabbitmq:3.7-management
@@ -70,6 +74,9 @@
manila_api:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
+ manila_data:
+ allowPrivilegeEscalation: false
+ readOnlyRootFilesystem: true
manila_scheduler:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
@@ -109,6 +116,11 @@
manila_scheduler:
volumeMounts:
volumes:
+ manila_data:
+ init_container: null
+ manila_data:
+ volumeMounts:
+ volumes:
manila_share:
init_container: null
manila_share:
@@ -130,6 +142,7 @@
volumes:
replicas:
api: 1
+ data: 1
scheduler: 1
share: 1
lifecycle:
@@ -156,6 +169,13 @@
limits:
memory: "1024Mi"
cpu: "2000m"
+ data:
+ requests:
+ memory: "128Mi"
+ cpu: "100m"
+ limits:
+ memory: "1024Mi"
+ cpu: "2000m"
scheduler:
requests:
memory: "128Mi"
@@ -268,6 +288,15 @@
ks_user: admin
script: null
structured:
+ flavors:
+ manila-service-flavor:
+ id: 100
+ name: "manila-service-flavor"
+ ram: 512
+ vcpus: 1
+ disk: 5
+ ephemeral: 0
+ public: true
images:
manila-service-image:
id: null
@@ -301,6 +330,12 @@
service: identity
- endpoint: internal
service: oslo_messaging
+ data:
+ jobs:
+ - manila-db-sync
+ - manila-ks-user
+ - manila-ks-endpoints
+ - manila-rabbit-init
scheduler:
jobs:
- manila-db-sync
@@ -693,8 +728,8 @@
share_backend_name: GENERIC
share_driver: manila.share.drivers.generic.GenericShareDriver
driver_handles_share_servers: true
- # m1.small
- service_instance_flavor_id: 2
+ # manila-service-flavor
+ service_instance_flavor_id: 100
service_image_name: manila-service-image
service_instance_user: manila
service_instance_password: manila
@@ -1016,6 +1051,7 @@
configmap_etc: true
deployment_api: true
deployment_scheduler: true
+ deployment_data: true
deployment_share: true
ingress_api: true
job_bootstrap: true