{{/* Copyright 2017 The Openstack-Helm Authors. 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.daemonset_compute }} {{- $envAll := . }} {{- $dependencies := .Values.dependencies.compute }} {{- $mounts_nova_compute := .Values.pod.mounts.nova_compute.nova_compute }} {{- $mounts_nova_compute_init := .Values.pod.mounts.nova_compute.init_container }} --- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: nova-compute spec: {{ tuple $envAll "compute" | include "helm-toolkit.snippets.kubernetes_upgrades_daemonset" | indent 2 }} template: metadata: labels: {{ tuple $envAll "nova" "compute" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }} annotations: configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }} configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }} spec: nodeSelector: {{ .Values.labels.agent.compute.node_selector_key }}: {{ .Values.labels.agent.compute.node_selector_value }} securityContext: runAsUser: 0 hostNetwork: true hostPID: true dnsPolicy: ClusterFirst initContainers: {{ tuple $envAll $dependencies $mounts_nova_compute_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }} {{- if .Values.ceph.enabled }} - name: ceph-keyring-placement image: {{ .Values.images.compute }} imagePullPolicy: {{ .Values.images.pull_policy }} command: - /tmp/ceph-keyring.sh volumeMounts: - name: etcceph mountPath: /etc/ceph - name: nova-bin mountPath: /tmp/ceph-keyring.sh subPath: ceph-keyring.sh - name: ceph-keyring mountPath: /tmp/client-keyring subPath: key readOnly: true {{ end }} - name: nova-compute-init image: {{ .Values.images.compute }} imagePullPolicy: {{ .Values.images.pull_policy }} {{ tuple $envAll $envAll.Values.pod.resources.compute | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} securityContext: privileged: true command: - /tmp/nova-vnc-compute-init.sh volumeMounts: - name: nova-bin mountPath: /tmp/nova-vnc-compute-init.sh subPath: nova-vnc-compute-init.sh readOnly: true - name: nova-etc mountPath: /etc/nova/nova.conf subPath: nova.conf readOnly: true - name: nova-etc mountPath: /etc/nova/api-paste.ini subPath: api-paste.ini readOnly: true - name: nova-etc mountPath: /etc/resolv.conf subPath: resolv.conf readOnly: true - name: nova-etc mountPath: /etc/ceph/ceph.conf subPath: ceph.conf readOnly: true - name: nova-etc mountPath: /etc/ceph/ceph.client.keyring subPath: ceph.client.keyring readOnly: true - mountPath: /lib/modules name: libmodules readOnly: true - name: varlibnova mountPath: /var/lib/nova - name: varliblibvirt mountPath: /var/lib/libvirt - name: run mountPath: /run - name: cgroup mountPath: /sys/fs/cgroup - name: pod-shared mountPath: /tmp/pod-shared containers: - name: nova-compute image: {{ .Values.images.compute }} imagePullPolicy: {{ .Values.images.pull_policy }} {{ tuple $envAll $envAll.Values.pod.resources.compute | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} securityContext: privileged: true command: - /tmp/nova-compute.sh volumeMounts: - name: nova-bin mountPath: /tmp/nova-compute.sh subPath: nova-compute.sh readOnly: true - name: nova-etc mountPath: /etc/nova/nova.conf subPath: nova.conf readOnly: true - name: nova-etc mountPath: /etc/nova/api-paste.ini subPath: api-paste.ini readOnly: true - name: nova-etc mountPath: /etc/nova/policy.yaml subPath: policy.yaml readOnly: true - name: nova-etc mountPath: /etc/resolv.conf subPath: resolv.conf readOnly: true {{- if .Values.ceph.enabled }} - name: etcceph mountPath: /etc/ceph - name: ceph-etc mountPath: /etc/ceph/ceph.conf subPath: ceph.conf readOnly: true - name: ceph-keyring mountPath: /tmp/client-keyring subPath: key readOnly: true {{ end }} - mountPath: /lib/modules name: libmodules readOnly: true - name: varlibnova mountPath: /var/lib/nova - name: varliblibvirt mountPath: /var/lib/libvirt - name: run mountPath: /run - name: cgroup mountPath: /sys/fs/cgroup - name: pod-shared mountPath: /tmp/pod-shared {{- if $mounts_nova_compute.volumeMounts }}{{ toYaml $mounts_nova_compute.volumeMounts | indent 12 }}{{ end }} volumes: - name: nova-bin configMap: name: nova-bin defaultMode: 0555 - name: nova-etc configMap: name: nova-etc defaultMode: 0444 {{- if .Values.ceph.enabled }} - name: etcceph emptyDir: {} - name: ceph-etc configMap: name: ceph-etc defaultMode: 0444 - name: ceph-keyring secret: secretName: pvc-ceph-client-key {{ end }} - name: libmodules hostPath: path: /lib/modules - name: varlibnova hostPath: path: /var/lib/nova - name: varliblibvirt hostPath: path: /var/lib/libvirt - name: run hostPath: path: /run - name: cgroup hostPath: path: /sys/fs/cgroup - name: pod-shared emptyDir: {} {{- if $mounts_nova_compute.volumes }}{{ toYaml $mounts_nova_compute.volumes | indent 8 }}{{ end }} {{- end }}