9f5e397f3b
If compute ironic pod migrates to another host, old compute ironic service is not deleted and in 'down' status forever. Unless it's deleted manually. New compute ironic service is created successfuly and in 'up' status. This error behavior is due to host of compute ironic service equals node name because of host networking. The patch disables host networking which solves the issue. Story: #2009843 Task: #44446 Change-Id: Iec86be4961cbf3a74c8028cd981ed2a9f6584add
114 lines
5.0 KiB
YAML
114 lines
5.0 KiB
YAML
{{/*
|
|
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.statefulset_compute_ironic }}
|
|
{{- $envAll := . }}
|
|
|
|
{{- $mounts_nova_compute_ironic := .Values.pod.mounts.nova_compute_ironic.nova_compute_ironic }}
|
|
{{- $mounts_nova_compute_ironic_init := .Values.pod.mounts.nova_compute_ironic.init_container }}
|
|
|
|
{{- $serviceAccountName := "nova-compute-ironic" }}
|
|
{{ tuple $envAll "compute_ironic" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: nova-compute-ironic
|
|
annotations:
|
|
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
|
|
labels:
|
|
{{ tuple $envAll "nova" "compute-ironic" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
|
|
spec:
|
|
replicas: {{ .Values.pod.replicas.compute_ironic }}
|
|
selector:
|
|
matchLabels:
|
|
{{ tuple $envAll "nova" "compute-ironic" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
|
|
serviceName: "{{ tuple "baremetal" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}-compute"
|
|
template:
|
|
metadata:
|
|
labels:
|
|
{{ tuple $envAll "nova" "compute-ironic" | 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" "nova-compute-default" "containerNames" (list "nova-compute") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
|
|
spec:
|
|
serviceAccountName: {{ $serviceAccountName }}
|
|
{{ dict "envAll" $envAll "application" "nova" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
|
|
affinity:
|
|
{{ tuple $envAll "nova" "compute-ironic" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
|
|
nodeSelector:
|
|
{{ .Values.labels.agent.compute_ironic.node_selector_key }}: {{ .Values.labels.agent.compute_ironic.node_selector_value }}
|
|
securityContext:
|
|
runAsUser: 0
|
|
hostPID: true
|
|
dnsPolicy: ClusterFirstWithHostNet
|
|
initContainers:
|
|
{{ tuple $envAll "compute_ironic" $mounts_nova_compute_ironic_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
|
containers:
|
|
- name: nova-compute-ironic
|
|
{{ tuple $envAll "nova_compute_ironic" | include "helm-toolkit.snippets.image" | indent 10 }}
|
|
{{ tuple $envAll $envAll.Values.pod.resources.compute_ironic | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
|
command:
|
|
- /tmp/nova-compute-ironic.sh
|
|
volumeMounts:
|
|
- name: pod-tmp
|
|
mountPath: /tmp
|
|
- name: nova-bin
|
|
mountPath: /tmp/nova-compute-ironic.sh
|
|
subPath: nova-compute-ironic.sh
|
|
readOnly: true
|
|
- name: nova-etc
|
|
mountPath: /etc/nova/nova.conf
|
|
subPath: nova.conf
|
|
readOnly: true
|
|
{{- if .Values.conf.nova.DEFAULT.log_config_append }}
|
|
- name: nova-etc
|
|
mountPath: {{ .Values.conf.nova.DEFAULT.log_config_append }}
|
|
subPath: {{ base .Values.conf.nova.DEFAULT.log_config_append }}
|
|
readOnly: true
|
|
{{- end }}
|
|
- name: nova-etc
|
|
mountPath: /etc/nova/nova-ironic.conf
|
|
subPath: nova-ironic.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: varlibironic
|
|
mountPath: /var/lib/ironic
|
|
{{ if $mounts_nova_compute_ironic.volumeMounts }}{{ toYaml $mounts_nova_compute_ironic.volumeMounts | indent 12 }}{{ end }}
|
|
volumes:
|
|
- name: pod-tmp
|
|
emptyDir: {}
|
|
- name: nova-bin
|
|
configMap:
|
|
name: nova-bin
|
|
defaultMode: 0555
|
|
- name: nova-etc
|
|
secret:
|
|
secretName: nova-etc
|
|
defaultMode: 0444
|
|
- name: varlibironic
|
|
hostPath:
|
|
path: /var/lib/ironic
|
|
{{ if $mounts_nova_compute_ironic.volumes }}{{ toYaml $mounts_nova_compute_ironic.volumes | indent 8 }}{{ end }}
|
|
{{- end }}
|