diff --git a/ironic/templates/bin/_bootstrap.sh.tpl b/ironic/templates/bin/_bootstrap.sh.tpl index 533c0a5a3f..403d25bd91 100644 --- a/ironic/templates/bin/_bootstrap.sh.tpl +++ b/ironic/templates/bin/_bootstrap.sh.tpl @@ -17,4 +17,4 @@ limitations under the License. */}} set -ex -{{ .Values.bootstrap.script | default "echo 'Not Enabled'" }} +{{ .Values.bootstrap.image.script | default "echo 'Not Enabled'" }} diff --git a/ironic/templates/bin/_ironic-api.sh.tpl b/ironic/templates/bin/_ironic-api.sh.tpl index 6c6c8225ca..8825aecdae 100644 --- a/ironic/templates/bin/_ironic-api.sh.tpl +++ b/ironic/templates/bin/_ironic-api.sh.tpl @@ -18,12 +18,17 @@ limitations under the License. set -ex COMMAND="${@:-start}" +{{- if and (.Values.bootstrap.object_store.enabled) (.Values.bootstrap.object_store.openstack.enabled) }} +OPTIONS=" --config-file /tmp/pod-shared/swift.conf" +{{- end }} +{{- if and (.Values.bootstrap.network.enabled) (.Values.bootstrap.network.openstack.enabled) }} +OPTIONS="${OPTIONS} --config-file /tmp/pod-shared/cleaning-network.conf" +{{- end }} function start () { exec ironic-api \ --config-file /etc/ironic/ironic.conf \ - --config-file /tmp/pod-shared/swift.conf \ - --config-file /tmp/pod-shared/cleaning-network.conf + ${OPTIONS} } function stop () { diff --git a/ironic/templates/bin/_ironic-conductor.sh.tpl b/ironic/templates/bin/_ironic-conductor.sh.tpl index a59e68738c..8090118186 100644 --- a/ironic/templates/bin/_ironic-conductor.sh.tpl +++ b/ironic/templates/bin/_ironic-conductor.sh.tpl @@ -21,8 +21,14 @@ set -ex mkdir -p /var/lib/openstack-helm/ironic/images mkdir -p /var/lib/openstack-helm/ironic/master_images +{{- if and (.Values.bootstrap.object_store.enabled) (.Values.bootstrap.object_store.openstack.enabled) }} +OPTIONS=" --config-file /tmp/pod-shared/swift.conf" +{{- end }} +{{- if and (.Values.bootstrap.network.enabled) (.Values.bootstrap.network.openstack.enabled) }} +OPTIONS="${OPTIONS} --config-file /tmp/pod-shared/cleaning-network.conf" +{{- end }} + exec ironic-conductor \ --config-file /etc/ironic/ironic.conf \ --config-file /tmp/pod-shared/conductor-local-ip.conf \ - --config-file /tmp/pod-shared/swift.conf \ - --config-file /tmp/pod-shared/cleaning-network.conf + ${OPTIONS} diff --git a/ironic/templates/configmap-bin.yaml b/ironic/templates/configmap-bin.yaml index 4b2d254b67..ab217ffd76 100644 --- a/ironic/templates/configmap-bin.yaml +++ b/ironic/templates/configmap-bin.yaml @@ -26,7 +26,7 @@ data: image-repo-sync.sh: | {{- include "helm-toolkit.scripts.image_repo_sync" . | indent 4 }} {{- end }} -{{- if .Values.bootstrap.enabled }} +{{- if .Values.bootstrap.image.enabled }} bootstrap.sh: | {{ tuple "bin/_bootstrap.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} {{- end }} diff --git a/ironic/templates/deployment-api.yaml b/ironic/templates/deployment-api.yaml index 6882adba22..5ed71bbf4f 100644 --- a/ironic/templates/deployment-api.yaml +++ b/ironic/templates/deployment-api.yaml @@ -54,6 +54,7 @@ spec: terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.api.timeout | default "30" }} initContainers: {{ tuple $envAll "api" $mounts_ironic_api_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }} +{{- if and (.Values.bootstrap.object_store.enabled) (.Values.bootstrap.object_store.openstack.enabled) }} - name: ironic-retrive-swift-config {{ tuple $envAll "ironic_retrive_swift_config" | include "helm-toolkit.snippets.image" | indent 10 }} {{ tuple $envAll $envAll.Values.pod.resources.conductor | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} @@ -72,6 +73,8 @@ spec: readOnly: true - name: pod-shared mountPath: /tmp/pod-shared +{{- end }} +{{- if and (.Values.bootstrap.network.enabled) (.Values.bootstrap.network.openstack.enabled) }} - name: ironic-retrive-cleaning-net {{ tuple $envAll "ironic_retrive_cleaning_network" | include "helm-toolkit.snippets.image" | indent 10 }} {{ tuple $envAll $envAll.Values.pod.resources.conductor | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} @@ -89,6 +92,7 @@ spec: readOnly: true - name: pod-shared mountPath: /tmp/pod-shared +{{- end }} containers: - name: ironic-api {{ tuple $envAll "ironic_api" | include "helm-toolkit.snippets.image" | indent 10 }} diff --git a/ironic/templates/job-bootstrap.yaml b/ironic/templates/job-bootstrap.yaml index fa1b10961f..b4b0b06d81 100644 --- a/ironic/templates/job-bootstrap.yaml +++ b/ironic/templates/job-bootstrap.yaml @@ -14,7 +14,11 @@ See the License for the specific language governing permissions and limitations under the License. */}} -{{- if and .Values.manifests.job_bootstrap .Values.bootstrap.enabled }} -{{- $bootstrapJob := dict "envAll" . "serviceName" "ironic" "keystoneUser" .Values.bootstrap.ks_user "logConfigFile" .Values.conf.ironic.DEFAULT.log_config_append -}} +{{- if and .Values.manifests.job_bootstrap .Values.bootstrap.image.enabled }} +{{- if .Values.bootstrap.image.openstack.enabled }} +{{- $bootstrapJob := dict "envAll" . "serviceName" "ironic" "keystoneUser" .Values.bootstrap.image.openstack.ks_user "logConfigFile" .Values.conf.ironic.DEFAULT.log_config_append -}} {{ $bootstrapJob | include "helm-toolkit.manifests.job_bootstrap" }} +{{- else }} +{{ include "helm-toolkit.manifests.job_bootstrap" }} +{{- end }} {{- end }} diff --git a/ironic/templates/statefulset-conductor.yaml b/ironic/templates/statefulset-conductor.yaml index fbbc17a53a..cf6414e6c7 100644 --- a/ironic/templates/statefulset-conductor.yaml +++ b/ironic/templates/statefulset-conductor.yaml @@ -102,6 +102,7 @@ spec: readOnly: true - name: pod-shared mountPath: /tmp/pod-shared +{{- if and (.Values.bootstrap.object_store.enabled) (.Values.bootstrap.object_store.openstack.enabled) }} - name: ironic-retrive-swift-config {{ tuple $envAll "ironic_retrive_swift_config" | include "helm-toolkit.snippets.image" | indent 10 }} {{ tuple $envAll $envAll.Values.pod.resources.conductor | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} @@ -120,6 +121,8 @@ spec: readOnly: true - name: pod-shared mountPath: /tmp/pod-shared +{{- end }} +{{- if and (.Values.bootstrap.network.enabled) (.Values.bootstrap.network.openstack.enabled) }} - name: ironic-retrive-cleaning-net {{ tuple $envAll "ironic_retrive_cleaning_network" | include "helm-toolkit.snippets.image" | indent 10 }} {{ tuple $envAll $envAll.Values.pod.resources.conductor | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} @@ -137,6 +140,7 @@ spec: readOnly: true - name: pod-shared mountPath: /tmp/pod-shared +{{- end }} containers: - name: ironic-conductor {{ tuple $envAll "ironic_conductor" | include "helm-toolkit.snippets.image" | indent 10 }} diff --git a/ironic/values.yaml b/ironic/values.yaml index a3fc4b5c0b..b2e07d9504 100644 --- a/ironic/values.yaml +++ b/ironic/values.yaml @@ -223,37 +223,48 @@ network: port: 30511 bootstrap: - enabled: true - ks_user: ironic - script: | - RELEASE="ocata" - IMAGE_URL_BASE="http://tarballs.openstack.org/ironic-python-agent/tinyipa/files" - IMAGE_INITRAMFS="ironic-agent.initramfs" - IMAGE_INITRAMFS_URL="${IMAGE_URL_BASE}/tinyipa-stable-${RELEASE}.gz" - IMAGE_KERNEL="ironic-agent.kernel" - IMAGE_KERNEL_URL="${IMAGE_URL_BASE}/tinyipa-stable-${RELEASE}.vmlinuz" - openstack image show ${IMAGE_INITRAMFS} || ( - IMAGE_LOC=$(mktemp) - curl -L ${IMAGE_INITRAMFS_URL} -o ${IMAGE_LOC} - openstack image create \ - --file ${IMAGE_LOC} \ - --disk-format ari \ - --container-format ari \ - --public \ - ${IMAGE_INITRAMFS} - rm -f ${IMAGE_LOC} - ) - openstack image show ${IMAGE_KERNEL} || ( - IMAGE_LOC=$(mktemp) - curl -L ${IMAGE_KERNEL_URL} -o ${IMAGE_LOC} - openstack image create \ - --file ${IMAGE_LOC} \ - --disk-format aki \ - --container-format aki \ - --public \ - ${IMAGE_KERNEL} - rm -f ${IMAGE_LOC} - ) + image: + enabled: true + openstack: + enabled: true + ks_user: ironic + script: | + RELEASE="ocata" + IMAGE_URL_BASE="http://tarballs.openstack.org/ironic-python-agent/tinyipa/files" + IMAGE_INITRAMFS="ironic-agent.initramfs" + IMAGE_INITRAMFS_URL="${IMAGE_URL_BASE}/tinyipa-stable-${RELEASE}.gz" + IMAGE_KERNEL="ironic-agent.kernel" + IMAGE_KERNEL_URL="${IMAGE_URL_BASE}/tinyipa-stable-${RELEASE}.vmlinuz" + openstack image show ${IMAGE_INITRAMFS} || ( + IMAGE_LOC=$(mktemp) + curl -L ${IMAGE_INITRAMFS_URL} -o ${IMAGE_LOC} + openstack image create \ + --file ${IMAGE_LOC} \ + --disk-format ari \ + --container-format ari \ + --public \ + ${IMAGE_INITRAMFS} + rm -f ${IMAGE_LOC} + ) + openstack image show ${IMAGE_KERNEL} || ( + IMAGE_LOC=$(mktemp) + curl -L ${IMAGE_KERNEL_URL} -o ${IMAGE_LOC} + openstack image create \ + --file ${IMAGE_LOC} \ + --disk-format aki \ + --container-format aki \ + --public \ + ${IMAGE_KERNEL} + rm -f ${IMAGE_LOC} + ) + network: + enabled: true + openstack: + enabled: true + object_store: + enabled: true + openstack: + enabled: true dependencies: dynamic: diff --git a/tools/overrides/deployment/baremetal/ironic-standalone.yaml b/tools/overrides/deployment/baremetal/ironic-standalone.yaml new file mode 100644 index 0000000000..0cca81b0ee --- /dev/null +++ b/tools/overrides/deployment/baremetal/ironic-standalone.yaml @@ -0,0 +1,60 @@ +conf: + ironic: + DEFAULT: + auth_strategy: noauth + conductor: + automated_clean: false + dhcp: + dhcp_provider: none + +network: + pxe: + device: br-simulator + +bootstrap: + image: + enabled: false + openstack: + enabled: false + network: + enabled: false + openstack: + enabled: false + object_store: + enabled: false + openstack: + enabled: false + +dependencies: + static: + api: + jobs: + - ironic-rabbit-init + services: + - endpoint: internal + service: oslo_db + - endpoint: internal + service: oslo_messaging + bootstrap: + jobs: null + services: null + conductor: + jobs: + - ironic-rabbit-init + services: + - endpoint: internal + service: oslo_db + - endpoint: internal + service: oslo_messaging + +secrets: + identity: + admin: ironic-keystone-admin + ironic: ironic-keystone-user + +manifests: + job_ks_endpoints: false + job_ks_service: false + job_ks_user: false + job_manage_cleaning_network: false + secret_keystone: false