16508c32ee
* Initial Commit of Nova Configuration Overrides This commit is an evolution of the initial keystone configuration overrides work It expands upon that work by introducing many of the same concepts into nova. It differs in that a few concepts were changed. Namely the helm-toolkit/_oslo.tpl concept was abandoned, as there are too many unique oslo paths for configuration elements, so dynamic oslo setting mechanism was moved locally into configmap-etc.yaml, where it is generally used. Secondly, in nova the mount override effort was altered to instead provide mount "append" capability. Keeping the manifest mounts closer to the actual pod, and keeping values.yaml a tad smaller. This still allows the original flexibility of operators adding mounts, but they cannot "undo" any of the charts built in mounts. There were several manual tweaks that needd to be done to _nova.conf.tpl after the oslo-config-gen process this time. This is because there is a bug in the newton version of generating this file. It does not include the proper service authentication credentials in the [keystone_authtoken] section. Future releases have a separate service credentials section so future config generations will likely not need these added lines. * Remove unused values.yaml parameters Fix references to removed helm-toolkit oslo macro * resolve nova feedback * bugfix nova-etc/nova-bin swap
107 lines
3.8 KiB
YAML
107 lines
3.8 KiB
YAML
# 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.
|
|
|
|
{{- $envAll := . }}
|
|
{{- $dependencies := .Values.dependencies.compute }}
|
|
{{- $mounts_nova_compute := .Values.mounts.nova_compute.nova_compute }}
|
|
{{- $mounts_nova_compute_init := .Values.mounts.nova_compute.init_container }}
|
|
|
|
apiVersion: extensions/v1beta1
|
|
kind: DaemonSet
|
|
metadata:
|
|
name: nova-compute
|
|
spec:
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: nova-compute
|
|
annotations:
|
|
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.hash" }}
|
|
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.hash" }}
|
|
pod.beta.kubernetes.io/init-containers: '[
|
|
{{ tuple $envAll $dependencies $mounts_nova_compute_init | include "helm-toolkit.kubernetes_entrypoint_init_container" | indent 10 }}
|
|
]'
|
|
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
|
|
containers:
|
|
- name: nova-compute
|
|
image: {{ .Values.images.compute }}
|
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
|
{{- if .Values.resources.enabled }}
|
|
resources:
|
|
requests:
|
|
memory: {{ .Values.resources.nova_compute.requests.memory | quote }}
|
|
cpu: {{ .Values.resources.nova_compute.requests.cpu | quote }}
|
|
limits:
|
|
memory: {{ .Values.resources.nova_compute.limits.memory | quote }}
|
|
cpu: {{ .Values.resources.nova_compute.limits.cpu | quote }}
|
|
{{- end }}
|
|
securityContext:
|
|
privileged: true
|
|
command:
|
|
- nova-compute
|
|
- --config-file
|
|
- /etc/nova/nova.conf
|
|
volumeMounts:
|
|
- name: nova-etc
|
|
mountPath: /etc/nova/nova.conf
|
|
subPath: nova.conf
|
|
- name: nova-etc
|
|
mountPath: /etc/resolv.conf
|
|
subPath: resolv.conf
|
|
- name: nova-etc
|
|
mountPath: /etc/ceph/ceph.conf
|
|
subPath: ceph.conf
|
|
- name: nova-etc
|
|
mountPath: /etc/ceph/ceph.client.keyring
|
|
subPath: ceph.client.keyring
|
|
- 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
|
|
{{ if $mounts_nova_compute.volumeMounts }}{{ toYaml $mounts_nova_compute.volumeMounts | indent 12 }}{{ end }}
|
|
volumes:
|
|
- name: nova-etc
|
|
configMap:
|
|
name: nova-etc
|
|
- 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
|
|
{{ if $mounts_nova_compute.volumes }}{{ toYaml $mounts_nova_compute.volumes | indent 8 }}{{ end }}
|