Change-Id: I2881f4ac6f659672a7c25c3ecb7cea32ec55f70f
Signed-off-by: Scott Little <scott.little@windriver.com>
This commit is contained in:
Scott Little
2026-02-04 15:15:43 -05:00
202 changed files with 6863 additions and 7491 deletions
+1
View File
@@ -2,3 +2,4 @@
host=review.opendev.org
port=29418
project=starlingx/openstack-armada-app.git
defaultbranch=master
+21 -18
View File
@@ -14,10 +14,10 @@ This repository is divided into the following sections:
- Service clients
- Docker images
- Helm charts (openstack-helm, openstack-helm-infra and stx-openstack-helm-fluxcd)
- Helm charts (upstream/helm-charts/openstack-helm, upstream/helm-charts/ingress-nginx-helm and stx-openstack-helm-fluxcd)
- Openstack Helm (openstack-helm)
- Openstack Helm Infra (openstack-helm-infra)
- NGINX Ingress Helm chart (ingress-nginx-helm)
- STX-Openstack specific helm charts (stx-openstack-helm-fluxcd)
- FluxCD manifests (stx-openstack-helm-fluxcd)
@@ -130,14 +130,13 @@ Example stx-openstackclients_:
Helm Charts
-----------
The OpenStack community provides two upstream repositories delivering helm-charts
for its services (openstack-helm_) and for its required infrastructure
(openstack-helm-infra_).
The OpenStack community provides an upstream repository delivering Helm charts
for OpenStack services and their required infrastructure (openstack-helm_).
Both repositories are used by STX-Openstack. Since it might be needed to control
the version of Helm charts we are using and/or apply specific patches to the Helm
charts source, both repositories points to a fixed base commit SHA and are
delivered as any other StarlignX Debian package.
This repository is used by STX-Openstack. Since it might be necessary to control
the version of Helm charts being used and/or apply specific patches to the Helm
chart sources, the repository points to a fixed base commit SHA and is delivered
as any other StarlingX Debian package.
The common approach when developing a patch for such Helm charts is to first
understand if it is a StarlingX specific patch (i.e., for STX-Openstack use case
@@ -146,19 +145,23 @@ patch is described on the `StarlingX Debian package build structure docs. <BUILD
Whenever it is a generic code enhancement, the approach is to create the patch to
quickly fix the STX-Openstack issue/feature but also propose it upstream to the
openstack-helm and/or openstack-helm-infra community. If the change is accepted,
later it will be available on a newest base commit SHA, and when STX-Openstack
uprevs its base version for such packages, the patch can be deleted.
openstack-helm community. If the change is accepted, later it will be available
on a newest base commit SHA, and when STX-Openstack uprevs its base version for
the package, the patch can be deleted.
There are also cases when the issue can be solved by simply changing the Helm
override values for the chart, in that case, you can go for the static overrides
route described in the "FluxCD Manifests" section below.
Additionally, not all the Helm charts used by STX-Openstack are delivered by the
OpenStack community as part of openstack-helm and openstack-helm-infra repositories.
Some charts are custom to the application and are therefore developed/maintained
by the StarlingX community itself.
Such helm-charts can be found under `the stx-openstack-helm-fluxcd folder <STX-CHARTS>`__.
In addition to the OpenStack Helm charts, STX-Openstack also consumes the NGINX
Ingress Controller Helm chart from its upstream community. This chart follows
the same general principles regarding version pinning, patching, and override
management when used within STX-Openstack.
Additionally, not all Helm charts used by STX-Openstack are delivered by upstream
communities. Some charts are custom to the application and are therefore
developed/maintained by the StarlingX community itself. Such helm-charts can be
found under `the stx-openstack-helm-fluxcd folder <STX-CHARTS>`__.
Currently the list contains the following charts:
- Clients
@@ -266,7 +269,7 @@ This directory contains a series of examples for YAML overrides in order to cust
.. _BUILD: https://wiki.openstack.org/wiki/StarlingX/DebianBuildStructure
.. _SALSA: https://salsa.debian.org/openstack-team
.. _openstack-helm: https://opendev.org/openstack/openstack-helm
.. _openstack-helm-infra: https://opendev.org/openstack/openstack-helm-infra
.. _ingress-nginx-helm: https://github.com/kubernetes/ingress-nginx
.. _STX-CHARTS: https://opendev.org/starlingx/openstack-armada-app/src/branch/master/stx-openstack-helm-fluxcd/stx-openstack-helm-fluxcd/helm-charts
.. _STX-O-APP-METADATA: https://opendev.org/starlingx/openstack-armada-app/src/branch/master/stx-openstack-helm-fluxcd/stx-openstack-helm-fluxcd/files/metadata.yaml
.. _STX-O-APP-KUSTOMIZATION: https://opendev.org/starlingx/openstack-armada-app/src/branch/master/stx-openstack-helm-fluxcd/stx-openstack-helm-fluxcd/manifests/kustomization.yaml
+1 -2
View File
@@ -1,7 +1,6 @@
openstack-helm
openstack-helm-infra
python3-k8sapp-openstack
stx-openstack-helm-fluxcd
upstream/helm-charts/openstack-helm
upstream/helm-charts/ingress-nginx-helm
upstream/openstack/openstack-pkg-tools
upstream/openstack/python-cinderclient
-8
View File
@@ -1,8 +0,0 @@
This repo is for https://github.com/openstack/openstack-helm-infra
Changes to this repo are needed for StarlingX and those changes are
not yet merged.
Rather than clone and diverge the repo, the repo is extracted at a particular
git SHA, and patches are applied on top.
As those patches are merged, the SHA can be updated and the local patches removed.
@@ -1,11 +0,0 @@
openstack-helm-infra (1.1-0) unstable; urgency=medium
* Upversion to Caracal release.
-- Daniel Caires <DanielMarques.Caires@windriver.com> Wed, 29 Jan 2025 08:50:31 +0000
openstack-helm-infra (1.0-1) unstable; urgency=medium
* Initial release.
-- Tracey Bogue <tracey.bogue@windriver.com> Wed, 27 Oct 2021 13:42:42 +0000
@@ -1,17 +0,0 @@
Source: openstack-helm-infra
Section: libs
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
helm,
procps
Standards-Version: 4.5.1
Homepage: https://www.starlingx.io
Package: openstack-helm-infra
Section: libs
Architecture: all
Depends: ${misc:Depends}
Description: StarlingX Openstack Helm Infrastructure
This package contains a patched version of the openstack-helm-infra
repo.
@@ -1,41 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: openstack-helm-infra
Source: https://opendev.org/starlingx/openstack-armada-app/
Files: *
Copyright: (c) 2013-2025 Wind River Systems, Inc
License: Apache-2
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
.
https://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.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2021-2025 Wind River Systems, Inc
License: Apache-2
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
.
https://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.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
@@ -1 +0,0 @@
usr/lib/helm/*
@@ -1,192 +0,0 @@
From 6fa2814271b7806aece4fb44f6d8eabe8c5ab6aa Mon Sep 17 00:00:00 2001
From: Lucas Cavalcante <lucasmedeiros.cavalcante@windriver.com>
Date: Tue, 8 Feb 2022 09:18:02 -0300
Subject: Remove mariadb tls
Change-Id: I37405da8faab3495ebe55c81389e0d769aaeb1d1
[ Upversioned openstack-helm-infra base commit to Caracal ]
Signed-off-by: Daniel Caires <DanielMarques.Caires@windriver.com>
---
.../templates/manifests/_job-db-drop-mysql.tpl | 7 -------
.../templates/manifests/_job-db-init-mysql.tpl | 7 -------
helm-toolkit/templates/manifests/_job-db-sync.tpl | 3 ---
helm-toolkit/templates/scripts/_db-drop.py.tpl | 11 ++---------
helm-toolkit/templates/scripts/_db-init.py.tpl | 14 ++++----------
5 files changed, 6 insertions(+), 36 deletions(-)
diff --git a/helm-toolkit/templates/manifests/_job-db-drop-mysql.tpl b/helm-toolkit/templates/manifests/_job-db-drop-mysql.tpl
index 2b7ff2cd..5e31a04d 100644
--- a/helm-toolkit/templates/manifests/_job-db-drop-mysql.tpl
+++ b/helm-toolkit/templates/manifests/_job-db-drop-mysql.tpl
@@ -37,7 +37,6 @@ limitations under the License.
{{- $backoffLimit := index . "backoffLimit" | default "1000" -}}
{{- $activeDeadlineSeconds := index . "activeDeadlineSeconds" -}}
{{- $serviceNamePretty := $serviceName | replace "_" "-" -}}
-{{- $dbAdminTlsSecret := index . "dbAdminTlsSecret" | default "" -}}
{{- $serviceAccountName := printf "%s-%s" $serviceNamePretty "db-drop" }}
{{ tuple $envAll "db_drop" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
@@ -135,9 +134,6 @@ spec:
subPath: {{ base $dbToDrop.logConfigFile | quote }}
readOnly: true
{{- end }}
-{{- if $envAll.Values.manifests.certificates }}
-{{- dict "enabled" $envAll.Values.manifests.certificates "name" $dbAdminTlsSecret "path" "/etc/mysql/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 12 }}
-{{- end }}
{{- end }}
volumes:
- name: pod-tmp
@@ -152,9 +148,6 @@ spec:
name: {{ $configMapBin | quote }}
defaultMode: 0555
{{- end }}
-{{- if $envAll.Values.manifests.certificates }}
-{{- dict "enabled" $envAll.Values.manifests.certificates "name" $dbAdminTlsSecret | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
-{{- end }}
{{- $local := dict "configMapBinFirst" true -}}
{{- range $key1, $dbToDrop := $dbsToDrop }}
{{- $dbToDropType := default "oslo" $dbToDrop.inputType }}
diff --git a/helm-toolkit/templates/manifests/_job-db-init-mysql.tpl b/helm-toolkit/templates/manifests/_job-db-init-mysql.tpl
index b8a1dce3..ff5d54ba 100644
--- a/helm-toolkit/templates/manifests/_job-db-init-mysql.tpl
+++ b/helm-toolkit/templates/manifests/_job-db-init-mysql.tpl
@@ -37,7 +37,6 @@ limitations under the License.
{{- $backoffLimit := index . "backoffLimit" | default "1000" -}}
{{- $activeDeadlineSeconds := index . "activeDeadlineSeconds" -}}
{{- $serviceNamePretty := $serviceName | replace "_" "-" -}}
-{{- $dbAdminTlsSecret := index . "dbAdminTlsSecret" | default "" -}}
{{- $serviceAccountName := printf "%s-%s" $serviceNamePretty "db-init" }}
{{ tuple $envAll "db_init" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
@@ -134,9 +133,6 @@ spec:
subPath: {{ base $dbToInit.logConfigFile | quote }}
readOnly: true
{{- end }}
-{{- if $envAll.Values.manifests.certificates }}
-{{- dict "enabled" $envAll.Values.manifests.certificates "name" $dbAdminTlsSecret "path" "/etc/mysql/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 12 }}
-{{- end }}
{{- end }}
volumes:
- name: pod-tmp
@@ -151,9 +147,6 @@ spec:
name: {{ $configMapBin | quote }}
defaultMode: 0555
{{- end }}
-{{- if $envAll.Values.manifests.certificates }}
-{{- dict "enabled" $envAll.Values.manifests.certificates "name" $dbAdminTlsSecret | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
-{{- end }}
{{- $local := dict "configMapBinFirst" true -}}
{{- range $key1, $dbToInit := $dbsToInit }}
{{- $dbToInitType := default "oslo" $dbToInit.inputType }}
diff --git a/helm-toolkit/templates/manifests/_job-db-sync.tpl b/helm-toolkit/templates/manifests/_job-db-sync.tpl
index 4696c88f..364a7fe8 100644
--- a/helm-toolkit/templates/manifests/_job-db-sync.tpl
+++ b/helm-toolkit/templates/manifests/_job-db-sync.tpl
@@ -34,7 +34,6 @@ limitations under the License.
{{- $backoffLimit := index . "backoffLimit" | default "1000" -}}
{{- $activeDeadlineSeconds := index . "activeDeadlineSeconds" -}}
{{- $serviceNamePretty := $serviceName | replace "_" "-" -}}
-{{- $dbAdminTlsSecret := index . "dbAdminTlsSecret" | default "" -}}
{{- $serviceAccountName := printf "%s-%s" $serviceNamePretty "db-sync" }}
{{ tuple $envAll "db_sync" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
@@ -108,7 +107,6 @@ spec:
mountPath: {{ $dbToSync.logConfigFile | quote }}
subPath: {{ base $dbToSync.logConfigFile | quote }}
readOnly: true
-{{- dict "enabled" $envAll.Values.manifests.certificates "name" $dbAdminTlsSecret "path" "/etc/mysql/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 12 }}
{{- if $podVolMounts }}
{{ $podVolMounts | toYaml | indent 12 }}
{{- end }}
@@ -131,7 +129,6 @@ spec:
secret:
secretName: {{ $configMapEtc | quote }}
defaultMode: 0444
-{{- dict "enabled" $envAll.Values.manifests.certificates "name" $dbAdminTlsSecret | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
{{- if $podVols }}
{{ $podVols | toYaml | indent 8 }}
{{- end }}
diff --git a/helm-toolkit/templates/scripts/_db-drop.py.tpl b/helm-toolkit/templates/scripts/_db-drop.py.tpl
index 1e28da9c..86464714 100644
--- a/helm-toolkit/templates/scripts/_db-drop.py.tpl
+++ b/helm-toolkit/templates/scripts/_db-drop.py.tpl
@@ -54,13 +54,6 @@ else:
logger.critical('environment variable ROOT_DB_CONNECTION not set')
sys.exit(1)
-mysql_x509 = os.getenv('MARIADB_X509', "")
-ssl_args = {}
-if mysql_x509:
- ssl_args = {'ssl': {'ca': '/etc/mysql/certs/ca.crt',
- 'key': '/etc/mysql/certs/tls.key',
- 'cert': '/etc/mysql/certs/tls.crt'}}
-
# Get the connection string for the service db
if "OPENSTACK_CONFIG_FILE" in os.environ:
os_conf = os.environ['OPENSTACK_CONFIG_FILE']
@@ -101,7 +94,7 @@ try:
host = root_engine_full.url.host
port = root_engine_full.url.port
root_engine_url = ''.join([drivername, '://', root_user, ':', root_password, '@', host, ':', str (port)])
- root_engine = create_engine(root_engine_url, connect_args=ssl_args)
+ root_engine = create_engine(root_engine_url)
connection = root_engine.connect()
connection.close()
logger.info("Tested connection to DB @ {0}:{1} as {2}".format(
@@ -112,7 +105,7 @@ except:
# User DB engine
try:
- user_engine = create_engine(user_db_conn, connect_args=ssl_args)
+ user_engine = create_engine(user_db_conn)
# Get our user data out of the user_engine
database = user_engine.url.database
user = user_engine.url.username
diff --git a/helm-toolkit/templates/scripts/_db-init.py.tpl b/helm-toolkit/templates/scripts/_db-init.py.tpl
index 110cd98e..60b1c5a3 100644
--- a/helm-toolkit/templates/scripts/_db-init.py.tpl
+++ b/helm-toolkit/templates/scripts/_db-init.py.tpl
@@ -54,12 +54,6 @@ else:
logger.critical('environment variable ROOT_DB_CONNECTION not set')
sys.exit(1)
-mysql_x509 = os.getenv('MARIADB_X509', "")
-ssl_args = {}
-if mysql_x509:
- ssl_args = {'ssl': {'ca': '/etc/mysql/certs/ca.crt',
- 'key': '/etc/mysql/certs/tls.key',
- 'cert': '/etc/mysql/certs/tls.crt'}}
# Get the connection string for the service db
if "OPENSTACK_CONFIG_FILE" in os.environ:
@@ -101,7 +95,7 @@ try:
host = root_engine_full.url.host
port = root_engine_full.url.port
root_engine_url = ''.join([drivername, '://', root_user, ':', root_password, '@', host, ':', str (port)])
- root_engine = create_engine(root_engine_url, connect_args=ssl_args)
+ root_engine = create_engine(root_engine_url)
connection = root_engine.connect()
connection.close()
logger.info("Tested connection to DB @ {0}:{1} as {2}".format(
@@ -112,7 +106,7 @@ except:
# User DB engine
try:
- user_engine = create_engine(user_db_conn, connect_args=ssl_args)
+ user_engine = create_engine(user_db_conn)
# Get our user data out of the user_engine
database = user_engine.url.database
user = user_engine.url.username
@@ -139,8 +133,8 @@ except:
try:
with root_engine.connect() as connection:
connection.execute(
- "CREATE USER IF NOT EXISTS \'{0}\'@\'%%\' IDENTIFIED BY \'{1}\' {2}".format(
- user, password, mysql_x509))
+ "CREATE USER IF NOT EXISTS \'{0}\'@\'%%\' IDENTIFIED BY \'{1}\'".format(
+ user, password))
connection.execute(
"GRANT ALL ON `{0}`.* TO \'{1}\'@\'%%\'".format(database, user))
try:
--
2.34.1
@@ -1,91 +0,0 @@
From 4b2cc6a3c4b9af9dd2688d52b493828cef97cdb6 Mon Sep 17 00:00:00 2001
From: Lucas Cavalcante <lucasmedeiros.cavalcante@windriver.com>
Date: Tue, 8 Feb 2022 09:20:36 -0300
Subject: [PATCH] Remove rabbit tls
Change-Id: I04c4c25c72b10b87e71c2f286e21526e5e062b67
---
.../templates/manifests/_job-rabbit-init.yaml.tpl | 15 ---------------
.../templates/scripts/_rabbit-init.sh.tpl | 15 ---------------
2 files changed, 30 deletions(-)
diff --git a/helm-toolkit/templates/manifests/_job-rabbit-init.yaml.tpl b/helm-toolkit/templates/manifests/_job-rabbit-init.yaml.tpl
index 69820642..1501563e 100644
--- a/helm-toolkit/templates/manifests/_job-rabbit-init.yaml.tpl
+++ b/helm-toolkit/templates/manifests/_job-rabbit-init.yaml.tpl
@@ -25,9 +25,6 @@ limitations under the License.
{{- $backoffLimit := index . "backoffLimit" | default "1000" -}}
{{- $activeDeadlineSeconds := index . "activeDeadlineSeconds" -}}
{{- $serviceUserPretty := $serviceUser | replace "_" "-" -}}
-{{- $serviceNamePretty := $serviceName | replace "_" "-" -}}
-{{- $tlsPath := index . "tlsPath" | default "/etc/rabbitmq/certs" -}}
-{{- $tlsSecret := index . "tlsSecret" | default "" -}}
{{- $serviceAccountName := printf "%s-%s" $serviceUserPretty "rabbit-init" }}
{{ tuple $envAll "rabbit_init" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
@@ -86,9 +83,6 @@ spec:
mountPath: /tmp/rabbit-init.sh
subPath: rabbit-init.sh
readOnly: true
-{{- if $envAll.Values.manifests.certificates }}
-{{- dict "enabled" $envAll.Values.manifests.certificates "name" $tlsSecret "path" $tlsPath | include "helm-toolkit.snippets.tls_volume_mount" | indent 12 }}
-{{- end }}
env:
- name: RABBITMQ_ADMIN_CONNECTION
valueFrom:
@@ -103,12 +97,6 @@ spec:
{{- if $envAll.Values.conf.rabbitmq }}
- name: RABBITMQ_AUXILIARY_CONFIGURATION
value: {{ toJson $envAll.Values.conf.rabbitmq | quote }}
-{{- end }}
-{{- if and $envAll.Values.manifests.certificates (ne $tlsSecret "") }}
- - name: RABBITMQ_X509
- value: "REQUIRE X509"
- - name: USER_CERT_PATH
- value: {{ $tlsPath | quote }}
{{- end }}
volumes:
- name: pod-tmp
@@ -123,7 +111,4 @@ spec:
name: {{ $configMapBin | quote }}
defaultMode: 0555
{{- end }}
-{{- if $envAll.Values.manifests.certificates }}
-{{- dict "enabled" $envAll.Values.manifests.certificates "name" $tlsSecret | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
-{{- end }}
{{- end -}}
diff --git a/helm-toolkit/templates/scripts/_rabbit-init.sh.tpl b/helm-toolkit/templates/scripts/_rabbit-init.sh.tpl
index 3739f955..75be73fe 100644
--- a/helm-toolkit/templates/scripts/_rabbit-init.sh.tpl
+++ b/helm-toolkit/templates/scripts/_rabbit-init.sh.tpl
@@ -47,27 +47,12 @@ RABBITMQ_VHOST=$(echo "${RABBITMQ_USER_CONNECTION}" | \
RABBITMQ_VHOST="${RABBITMQ_VHOST:-/}"
function rabbitmqadmin_cli () {
- if [ -n "$RABBITMQ_X509" ]
- then
rabbitmqadmin \
- --ssl \
- --ssl-disable-hostname-verification \
- --ssl-ca-cert-file="${USER_CERT_PATH}/ca.crt" \
- --ssl-cert-file="${USER_CERT_PATH}/tls.crt" \
- --ssl-key-file="${USER_CERT_PATH}/tls.key" \
--host="${RABBIT_HOSTNAME}" \
--port="${RABBIT_PORT}" \
--username="${RABBITMQ_ADMIN_USERNAME}" \
--password="${RABBITMQ_ADMIN_PASSWORD}" \
${@}
- else
- rabbitmqadmin \
- --host="${RABBIT_HOSTNAME}" \
- --port="${RABBIT_PORT}" \
- --username="${RABBITMQ_ADMIN_USERNAME}" \
- --password="${RABBITMQ_ADMIN_PASSWORD}" \
- ${@}
- fi
}
echo "Managing: User: ${RABBITMQ_USERNAME}"
--
2.25.1
@@ -1,56 +0,0 @@
From 04ef9a7ff789aeda4e2e80ae6bc70beb80507d6b Mon Sep 17 00:00:00 2001
From: Rafael Falcao <rafael.vieirafalcao@windriver.com>
Date: Mon, 18 Jul 2022 09:42:01 -0300
Subject: [PATCH] Update openstack Ingress for networking api v1
This change patches the correct apiVersion for Ingress resources created
by the openstack ingress chart to work correctly when stx-openstack is
applied on stx with kubernetes 1.22+ running, fixing the problem
described in [1].
Same applies to spec changes that need to be done according to
io.k8s.api.networking.v1.IngressBackend documentation.
It could be done by upversioning openstack-helm-infra to its latest
commit (currently 1147988b8eba6ab7d1e7af262843f641be6657ff) but this
upversion has a different series of complications that are being
discussed in [2]
[1] https://bugs.launchpad.net/starlingx/+bug/1980397
[2] https://review.opendev.org/c/starlingx/openstack-armada-app/+/848336
Signed-off-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Co-authored-by: Rafael Falcao <rafael.vieirafalcao@windriver.com>
[ upversioned openstack-helm-infra base commit ]
Signed-off-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
[ Upversioned openstack-helm-infra base commit to Caracal ]
Signed-off-by: Daniel Caires <DanielMarques.Caires@windriver.com>
Change-Id: I0bbecc097fdafdf5ebbc3a164b80ba903b5623f2
---
mariadb/templates/deployment-ingress.yaml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mariadb/templates/deployment-ingress.yaml b/mariadb/templates/deployment-ingress.yaml
index 6fbf3389..ba0d64c9 100644
--- a/mariadb/templates/deployment-ingress.yaml
+++ b/mariadb/templates/deployment-ingress.yaml
@@ -21,7 +21,7 @@ limitations under the License.
{{- if .Values.manifests.deployment_ingress }}
{{- $envAll := . }}
-{{- $ingressClass := printf "%s-%s" .deployment_name "mariadb-ingress" }}
+{{- $ingressClass := printf "%s" "mariadb-ingress" }}
{{- $serviceAccountName := printf "%s-%s" .deployment_name "ingress" }}
{{ tuple $envAll "ingress" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
@@ -171,7 +171,7 @@ rules:
- apiGroups:
- ""
resourceNames:
- - {{ printf "%s-%s" .deployment_name $ingressClass | quote }}
+ - {{ printf "%s" .Release.Name | quote }}
resources:
- configmaps
verbs:
--
2.34.1
@@ -1,846 +0,0 @@
From de4f807376a58fa6b04163bc04cdbdad14777540 Mon Sep 17 00:00:00 2001
From: dbarbosa <david.barbosabastos@windriver.com>
Date: Wed, 20 Dec 2023 06:51:59 -0300
Subject: [PATCH] Add app.starlingx.io/component label to pods
Add the label app.starlingx.io/component to the pods and allow the
value to be updated via "system helm-override-update". This change
also ensures that when changing the label value and reapplying the
app, the pod is restarted.
The value of the label can only be “platform” or “application”, if
the variable "label.isApplication" in the values.yaml file is
different from true or false, the label will not change.
By default, all pods start with the value platform.
Signed-off-by: David Bastos <david.barbosabastos@windriver.com>
[ Updated "isApplication" labels values to "true" ]
Signed-off-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
[ Added labels to helm-toolkit job manifests ]
Signed-off-by: Daniel Caires <DanielMarques.Caires@windriver.com>
[ Add labels to helm charts and change isApplication to false ]
Signed-off-by: Giulia Melao <giulia.depaulamelao@windriver.com>
[ Upversioned openstack-helm-infra base commit to Caracal ]
Signed-off-by: Daniel Caires <DanielMarques.Caires@windriver.com>
---
ceph-rgw/templates/deployment-rgw.yaml | 2 ++
ceph-rgw/templates/job-bootstrap.yaml | 2 ++
ceph-rgw/templates/job-rgw-placement-targets.yaml | 2 ++
ceph-rgw/templates/job-rgw-restart.yaml | 2 ++
ceph-rgw/templates/job-rgw-storage-init.yaml | 2 ++
ceph-rgw/templates/job-s3-admin.yaml | 2 ++
ceph-rgw/templates/pod-helm-tests.yaml | 2 ++
ceph-rgw/values.yaml | 1 +
gnocchi/templates/cron-job-resources-cleaner.yaml | 3 +++
gnocchi/templates/daemonset-metricd.yaml | 2 ++
gnocchi/templates/daemonset-statsd.yaml | 2 ++
gnocchi/templates/deployment-api.yaml | 2 ++
gnocchi/templates/job-clean.yaml | 3 +++
gnocchi/templates/job-db-init-indexer.yaml | 3 +++
gnocchi/templates/job-db-sync.yaml | 3 +++
gnocchi/templates/job-storage-init.yaml | 3 +++
gnocchi/templates/pod-gnocchi-test.yaml | 2 ++
gnocchi/values.yaml | 1 +
helm-toolkit/templates/manifests/_job-bootstrap.tpl | 4 ++++
helm-toolkit/templates/manifests/_job-db-drop-mysql.tpl | 5 +++++
helm-toolkit/templates/manifests/_job-db-init-mysql.tpl | 4 ++++
helm-toolkit/templates/manifests/_job-db-sync.tpl | 4 ++++
helm-toolkit/templates/manifests/_job-ks-endpoints.tpl | 4 ++++
helm-toolkit/templates/manifests/_job-ks-service.tpl | 4 ++++
helm-toolkit/templates/manifests/_job-ks-user.yaml.tpl | 4 ++++
helm-toolkit/templates/manifests/_job-rabbit-init.yaml.tpl | 4 ++++
helm-toolkit/templates/manifests/_job-s3-bucket.yaml.tpl | 5 +++++
helm-toolkit/templates/manifests/_job-s3-user.yaml.tpl | 5 +++++
helm-toolkit/templates/manifests/_job_image_repo_sync.tpl | 5 +++++
libvirt/templates/daemonset-libvirt.yaml | 2 ++
libvirt/values.yaml | 1 +
mariadb/templates/cron-job-backup-mariadb.yaml | 3 +++
mariadb/templates/deployment-error.yaml | 2 ++
mariadb/templates/deployment-ingress.yaml | 2 ++
mariadb/templates/pod-test.yaml | 2 ++
mariadb/templates/statefulset.yaml | 2 ++
mariadb/values.yaml | 1 +
memcached/templates/deployment.yaml | 2 ++
memcached/values.yaml | 1 +
mongodb/templates/statefulset.yaml | 2 ++
mongodb/values.yaml | 1 +
openvswitch/templates/daemonset.yaml | 2 ++
openvswitch/values.yaml | 1 +
rabbitmq/templates/job-cluster-wait.yaml | 2 ++
rabbitmq/templates/pod-test.yaml | 2 ++
rabbitmq/templates/statefulset.yaml | 2 ++
rabbitmq/values.yaml | 1 +
47 files changed, 118 insertions(+)
diff --git a/ceph-rgw/templates/deployment-rgw.yaml b/ceph-rgw/templates/deployment-rgw.yaml
index 1fde8afe..a62f2757 100644
--- a/ceph-rgw/templates/deployment-rgw.yaml
+++ b/ceph-rgw/templates/deployment-rgw.yaml
@@ -123,11 +123,13 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "ceph" "rgw" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
configmap-etc-client-hash: {{ tuple "configmap-etc-client.yaml" . | include "helm-toolkit.utils.hash" }}
secret-keystone-rgw-hash: {{ tuple "secret-keystone-rgw.yaml" . | include "helm-toolkit.utils.hash" }}
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
{{ dict "envAll" $envAll "podName" "ceph-rgw" "containerNames" (list "init" "ceph-rgw" "ceph-init-dirs" "ceph-rgw-init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
spec:
diff --git a/ceph-rgw/templates/job-bootstrap.yaml b/ceph-rgw/templates/job-bootstrap.yaml
index 63689691..f75e5a43 100644
--- a/ceph-rgw/templates/job-bootstrap.yaml
+++ b/ceph-rgw/templates/job-bootstrap.yaml
@@ -58,8 +58,10 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "ceph" "bootstrap" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
{{ dict "envAll" $envAll "podName" "ceph-rgw-bootstrap" "containerNames" (list "ceph-keyring-placement" "init" "ceph-rgw-bootstrap") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
spec:
diff --git a/ceph-rgw/templates/job-rgw-placement-targets.yaml b/ceph-rgw/templates/job-rgw-placement-targets.yaml
index 45b9486a..d092069b 100644
--- a/ceph-rgw/templates/job-rgw-placement-targets.yaml
+++ b/ceph-rgw/templates/job-rgw-placement-targets.yaml
@@ -59,8 +59,10 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "ceph" "rgw-placement-targets" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
{{ dict "envAll" $envAll "podName" "ceph-rgw-placement-targets" "containerNames" (list "ceph-keyring-placement" "init" "create-rgw-placement-targets") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
spec:
diff --git a/ceph-rgw/templates/job-rgw-restart.yaml b/ceph-rgw/templates/job-rgw-restart.yaml
index fdbec8f9..080b5df2 100644
--- a/ceph-rgw/templates/job-rgw-restart.yaml
+++ b/ceph-rgw/templates/job-rgw-restart.yaml
@@ -59,8 +59,10 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "ceph" "rgw-restart" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
{{ dict "envAll" $envAll "podName" "ceph-rgw-restart" "containerNames" (list "init" "ceph-rgw-restart") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
spec:
diff --git a/ceph-rgw/templates/job-rgw-storage-init.yaml b/ceph-rgw/templates/job-rgw-storage-init.yaml
index 4c3a6ed3..a2c30130 100644
--- a/ceph-rgw/templates/job-rgw-storage-init.yaml
+++ b/ceph-rgw/templates/job-rgw-storage-init.yaml
@@ -56,8 +56,10 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "ceph" "rgw-storage-init" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
{{ dict "envAll" $envAll "podName" "ceph-rgw-storage-init" "containerNames" (list "ceph-keyring-placement" "init" "ceph-rgw-storage-init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
spec:
diff --git a/ceph-rgw/templates/job-s3-admin.yaml b/ceph-rgw/templates/job-s3-admin.yaml
index d796395b..94a831a9 100644
--- a/ceph-rgw/templates/job-s3-admin.yaml
+++ b/ceph-rgw/templates/job-s3-admin.yaml
@@ -60,8 +60,10 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "ceph" "rgw-s3-admin" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
{{ dict "envAll" $envAll "podName" "ceph-rgw-s3-admin" "containerNames" (list "ceph-keyring-placement" "init" "create-s3-admin") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
spec:
diff --git a/ceph-rgw/templates/pod-helm-tests.yaml b/ceph-rgw/templates/pod-helm-tests.yaml
index 54a0f870..01c3325b 100644
--- a/ceph-rgw/templates/pod-helm-tests.yaml
+++ b/ceph-rgw/templates/pod-helm-tests.yaml
@@ -22,8 +22,10 @@ kind: Pod
metadata:
name: {{ $serviceAccountName }}
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "ceph" "rgw-test" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
"helm.sh/hook": test-success
{{ dict "envAll" $envAll "podName" "ceph-rgw-test" "containerNames" (list "ceph-rgw-ks-validation" "ceph-rgw-s3-validation") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 4 }}
spec:
diff --git a/ceph-rgw/values.yaml b/ceph-rgw/values.yaml
index c8ee0a22..a0befdf0 100644
--- a/ceph-rgw/values.yaml
+++ b/ceph-rgw/values.yaml
@@ -42,6 +42,7 @@ images:
- image_repo_sync
labels:
+ isApplication: false
job:
node_selector_key: openstack-control-plane
node_selector_value: enabled
diff --git a/gnocchi/templates/cron-job-resources-cleaner.yaml b/gnocchi/templates/cron-job-resources-cleaner.yaml
index 608bab5f..6de846f6 100644
--- a/gnocchi/templates/cron-job-resources-cleaner.yaml
+++ b/gnocchi/templates/cron-job-resources-cleaner.yaml
@@ -42,7 +42,10 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "gnocchi" "resources-cleaner" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 12 }}
+ annotation:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
restartPolicy: OnFailure
diff --git a/gnocchi/templates/daemonset-metricd.yaml b/gnocchi/templates/daemonset-metricd.yaml
index 6fe77593..5d94ce26 100644
--- a/gnocchi/templates/daemonset-metricd.yaml
+++ b/gnocchi/templates/daemonset-metricd.yaml
@@ -35,11 +35,13 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "gnocchi" "metricd" | 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" }}
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
nodeSelector:
diff --git a/gnocchi/templates/daemonset-statsd.yaml b/gnocchi/templates/daemonset-statsd.yaml
index 316265bc..371448ee 100644
--- a/gnocchi/templates/daemonset-statsd.yaml
+++ b/gnocchi/templates/daemonset-statsd.yaml
@@ -34,11 +34,13 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "gnocchi" "metricd" | 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" }}
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
nodeSelector:
diff --git a/gnocchi/templates/deployment-api.yaml b/gnocchi/templates/deployment-api.yaml
index 68555b18..d34f7639 100644
--- a/gnocchi/templates/deployment-api.yaml
+++ b/gnocchi/templates/deployment-api.yaml
@@ -36,11 +36,13 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "gnocchi" "api" | 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" }}
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
affinity:
diff --git a/gnocchi/templates/job-clean.yaml b/gnocchi/templates/job-clean.yaml
index e1023aa3..e2635fac 100644
--- a/gnocchi/templates/job-clean.yaml
+++ b/gnocchi/templates/job-clean.yaml
@@ -57,6 +57,9 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
+ annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ tuple $envAll "gnocchi" "clean" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
diff --git a/gnocchi/templates/job-db-init-indexer.yaml b/gnocchi/templates/job-db-init-indexer.yaml
index 397dbee2..d1c796ac 100644
--- a/gnocchi/templates/job-db-init-indexer.yaml
+++ b/gnocchi/templates/job-db-init-indexer.yaml
@@ -28,6 +28,9 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
+ annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ tuple $envAll "gnocchi" "db-init-indexer" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
diff --git a/gnocchi/templates/job-db-sync.yaml b/gnocchi/templates/job-db-sync.yaml
index 123a5e16..d4a33034 100644
--- a/gnocchi/templates/job-db-sync.yaml
+++ b/gnocchi/templates/job-db-sync.yaml
@@ -28,6 +28,9 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
+ annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ tuple $envAll "gnocchi" "db-sync" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
diff --git a/gnocchi/templates/job-storage-init.yaml b/gnocchi/templates/job-storage-init.yaml
index 9aaae9a5..621008cd 100644
--- a/gnocchi/templates/job-storage-init.yaml
+++ b/gnocchi/templates/job-storage-init.yaml
@@ -56,6 +56,9 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
+ annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ tuple $envAll "gnocchi" "storage-init" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
diff --git a/gnocchi/templates/pod-gnocchi-test.yaml b/gnocchi/templates/pod-gnocchi-test.yaml
index c3cbe67b..961f8a2c 100644
--- a/gnocchi/templates/pod-gnocchi-test.yaml
+++ b/gnocchi/templates/pod-gnocchi-test.yaml
@@ -26,8 +26,10 @@ kind: Pod
metadata:
name: "{{.Release.Name}}-test"
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "gnocchi" "test" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
"helm.sh/hook": test-success
spec:
nodeSelector:
diff --git a/gnocchi/values.yaml b/gnocchi/values.yaml
index 3cc684fc..bbfd4335 100644
--- a/gnocchi/values.yaml
+++ b/gnocchi/values.yaml
@@ -16,6 +16,7 @@
---
labels:
+ isApplication: false
api:
node_selector_key: openstack-control-plane
node_selector_value: enabled
diff --git a/helm-toolkit/templates/manifests/_job-bootstrap.tpl b/helm-toolkit/templates/manifests/_job-bootstrap.tpl
index 6b77004f..d061fc75 100644
--- a/helm-toolkit/templates/manifests/_job-bootstrap.tpl
+++ b/helm-toolkit/templates/manifests/_job-bootstrap.tpl
@@ -63,11 +63,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "bootstrap" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
annotations:
+ {{- if $envAll.Values.labels.isApplication }}
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
diff --git a/helm-toolkit/templates/manifests/_job-db-drop-mysql.tpl b/helm-toolkit/templates/manifests/_job-db-drop-mysql.tpl
index 5e31a04d..404c3d49 100644
--- a/helm-toolkit/templates/manifests/_job-db-drop-mysql.tpl
+++ b/helm-toolkit/templates/manifests/_job-db-drop-mysql.tpl
@@ -65,10 +65,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "db-drop" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
+ {{- if $envAll.Values.labels.isApplication }}
+ annotations:
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end}}
spec:
serviceAccountName: {{ $serviceAccountName }}
restartPolicy: OnFailure
diff --git a/helm-toolkit/templates/manifests/_job-db-init-mysql.tpl b/helm-toolkit/templates/manifests/_job-db-init-mysql.tpl
index ff5d54ba..84b8e1a9 100644
--- a/helm-toolkit/templates/manifests/_job-db-init-mysql.tpl
+++ b/helm-toolkit/templates/manifests/_job-db-init-mysql.tpl
@@ -63,11 +63,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "db-init" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
annotations:
+ {{- if $envAll.Values.labels.isApplication }}
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
diff --git a/helm-toolkit/templates/manifests/_job-db-sync.tpl b/helm-toolkit/templates/manifests/_job-db-sync.tpl
index 364a7fe8..c033cf39 100644
--- a/helm-toolkit/templates/manifests/_job-db-sync.tpl
+++ b/helm-toolkit/templates/manifests/_job-db-sync.tpl
@@ -60,11 +60,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "db-sync" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
annotations:
+ {{- if $envAll.Values.labels.isApplication }}
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
diff --git a/helm-toolkit/templates/manifests/_job-ks-endpoints.tpl b/helm-toolkit/templates/manifests/_job-ks-endpoints.tpl
index e4b0e45d..387716c4 100644
--- a/helm-toolkit/templates/manifests/_job-ks-endpoints.tpl
+++ b/helm-toolkit/templates/manifests/_job-ks-endpoints.tpl
@@ -64,11 +64,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "ks-endpoints" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
annotations:
+ {{- if $envAll.Values.labels.isApplication }}
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
diff --git a/helm-toolkit/templates/manifests/_job-ks-service.tpl b/helm-toolkit/templates/manifests/_job-ks-service.tpl
index 9604c637..8111d37b 100644
--- a/helm-toolkit/templates/manifests/_job-ks-service.tpl
+++ b/helm-toolkit/templates/manifests/_job-ks-service.tpl
@@ -64,11 +64,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "ks-service" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
annotations:
+ {{- if $envAll.Values.labels.isApplication }}
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
diff --git a/helm-toolkit/templates/manifests/_job-ks-user.yaml.tpl b/helm-toolkit/templates/manifests/_job-ks-user.yaml.tpl
index 58dcdc5c..f768e68e 100644
--- a/helm-toolkit/templates/manifests/_job-ks-user.yaml.tpl
+++ b/helm-toolkit/templates/manifests/_job-ks-user.yaml.tpl
@@ -86,11 +86,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "ks-user" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
annotations:
+ {{- if $envAll.Values.labels.isApplication }}
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName | quote }}
diff --git a/helm-toolkit/templates/manifests/_job-rabbit-init.yaml.tpl b/helm-toolkit/templates/manifests/_job-rabbit-init.yaml.tpl
index f3ff145f..4fda90de 100644
--- a/helm-toolkit/templates/manifests/_job-rabbit-init.yaml.tpl
+++ b/helm-toolkit/templates/manifests/_job-rabbit-init.yaml.tpl
@@ -51,11 +51,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "rabbit-init" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
annotations:
+ {{- if $envAll.Values.labels.isApplication }}
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName | quote }}
diff --git a/helm-toolkit/templates/manifests/_job-s3-bucket.yaml.tpl b/helm-toolkit/templates/manifests/_job-s3-bucket.yaml.tpl
index b5fdc09c..7c4b605f 100644
--- a/helm-toolkit/templates/manifests/_job-s3-bucket.yaml.tpl
+++ b/helm-toolkit/templates/manifests/_job-s3-bucket.yaml.tpl
@@ -61,10 +61,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "s3-bucket" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
+ {{- if $envAll.Values.labels.isApplication }}
+ annotations:
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end}}
spec:
serviceAccountName: {{ $serviceAccountName | quote }}
restartPolicy: OnFailure
diff --git a/helm-toolkit/templates/manifests/_job-s3-user.yaml.tpl b/helm-toolkit/templates/manifests/_job-s3-user.yaml.tpl
index 77d1a71e..e07549c6 100644
--- a/helm-toolkit/templates/manifests/_job-s3-user.yaml.tpl
+++ b/helm-toolkit/templates/manifests/_job-s3-user.yaml.tpl
@@ -59,10 +59,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "s3-user" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
+ {{- if $envAll.Values.labels.isApplication }}
+ annotations:
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end}}
spec:
serviceAccountName: {{ $serviceAccountName | quote }}
restartPolicy: OnFailure
diff --git a/helm-toolkit/templates/manifests/_job_image_repo_sync.tpl b/helm-toolkit/templates/manifests/_job_image_repo_sync.tpl
index 0906df4c..bc135c64 100644
--- a/helm-toolkit/templates/manifests/_job_image_repo_sync.tpl
+++ b/helm-toolkit/templates/manifests/_job_image_repo_sync.tpl
@@ -57,10 +57,15 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
{{ tuple $envAll $serviceName "image-repo-sync" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
{{- if $jobLabels }}
{{ toYaml $jobLabels | indent 8 }}
{{- end }}
+ {{- if $envAll.Values.labels.isApplication }}
+ annotations:
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end}}
spec:
serviceAccountName: {{ $serviceAccountName }}
restartPolicy: OnFailure
diff --git a/libvirt/templates/daemonset-libvirt.yaml b/libvirt/templates/daemonset-libvirt.yaml
index 4a0b128a..050aefc0 100644
--- a/libvirt/templates/daemonset-libvirt.yaml
+++ b/libvirt/templates/daemonset-libvirt.yaml
@@ -58,12 +58,14 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll .Chart.Name $daemonset | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
{{- dict "envAll" $envAll "podName" "libvirt-libvirt-default" "containerNames" (list "libvirt") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
{{ 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" }}
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
spec:
{{ dict "envAll" $envAll "application" "libvirt" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
serviceAccountName: {{ $serviceAccountName }}
diff --git a/libvirt/values.yaml b/libvirt/values.yaml
index ba35a3f5..22ff231c 100644
--- a/libvirt/values.yaml
+++ b/libvirt/values.yaml
@@ -19,6 +19,7 @@
release_group: null
labels:
+ isApplication: false
agent:
libvirt:
node_selector_key: openstack-compute-node
diff --git a/mariadb/templates/cron-job-backup-mariadb.yaml b/mariadb/templates/cron-job-backup-mariadb.yaml
index cb838125..9222a086 100644
--- a/mariadb/templates/cron-job-backup-mariadb.yaml
+++ b/mariadb/templates/cron-job-backup-mariadb.yaml
@@ -47,7 +47,10 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "mariadb-backup" "backup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 12 }}
+ annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
spec:
{{ dict "envAll" $envAll "application" "mariadb_backup" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 10 }}
serviceAccountName: {{ $serviceAccountName }}
diff --git a/mariadb/templates/deployment-error.yaml b/mariadb/templates/deployment-error.yaml
index 4f3b68bd..eaa228bc 100644
--- a/mariadb/templates/deployment-error.yaml
+++ b/mariadb/templates/deployment-error.yaml
@@ -35,8 +35,10 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "mariadb" "ingress-error-pages" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ 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-ingress-etc.yaml" . | include "helm-toolkit.utils.hash" }}
diff --git a/mariadb/templates/deployment-ingress.yaml b/mariadb/templates/deployment-ingress.yaml
index ba0d64c9..cf964061 100644
--- a/mariadb/templates/deployment-ingress.yaml
+++ b/mariadb/templates/deployment-ingress.yaml
@@ -238,6 +238,7 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "mariadb" "ingress" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
app.kubernetes.io/instance: {{ $serviceAccountName }}
app.kubernetes.io/name: "mariadb"
@@ -247,6 +248,7 @@ spec:
app.kubernetes.io/version: {{ $envAll.Chart.AppVersion | quote }}
{{- end }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ 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-ingress-etc.yaml" . | include "helm-toolkit.utils.hash" }}
diff --git a/mariadb/templates/pod-test.yaml b/mariadb/templates/pod-test.yaml
index c8b3c29c..2f4ef851 100644
--- a/mariadb/templates/pod-test.yaml
+++ b/mariadb/templates/pod-test.yaml
@@ -30,8 +30,10 @@ kind: Pod
metadata:
name: "{{.deployment_name}}-test"
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "mariadb" "test" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
"helm.sh/hook": test-success
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
{{ dict "envAll" $envAll "podName" "mariadb-test" "containerNames" (list "init" "mariadb-test") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 4 }}
diff --git a/mariadb/templates/statefulset.yaml b/mariadb/templates/statefulset.yaml
index 5be9ab46..b8d3f193 100644
--- a/mariadb/templates/statefulset.yaml
+++ b/mariadb/templates/statefulset.yaml
@@ -125,8 +125,10 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "mariadb" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ 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" }}
diff --git a/mariadb/values.yaml b/mariadb/values.yaml
index 53789ba1..61d2d3e7 100644
--- a/mariadb/values.yaml
+++ b/mariadb/values.yaml
@@ -39,6 +39,7 @@ images:
- image_repo_sync
labels:
+ isApplication: false
server:
node_selector_key: openstack-control-plane
node_selector_value: enabled
diff --git a/memcached/templates/deployment.yaml b/memcached/templates/deployment.yaml
index b3d12eaf..a2f0d912 100644
--- a/memcached/templates/deployment.yaml
+++ b/memcached/templates/deployment.yaml
@@ -43,10 +43,12 @@ spec:
template:
metadata:
annotations:
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ dict "envAll" $envAll "podName" "memcached" "containerNames" (list "init" "memcached") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "memcached" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
spec:
{{ dict "envAll" $envAll "application" "server" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
diff --git a/memcached/values.yaml b/memcached/values.yaml
index c1a4cd0c..dd2bf3c6 100644
--- a/memcached/values.yaml
+++ b/memcached/values.yaml
@@ -130,6 +130,7 @@ images:
- image_repo_sync
labels:
+ isApplication: false
server:
node_selector_key: openstack-control-plane
node_selector_value: enabled
diff --git a/mongodb/templates/statefulset.yaml b/mongodb/templates/statefulset.yaml
index 7456a077..6c4c5148 100644
--- a/mongodb/templates/statefulset.yaml
+++ b/mongodb/templates/statefulset.yaml
@@ -35,10 +35,12 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "mongodb" "server" | 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" }}
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
affinity:
diff --git a/mongodb/values.yaml b/mongodb/values.yaml
index e0d353e5..00afdcfe 100644
--- a/mongodb/values.yaml
+++ b/mongodb/values.yaml
@@ -70,6 +70,7 @@ volume:
host_path: /var/lib/openstack-helm/mongodb
labels:
+ isApplication: false
server:
node_selector_key: openstack-control-plane
node_selector_value: enabled
diff --git a/openvswitch/templates/daemonset.yaml b/openvswitch/templates/daemonset.yaml
index 3a66fa51..c7aa9a05 100644
--- a/openvswitch/templates/daemonset.yaml
+++ b/openvswitch/templates/daemonset.yaml
@@ -76,9 +76,11 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "openvswitch" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
{{ dict "envAll" $envAll "podName" "openvswitch" "containerNames" (list "openvswitch-db" "openvswitch-db-perms" "openvswitch-vswitchd" "openvswitch-vswitchd-modules" "init") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
spec:
diff --git a/openvswitch/values.yaml b/openvswitch/values.yaml
index b350f03e..49006ea9 100644
--- a/openvswitch/values.yaml
+++ b/openvswitch/values.yaml
@@ -32,6 +32,7 @@ images:
- image_repo_sync
labels:
+ isApplication: false
ovs:
node_selector_key: openvswitch
node_selector_value: enabled
diff --git a/rabbitmq/templates/job-cluster-wait.yaml b/rabbitmq/templates/job-cluster-wait.yaml
index 1c4378c7..223291e4 100644
--- a/rabbitmq/templates/job-cluster-wait.yaml
+++ b/rabbitmq/templates/job-cluster-wait.yaml
@@ -46,11 +46,13 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "rabbitmq" "cluster-wait" | 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" }}
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ dict "envAll" $envAll "podName" "rabbitmq-cluster-wait" "containerNames" (list "init" "rabbitmq-cookie" "rabbitmq-rabbitmq-cluster-wait" ) | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
spec:
{{ dict "envAll" $envAll "application" "cluster_wait" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
diff --git a/rabbitmq/templates/pod-test.yaml b/rabbitmq/templates/pod-test.yaml
index 37d8af36..2cdc047d 100644
--- a/rabbitmq/templates/pod-test.yaml
+++ b/rabbitmq/templates/pod-test.yaml
@@ -40,10 +40,12 @@ kind: Pod
metadata:
name: "{{.deployment_name}}-test"
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "rabbitmq" "test" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
"helm.sh/hook": test-success
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ dict "envAll" $envAll "podName" "rabbitmq-rabbitmq-test" "containerNames" (list "init" "rabbitmq-rabbitmq-test") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 4 }}
spec:
{{ dict "envAll" $envAll "application" "test" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 2 }}
diff --git a/rabbitmq/templates/statefulset.yaml b/rabbitmq/templates/statefulset.yaml
index 68fbac71..0bbe2a8c 100644
--- a/rabbitmq/templates/statefulset.yaml
+++ b/rabbitmq/templates/statefulset.yaml
@@ -107,6 +107,7 @@ spec:
template:
metadata:
labels:
+ app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "rabbitmq" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
@@ -114,6 +115,7 @@ spec:
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
secret-rabbit-admin-hash: {{ tuple "secret-rabbit-admin.yaml" . | include "helm-toolkit.utils.hash" }}
secret-erlang-cookie-hash: {{ tuple "secret-erlang-cookie.yaml" . | include "helm-toolkit.utils.hash" }}
+ configchecksum: {{ toYaml .Values.labels.isApplication | sha256sum | trunc 63 }}
{{ dict "envAll" $envAll "podName" "rabbitmq" "containerNames" (list "init" "rabbitmq-password" "rabbitmq-cookie" "rabbitmq-perms" "rabbitmq") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
spec:
{{ dict "envAll" $envAll "application" "server" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
diff --git a/rabbitmq/values.yaml b/rabbitmq/values.yaml
index ca1f2036..68a963a1 100644
--- a/rabbitmq/values.yaml
+++ b/rabbitmq/values.yaml
@@ -17,6 +17,7 @@
---
labels:
+ isApplication: false
server:
node_selector_key: openstack-control-plane
node_selector_value: enabled
--
2.34.1
@@ -1,465 +0,0 @@
From a378cbea96985e35c3b8d6bc6df1551e0cf9435b Mon Sep 17 00:00:00 2001
From: Daniel Caires <DanielMarques.Caires@windriver.com>
Date: Tue, 19 Aug 2024 14:28:05 -0300
Subject: [PATCH] Add pre-apply cleanup Job to STX-O Helm charts
After verification, it was noted that it is not possible
to reapply STX-Openstack after a helm-override that changes
a job template since the template section of job is
immutable or not updatable
Due to the use of kubernetes-entrypoint DEPENDENCY_JOBS it was
also noted that deleting the jobs after the application is applied
it is not an option. If this happened, the application would not
come back after a host reboot.
This patch creates a Job template that runs right before the Helm
chart is installed ou updated. This Job deletes all jobs that have
its status as completed.
[ Upversioned openstack-helm-infra base commit to Caracal ]
Signed-off-by: Daniel Caires <DanielMarques.Caires@windriver.com>
---
ceph-rgw/templates/job-pre-apply-cleanup.yaml | 18 ++++
ceph-rgw/values.yaml | 2 +
gnocchi/templates/job-pre-apply-cleanup.yaml | 18 ++++
gnocchi/values.yaml | 2 +
.../manifests/_job-pre-apply-cleanup.tpl | 93 +++++++++++++++++++
libvirt/templates/job-pre-apply-cleanup.yaml | 18 ++++
libvirt/values.yaml | 2 +
mariadb/templates/job-pre-apply-cleanup.yaml | 18 ++++
mariadb/values.yaml | 2 +
.../templates/job-pre-apply-cleanup.yaml | 18 ++++
memcached/values.yaml | 2 +
.../templates/job-pre-apply-cleanup.yaml | 18 ++++
openvswitch/values.yaml | 2 +
rabbitmq/templates/job-pre-apply-cleanup.yaml | 18 ++++
rabbitmq/values.yaml | 2 +
15 files changed, 233 insertions(+)
create mode 100644 ceph-rgw/templates/job-pre-apply-cleanup.yaml
create mode 100644 gnocchi/templates/job-pre-apply-cleanup.yaml
create mode 100644 helm-toolkit/templates/manifests/_job-pre-apply-cleanup.tpl
create mode 100644 libvirt/templates/job-pre-apply-cleanup.yaml
create mode 100644 mariadb/templates/job-pre-apply-cleanup.yaml
create mode 100644 memcached/templates/job-pre-apply-cleanup.yaml
create mode 100644 openvswitch/templates/job-pre-apply-cleanup.yaml
create mode 100644 rabbitmq/templates/job-pre-apply-cleanup.yaml
diff --git a/ceph-rgw/templates/job-pre-apply-cleanup.yaml b/ceph-rgw/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..2a1d6d91
--- /dev/null
+++ b/ceph-rgw/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "ceph-rgw" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/ceph-rgw/values.yaml b/ceph-rgw/values.yaml
index a0befdf0..d8e52d28 100644
--- a/ceph-rgw/values.yaml
+++ b/ceph-rgw/values.yaml
@@ -35,6 +35,7 @@ images:
ks_endpoints: 'docker.io/openstackhelm/heat:2024.1-ubuntu_jammy'
ks_service: 'docker.io/openstackhelm/heat:2024.1-ubuntu_jammy'
ks_user: 'docker.io/openstackhelm/heat:2024.1-ubuntu_jammy'
+ pre_apply_cleanup: 'docker.io/starlingx/stx-vault-manager:master-debian-stable-latest'
local_registry:
active: false
exclude:
@@ -724,6 +725,7 @@ manifests:
configmap_etc: true
deployment_rgw: true
ingress_rgw: true
+ job_pre_apply_cleanup: true
job_bootstrap: false
job_rgw_restart: false
job_ceph_rgw_storage_init: true
diff --git a/gnocchi/templates/job-pre-apply-cleanup.yaml b/gnocchi/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..0e4424da
--- /dev/null
+++ b/gnocchi/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "gnocchi" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/gnocchi/values.yaml b/gnocchi/values.yaml
index bbfd4335..dfab7413 100644
--- a/gnocchi/values.yaml
+++ b/gnocchi/values.yaml
@@ -52,6 +52,7 @@ images:
gnocchi_metricd: quay.io/attcomdev/ubuntu-source-gnocchi-metricd:3.0.3
gnocchi_resources_cleaner: quay.io/attcomdev/ubuntu-source-gnocchi-base:3.0.3
image_repo_sync: docker.io/library/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -639,6 +640,7 @@ manifests:
daemonset_statsd: true
deployment_api: true
ingress_api: true
+ job_pre_apply_cleanup: true
job_bootstrap: true
job_clean: true
job_db_drop: false
diff --git a/helm-toolkit/templates/manifests/_job-pre-apply-cleanup.tpl b/helm-toolkit/templates/manifests/_job-pre-apply-cleanup.tpl
new file mode 100644
index 00000000..84f88bfc
--- /dev/null
+++ b/helm-toolkit/templates/manifests/_job-pre-apply-cleanup.tpl
@@ -0,0 +1,93 @@
+{{/*
+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.
+*/}}
+
+# This function creates a manifest for keystone user management.
+# It can be used in charts dict created similar to the following:
+# {- $ksUserJob := dict "envAll" . "serviceName" "senlin" }
+# { $ksUserJob | include "helm-toolkit.manifests.job_ks_user" }
+
+
+{{- define "helm-toolkit.manifests.job_pre_apply_cleanup" -}}
+{{- $envAll := index . "envAll" -}}
+{{- $serviceName := index . "serviceName" -}}
+
+{{- $serviceNamePretty := $serviceName | replace "_" "-" -}}
+
+{{- $serviceAccountName := printf "%s-%s" $serviceNamePretty "pre-apply-cleanup" }}
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: {{ $serviceAccountName }}
+ namespace: {{ $envAll.Release.Namespace }}
+ annotations:
+ "helm.sh/hook": pre-install
+ "helm.sh/hook-weight": "-8"
+imagePullSecrets:
+ - name: default-registry-key
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: {{ $serviceAccountName }}
+rules:
+- apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - "*"
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: {{ $serviceAccountName }}
+subjects:
+- kind: ServiceAccount
+ name: {{ $serviceAccountName }}
+ namespace: {{ $envAll.Release.Namespace }}
+roleRef:
+ kind: Role
+ name: {{ $serviceAccountName }}
+ apiGroup: rbac.authorization.k8s.io
+---
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: {{ printf "%s-%s" $serviceNamePretty "pre-apply-cleanup" | quote }}
+ annotations:
+ "helm.sh/hook": pre-install,pre-upgrade
+ "helm.sh/hook-weight": "-7"
+spec:
+ ttlSecondsAfterFinished: 200
+ template:
+ metadata:
+ labels:
+ app.starlingx.io/component: {{ if $envAll.Values.labels.isApplication }}{{ ternary "application" "platform" $envAll.Values.labels.isApplication }}{{ else }}platform{{ end }}
+ {{- if $envAll.Values.labels.isApplication }}
+ annotations:
+ configchecksum: {{ toYaml $envAll.Values.labels.isApplication | sha256sum | trunc 63 }}
+ {{- end }}
+ spec:
+ serviceAccountName: {{ $serviceAccountName }}
+ containers:
+ - name: cleanup
+ image: {{ $envAll.Values.images.tags.pre_apply_cleanup }}
+ imagePullPolicy: {{ $envAll.Values.images.pull_policy }}
+ command: ["sh", "-c", "
+ for job in $(kubectl get jobs -n openstack -l 'release_group=osh-openstack-{{ $serviceNamePretty }}' -o jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}'); do
+ kubectl delete job $job -n openstack;
+ done"]
+ restartPolicy: OnFailure
+{{- end }}
\ No newline at end of file
diff --git a/libvirt/templates/job-pre-apply-cleanup.yaml b/libvirt/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..7c44fd2b
--- /dev/null
+++ b/libvirt/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "libvirt" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/libvirt/values.yaml b/libvirt/values.yaml
index 22ff231c..b3a4373b 100644
--- a/libvirt/values.yaml
+++ b/libvirt/values.yaml
@@ -33,6 +33,7 @@ images:
dep_check: quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_focal
image_repo_sync: docker.io/library/docker:17.07.0
kubectl: docker.io/bitnami/kubectl:latest
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -317,6 +318,7 @@ manifests:
configmap_bin: true
configmap_etc: true
daemonset_libvirt: true
+ job_pre_apply_cleanup: true
job_image_repo_sync: true
network_policy: false
role_cert_manager: false
diff --git a/mariadb/templates/job-pre-apply-cleanup.yaml b/mariadb/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..4c2cef3b
--- /dev/null
+++ b/mariadb/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "mariadb" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/mariadb/values.yaml b/mariadb/values.yaml
index 61d2d3e7..d348f587 100644
--- a/mariadb/values.yaml
+++ b/mariadb/values.yaml
@@ -31,6 +31,7 @@ images:
mariadb_backup: quay.io/airshipit/porthole-mysqlclient-utility:latest-ubuntu_focal
ks_user: docker.io/openstackhelm/heat:wallaby-ubuntu_focal
scripted_test: docker.io/openstackhelm/mariadb:ubuntu_focal-20210415
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -710,6 +711,7 @@ manifests:
configmap_services_tcp: true
deployment_error: false
deployment_ingress: false
+ job_pre_apply_cleanup: true
job_image_repo_sync: true
cron_job_mariadb_backup: false
job_ks_user: false
diff --git a/memcached/templates/job-pre-apply-cleanup.yaml b/memcached/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..f2d12578
--- /dev/null
+++ b/memcached/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "memcached" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/memcached/values.yaml b/memcached/values.yaml
index dd2bf3c6..26875d38 100644
--- a/memcached/values.yaml
+++ b/memcached/values.yaml
@@ -123,6 +123,7 @@ images:
memcached: 'docker.io/library/memcached:1.5.5'
prometheus_memcached_exporter: docker.io/prom/memcached-exporter:v0.4.1
image_repo_sync: docker.io/library/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
local_registry:
active: false
exclude:
@@ -138,6 +139,7 @@ labels:
manifests:
configmap_bin: true
deployment: true
+ job_pre_apply_cleanup: true
job_image_repo_sync: true
network_policy: false
service: true
diff --git a/openvswitch/templates/job-pre-apply-cleanup.yaml b/openvswitch/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..3a29b239
--- /dev/null
+++ b/openvswitch/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "openvswitch" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/openvswitch/values.yaml b/openvswitch/values.yaml
index 49006ea9..0e5a2f75 100644
--- a/openvswitch/values.yaml
+++ b/openvswitch/values.yaml
@@ -24,6 +24,7 @@ images:
openvswitch_vswitchd: docker.io/openstackhelm/openvswitch:latest-ubuntu_focal
dep_check: quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_focal
image_repo_sync: docker.io/library/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -206,6 +207,7 @@ manifests:
configmap_bin: true
daemonset: true
daemonset_ovs_vswitchd: true
+ job_pre_apply_cleanup: true
job_image_repo_sync: true
network_policy: false
secret_registry: true
diff --git a/rabbitmq/templates/job-pre-apply-cleanup.yaml b/rabbitmq/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..428d7c01
--- /dev/null
+++ b/rabbitmq/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "rabbitmq" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/rabbitmq/values.yaml b/rabbitmq/values.yaml
index 68a963a1..fbb98414 100644
--- a/rabbitmq/values.yaml
+++ b/rabbitmq/values.yaml
@@ -40,6 +40,7 @@ images:
dep_check: quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_focal
scripted_test: docker.io/library/rabbitmq:3.13.0-management
image_repo_sync: docker.io/library/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -446,6 +447,7 @@ manifests:
configmap_etc: true
config_ipv6: false
ingress_management: true
+ job_pre_apply_cleanup: true
job_cluster_wait: true
job_image_repo_sync: true
monitoring:
--
2.34.1
@@ -1,50 +0,0 @@
From 3e3f00e6f9616cbe285d649966c59a392d553ad6 Mon Sep 17 00:00:00 2001
From: jchialun <johnny.chialung@windriver.com>
Date: Fri, 20 Sep 2024 11:25:24 -0500
Subject: [PATCH] Add Kubernetes name label to helm toolkit template
This change allows the application framework status to correctly
represent the pods statuses by adding the correct label to every pod.
Signed-off-by: Johnny Chia <johnny.chialung@windriver.com>
[ Upversioned openstack-helm-infra base commit to Caracal ]
Signed-off-by: Daniel Caires <DanielMarques.Caires@windriver.com>
---
helm-toolkit/templates/snippets/_kubernetes_metadata_labels.tpl | 1 +
mariadb/templates/deployment-ingress.yaml | 2 --
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/helm-toolkit/templates/snippets/_kubernetes_metadata_labels.tpl b/helm-toolkit/templates/snippets/_kubernetes_metadata_labels.tpl
index 48b53fa1..37482ebc 100644
--- a/helm-toolkit/templates/snippets/_kubernetes_metadata_labels.tpl
+++ b/helm-toolkit/templates/snippets/_kubernetes_metadata_labels.tpl
@@ -40,6 +40,7 @@ return: |
release_group: {{ $envAll.Values.release_group | default $envAll.Release.Name }}
application: {{ $application }}
component: {{ $component }}
+app.kubernetes.io/name: {{ $application }}
{{- if ($envAll.Values.pod).labels }}
{{- if hasKey $envAll.Values.pod.labels $component }}
{{ index $envAll.Values.pod "labels" $component | toYaml }}
diff --git a/mariadb/templates/deployment-ingress.yaml b/mariadb/templates/deployment-ingress.yaml
index cf964061..91f496cb 100644
--- a/mariadb/templates/deployment-ingress.yaml
+++ b/mariadb/templates/deployment-ingress.yaml
@@ -223,7 +223,6 @@ metadata:
labels:
{{ tuple $envAll "mariadb" "ingress" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
app.kubernetes.io/instance: {{ $serviceAccountName }}
- app.kubernetes.io/name: "mariadb"
app.kubernetes.io/component: "ingress"
app.kubernetes.io/managed-by: {{ $envAll.Release.Service }}
{{- if $envAll.Chart.AppVersion }}
@@ -241,7 +240,6 @@ spec:
app.starlingx.io/component: {{ ternary "application" "platform" .Values.labels.isApplication }}
{{ tuple $envAll "mariadb" "ingress" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
app.kubernetes.io/instance: {{ $serviceAccountName }}
- app.kubernetes.io/name: "mariadb"
app.kubernetes.io/component: "ingress"
app.kubernetes.io/managed-by: {{ $envAll.Release.Service }}
{{- if $envAll.Chart.AppVersion }}
--
2.34.1
@@ -1,796 +0,0 @@
From 820f3770b4134e58c59d10eb667bd84229d82e6d Mon Sep 17 00:00:00 2001
From: Daniel Caires <DanielMarques.Caires@windriver.com>
Date: Wed, 12 Mar 2025 07:57:44 -0300
Subject: [PATCH] Bring necessary upstream commits
MariaDB Helm-chart was creating a service that had no clear
definition and had no labels. This patch brings 3 commits
from upstream OSH-I in which they changed the location
where the service is created and added the proper labels.
Commits:
https://opendev.org/openstack/openstack-helm-infra/commit/954e338d17e2dc8394dcd076cceca1e7777c8968
https://opendev.org/openstack/openstack-helm-infra/commit/475a0c4b44b9c815fbbafaf1b1d485c9d2973878
https://opendev.org/openstack/openstack-helm-infra/commit/d27ea2474504653383d005adcbc043b34d62eccd
[ Add tolerations to mariadb-controller pod definition ]
Signed-off-by: Daniel Caires <DanielMarques.Caires@windriver.com>
---
.../templates/snippets/_service_params.tpl | 61 ++++++++
.../templates/bin/_mariadb_controller.py.tpl | 112 ++++++++++++++
mariadb/templates/bin/_start.py.tpl | 143 +-----------------
mariadb/templates/configmap-bin.yaml | 4 +
mariadb/templates/deployment-controller.yaml | 122 +++++++++++++++
mariadb/templates/service-discovery.yaml | 5 +
mariadb/templates/service-master.yaml | 33 ++++
mariadb/templates/service.yaml | 1 +
mariadb/templates/statefulset.yaml | 37 +----
mariadb/values.yaml | 34 ++++-
10 files changed, 379 insertions(+), 173 deletions(-)
create mode 100644 helm-toolkit/templates/snippets/_service_params.tpl
create mode 100644 mariadb/templates/bin/_mariadb_controller.py.tpl
create mode 100644 mariadb/templates/deployment-controller.yaml
create mode 100644 mariadb/templates/service-master.yaml
diff --git a/helm-toolkit/templates/snippets/_service_params.tpl b/helm-toolkit/templates/snippets/_service_params.tpl
new file mode 100644
index 00000000..6233a935
--- /dev/null
+++ b/helm-toolkit/templates/snippets/_service_params.tpl
@@ -0,0 +1,61 @@
+{{/*
+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.
+*/}}
+{{/*
+abstract: |
+ Inserts kubernetes service parameters from values as is.
+values: |
+ network:
+ serviceExample:
+ service:
+ type: loadBalancer
+ loadBalancerIP: 1.1.1.1
+usage: |
+ ---
+ apiVersion: v1
+ kind: Service
+ metadata:
+ name: 'serviceExample'
+ spec:
+ ports:
+ - name: s-example
+ port: 1111
+ {{ .Values.network.serviceExample | include "helm-toolkit.snippets.service_params" | indent 2 }}
+return: |
+ type: loadBalancer
+ loadBalancerIP: 1.1.1.1
+*/}}
+
+{{- define "helm-toolkit.snippets.service_params" }}
+{{- $serviceParams := dict }}
+{{- if hasKey . "service" }}
+{{- $serviceParams = .service }}
+{{- end }}
+{{- if hasKey . "node_port" }}
+{{- if hasKey .node_port "enabled" }}
+{{- if .node_port.enabled }}
+{{- $_ := set $serviceParams "type" "NodePort" }}
+{{- end }}
+{{- end }}
+{{- end }}
+{{- if hasKey . "external_policy_local" }}
+{{- if .external_policy_local }}
+{{- $_ := set $serviceParams "externalTrafficPolicy" "Local" }}
+{{- end }}
+{{- end }}
+{{- if $serviceParams }}
+{{- $serviceParams | toYaml }}
+{{- end }}
+{{- end }}
diff --git a/mariadb/templates/bin/_mariadb_controller.py.tpl b/mariadb/templates/bin/_mariadb_controller.py.tpl
new file mode 100644
index 00000000..faf5195a
--- /dev/null
+++ b/mariadb/templates/bin/_mariadb_controller.py.tpl
@@ -0,0 +1,112 @@
+#!/usr/bin/env python3
+
+"""
+Mariadb controller
+
+The script is responsible for set mariadb_role: primary to first
+active pod in mariadb deployment.
+
+Env variables:
+MARIADB_CONTROLLER_DEBUG: Flag to enable debug when set to 1.
+MARIADB_CONTROLLER_CHECK_PODS_DELAY: The delay between check pod attempts.
+MARIADB_CONTROLLER_PYKUBE_REQUEST_TIMEOUT: The timeout for kubernetes http session
+MARIADB_CONTROLLER_PODS_NAMESPACE: The namespace to look for mariadb pods.
+MARIADB_MASTER_SERVICE_NAME: The name of master service for mariadb.
+
+Changelog:
+0.1.0: Initial varsion
+"""
+
+
+import logging
+import os
+import sys
+import time
+
+import pykube
+
+MARIADB_CONTROLLER_DEBUG = os.getenv("MARIADB_CONTROLLER_DEBUG")
+MARIADB_CONTROLLER_CHECK_PODS_DELAY = int(
+ os.getenv("MARIADB_CONTROLLER_CHECK_PODS_DELAY", 10)
+)
+MARIADB_CONTROLLER_PYKUBE_REQUEST_TIMEOUT = int(
+ os.getenv("MARIADB_CONTROLLER_PYKUBE_REQUEST_TIMEOUT", 60)
+)
+MARIADB_CONTROLLER_PODS_NAMESPACE = os.getenv(
+ "MARIADB_CONTROLLER_PODS_NAMESPACE", "openstack"
+)
+MARIADB_MASTER_SERVICE_NAME = os.getenv(
+ "MARIADB_MASTER_SERVICE_NAME", "mariadb"
+)
+
+log_level = "DEBUG" if MARIADB_CONTROLLER_DEBUG else "INFO"
+logging.basicConfig(
+ stream=sys.stdout,
+ format="%(asctime)s %(levelname)s %(name)s %(message)s",
+ datefmt="%Y-%m-%d %H:%M:%S",
+)
+LOG = logging.getLogger("mariadb-controller")
+
+LOG.setLevel(log_level)
+
+
+def login():
+ config = pykube.KubeConfig.from_env()
+ client = pykube.HTTPClient(
+ config=config, timeout=MARIADB_CONTROLLER_PYKUBE_REQUEST_TIMEOUT
+ )
+ LOG.info(f"Created k8s api client from context {config.current_context}")
+ return client
+
+
+api = login()
+
+
+def resource_list(klass, selector, namespace=None):
+ return klass.objects(api).filter(namespace=namespace, selector=selector)
+
+
+def get_mariadb_pods():
+ sorted_pods = sorted(
+ resource_list(
+ pykube.Pod,
+ {"application": "mariadb", "component": "server"},
+ MARIADB_CONTROLLER_PODS_NAMESPACE,
+ ).iterator(),
+ key=lambda i: i.name,
+ )
+ return sorted_pods
+
+
+def get_mariadb_master_service(namespace):
+ return pykube.Service.objects(api).filter(namespace=namespace).get(name=MARIADB_MASTER_SERVICE_NAME)
+
+
+def link_master_service(pod):
+ svc = get_mariadb_master_service(MARIADB_CONTROLLER_PODS_NAMESPACE)
+ svc.reload()
+ if svc.obj['spec']['selector'].get('statefulset.kubernetes.io/pod-name') == pod.name:
+ LOG.debug(f"Nothing to do, master service points to {pod.name}")
+ else:
+ svc.obj['spec']['selector']['statefulset.kubernetes.io/pod-name'] = pod.name
+ svc.update()
+ LOG.info(f"Link master service with {pod.name}")
+
+
+def is_ready(pod):
+ if pod.ready and "deletionTimestamp" not in pod.metadata:
+ return True
+
+
+def main():
+ while True:
+ for pod in get_mariadb_pods():
+ pod.reload()
+ if is_ready(pod):
+ link_master_service(pod)
+ break
+ LOG.debug(f"Sleeping for {MARIADB_CONTROLLER_CHECK_PODS_DELAY}")
+ time.sleep(MARIADB_CONTROLLER_CHECK_PODS_DELAY)
+
+
+main()
diff --git a/mariadb/templates/bin/_start.py.tpl b/mariadb/templates/bin/_start.py.tpl
index aae1294c..edf166ed 100644
--- a/mariadb/templates/bin/_start.py.tpl
+++ b/mariadb/templates/bin/_start.py.tpl
@@ -80,10 +80,6 @@ if check_env_var("STATE_CONFIGMAP"):
state_configmap_name = os.environ['STATE_CONFIGMAP']
logger.info("Will use \"{0}\" configmap for cluster state info".format(
state_configmap_name))
-if check_env_var("PRIMARY_SERVICE_NAME"):
- primary_service_name = os.environ['PRIMARY_SERVICE_NAME']
- logger.info("Will use \"{0}\" service as primary".format(
- primary_service_name))
if check_env_var("POD_NAMESPACE"):
pod_namespace = os.environ['POD_NAMESPACE']
if check_env_var("DIRECT_SVC_NAME"):
@@ -96,8 +92,6 @@ if check_env_var("DISCOVERY_DOMAIN"):
discovery_domain = os.environ['DISCOVERY_DOMAIN']
if check_env_var("WSREP_PORT"):
wsrep_port = os.environ['WSREP_PORT']
-if check_env_var("MARIADB_PORT"):
- mariadb_port = int(os.environ['MARIADB_PORT'])
if check_env_var("MYSQL_DBADMIN_USERNAME"):
mysql_dbadmin_username = os.environ['MYSQL_DBADMIN_USERNAME']
if check_env_var("MYSQL_DBADMIN_PASSWORD"):
@@ -121,8 +115,7 @@ if mysql_dbadmin_username == mysql_dbsst_username:
sys.exit(1)
# Set some variables for tuneables
-if check_env_var("CLUSTER_LEADER_TTL"):
- cluster_leader_ttl = int(os.environ['CLUSTER_LEADER_TTL'])
+cluster_leader_ttl = int(os.environ['CLUSTER_LEADER_TTL'])
state_configmap_update_period = 10
default_sleep = 20
@@ -145,25 +138,6 @@ def ensure_state_configmap(pod_namespace, configmap_name, configmap_body):
return False
-def ensure_primary_service(pod_namespace, service_name, service_body):
- """Ensure the primary service exists.
-
- Keyword arguments:
- pod_namespace -- the namespace to house the service
- service_name -- the service name
- service_body -- the service body
- """
- try:
- k8s_api_instance.read_namespaced_service(
- name=service_name, namespace=pod_namespace)
- return True
- except:
- k8s_api_instance.create_namespaced_service(
- namespace=pod_namespace, body=service_body)
-
- return False
-
-
def run_cmd_with_logging(popenargs,
logger,
@@ -414,60 +388,6 @@ def set_configmap_data(key, value):
return safe_update_configmap(
configmap_dict=configmap_dict, configmap_patch=configmap_patch)
-def safe_update_service(service_dict, service_patch):
- """Update a service with locking.
-
- Keyword arguments:
- service_dict -- a dict representing the service to be patched
- service_patch -- a dict containign the patch
- """
- logger.debug("Safe Patching service")
- # NOTE(portdirect): Explictly set the resource version we are patching to
- # ensure nothing else has modified the service since we read it.
- service_patch['metadata']['resourceVersion'] = service_dict[
- 'metadata']['resource_version']
-
- # Retry up to 8 times in case of 409 only. Each retry has a ~1 second
- # sleep in between so do not want to exceed the roughly 10 second
- # write interval per cm update.
- for i in range(8):
- try:
- api_response = k8s_api_instance.patch_namespaced_service(
- name=primary_service_name,
- namespace=pod_namespace,
- body=service_patch)
- return True
- except kubernetes.client.rest.ApiException as error:
- if error.status == 409:
- # This status code indicates a collision trying to write to the
- # service while another instance is also trying the same.
- logger.warning("Collision writing service: {0}".format(error))
- # This often happens when the replicas were started at the same
- # time, and tends to be persistent. Sleep with some random
- # jitter value briefly to break the synchronization.
- naptime = secretsGen.uniform(0.8,1.2)
- time.sleep(naptime)
- else:
- logger.error("Failed to set service: {0}".format(error))
- return error
- logger.info("Retry writing service attempt={0} sleep={1}".format(
- i+1, naptime))
- return True
-
-def set_primary_service_spec(key, value):
- """Update a service's endpoint via patching.
-
- Keyword arguments:
- key -- the key to be patched
- value -- the value to give the key
- """
- logger.debug("Setting service spec.selector key={0} to value={1}".format(key, value))
- service_dict = k8s_api_instance.read_namespaced_service(
- name=primary_service_name, namespace=pod_namespace).to_dict()
- service_patch = {'spec': {'selector': {}}, 'metadata': {}}
- service_patch['spec']['selector'][key] = value
- return safe_update_service(
- service_dict=service_dict, service_patch=service_patch)
def get_configmap_value(key, type='data'):
"""Get a configmap's key's value.
@@ -549,35 +469,6 @@ def get_cluster_state():
pod_namespace=pod_namespace,
configmap_name=state_configmap_name,
configmap_body=initial_configmap_body)
-
-
- initial_primary_service_body = {
- "apiVersion": "v1",
- "kind": "Service",
- "metadata": {
- "name": primary_service_name,
- },
- "spec": {
- "ports": [
- {
- "name": "mysql",
- "port": mariadb_port
- }
- ],
- "selector": {
- "application": "mariadb",
- "component": "server",
- "statefulset.kubernetes.io/pod-name": leader
- }
- }
- }
- if ensure_primary_service(
- pod_namespace=pod_namespace,
- service_name=primary_service_name,
- service_body=initial_primary_service_body):
- logger.info("Service {0} already exists".format(primary_service_name))
- else:
- logger.info("Service {0} has been successfully created".format(primary_service_name))
return state
@@ -589,38 +480,6 @@ def declare_myself_cluster_leader():
leader_expiry = "{0}Z".format(leader_expiry_raw.isoformat("T"))
set_configmap_annotation(
key='openstackhelm.openstack.org/leader.node', value=local_hostname)
- logger.info("Setting primary_service's spec.selector to {0}".format(local_hostname))
- try:
- set_primary_service_spec(
- key='statefulset.kubernetes.io/pod-name', value=local_hostname)
- except:
- initial_primary_service_body = {
- "apiVersion": "v1",
- "kind": "Service",
- "metadata": {
- "name": primary_service_name,
- },
- "spec": {
- "ports": [
- {
- "name": "mysql",
- "port": mariadb_port
- }
- ],
- "selector": {
- "application": "mariadb",
- "component": "server",
- "statefulset.kubernetes.io/pod-name": local_hostname
- }
- }
- }
- if ensure_primary_service(
- pod_namespace=pod_namespace,
- service_name=primary_service_name,
- service_body=initial_primary_service_body):
- logger.info("Service {0} already exists".format(primary_service_name))
- else:
- logger.info("Service {0} has been successfully created".format(primary_service_name))
set_configmap_annotation(
key='openstackhelm.openstack.org/leader.expiry', value=leader_expiry)
diff --git a/mariadb/templates/configmap-bin.yaml b/mariadb/templates/configmap-bin.yaml
index cc92eb69..7b6e18ab 100644
--- a/mariadb/templates/configmap-bin.yaml
+++ b/mariadb/templates/configmap-bin.yaml
@@ -53,4 +53,8 @@ data:
ks-user.sh: |
{{ include "helm-toolkit.scripts.keystone_user" . | indent 4 }}
{{- end }}
+{{- if .Values.manifests.deployment_controller }}
+ mariadb_controller.py: |
+{{ tuple "bin/_mariadb_controller.py.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
{{- end }}
diff --git a/mariadb/templates/deployment-controller.yaml b/mariadb/templates/deployment-controller.yaml
new file mode 100644
index 00000000..39ec8627
--- /dev/null
+++ b/mariadb/templates/deployment-controller.yaml
@@ -0,0 +1,122 @@
+{{/*
+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_controller }}
+{{- if .Values.manifests.deployment_ingress }}
+{{- fail ".Values.manifests.deployment_ingress and .Values.manifests.deployment_controlle are mutually exclusive" }}
+{{- end }}
+{{- $envAll := . }}
+
+{{- $serviceAccountName := "mariadb-controller" }}
+{{ tuple $envAll "controller" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: {{ $envAll.Release.Name }}-{{ $serviceAccountName }}-pod
+ namespace: {{ $envAll.Release.Namespace }}
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - pods
+ verbs:
+ - get
+ - list
+ - apiGroups:
+ - ""
+ resources:
+ - services
+ verbs:
+ - update
+ - patch
+ - get
+ - list
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: {{ $envAll.Release.Name }}-{{ $serviceAccountName }}-pod
+ namespace: {{ $envAll.Release.Namespace }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ $envAll.Release.Name }}-{{ $serviceAccountName }}-pod
+subjects:
+ - kind: ServiceAccount
+ name: {{ $serviceAccountName }}
+ namespace: {{ $envAll.Release.Namespace }}
+---
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: mariadb-controller
+ annotations:
+ {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
+ labels:
+{{ tuple $envAll "mariadb" "controller" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
+spec:
+ replicas: {{ .Values.pod.replicas.controller }}
+ selector:
+ matchLabels:
+{{ tuple $envAll "mariadb" "controller" | 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 "mariadb" "controller" | 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" }}
+ spec:
+ serviceAccountName: {{ $serviceAccountName }}
+{{ dict "envAll" $envAll "application" "controller" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
+ affinity:
+{{ tuple $envAll "mariadb" "controller" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
+{{ if $envAll.Values.pod.tolerations.mariadb.enabled }}
+{{ tuple $envAll "mariadb" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
+{{ end }}
+ nodeSelector:
+ {{ .Values.labels.controller.node_selector_key }}: {{ .Values.labels.controller.node_selector_value }}
+ initContainers:
+{{ tuple $envAll "controller" list | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
+ containers:
+ - name: controller
+{{ tuple $envAll "mariadb_controller" | include "helm-toolkit.snippets.image" | indent 10 }}
+{{ dict "envAll" $envAll "application" "controller" "container" "controller" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
+{{ tuple $envAll $envAll.Values.pod.resources.controller | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
+ command:
+ - /tmp/mariadb_controller.py
+ env:
+{{ include "helm-toolkit.utils.to_k8s_env_vars" .Values.pod.env.mariadb_controller | indent 12 }}
+ - name: MARIADB_CONTROLLER_PODS_NAMESPACE
+ value: {{ $envAll.Release.Namespace }}
+ - name: MARIADB_MASTER_SERVICE_NAME
+ value: {{ tuple "oslo_db" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
+ volumeMounts:
+ - name: pod-tmp
+ mountPath: /tmp
+ - mountPath: /tmp/mariadb_controller.py
+ name: mariadb-bin
+ readOnly: true
+ subPath: mariadb_controller.py
+ volumes:
+ - name: pod-tmp
+ emptyDir: {}
+ - name: mariadb-bin
+ configMap:
+ name: mariadb-bin
+ defaultMode: 365
+{{- end }}
diff --git a/mariadb/templates/service-discovery.yaml b/mariadb/templates/service-discovery.yaml
index dec979ef..378878c0 100644
--- a/mariadb/templates/service-discovery.yaml
+++ b/mariadb/templates/service-discovery.yaml
@@ -25,8 +25,13 @@ spec:
port: {{ tuple "oslo_db" "direct" "mysql" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
- name: wsrep
port: {{ tuple "oslo_db" "direct" "wsrep" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+ - name: ist
+ port: {{ tuple "oslo_db" "direct" "ist" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+ - name: sst
+ port: {{ tuple "oslo_db" "direct" "sst" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
clusterIP: None
publishNotReadyAddresses: true
selector:
{{ tuple $envAll "mariadb" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
+{{ .Values.network.mariadb_discovery | include "helm-toolkit.snippets.service_params" | indent 2 }}
{{- end }}
diff --git a/mariadb/templates/service-master.yaml b/mariadb/templates/service-master.yaml
new file mode 100644
index 00000000..1472e6a3
--- /dev/null
+++ b/mariadb/templates/service-master.yaml
@@ -0,0 +1,33 @@
+{{/*
+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.service_master }}
+{{- if .Values.manifests.service_ingress }}
+{{- fail ".Values.manifests.service_ingress and .Values.manifests.service_master are mutually exclusive" }}
+{{- end }}
+
+{{- $envAll := . }}
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ tuple "oslo_db" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
+spec:
+ ports:
+ - name: mysql
+ port: {{ tuple "oslo_db" "direct" "mysql" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+ selector:
+{{ tuple $envAll "mariadb" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
+{{ .Values.network.mariadb_master | include "helm-toolkit.snippets.service_params" | indent 2 }}
+{{- end }}
diff --git a/mariadb/templates/service.yaml b/mariadb/templates/service.yaml
index 3f7a7190..e68cbc49 100644
--- a/mariadb/templates/service.yaml
+++ b/mariadb/templates/service.yaml
@@ -25,4 +25,5 @@ spec:
port: {{ tuple "oslo_db" "direct" "mysql" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
selector:
{{ tuple $envAll "mariadb" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
+{{ .Values.network.mariadb | include "helm-toolkit.snippets.service_params" | indent 2 }}
{{- end }}
diff --git a/mariadb/templates/statefulset.yaml b/mariadb/templates/statefulset.yaml
index b8d3f193..b35d2d01 100644
--- a/mariadb/templates/statefulset.yaml
+++ b/mariadb/templates/statefulset.yaml
@@ -47,29 +47,6 @@ rules:
- configmaps
verbs:
- create
- - apiGroups:
- - ""
- resources:
- - services
- verbs:
- - create
- - apiGroups:
- - ""
- resourceNames:
- - {{ tuple "oslo_db" "primary" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
- resources:
- - services
- verbs:
- - get
- - patch
- - apiGroups:
- - ""
- resourceNames:
- - {{ tuple "oslo_db" "primary" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
- resources:
- - endpoints
- verbs:
- - get
- apiGroups:
- ""
resourceNames:
@@ -190,12 +167,6 @@ spec:
value: {{ tuple "oslo_db" "direct" "wsrep" . | include "helm-toolkit.endpoints.endpoint_port_lookup" | quote }}
- name: STATE_CONFIGMAP
value: {{ printf "%s-%s" .deployment_name "mariadb-state" | quote }}
- - name: PRIMARY_SERVICE_NAME
- value: {{ tuple "oslo_db" "primary" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
- - name: CLUSTER_LEADER_TTL
- value: {{ .Values.conf.galera.cluster_leader_ttl | quote }}
- - name: MARIADB_PORT
- value: {{ tuple "oslo_db" "direct" "mysql" . | include "helm-toolkit.endpoints.endpoint_port_lookup" | quote }}
- name: MYSQL_DBADMIN_USERNAME
value: {{ .Values.endpoints.oslo_db.auth.admin.username }}
- name: MYSQL_DBADMIN_PASSWORD
@@ -221,6 +192,8 @@ spec:
{{- end }}
- name: MYSQL_HISTFILE
value: {{ .Values.conf.database.mysql_histfile }}
+ - name: CLUSTER_LEADER_TTL
+ value: {{ .Values.conf.galera.cluster_leader_ttl | quote }}
ports:
- name: mysql
protocol: TCP
@@ -228,6 +201,12 @@ spec:
- name: wsrep
protocol: TCP
containerPort: {{ tuple "oslo_db" "direct" "wsrep" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+ - name: ist
+ protocol: TCP
+ containerPort: {{ tuple "oslo_db" "direct" "ist" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+ - name: sst
+ protocol: TCP
+ containerPort: {{ tuple "oslo_db" "direct" "sst" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
command:
- /tmp/start.py
lifecycle:
diff --git a/mariadb/values.yaml b/mariadb/values.yaml
index d348f587..4ec66f25 100644
--- a/mariadb/values.yaml
+++ b/mariadb/values.yaml
@@ -32,6 +32,7 @@ images:
ks_user: docker.io/openstackhelm/heat:wallaby-ubuntu_focal
scripted_test: docker.io/openstackhelm/mariadb:ubuntu_focal-20210415
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
+ mariadb_controller: docker.io/openstackhelm/mariadb:latest-ubuntu_focal
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -59,8 +60,16 @@ labels:
test:
node_selector_key: openstack-control-plane
node_selector_value: enabled
+ controller:
+ node_selector_key: openstack-control-plane
+ node_selector_value: enabled
pod:
+ env:
+ mariadb_controller:
+ MARIADB_CONTROLLER_DEBUG: 0
+ MARIADB_CONTROLLER_CHECK_PODS_DELAY: 10
+ MARIADB_CONTROLLER_PYKUBE_REQUEST_TIMEOUT: 60
probes:
server:
mariadb:
@@ -146,6 +155,13 @@ pod:
test:
runAsUser: 999
readOnlyRootFilesystem: true
+ controller:
+ pod:
+ runAsUser: 65534
+ container:
+ controller:
+ allowPrivilegeEscalation: false
+ readOnlyRootFilesystem: true
affinity:
anti:
type:
@@ -169,6 +185,7 @@ pod:
ingress: 2
error_page: 1
prometheus_mysql_exporter: 1
+ controller: 1
lifecycle:
upgrades:
deployments:
@@ -292,7 +309,8 @@ dependencies:
services:
- endpoint: internal
service: oslo_db
-
+ controller:
+ services: null
volume:
# this value is used for single pod deployments of mariadb to prevent losing all data
# if the pod is restarted
@@ -621,7 +639,6 @@ endpoints:
direct: mariadb-server
discovery: mariadb-discovery
error_pages: mariadb-ingress-error-pages
- primary: mariadb
host_fqdn_override:
default: null
path: null
@@ -631,6 +648,10 @@ endpoints:
default: 3306
wsrep:
default: 4567
+ ist:
+ default: 4568
+ sst:
+ default: 4444
kube_dns:
namespace: kube-system
name: kubernetes-dns
@@ -686,6 +707,13 @@ endpoints:
default: 80
internal: 5000
+network:
+ mariadb: {}
+ mariadb_discovery: {}
+ mariadb_ingress: {}
+ mariadb_ingress_error_pages: {}
+ mariadb_master: {}
+
network_policy:
mariadb:
ingress:
@@ -739,4 +767,6 @@ manifests:
service: true
statefulset: true
config_ipv6: false
+ deployment_controller: true
+ service_master: true
...
--
2.34.1
@@ -1,162 +0,0 @@
From 809afdbc5bada6acbe0e16fcd650b0fed8d4824e Mon Sep 17 00:00:00 2001
From: Daniel Caires <DanielMarques.Caires@windriver.com>
Date: Fri, 26 Sep 2025 07:07:05 -0300
Subject: [PATCH] Update libvirt cgroup controllers initialization
The libvirt cgroup initialization in the caracal version
uses a hard-coded list of controllers, that are set
in the libvirt bash file. This patch updates the .sh
to it's latest version [1], where it compares a list of
controllers set in the values file with the controllers
available in the host, and use that list to initialize
the controllers in the libvirt process. This patch also
removes a hugepage that existed in the bash file, as
it was removed from the upstream repo as well [2].
Commit's SHA that added the change in this patch, on the
upstream repository:
[1] - https://opendev.org/openstack/openstack-helm/commit/3903f54d0c1701f86f92da9023b67b7b453c4760
[2] - https://opendev.org/openstack/openstack-helm/commit/ea3c04a7d9e39d63402751353e00d21762d988e5
Signed-off-by: Daniel Caires <DanielMarques.Caires@windriver.com>
---
libvirt/templates/bin/_libvirt.sh.tpl | 76 +++++----------------------
libvirt/values.yaml | 14 +++++
2 files changed, 26 insertions(+), 64 deletions(-)
diff --git a/libvirt/templates/bin/_libvirt.sh.tpl b/libvirt/templates/bin/_libvirt.sh.tpl
index d16cdca3..af1b4f5e 100644
--- a/libvirt/templates/bin/_libvirt.sh.tpl
+++ b/libvirt/templates/bin/_libvirt.sh.tpl
@@ -24,13 +24,6 @@ if [ -f /tmp/vnc.crt ]; then
mv /tmp/vnc-ca.crt /etc/pki/libvirt-vnc/ca-cert.pem
fi
-# TODO: We disable cgroup functionality for cgroup v2, we should fix this in the future
-if $(stat -fc %T /sys/fs/cgroup/ | grep -q cgroup2fs); then
- CGROUP_VERSION=v2
-else
- CGROUP_VERSION=v1
-fi
-
if [ -n "$(cat /proc/*/comm 2>/dev/null | grep -w libvirtd)" ]; then
set +x
for proc in $(ls /proc/*/comm 2>/dev/null); do
@@ -55,16 +48,14 @@ if [ "$(cat /etc/os-release | grep -w NAME= | grep -w CentOS)" ]; then
fi
fi
-if [ $CGROUP_VERSION != "v2" ]; then
- #Setup Cgroups to use when breaking out of Kubernetes defined groups
- CGROUPS=""
- for CGROUP in cpu rdma hugetlb; do
- if [ -d /sys/fs/cgroup/${CGROUP} ]; then
- CGROUPS+="${CGROUP},"
- fi
- done
- cgcreate -g ${CGROUPS%,}:/osh-libvirt
-fi
+#Setup Cgroups to use when breaking out of Kubernetes defined groups
+CGROUPS=""
+for CGROUP in {{ .Values.conf.kubernetes.cgroup_controllers | include "helm-toolkit.utils.joinListWithSpace" }}; do
+ if [ -d /sys/fs/cgroup/${CGROUP} ] || grep -w $CGROUP /sys/fs/cgroup/cgroup.controllers; then
+ CGROUPS+="${CGROUP},"
+ fi
+done
+cgcreate -g ${CGROUPS%,}:/osh-libvirt
# We assume that if hugepage count > 0, then hugepages should be exposed to libvirt/qemu
hp_count="$(cat /proc/meminfo | grep HugePages_Total | tr -cd '[:digit:]')"
@@ -86,50 +77,11 @@ if [ 0"$hp_count" -gt 0 ]; then
echo "ERROR: Hugepages configured in kernel, but libvirtd container cannot access /dev/hugepages"
exit 1
fi
-
- if [ $CGROUP_VERSION != "v2" ]; then
- # Kubernetes 1.10.x introduced cgroup changes that caused the container's
- # hugepage byte limit quota to zero out. This workaround sets that pod limit
- # back to the total number of hugepage bytes available to the baremetal host.
- if [ -d /sys/fs/cgroup/hugetlb ]; then
- limits="$(ls /sys/fs/cgroup/hugetlb/{{ .Values.conf.kubernetes.cgroup }}/hugetlb.*.limit_in_bytes)" || \
- (echo "ERROR: Failed to locate any hugetable limits. Did you set the correct cgroup in your values used for this chart?"
- exit 1)
- for limit in $limits; do
- target="/sys/fs/cgroup/hugetlb/$(dirname $(awk -F: '($2~/hugetlb/){print $3}' /proc/self/cgroup))/$(basename $limit)"
- # Ensure the write target for the hugepage limit for the pod exists
- if [ ! -f "$target" ]; then
- echo "ERROR: Could not find write target for hugepage limit: $target"
- fi
-
- # Write hugetable limit for pod
- echo "$(cat $limit)" > "$target"
- done
- fi
-
- # Determine OS default hugepage size to use for the hugepage write test
- default_hp_kb="$(cat /proc/meminfo | grep Hugepagesize | tr -cd '[:digit:]')"
-
- # Attempt to write to the hugepage mount to ensure it is operational, but only
- # if we have at least 1 free page.
- num_free_pages="$(cat /sys/kernel/mm/hugepages/hugepages-${default_hp_kb}kB/free_hugepages | tr -cd '[:digit:]')"
- echo "INFO: '$num_free_pages' free hugepages of size ${default_hp_kb}kB"
- if [ 0"$num_free_pages" -gt 0 ]; then
- (fallocate -o0 -l "$default_hp_kb" /dev/hugepages/foo && rm /dev/hugepages/foo) || \
- (echo "ERROR: fallocate failed test at /dev/hugepages with size ${default_hp_kb}kB"
- rm /dev/hugepages/foo
- exit 1)
- fi
- fi
fi
if [ -n "${LIBVIRT_CEPH_CINDER_SECRET_UUID}" ] || [ -n "${LIBVIRT_EXTERNAL_CEPH_CINDER_SECRET_UUID}" ] ; then
- if [ $CGROUP_VERSION != "v2" ]; then
- #NOTE(portdirect): run libvirtd as a transient unit on the host with the osh-libvirt cgroups applied.
- cgexec -g ${CGROUPS%,}:/osh-libvirt systemd-run --scope --slice=system libvirtd --listen &
- else
- systemd-run --scope --slice=system libvirtd --listen &
- fi
+
+ cgexec -g ${CGROUPS%,}:/osh-libvirt systemd-run --scope --slice=system libvirtd --listen &
tmpsecret=$(mktemp --suffix .xml)
if [ -n "${LIBVIRT_EXTERNAL_CEPH_CINDER_SECRET_UUID}" ] ; then
@@ -205,9 +157,5 @@ EOF
fi
-if [ $CGROUP_VERSION != "v2" ]; then
- #NOTE(portdirect): run libvirtd as a transient unit on the host with the osh-libvirt cgroups applied.
- cgexec -g ${CGROUPS%,}:/osh-libvirt systemd-run --scope --slice=system libvirtd --listen
-else
- systemd-run --scope --slice=system libvirtd --listen
-fi
+# NOTE(vsaienko): changing CGROUP is required as restart of the pod will cause domains restarts
+cgexec -g ${CGROUPS%,}:/osh-libvirt systemd-run --scope --slice=system libvirtd --listen
diff --git a/libvirt/values.yaml b/libvirt/values.yaml
index b3a4373b..7f41ae60 100644
--- a/libvirt/values.yaml
+++ b/libvirt/values.yaml
@@ -125,6 +125,20 @@ conf:
group: "kvm"
kubernetes:
cgroup: "kubepods.slice"
+ # List of cgroup controller we want to use when breaking out of
+ # Kubernetes defined groups
+ cgroup_controllers:
+ - blkio
+ - cpu
+ - devices
+ - freezer
+ - hugetlb
+ - memory
+ - net_cls
+ - perf_event
+ - rdma
+ - misc
+ - pids
vencrypt:
# Issuer to use for the vencrypt certs.
issuer:
--
2.34.1
@@ -1,25 +0,0 @@
0001-Add-imagePullSecrets-in-service-account.patch
0002-Partial-revert-of-31e3469d28858d7b5eb6355e88b6f49fd6.patch
0003-Fix-pod-restarts-on-all-workers-when-worker-added.patch
0004-Add-io_thread_pool-for-rabbitmq.patch
0005-Enable-override-of-mariadb-server-probe-parameters.patch
0006-Add-mariadb-database-config-override-to-support-ipv6.patch
0007-Allow-set-public-endpoint-url-for-all-openstack-types.patch
0008-Add-GaleraDB-Secure-Replica-Traffic.patch
0009-Fix-tls-in-openstack-helm-infra.patch
0010-Remove-mariadb-tls.patch
0011-Remove-rabbitmq-tls.patch
0012-Update-openstack-Ingress-for-networking-api-v1.patch
0013-Update-libvirt-configuration-script-for-Debian.patch
0014-Add-app.starlingx.io-component-label-to-pods.patch
0015-Add-pre-apply-cleanup-Job-to-STX-O-Helm-charts.patch
0016-Add-Kubernetes-name-label-to-helm-toolkit-template.patch
0017-Add-support-for-multiple-hosts-in-a-daemonset.patch
0018-Fix-upversion-breaking-changes.patch
0019-removed-section-to-add-default-daemonset-to-global-l.patch
0020-Bring-necessary-upstream-commits.patch
0021-Add-custom-pod-annotations-to-libvirt.patch
0022-Update-ipFamilyPolicy-to-support-DualStack.patch
0023-Update-libvirt-cgroup-controllers-initiation.patch
0024-Add-cluster-host-ip-env-var-to-libvirt.patch
0025-Add-volume-storage-class-priorities.patch
@@ -1,29 +0,0 @@
#!/usr/bin/make -f
export DH_VERBOSE = 1
export ROOT = debian/tmp
export HELM_FOLDER = $(ROOT)/usr/lib/helm
%:
dh $@
override_dh_auto_build:
# Create the chart TGZ files.
make helm-toolkit
make gnocchi
make libvirt
make mariadb
make memcached
make openvswitch
make rabbitmq
make ceph-rgw
make prometheus-openstack-exporter
override_dh_auto_install:
# Install the chart tar files.
install -d -m 755 $(HELM_FOLDER)
install -p -D -m 755 *.tgz $(HELM_FOLDER)
override_dh_auto_test:
override_dh_usrlocal:
@@ -1,16 +0,0 @@
---
debname: openstack-helm-infra
debver: 1.1-0
dl_path:
name: openstack-helm-infra-05f2f45971abcf483189358d663e2b46c3fc2fe8.tar.gz
url: https://github.com/openstack/openstack-helm-infra/archive/05f2f45971abcf483189358d663e2b46c3fc2fe8.tar.gz
md5sum: 7750b4bcf5bf77ee3285cb3325a2844f
sha256sum: 27cc39582e2c78126ded05e5de43359012868be32d226cdf53b43ee2813f5d16
src_files:
- files/repositories.yaml
revision:
dist: $STX_DIST
PKG_GITREVCOUNT: true
GITREVCOUNT:
BASE_SRCREV: fbf8dd7772c43978d1b5a79c1358d64adf857c9e
SRC_DIR: ${MY_REPO}/stx/openstack-armada-app/openstack-helm-infra/files
@@ -1,12 +0,0 @@
---
apiVersion: v1
generated: 2019-01-02T15:19:36.215111369-06:00
repositories:
- caFile: ""
cache: /builddir/.helm/repository/cache/local-index.yaml
certFile: ""
keyFile: ""
name: local
password: ""
url: http://127.0.0.1:8879/charts
username: ""
@@ -1,11 +0,0 @@
openstack-helm (1.1-0) unstable; urgency=medium
* Upversion to Caracal release.
-- Daniel Caires <DanielMarques.Caires@windriver.com> Wed, 29 Jan 2025 15:31:20 +0000
openstack-helm (1.0-1) unstable; urgency=medium
* Initial release.
-- Tracey Bogue <tracey.bogue@windriver.com> Mon, 1 Nov 2021 12:22:42 +0000
-19
View File
@@ -1,19 +0,0 @@
Source: openstack-helm
Section: libs
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
chartmuseum,
helm,
openstack-helm-infra,
procps
Standards-Version: 4.5.1
Homepage: https://www.starlingx.io
Package: openstack-helm
Section: libs
Architecture: all
Depends: ${misc:Depends}, openstack-helm-infra
Description: StarlingX Openstack Helm
This package contains a patched version of the openstack-helm
repo.
@@ -1,41 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: openstack-helm
Source: https://opendev.org/starlingx/openstack-armada-app/
Files: *
Copyright: (c) 2013-2025 Wind River Systems, Inc
License: Apache-2
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
.
https://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.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2021-2025 Wind River Systems, Inc
License: Apache-2
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
.
https://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.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
@@ -1 +0,0 @@
usr/lib/helm/*
@@ -1,73 +0,0 @@
From e3cbbd16118349eb67b13800af1904bda4dbdb35 Mon Sep 17 00:00:00 2001
From: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Date: Wed, 21 Sep 2022 16:48:54 -0300
Subject: [PATCH] Fixing cinder helm release hooks weights (helmv3)
The relation of dependency for cinder release resources is not working
with helmv3 since several jobs have post-install hooks and are
dependencies of other jobs and deployments that have no hooks.
The jobs/deployments without hooks are deployed during an installation
phase that is never complete since the dependency jobs are hooked to be
deployed on post-install phase.
This change includes helm-hooks for the boostrap job and the api,
scheduler and volume deployments. The weights will define the order each
one will be deployed.
Signed-off-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Change-Id: I74dd271d065a7b4668845accae7476d5cbd7d363
---
cinder/templates/deployment-api.yaml | 4 ++++
cinder/templates/deployment-scheduler.yaml | 4 ++++
cinder/templates/deployment-volume.yaml | 4 ++++
3 files changed, 12 insertions(+)
diff --git a/cinder/templates/deployment-api.yaml b/cinder/templates/deployment-api.yaml
index 59d8a53c..e5ba5137 100644
--- a/cinder/templates/deployment-api.yaml
+++ b/cinder/templates/deployment-api.yaml
@@ -27,6 +27,10 @@ metadata:
name: cinder-api
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
+{{- if .Values.helm3_hook }}
+ helm.sh/hook: post-install,post-upgrade
+ helm.sh/hook-weight: "1"
+{{- end }}
labels:
{{ tuple $envAll "cinder" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
spec:
diff --git a/cinder/templates/deployment-scheduler.yaml b/cinder/templates/deployment-scheduler.yaml
index 17f379e3..9a3d4764 100644
--- a/cinder/templates/deployment-scheduler.yaml
+++ b/cinder/templates/deployment-scheduler.yaml
@@ -27,6 +27,10 @@ metadata:
name: cinder-scheduler
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
+{{- if .Values.helm3_hook }}
+ helm.sh/hook: post-install,post-upgrade
+ helm.sh/hook-weight: "2"
+{{- end }}
labels:
{{ tuple $envAll "cinder" "scheduler" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
spec:
diff --git a/cinder/templates/deployment-volume.yaml b/cinder/templates/deployment-volume.yaml
index 9b06e892..e1295a55 100755
--- a/cinder/templates/deployment-volume.yaml
+++ b/cinder/templates/deployment-volume.yaml
@@ -29,6 +29,10 @@ metadata:
name: cinder-volume
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
+{{- if .Values.helm3_hook }}
+ helm.sh/hook: post-install,post-upgrade
+ helm.sh/hook-weight: "2"
+{{- end }}
labels:
{{ tuple $envAll "cinder" "volume" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
spec:
--
2.25.1
@@ -1,57 +0,0 @@
From 63ffa8ad9c1e212383190aa4a21bd5999a233b12 Mon Sep 17 00:00:00 2001
From: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Date: Wed, 21 Sep 2022 16:43:01 -0300
Subject: [PATCH] Fixing nova helm release hooks and weights
The relation of dependency for nova resources is not working
with helmv3 since several jobs have post-install hooks and are
dependencies of other jobs that have no hooks.
The jobs without hooks are deployed during an installation phase
that is never complete since the dependency jobs are hooked to be
deployed on post-install phase.
This change includes helm-hooks for the boostrap and cell-setup jobs.
The weights will define the order each one will be deployed.
Signed-off-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Change-Id: I924302b6fd41d4fe6fe7bae5577de7d6d590abb2
---
nova/templates/job-bootstrap.yaml | 5 +++++
nova/templates/job-cell-setup.yaml | 4 ++++
2 files changed, 9 insertions(+)
diff --git a/nova/templates/job-bootstrap.yaml b/nova/templates/job-bootstrap.yaml
index 7de7444a..3e2bfafd 100644
--- a/nova/templates/job-bootstrap.yaml
+++ b/nova/templates/job-bootstrap.yaml
@@ -31,6 +31,11 @@ metadata:
name: {{ $serviceAccountName | quote }}
labels:
{{ tuple $envAll "nova" "bootstrap" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
+ annotations:
+{{- if .Values.helm3_hook }}
+ helm.sh/hook: post-install,post-upgrade
+ helm.sh/hook-weight: "2"
+{{- end }}
spec:
backoffLimit: {{ $backoffLimit }}
template:
diff --git a/nova/templates/job-cell-setup.yaml b/nova/templates/job-cell-setup.yaml
index 8d027718..2833ecae 100644
--- a/nova/templates/job-cell-setup.yaml
+++ b/nova/templates/job-cell-setup.yaml
@@ -25,6 +25,10 @@ metadata:
labels:
{{ tuple $envAll "nova" "cell-setup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
annotations:
+{{- if .Values.helm3_hook }}
+ helm.sh/hook: post-install,post-upgrade
+ helm.sh/hook-weight: "1"
+{{- end }}
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
spec:
template:
--
2.25.1
@@ -1,42 +0,0 @@
From a381ce34a6d16cb6df7497503d7b7ae2ee8de316 Mon Sep 17 00:00:00 2001
From: Luan Nunes Utimura <LuanNunes.Utimura@windriver.com>
Date: Tue, 20 Dec 2022 14:07:19 -0300
Subject: [PATCH] Fixing keystone helm release hooks and weights
Change-Id: I2131b82c2ffdaec9931b63c98422dbdceb615475
---
keystone/templates/secret-credential-keys.yaml | 3 ++-
keystone/templates/secret-fernet-keys.yaml | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/keystone/templates/secret-credential-keys.yaml b/keystone/templates/secret-credential-keys.yaml
index 8a2c5eb5..307bb72b 100644
--- a/keystone/templates/secret-credential-keys.yaml
+++ b/keystone/templates/secret-credential-keys.yaml
@@ -21,7 +21,8 @@ metadata:
name: keystone-credential-keys
{{- if .Values.helm3_hook }}
annotations:
- "helm.sh/hook": pre-install
+ "helm.sh/hook": pre-install,post-upgrade
+ "helm.sh/hook-weight": "-6"
{{- end }}
type: Opaque
data:
diff --git a/keystone/templates/secret-fernet-keys.yaml b/keystone/templates/secret-fernet-keys.yaml
index 8af09730..a7eddd14 100644
--- a/keystone/templates/secret-fernet-keys.yaml
+++ b/keystone/templates/secret-fernet-keys.yaml
@@ -22,7 +22,8 @@ metadata:
name: keystone-fernet-keys
{{- if .Values.helm3_hook }}
annotations:
- "helm.sh/hook": pre-install
+ "helm.sh/hook": pre-install,post-upgrade
+ "helm.sh/hook-weight": "-6"
{{- end }}
type: Opaque
data:
--
2.25.1
@@ -1,188 +0,0 @@
From 03cddb8c1dd8912e15b27e5a5c1cb8edcc9350b9 Mon Sep 17 00:00:00 2001
From: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Date: Fri, 7 Jul 2023 09:28:49 -0300
Subject: [PATCH] Update charts requirements to use local server
This change reverts openstack/openstack-helm commit [1] for charts that
the StarlingX OpenStack application is currently building.
That change was removing the helm-toolkit chart dependency from a local
server, since Helm v3 no longer supports "helm serve" [2], and pointing
it to a given openstack-helm-infra directory in which the helm-toolkit
chart should be placed.
The stx-openstack application does not require this change while it is
relying on chartmuseum for serving charts locally [3].
Instead of changing our build instructions and our custom charts,
including charts for other repositories [4], we simply reverts
openstack-helm requirements to use local server again.
[1] c20c1e4400f5935adf0afd0c65bef2bb12af598b
[2] https://helm.sh/docs/topics/v2_v3_migration/
[3] https://opendev.org/starlingx/openstack-armada-app/src/branch/r/
stx.8.0/stx-openstack-helm-fluxcd/debian/deb_folder/control#L6
[4] https://opendev.org/starlingx/openstack-armada-app/src/branch/r/
stx.8.0/stx-openstack-helm-fluxcd/debian/meta_data.yaml#L7
Signed-off-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Change-Id: Id2ab4adabb21201da229e4242fe06c1ba1bfd463
---
aodh/requirements.yaml | 2 +-
barbican/requirements.yaml | 2 +-
ceilometer/requirements.yaml | 2 +-
cinder/requirements.yaml | 2 +-
glance/requirements.yaml | 2 +-
heat/requirements.yaml | 2 +-
horizon/requirements.yaml | 2 +-
ironic/requirements.yaml | 2 +-
keystone/requirements.yaml | 2 +-
magnum/requirements.yaml | 2 +-
neutron/requirements.yaml | 2 +-
nova/requirements.yaml | 2 +-
placement/requirements.yaml | 2 +-
13 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/aodh/requirements.yaml b/aodh/requirements.yaml
index 36f1a6e0..fbba94ae 100644
--- a/aodh/requirements.yaml
+++ b/aodh/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/barbican/requirements.yaml b/barbican/requirements.yaml
index 4124d014..432e28c1 100644
--- a/barbican/requirements.yaml
+++ b/barbican/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/ceilometer/requirements.yaml b/ceilometer/requirements.yaml
index 4124d014..432e28c1 100644
--- a/ceilometer/requirements.yaml
+++ b/ceilometer/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/cinder/requirements.yaml b/cinder/requirements.yaml
index 4124d014..432e28c1 100644
--- a/cinder/requirements.yaml
+++ b/cinder/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/glance/requirements.yaml b/glance/requirements.yaml
index 4124d014..432e28c1 100644
--- a/glance/requirements.yaml
+++ b/glance/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/heat/requirements.yaml b/heat/requirements.yaml
index 4124d014..432e28c1 100644
--- a/heat/requirements.yaml
+++ b/heat/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/horizon/requirements.yaml b/horizon/requirements.yaml
index 4124d014..432e28c1 100644
--- a/horizon/requirements.yaml
+++ b/horizon/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/ironic/requirements.yaml b/ironic/requirements.yaml
index 4124d014..432e28c1 100644
--- a/ironic/requirements.yaml
+++ b/ironic/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/keystone/requirements.yaml b/keystone/requirements.yaml
index 4124d014..432e28c1 100644
--- a/keystone/requirements.yaml
+++ b/keystone/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/magnum/requirements.yaml b/magnum/requirements.yaml
index 4124d014..432e28c1 100644
--- a/magnum/requirements.yaml
+++ b/magnum/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/neutron/requirements.yaml b/neutron/requirements.yaml
index 4124d014..432e28c1 100644
--- a/neutron/requirements.yaml
+++ b/neutron/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/nova/requirements.yaml b/nova/requirements.yaml
index 4124d014..432e28c1 100644
--- a/nova/requirements.yaml
+++ b/nova/requirements.yaml
@@ -12,5 +12,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
diff --git a/placement/requirements.yaml b/placement/requirements.yaml
index 639dab0a..7efb17a3 100644
--- a/placement/requirements.yaml
+++ b/placement/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: helm-toolkit
- repository: file://../../openstack-helm-infra/helm-toolkit
+ repository: http://localhost:8879/charts
version: ">= 0.1.0"
--
2.25.1
@@ -1,600 +0,0 @@
From 0553e51fee8b2c57d17ab0900f31ae12eea67347 Mon Sep 17 00:00:00 2001
From: Daniel Caires <DanielMarques.Caires@windriver.com>
Date: Wed, 19 Aug 2024 08:15:57 -0300
Subject: [PATCH] Add pre-apply cleanup Job to STX-O Helm charts
After verification, it was noted that it is not possible
to reapply STX-Openstack after a helm-override that changes
a job template since the template section of job is
immutable or not updatable
Due to the use of kubernetes-entrypoint DEPENDENCY_JOBS it was
also noted that deleting the jobs after the application is applied
it is not an option. If this happened, the application would not
come back after a host reboot.
This patch creates a Job template that runs right before the Helm
chart is installed ou updated. This Job deletes all jobs that have
its status as completed.
---
aodh/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
aodh/values.yaml | 2 ++
barbican/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
barbican/values.yaml | 2 ++
.../templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
ceilometer/values.yaml | 2 ++
cinder/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
cinder/values.yaml | 2 ++
glance/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
glance/values.yaml | 2 ++
heat/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
heat/values.yaml | 2 ++
horizon/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
horizon/values.yaml | 2 ++
ironic/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
ironic/values.yaml | 2 ++
keystone/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
keystone/values.yaml | 2 ++
neutron/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
neutron/values.yaml | 2 ++
nova/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
nova/values.yaml | 2 ++
placement/templates/job-pre-apply-cleanup.yaml | 18 ++++++++++++++++++
placement/values.yaml | 2 ++
24 files changed, 240 insertions(+)
create mode 100644 aodh/templates/job-pre-apply-cleanup.yaml
create mode 100644 barbican/templates/job-pre-apply-cleanup.yaml
create mode 100644 ceilometer/templates/job-pre-apply-cleanup.yaml
create mode 100644 cinder/templates/job-pre-apply-cleanup.yaml
create mode 100644 glance/templates/job-pre-apply-cleanup.yaml
create mode 100644 heat/templates/job-pre-apply-cleanup.yaml
create mode 100644 horizon/templates/job-pre-apply-cleanup.yaml
create mode 100644 ironic/templates/job-pre-apply-cleanup.yaml
create mode 100644 keystone/templates/job-pre-apply-cleanup.yaml
create mode 100644 neutron/templates/job-pre-apply-cleanup.yaml
create mode 100644 nova/templates/job-pre-apply-cleanup.yaml
create mode 100644 placement/templates/job-pre-apply-cleanup.yaml
diff --git a/aodh/templates/job-pre-apply-cleanup.yaml b/aodh/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..ba0f0df3
--- /dev/null
+++ b/aodh/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "aodh" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/aodh/values.yaml b/aodh/values.yaml
index c33795e2..9661d734 100644
--- a/aodh/values.yaml
+++ b/aodh/values.yaml
@@ -59,6 +59,7 @@ images:
aodh_alarms_cleaner: docker.io/kolla/ubuntu-source-aodh-base:ocata
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -727,6 +728,7 @@ manifests:
deployment_listener: true
deployment_notifier: true
ingress_api: true
+ job_pre_apply_cleanup: true
job_bootstrap: true
job_db_drop: false
job_db_init: true
diff --git a/barbican/templates/job-pre-apply-cleanup.yaml b/barbican/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..5755d4ec
--- /dev/null
+++ b/barbican/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "barbican" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/barbican/values.yaml b/barbican/values.yaml
index b3ed693c..aa9df4f0 100644
--- a/barbican/values.yaml
+++ b/barbican/values.yaml
@@ -48,6 +48,7 @@ images:
barbican_api: docker.io/openstackhelm/barbican:2024.1-ubuntu_jammy
rabbit_init: docker.io/rabbitmq:3.13-management
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -703,6 +704,7 @@ manifests:
configmap_etc: true
deployment_api: true
ingress_api: true
+ job_pre_apply_cleanup: true
job_bootstrap: true
job_db_init: true
job_db_sync: true
diff --git a/ceilometer/templates/job-pre-apply-cleanup.yaml b/ceilometer/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..1900b9d8
--- /dev/null
+++ b/ceilometer/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "ceilometer" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/ceilometer/values.yaml b/ceilometer/values.yaml
index d50722cf..9f55de78 100644
--- a/ceilometer/values.yaml
+++ b/ceilometer/values.yaml
@@ -63,6 +63,7 @@ images:
ceilometer_notification: docker.io/kolla/ubuntu-source-ceilometer-notification:wallaby
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -2128,6 +2129,7 @@ manifests:
daemonset_ipmi: false
deployment_notification: true
ingress_api: true
+ job_pre_apply_cleanup: true
job_bootstrap: true
job_db_drop: false
job_db_init: true
diff --git a/cinder/templates/job-pre-apply-cleanup.yaml b/cinder/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..db570af6
--- /dev/null
+++ b/cinder/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "cinder" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/cinder/values.yaml b/cinder/values.yaml
index 16516491..ef0d9615 100644
--- a/cinder/values.yaml
+++ b/cinder/values.yaml
@@ -61,6 +61,7 @@ images:
cinder_backup_storage_init: docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_jammy
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -1477,6 +1478,7 @@ manifests:
deployment_scheduler: true
deployment_volume: true
ingress_api: true
+ job_pre_apply_cleanup: true
job_backup_storage_init: true
job_bootstrap: true
job_clean: true
diff --git a/glance/templates/job-pre-apply-cleanup.yaml b/glance/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..2e4f2e11
--- /dev/null
+++ b/glance/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "glance" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/glance/values.yaml b/glance/values.yaml
index 3a6a14f9..c902bcab 100644
--- a/glance/values.yaml
+++ b/glance/values.yaml
@@ -50,6 +50,7 @@ images:
bootstrap: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -1019,6 +1020,7 @@ manifests:
configmap_etc: true
deployment_api: true
ingress_api: true
+ job_pre_apply_cleanup: true
job_bootstrap: true
job_clean: true
job_db_init: true
diff --git a/heat/templates/job-pre-apply-cleanup.yaml b/heat/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..be97d27d
--- /dev/null
+++ b/heat/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "heat" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/heat/values.yaml b/heat/values.yaml
index 24dc69d5..933d6763 100644
--- a/heat/values.yaml
+++ b/heat/values.yaml
@@ -58,6 +58,7 @@ images:
heat_purge_deleted: docker.io/openstackhelm/heat:2024.1-ubuntu_jammy
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -1293,6 +1294,7 @@ manifests:
ingress_api: true
ingress_cfn: true
ingress_cloudwatch: false
+ job_pre_apply_cleanup: true
job_bootstrap: true
job_db_init: true
job_db_sync: true
diff --git a/horizon/templates/job-pre-apply-cleanup.yaml b/horizon/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..258ad6f3
--- /dev/null
+++ b/horizon/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "horizon" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/horizon/values.yaml b/horizon/values.yaml
index 3a722c6a..98f8ede2 100644
--- a/horizon/values.yaml
+++ b/horizon/values.yaml
@@ -25,6 +25,7 @@ images:
test: docker.io/openstackhelm/osh-selenium:latest-ubuntu_jammy
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -1393,6 +1394,7 @@ manifests:
configmap_logo: false
deployment: true
ingress_api: true
+ job_pre_apply_cleanup: true
job_db_init: true
job_db_sync: true
job_db_drop: false
diff --git a/ironic/templates/job-pre-apply-cleanup.yaml b/ironic/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..34c6af54
--- /dev/null
+++ b/ironic/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "ironic" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/ironic/values.yaml b/ironic/values.yaml
index 6a857bb9..d21ad6c7 100644
--- a/ironic/values.yaml
+++ b/ironic/values.yaml
@@ -53,6 +53,7 @@ images:
ironic_pxe_http: docker.io/nginx:1.13.3
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -790,6 +791,7 @@ manifests:
configmap_etc: true
deployment_api: true
ingress_api: true
+ job_pre_apply_cleanup: true
job_bootstrap: true
job_db_drop: false
job_db_init: true
diff --git a/keystone/templates/job-pre-apply-cleanup.yaml b/keystone/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..259ef91f
--- /dev/null
+++ b/keystone/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "keystone" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/keystone/values.yaml b/keystone/values.yaml
index d0a7a901..7e262d5f 100644
--- a/keystone/values.yaml
+++ b/keystone/values.yaml
@@ -52,6 +52,7 @@ images:
keystone_domain_manage: docker.io/openstackhelm/keystone:2024.1-ubuntu_jammy
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -1122,6 +1123,7 @@ manifests:
cron_fernet_rotate: true
deployment_api: true
ingress_api: true
+ job_pre_apply_cleanup: true
job_bootstrap: true
job_credential_cleanup: true
job_credential_setup: true
diff --git a/neutron/templates/job-pre-apply-cleanup.yaml b/neutron/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..6fd7c757
--- /dev/null
+++ b/neutron/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "neutron" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/neutron/values.yaml b/neutron/values.yaml
index 2c7d8233..b7a5560d 100644
--- a/neutron/values.yaml
+++ b/neutron/values.yaml
@@ -49,6 +49,7 @@ images:
neutron_netns_cleanup_cron: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pull_policy: "IfNotPresent"
local_registry:
active: false
@@ -2655,6 +2656,7 @@ manifests:
deployment_server: true
deployment_rpc_server: true
ingress_server: true
+ job_pre_apply_cleanup: true
job_bootstrap: true
job_db_init: true
job_db_sync: true
diff --git a/nova/templates/job-pre-apply-cleanup.yaml b/nova/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..0eb2fbaa
--- /dev/null
+++ b/nova/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "nova" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/nova/values.yaml b/nova/values.yaml
index 44bd9a74..2e748db9 100644
--- a/nova/values.yaml
+++ b/nova/values.yaml
@@ -85,6 +85,7 @@ images:
test: docker.io/xrally/xrally-openstack:2.0.0
image_repo_sync: docker.io/docker:17.07.0
nova_wait_for_computes_init: gcr.io/google_containers/hyperkube-amd64:v1.11.6
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
local_registry:
active: false
exclude:
@@ -2586,6 +2587,7 @@ manifests:
ingress_novncproxy: true
ingress_spiceproxy: true
ingress_osapi: true
+ job_pre_apply_cleanup: true
job_bootstrap: true
job_storage_init: true
job_db_init: true
diff --git a/placement/templates/job-pre-apply-cleanup.yaml b/placement/templates/job-pre-apply-cleanup.yaml
new file mode 100644
index 00000000..6cbf5c84
--- /dev/null
+++ b/placement/templates/job-pre-apply-cleanup.yaml
@@ -0,0 +1,18 @@
+{{/*
+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.job_pre_apply_cleanup }}
+{{- $preApplyCleanupJob := dict "envAll" . "serviceName" "placement" -}}
+{{ $preApplyCleanupJob | include "helm-toolkit.manifests.job_pre_apply_cleanup" }}
+{{- end }}
\ No newline at end of file
diff --git a/placement/values.yaml b/placement/values.yaml
index 9d2dddfd..adf7cc98 100644
--- a/placement/values.yaml
+++ b/placement/values.yaml
@@ -40,6 +40,7 @@ images:
placement_db_sync: docker.io/openstackhelm/placement:2024.1-ubuntu_jammy
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
image_repo_sync: docker.io/docker:17.07.0
+ pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
local_registry:
active: false
exclude:
@@ -476,6 +477,7 @@ manifests:
configmap_bin: true
configmap_etc: true
deployment: true
+ job_pre_apply_cleanup: true
job_image_repo_sync: true
job_db_init: true
job_db_sync: true
--
2.34.1
@@ -1,32 +0,0 @@
From 5daa31fc86b59e2dbbad43f4b57caa93fd622454 Mon Sep 17 00:00:00 2001
From: vrochalo <vinicius.rochalobo@windriver.com>
Date: Fri, 7 Mar 2025 11:42:17 -0300
Subject: [PATCH] Add service role to neutron policy
Temporary openstack-helm patch bringing the code fix [1] for the reported launchpad [2].
Since OpenStack 2023.2, Neutron user needs to be migrated to service accounts.
[1] https://github.com/openstack/openstack-helm/commit/5708319cd8acf4edbe31d8416da52b89e8a97fd5
[2] https://bugs.launchpad.net/openstack-helm/+bug/2078002
Signed-off-by: vrochalo <vinicius.rochalobo@windriver.com>
---
neutron/values.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/neutron/values.yaml b/neutron/values.yaml
index b7a5560d..8a40e41b 100644
--- a/neutron/values.yaml
+++ b/neutron/values.yaml
@@ -2448,7 +2448,7 @@ endpoints:
user_domain_name: default
project_domain_name: default
neutron:
- role: admin
+ role: admin,service
region_name: RegionOne
username: neutron
password: password
--
2.34.1
@@ -1,42 +0,0 @@
From 776b29a26da2fae6f2aa575f401f3f4da873ab1c Mon Sep 17 00:00:00 2001
From: Nicholas Kuechler <nkuechler@gmail.com>
Date: Tue, 25 Jun 2024 11:53:09 -0500
Subject: [PATCH 21/22] horizon: Allows setting Django's CSRF_TRUSTED_ORIGINS
in helm values file
Change-Id: I8930b8df7c068c63ee19a7f3a29c66ef2b3ee820
[ Cherry-picked to stx-openstack caracal ]
Test Plan:
[PASS] build stx-openstack tarball
Related-Bug: #2103799
Signed-off-by: Alex Figueiredo <alex.fernandesfigueiredo@windriver.com>
---
horizon/values.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/horizon/values.yaml b/horizon/values.yaml
index 98f8ede2..6362ad87 100644
--- a/horizon/values.yaml
+++ b/horizon/values.yaml
@@ -217,6 +217,7 @@ conf:
show_openrc_file: "True"
csrf_cookie_secure: "False"
csrf_cookie_httponly: "False"
+ csrf_trusted_origins: []
enforce_password_check: "True"
# Set enable_pwd_validator to true to enforce password validator settings.
enable_pwd_validator: false
@@ -312,6 +313,9 @@ conf:
SESSION_COOKIE_HTTPONLY = {{ .Values.conf.horizon.local_settings.config.session_cookie_httponly }}
+ # https://docs.djangoproject.com/en/dev/ref/settings/#csrf-trusted-origins
+ CSRF_TRUSTED_ORIGINS = {{ .Values.conf.horizon.local_settings.config.csrf_trusted_origins }}
+
# Overrides for OpenStack API versions. Use this setting to force the
# OpenStack dashboard to use a specific API version for a given service API.
# Versions specified here should be integers or floats, not strings.
--
2.34.1
@@ -1,35 +0,0 @@
From b49bc7619031cd35eb3b90484b7f8716eba91887 Mon Sep 17 00:00:00 2001
From: Nicholas Kuechler <nkuechler@gmail.com>
Date: Thu, 27 Jun 2024 13:57:29 -0500
Subject: [PATCH 22/22] horizon: fix templating of list of strings for
CSRF_TRUSTED_ORIGINS
Change-Id: I740cd48103950e1599e77db46c7e4d9e65677177
[ Cherry-picked to stx-openstack caracal ]
Test Plan:
[PASS] build stx-openstack tarball
[PASS] install openstack with certificate and domain_name setup, enabling HTTPs
[PASS] Access horizon via fqdn (ex: https://horizon-<domain>.com/)
Related-Bug: #2103799
Signed-off-by: Alex Figueiredo <alex.fernandesfigueiredo@windriver.com>
---
horizon/values.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/horizon/values.yaml b/horizon/values.yaml
index 6362ad87..fbf465f5 100644
--- a/horizon/values.yaml
+++ b/horizon/values.yaml
@@ -314,7 +314,7 @@ conf:
SESSION_COOKIE_HTTPONLY = {{ .Values.conf.horizon.local_settings.config.session_cookie_httponly }}
# https://docs.djangoproject.com/en/dev/ref/settings/#csrf-trusted-origins
- CSRF_TRUSTED_ORIGINS = {{ .Values.conf.horizon.local_settings.config.csrf_trusted_origins }}
+ CSRF_TRUSTED_ORIGINS = [{{ include "helm-toolkit.utils.joinListWithCommaAndSingleQuotes" .Values.conf.horizon.local_settings.config.csrf_trusted_origins }}]
# Overrides for OpenStack API versions. Use this setting to force the
# OpenStack dashboard to use a specific API version for a given service API.
--
2.34.1
@@ -1,33 +0,0 @@
0001-Remove-stale-Apache2-service-pids-when-a-POD-starts.patch
0002-Support-ingress-creation-for-keystone-admin-endpoint.patch
0003-Allow-set-public-endpoint-url-for-keystone-endpoints.patch
0004-Wrong-usage-of-rbd_store_chunk_size.patch
0005-Add-stx_admin-account.patch
0006-Add-flavor-extra-spec-hw-pci_irq_affinity_mask.patch
0007-Remove-TLS-from-openstack-services.patch
0008-Remove-mariadb-and-rabbit-tls.patch
0009-Fixing-cinder-helm-release-hooks-weights-helmv3.patch
0010-Fixing-nova-helm-release-hooks-and-weights.patch
0011-Fixing-keystone-helm-release-hooks-and-weights.patch
0012-Update-user-in-cinder-related-pods.patch
0013-Support-ceph-dev-version-during-pool-creation.patch
0014-Update-charts-requirements-to-use-local-server.patch
0015-Add-service-tokens-for-Cinder-auth.patch
0016-Add-app.starlingx.io-component-label-to-pods.patch
0017-Add-pre-apply-cleanup-Job-to-STX-O-Helm-charts.patch
0018-Define-values-for-NetApp-volume-backend.patch
0019-Add-cluster-host-ip-env-var-to-nova.patch
0020-Add-service-role-to-neutron-policy.patch
0021-horizon-Allows-setting-Django-s-CSRF_TRUSTED_ORIGINS.patch
0022-horizon-fix-templating-of-list-of-strings-for-CSRF_T.patch
0023-Change-uWSGI-socket-to-allow-IPv6-binding.patch
0024-Enable-ceph-pool-creation-for-AIO-systems.patch
0025-Add-IPv6-compatibility-to-neutron-openvswitch-agent.patch
0026-Copy-host-UUID-into-Nova-s-config-dir.patch
0027-Add-retry-to-hostname-reading-by-neutron-agents.patch
0028-Allow-rook-ceph-auto-estimation.patch
0029-Add-DEX-integration.patch
0030-Add-Netapp-backend-support-to-Cinder.patch
0031-Update-glance-store-config.patch
0032-Add-backend-checks-to-skip-Ceph-init-for-NetApp-stor.patch
0033-Remove-cinder-default-rbd1-backend.patch
-46
View File
@@ -1,46 +0,0 @@
#!/usr/bin/make -f
# export DH_VERBOSE = 1
export ROOT = debian/tmp
export APP_FOLDER = $(ROOT)/usr/lib/helm
export HELM_FOLDER=/usr/lib/helm
export TOOLKIT_VERSION = 0.2.69
%:
dh $@
override_dh_auto_build:
# Stage helm-toolkit in the local repo.
cp $(HELM_FOLDER)/helm-toolkit-$(TOOLKIT_VERSION).tgz .
# Host a server for the helm charts.
chartmuseum --debug --port=8879 --context-path='/charts' \
--storage="local" --storage-local-rootdir="." &
sleep 2
helm repo add local http://localhost:8879/charts
# Create the chart TGZ files.
make aodh
make barbican
make ceilometer
make cinder
make glance
make heat
make horizon
make ironic
make keystone
make neutron
make nova
make placement
# Terminate the helm chart server.
pkill chartmuseum
# Remove the helm-toolkit tarball
rm helm-toolkit-$(TOOLKIT_VERSION).tgz
override_dh_auto_install:
# Install the chart tar files.
install -d -m 755 $(APP_FOLDER)
install -p -D -m 755 *.tgz $(APP_FOLDER)
override_dh_auto_test:
override_dh_usrlocal:
@@ -1 +0,0 @@
3.0 (quilt)
-17
View File
@@ -1,17 +0,0 @@
---
debname: openstack-helm
debver: 1.1-0
dl_path:
name: openstack-helm-3013cbc94a201b48bf5b3e0bced9297ae924a133.tar.gz
url: https://github.com/openstack/openstack-helm/archive/3013cbc94a201b48bf5b3e0bced9297ae924a133.tar.gz
md5sum: dc1e3b4a42007c5c2c3a0c305a6f684e
sha256sum: 91ad30be701bcf7388c0b763635bfecfd39b771a771af779bb1864daf9175891
src_files:
- files/index.yaml
- files/repositories.yaml
revision:
dist: $STX_DIST
PKG_GITREVCOUNT: true
GITREVCOUNT:
BASE_SRCREV: 0a50ff4f895fb2d20122c23019f76d08d885a12f
SRC_DIR: ${MY_REPO}/stx/openstack-armada-app/openstack-helm/files
-4
View File
@@ -1,4 +0,0 @@
---
apiVersion: v1
entries: {}
generated: 2019-01-07T12:33:46.098166523-06:00
-12
View File
@@ -1,12 +0,0 @@
---
apiVersion: v1
generated: 2019-01-02T15:19:36.215111369-06:00
repositories:
- caFile: ""
cache: /builddir/.helm/repository/cache/local-index.yaml
certFile: ""
keyFile: ""
name: local
password: ""
url: http://127.0.0.1:8879/charts
username: ""
@@ -5,7 +5,6 @@ Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
chartmuseum,
helm,
openstack-helm-infra,
openstack-helm,
procps,
python3-k8sapp-openstack-wheels,
@@ -17,7 +16,6 @@ Package: stx-openstack-helm-fluxcd
Section: libs
Architecture: all
Depends: ${misc:Depends},
openstack-helm-infra,
openstack-helm,
python3-k8sapp-openstack-wheels,
ingress-nginx-helm
@@ -5,7 +5,7 @@ export ROOT = debian/tmp
export APP_FOLDER = $(ROOT)/usr/lib/application
export FLUXCD_FOLDER = $(ROOT)/usr/lib/fluxcd
export HELM_FOLDER = /usr/lib/helm
export TOOLKIT_VERSION = 0.2.69
export TOOLKIT_VERSION = 2025.1.0
%:
dh $@
@@ -1 +1 @@
3.0 (quilt)
3.0 (quilt)
@@ -7,5 +7,5 @@ src_files:
revision:
dist: $STX_DIST
GITREVCOUNT:
BASE_SRCREV: daef54697f354ca8fda128c46e50771f8ee7eb45
BASE_SRCREV: 10ebb85a976fe7c81c6cb75d3b0e60145d927e4d
SRC_DIR: ${MY_REPO}/stx/openstack-armada-app/stx-openstack-helm-fluxcd
@@ -16,4 +16,4 @@ apiVersion: v1
appVersion: "1.0"
description: Helm chart for stx-openstack containerized openstack-clients
name: clients
version: 0.2.0
version: 2025.1.0
@@ -16,4 +16,4 @@ apiVersion: v1
appVersion: "1.0"
description: StarlingX-Helm dcdbsync
name: dcdbsync
version: 0.2.0
version: 2025.1.0
@@ -15,4 +15,4 @@
apiVersion: v1
description: OpenStack-Helm Garbd
name: garbd
version: 0.2.0
version: 2025.1.0
@@ -16,4 +16,4 @@ apiVersion: v1
appVersion: "1.0"
description: StarlingX-Helm keystone-api-proxy
name: keystone-api-proxy
version: 0.2.0
version: 2025.1.0
@@ -7,4 +7,4 @@
apiVersion: v1
description: Nginx Ports Control
name: nginx-ports-control
version: 0.2.0
version: 2025.1.0
@@ -16,4 +16,4 @@ apiVersion: v1
appVersion: "1.0"
description: StarlingX-Helm nova-api-proxy
name: nova-api-proxy
version: 0.2.0
version: 2025.1.0
@@ -15,4 +15,4 @@
apiVersion: v1
description: PCI IRQ Affinity Agent
name: pci-irq-affinity-agent
version: 0.2.0
version: 2025.1.0
@@ -23,7 +23,7 @@ images:
image_repo_sync: null
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
rabbit_init: docker.io/library/rabbitmq:3.9.29-management
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
pod:
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: aodh
version: 0.2.11
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -25,7 +25,7 @@ images:
image_repo_sync: null
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
rabbit_init: docker.io/library/rabbitmq:3.9.29-management
scripted_test: docker.io/starlingx/stx-heat:master-debian-stable-latest
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: barbican
version: 0.3.13
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -23,7 +23,7 @@ images:
image_repo_sync: null
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
rabbit_init: docker.io/library/rabbitmq:3.9.29-management
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
test: null
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: ceilometer
version: 0.2.11
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -32,7 +32,7 @@ images:
ceph_bootstrap: null
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
rgw_placement_targets: docker.io/openstackhelm/ceph-config-helper:ubuntu_bionic-20201223
rgw_s3_admin: docker.io/openstackhelm/ceph-config-helper:ubuntu_bionic-20201223
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: ceph-rgw
version: 0.1.37
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -34,8 +34,9 @@ images:
db_init: docker.io/starlingx/stx-heat:master-debian-stable-latest
cinder_db_sync: docker.io/starlingx/stx-cinder:master-debian-stable-latest
db_drop: docker.io/starlingx/stx-heat:master-debian-stable-latest
rabbit_init: docker.io/library/rabbitmq:3.9.29-management
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
rabbit_init: docker.io/rabbitmq:3.13-management
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
cinder_api: docker.io/starlingx/stx-cinder:master-debian-stable-latest
@@ -43,9 +44,9 @@ images:
cinder_scheduler: docker.io/starlingx/stx-cinder:master-debian-stable-latest
cinder_volume: docker.io/starlingx/stx-cinder:master-debian-stable-latest
cinder_volume_usage_audit: docker.io/starlingx/stx-cinder:master-debian-stable-latest
cinder_storage_init: docker.io/openstackhelm/ceph-config-helper:ubuntu_bionic-20201223
cinder_storage_init: docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_jammy
cinder_backup: docker.io/starlingx/stx-cinder:master-debian-stable-latest
cinder_backup_storage_init: docker.io/openstackhelm/ceph-config-helper:ubuntu_bionic-20201223
cinder_backup_storage_init: docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_jammy
dep_check: quay.io/airshipit/kubernetes-entrypoint:9ff5d2e488ad18187bccc48e9595f197d27110c4-ubuntu_jammy
image_repo_sync: null
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
@@ -55,6 +56,7 @@ images:
exclude:
- dep_check
- image_repo_sync
jobs:
volume_usage_audit:
cron: "5 * * * *"
@@ -62,6 +64,7 @@ jobs:
history:
success: 3
failed: 1
pod:
security_context:
volume_usage_audit:
@@ -356,6 +359,7 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
bootstrap:
enabled: true
ks_user: admin
@@ -389,6 +393,7 @@ bootstrap:
# associates:
# - volume_type_1
# - volume_type_2
network:
api:
ingress:
@@ -402,6 +407,7 @@ network:
node_port:
enabled: false
port: 30877
ceph_client:
# enable this when there is a need to create second ceph backed pointing
# to external ceph cluster
@@ -986,6 +992,8 @@ conf:
- name
- volume_type
volume_type: []
enable_conversion_tmpfs: false
conversion_tmpfs_size: "10Gi"
cinder_api_uwsgi:
uwsgi:
add-header: "Connection: close"
@@ -1002,6 +1010,7 @@ conf:
thunder-lock: true
worker-reload-mercy: 80
wsgi-file: /var/lib/openstack/bin/cinder-wsgi
backup:
external_ceph_rbd:
enabled: false
@@ -1014,6 +1023,7 @@ backup:
volume:
class_name: general
size: 10Gi
dependencies:
dynamic:
common:
@@ -1148,6 +1158,7 @@ dependencies:
services:
- endpoint: internal
service: identity
# Names of secrets used by bootstrap and environmental checks
secrets:
identity:
@@ -1165,12 +1176,13 @@ secrets:
admin: cinder-rabbitmq-admin
cinder: cinder-rabbitmq-user
tls:
volume:
volumev3:
api:
public: cinder-tls-public
internal: cinder-tls-api
oci_image_registry:
cinder: cinder-oci-image-registry
# We use a different layout of the endpoints here to account for versioning
# this swaps the service name and type, and should be rolled out to other
# services.
@@ -1421,15 +1433,18 @@ endpoints:
port:
ingress:
default: 80
network_policy:
cinder:
ingress:
- {}
egress:
- {}
# NOTE(helm_hook): helm_hook might break for helm2 binary.
# set helm3_hook: false when using the helm2 binary.
helm3_hook: true
tls:
identity: false
oslo_messaging: false
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: cinder
version: 0.3.22
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: clients
version: 0.2.0
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: dcdbsync
version: 0.2.0
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -49,7 +49,7 @@ labels:
images:
tags:
fm_rest_api: docker.io/starlingx/stx-fm-rest-api:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
fm_db_sync: docker.io/starlingx/stx-fm-rest-api:master-debian-stable-latest
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: fm-rest-api
version: 0.2.0
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: garbd
version: 0.2.0
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -7,6 +7,7 @@
---
release_group: osh-openstack-glance
storage: swift
labels:
isApplication: false
api:
@@ -24,15 +25,13 @@ labels:
images:
tags:
test: null
glance_storage_init: docker.io/openstackhelm/ceph-config-helper:ubuntu_bionic-20201223
glance_storage_init: docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_jammy
glance_metadefs_load: docker.io/starlingx/stx-glance:master-debian-stable-latest
db_init: docker.io/starlingx/stx-heat:master-debian-stable-latest
glance_db_sync: docker.io/starlingx/stx-glance:master-debian-stable-latest
db_drop: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
rabbit_init: docker.io/library/rabbitmq:3.9.29-management
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
rabbit_init: docker.io/rabbitmq:3.13-management
glance_api: docker.io/starlingx/stx-glance:master-debian-stable-latest
# Bootstrap image requires curl
bootstrap: docker.io/starlingx/stx-heat:master-debian-stable-latest
@@ -45,6 +44,7 @@ images:
exclude:
- dep_check
- image_repo_sync
bootstrap:
enabled: true
ks_user: admin
@@ -65,15 +65,18 @@ bootstrap:
# uncomment this and write specific hypervisor type.
# hypervisor_type: "qemu"
os_distro: "cirros"
ceph_client:
configmap: ceph-etc
user_secret_name: pvc-ceph-client-key
network_policy:
glance:
ingress:
- {}
egress:
- {}
conf:
software:
rbd:
@@ -165,8 +168,8 @@ conf:
paste.filter_factory: glance.api.middleware.gzip:GzipMiddleware.factory
filter:osprofiler:
paste.filter_factory: osprofiler.web:WsgiMiddleware.factory
hmac_keys: SECRET_KEY # DEPRECATED
enabled: yes # DEPRECATED
hmac_keys: SECRET_KEY # DEPRECATED
enabled: yes # DEPRECATED
filter:cors:
paste.filter_factory: oslo_middleware.cors:filter_factory
oslo_config_project: glance
@@ -272,6 +275,10 @@ conf:
auth_uri: http://keystone.openstack.svc.cluster.local:80/v3
auth_url: http://keystone.openstack.svc.cluster.local:80/v3
glance_store:
# Since 2024.1 this section must contain the only key 'default_backend'.
# Other keys should be defined in the corresponding per-backend sections.
# This is for backward compatibility.
filesystem_store_datadir: /var/lib/glance/images
cinder_catalog_info: volumev3::internalURL
chunk_size: 8
rbd_store_replication: 3
@@ -279,7 +286,28 @@ conf:
rbd_store_pool: glance.images
rbd_store_user: glance
rbd_store_ceph_conf: /etc/ceph/ceph.conf
default_swift_reference: ref1
swift_store_container: glance
swift_store_create_container_on_put: true
swift_store_config_file: /etc/glance/swift-store.conf
swift_store_endpoint_type: internalURL
file:
filesystem_store_datadir: /var/lib/glance/images
# These two sections os_glance_tasks_store and os_glance_staging_store
# are mandatory. Glance will be unable to delete images from if these
# two are not properly configured.
os_glance_tasks_store:
filesystem_store_datadir: /var/lib/glance/tmp/os_glance_tasks_store
os_glance_staging_store:
filesystem_store_datadir: /var/lib/glance/tmp/os_glance_staging_store
rbd:
rbd_store_chunk_size: 8
rbd_store_replication: 3
rbd_store_crush_rule: replicated_rule
rbd_store_pool: glance.images
rbd_store_user: glance
rbd_store_ceph_conf: /etc/ceph/ceph.conf
swift:
default_swift_reference: ref1
swift_store_container: glance
swift_store_create_container_on_put: true
@@ -435,9 +463,13 @@ network:
node_port:
enabled: false
port: 30092
volume:
class_name: general
size: 2Gi
accessModes:
- ReadWriteOnce
dependencies:
dynamic:
common:
@@ -523,6 +555,7 @@ dependencies:
services:
- endpoint: internal
service: local_image_registry
# Names of secrets used by bootstrap and environmental checks
secrets:
identity:
@@ -543,6 +576,7 @@ secrets:
internal: glance-tls-api
oci_image_registry:
glance: glance-oci-image-registry
# typically overridden by environmental
# values, but should include all endpoints
# required by this chart
@@ -631,6 +665,7 @@ endpoints:
# key: null
path:
default: null
healthcheck: /healthcheck
scheme:
default: http
service: http
@@ -800,6 +835,7 @@ endpoints:
port:
ingress:
default: 80
pod:
security_context:
glance:
@@ -1016,9 +1052,11 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
# NOTE(helm_hook): helm_hook might break for helm2 binary.
# set helm3_hook: false when using the helm2 binary.
helm3_hook: true
tls:
identity: false
oslo_messaging: false
@@ -1062,6 +1100,7 @@ manifests:
secret_registry: true
service_ingress_api: true
service_api: true
# NOTE: This is for enable helm resource-policy to keep glance-images PVC.
# set keep_pvc: true when allow helm resource-policy to keep for PVC.
# This will requires mannual delete for PVC.
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: glance
version: 0.5.0
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -22,7 +22,7 @@ images:
image_repo_sync: null
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
conf:
gnocchi:
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: gnocchi
version: 0.1.16
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -26,6 +26,7 @@ labels:
test:
node_selector_key: openstack-control-plane
node_selector_value: enabled
images:
tags:
test: null
@@ -33,8 +34,8 @@ images:
db_init: docker.io/starlingx/stx-heat:master-debian-stable-latest
heat_db_sync: docker.io/starlingx/stx-heat:master-debian-stable-latest
db_drop: docker.io/starlingx/stx-heat:master-debian-stable-latest
rabbit_init: docker.io/library/rabbitmq:3.9.29-management
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
rabbit_init: docker.io/rabbitmq:3.13-management
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
heat_api: docker.io/starlingx/stx-heat:master-debian-stable-latest
@@ -52,6 +53,7 @@ images:
exclude:
- dep_check
- image_repo_sync
jobs:
engine_cleaner:
cron: "*/5 * * * *"
@@ -59,12 +61,14 @@ jobs:
history:
success: 3
failed: 1
purge_deleted:
cron: "20 */24 * * *"
purge_age: 60
history:
success: 3
failed: 1
conf:
rally_tests:
run_tempest: false
@@ -469,6 +473,7 @@ conf:
formatter_default:
format: "%(message)s"
datefmt: "%Y-%m-%d %H:%M:%S"
rabbitmq:
# NOTE(rk760n): adding rmq policy to mirror messages from notification queues and set expiration time for the ones
policies:
@@ -515,6 +520,7 @@ conf:
thunder-lock: true
worker-reload-mercy: 80
wsgi-file: /var/lib/openstack/bin/heat-wsgi-api-cfn
network:
api:
ingress:
@@ -550,6 +556,7 @@ network:
node_port:
enabled: false
port: 30003
bootstrap:
enabled: true
ks_user: admin
@@ -559,6 +566,7 @@ bootstrap:
# By default, this role restricts API operations. To avoid conflicts, do
# not add this role to actual users.
openstack role create --or-show heat_stack_user
dependencies:
dynamic:
common:
@@ -715,6 +723,7 @@ dependencies:
service: identity
- endpoint: internal
service: orchestration
# Names of secrets used by bootstrap and environmental checks
secrets:
identity:
@@ -740,6 +749,7 @@ secrets:
internal: heat-tls-cfn
oci_image_registry:
heat: heat-oci-image-registry
# typically overridden by environmental
# values, but should include all endpoints
# required by this chart
@@ -992,6 +1002,7 @@ endpoints:
port:
ingress:
default: 80
pod:
security_context:
heat:
@@ -1253,19 +1264,23 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
network_policy:
heat:
ingress:
- {}
egress:
- {}
# NOTE(helm_hook): helm_hook might break for helm2 binary.
# set helm3_hook: false when using the helm2 binary.
helm3_hook: true
tls:
identity: false
oslo_messaging: false
oslo_db: false
manifests:
certificates: false
configmap_bin: true
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: heat
version: 0.3.14
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: horizon
version: 0.3.22
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -22,6 +22,7 @@ images:
exclude:
- dep_check
- image_repo_sync
# Use selenium v4 syntax
selenium_v4: true
labels:
@@ -35,6 +36,7 @@ labels:
test:
node_selector_key: openstack-control-plane
node_selector_value: enabled
network:
dashboard:
ingress:
@@ -49,6 +51,7 @@ network:
node_port:
enabled: 'true'
port: 31000
conf:
software:
apache2:
@@ -64,6 +67,8 @@ conf:
- status || sed -i 's/LoadModule status_module/#LoadModule status_module/' /etc/httpd/conf.modules.d/00-base.conf
horizon:
branding:
# favicon must be a base64 encoded .ico string
# logo and logo_splash must be base64 encoded .svg string
logo:
logo_splash:
favicon:
@@ -173,20 +178,20 @@ conf:
# Requires mod_headers to be enabled.
#
custom_panels: {}
## For example, _5000_disable_project_vg_snapshots.py
# _5000_disable_project_vg_snapshots: |
# PANEL = 'vg_snapshots'
# PANEL_DASHBOARD = 'project'
# PANEL_GROUP = 'volumes'
# REMOVE_PANEL = True
## https://docs.openstack.org/horizon/latest/configuration/pluggable_panels.html#id2
## For example, _5000_disable_project_vg_snapshots.py
# _5000_disable_project_vg_snapshots: |
# PANEL = 'vg_snapshots'
# PANEL_DASHBOARD = 'project'
# PANEL_GROUP = 'volumes'
# REMOVE_PANEL = True
## https://docs.openstack.org/horizon/latest/configuration/pluggable_panels.html#id2
local_settings_d: {}
## For example, _50_monasca_ui_settings.py
# _50_monasca_ui_settings: |
# from django.conf import settings
# # Grafana button titles/file names (global across all projects):
# GRAFANA_LINKS = []
# DASHBOARDS = getattr(settings, 'GRAFANA_LINKS', GRAFANA_LINKS)
## For example, _50_monasca_ui_settings.py
# _50_monasca_ui_settings: |
# from django.conf import settings
# # Grafana button titles/file names (global across all projects):
# GRAFANA_LINKS = []
# DASHBOARDS = getattr(settings, 'GRAFANA_LINKS', GRAFANA_LINKS)
local_settings:
config:
@@ -201,7 +206,7 @@ conf:
keystone_default_domain: Default
disable_password_reveal: "True"
show_openrc_file: "True"
csrf_cookie_secure: "False"
csrf_cookie_secure: "True"
csrf_cookie_httponly: "False"
# https://docs.djangoproject.com/en/dev/ref/settings/#csrf-trusted-origins
csrf_trusted_origins: []
@@ -210,7 +215,7 @@ conf:
enable_pwd_validator: false
pwd_validator_regex: '(?=.*[a-zA-Z])(?=.*\d).{8,}|(?=.*\d)(?=.*\W).{8,}|(?=.*\W)(?=.*[a-zA-Z]).{8,}'
pwd_validator_help_text: '_("Your password must be at least eight (8) characters in length and must include characters from at least two (2) of these groupings: alpha, numeric, and special characters.")'
session_cookie_secure: "False"
session_cookie_secure: "True"
session_cookie_httponly: "False"
secure_proxy_ssl_header: false
password_autocomplete: "False"
@@ -344,7 +349,7 @@ conf:
'fade_duration': 1500,
'types': ['alert-success', 'alert-info']
},
'help_url': '{{ .Values.conf.horizon.local_settings.config.help_url }}',
'help_url': "http://docs.openstack.org",
'exceptions': {'recoverable': exceptions.RECOVERABLE,
'not_found': exceptions.NOT_FOUND,
'unauthorized': exceptions.UNAUTHORIZED},
@@ -432,6 +437,11 @@ conf:
# Determines which authentication choice to show as default.
WEBSSO_INITIAL_CHOICE = "{{ .Values.conf.horizon.local_settings.config.auth.sso.initial_choice }}"
{{- if .Values.conf.horizon.local_settings.config.auth.sso.websso_keystone_url }}
# The full auth URL for the Keystone endpoint used for web single-sign-on authentication.
WEBSSO_KEYSTONE_URL = "{{ .Values.conf.horizon.local_settings.config.auth.sso.websso_keystone_url }}"
{{- end }}
# The list of authentication mechanisms
# which include keystone federation protocols.
# Current supported protocol IDs are 'saml2' and 'oidc'
@@ -485,7 +495,7 @@ conf:
# in a future release, but is available as a temporary backup setting to ensure
# compatibility with existing deployments. Further development will not be
# done on the legacy experience. Please report any problems with the new
# experience via the Launchpad tracking system.
# experience via the StoryBoard tracking system.
#
# Toggle LAUNCH_INSTANCE_LEGACY_ENABLED and LAUNCH_INSTANCE_NG_ENABLED to
# determine the experience to enable. Set them both to true to enable
@@ -1104,6 +1114,7 @@ conf:
extra_panels:
- heat_dashboard
- neutron_taas_dashboard
dependencies:
dynamic:
common:
@@ -1146,6 +1157,7 @@ dependencies:
services:
- endpoint: internal
service: dashboard
pod:
security_context:
horizon:
@@ -1282,6 +1294,7 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
# Names of secrets used by bootstrap and environmental checks
secrets:
identity:
@@ -1296,8 +1309,10 @@ secrets:
internal: horizon-tls-web
oci_image_registry:
horizon: horizon-oci-image-registry
tls:
identity: false
# typically overridden by environmental
# values, but should include all endpoints
# required by this chart
@@ -1426,15 +1441,18 @@ endpoints:
port:
ingress:
default: 80
network_policy:
horizon:
ingress:
- {}
egress:
- {}
# NOTE(helm_hook): helm_hook might break for helm2 binary.
# set helm3_hook: false when using the helm2 binary.
helm3_hook: true
manifests:
certificates: false
configmap_bin: true
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: ironic
version: 0.2.15
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -65,7 +65,7 @@ images:
ironic_retrive_swift_config: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
rabbit_init: docker.io/library/rabbitmq:3.9.29-management
conf:
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: keystone-api-proxy
version: 0.2.0
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: keystone
version: 0.3.13
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -20,6 +20,7 @@ labels:
# NOTE(gagehugo): the pre-install hook breaks upgrade for helm2
# Set to false to upgrade using helm2
helm3_hook: true
images:
tags:
bootstrap: docker.io/starlingx/stx-heat:master-debian-stable-latest
@@ -27,8 +28,8 @@ images:
db_init: docker.io/starlingx/stx-heat:master-debian-stable-latest
keystone_db_sync: docker.io/starlingx/stx-keystone:master-debian-stable-latest
db_drop: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
rabbit_init: docker.io/library/rabbitmq:3.9.29-management
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
rabbit_init: docker.io/rabbitmq:3.13-management
keystone_fernet_setup: docker.io/starlingx/stx-keystone:master-debian-stable-latest
keystone_fernet_rotate: docker.io/starlingx/stx-keystone:master-debian-stable-latest
keystone_credential_setup: docker.io/starlingx/stx-keystone:master-debian-stable-latest
@@ -45,6 +46,7 @@ images:
exclude:
- dep_check
- image_repo_sync
bootstrap:
enabled: true
ks_user: admin
@@ -86,6 +88,7 @@ network:
node_port:
enabled: false
port: 30357
dependencies:
dynamic:
common:
@@ -160,6 +163,7 @@ dependencies:
services:
- endpoint: internal
service: local_image_registry
pod:
security_context:
keystone:
@@ -425,9 +429,10 @@ jobs:
user: keystone
group: keystone
fernet_rotate:
# NOTE(rk760n): key rotation frequency, token expiration, active keys should statisfy the formula
# max_active_keys = (token_expiration / rotation_frequency) + 2
# as expiration is 12h, and max_active_keys set to 3 by default, rotation_frequency need to be adjusted
# NOTE(rk760n): key rotation frequency, token expiration, active keys, and allow_expired_window should statisfy the formula
# max_active_keys = ((token_expiration + allow_expired_window) / rotation_frequency) + 2
# As expiration is 12h, max_active_keys is 7 and allow_expired_window is 48h by default,
# rotation_frequency need to be adjusted
# 12 hours
cron: "0 */12 * * *"
user: keystone
@@ -447,12 +452,14 @@ jobs:
history:
success: 3
failed: 1
network_policy:
keystone:
ingress:
- {}
egress:
- {}
conf:
security: |
#
@@ -544,6 +551,7 @@ conf:
domain_config_dir: /etc/keystone/domains
fernet_tokens:
key_repository: /etc/keystone/fernet-keys/
max_active_keys: 7
credential:
key_repository: /etc/keystone/credential-keys/
database:
@@ -576,6 +584,11 @@ conf:
OIDCEnableMemcached: true
# Delimiter for multi-valued claims (Keystone expects semicolon for groups)
OIDCClaimDelimiter: ";"
dex_conf:
verify: False
retries: 1
timeout: 5
probe_endpoint: "/healthz"
dex_idp:
# Enable DEX integration
enabled: false
@@ -1039,6 +1052,7 @@ conf:
formatter_default:
format: "%(message)s"
datefmt: "%Y-%m-%d %H:%M:%S"
# Names of secrets used by bootstrap and environmental checks
secrets:
identity:
@@ -1060,6 +1074,7 @@ secrets:
internal: keystone-tls-api
oci_image_registry:
keystone: keystone-oci-image-registry
# typically overridden by environmental
# values, but should include all endpoints
# required by this chart
@@ -1138,6 +1153,7 @@ endpoints:
# key: null
path:
default: /v3
healthcheck: /healthcheck
scheme:
default: http
service: http
@@ -1257,10 +1273,12 @@ endpoints:
port:
ingress:
default: 80
tls:
identity: false
oslo_messaging: false
oslo_db: false
manifests:
certificates: false
configmap_bin: true
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: libvirt
version: 0.1.31
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -12,11 +12,12 @@ labels:
libvirt:
node_selector_key: openstack-compute-node
node_selector_value: enabled
images:
tags:
libvirt: docker.io/starlingx/stx-libvirt:master-debian-stable-latest
libvirt_exporter: null
ceph_config_helper: 'docker.io/openstackhelm/ceph-config-helper:ubuntu_bionic-20201223'
ceph_config_helper: docker.io/openstackhelm/ceph-config-helper:ubuntu_jammy_19.2.2-1-20250414
dep_check: quay.io/airshipit/kubernetes-entrypoint:9ff5d2e488ad18187bccc48e9595f197d27110c4-ubuntu_jammy
image_repo_sync: null
kubectl: null
@@ -27,11 +28,13 @@ images:
exclude:
- dep_check
- image_repo_sync
network:
# provide what type of network wiring will be used
# possible options: openvswitch, linuxbridge, sriov
backend:
- openvswitch
endpoints:
cluster_domain_suffix: cluster.local
local_image_registry:
@@ -65,12 +68,14 @@ endpoints:
port:
metrics:
default: 9474
network_policy:
libvirt:
ingress:
- {}
egress:
- {}
ceph_client:
configmap: ceph-etc
user_secret_name: cinder-volume-rbd-keyring
@@ -96,9 +101,37 @@ conf:
cert_file: "/etc/pki/libvirt/servercert.pem"
key_file: "/etc/pki/libvirt/private/serverkey.pem"
auth_unix_rw: "none"
listen_addr: 127.0.0.1
listen_addr: "${LISTEN_IP_ADDRESS}"
log_level: "3"
log_outputs: "1:file:/var/log/libvirt/libvirtd.log"
# Modifies the config in which value is specified as the name of a variable
# that is computed in the script.
dynamic_options:
libvirt:
listen_interface: null
listen_address: 127.0.0.1
script: |
#!/bin/bash
set -ex
LIBVIRT_CONF_PATH=/tmp/pod-shared/libvirtd.conf
{{- if .Values.conf.dynamic_options.libvirt.listen_interface }}
LISTEN_INTERFACE="{{ .Values.conf.dynamic_options.libvirt.listen_interface }}"
LISTEN_IP_ADDRESS=$(ip address show $LISTEN_INTERFACE | grep 'inet ' | awk '{print $2}' | awk -F "/" '{print $1}')
{{- else if .Values.conf.dynamic_options.libvirt.listen_address }}
LISTEN_IP_ADDRESS={{ .Values.conf.dynamic_options.libvirt.listen_address }}
{{- end }}
if [[ -z $LISTEN_IP_ADDRESS ]]; then
echo "LISTEN_IP_ADDRESS is not set."
exit 1
fi
tee > ${LIBVIRT_CONF_PATH} << EOF
{{ include "libvirt.utils.to_libvirt_conf" .Values.conf.libvirt }}
EOF
qemu:
vnc_tls: "0"
vnc_tls_x509_verify: "0"
@@ -121,6 +154,34 @@ conf:
- rdma
- misc
- pids
init_modules:
enabled: false
script: |
#!/bin/bash
set -ex
export HOME=/tmp
KVM_QEMU_CONF_HOST="/etc/modprobe.d_host/qemu-system-x86.conf"
if [[ ! -f "${KVM_QEMU_CONF_HOST}" ]]; then
if grep vmx /proc/cpuinfo; then
cat << EOF > ${KVM_QEMU_CONF_HOST}
options kvm_intel nested=1
options kvm_intel enable_apicv=1
options kvm_intel ept=1
EOF
modprobe -r kvm_intel || true
modprobe kvm_intel nested=1
elif grep svm /proc/cpuinfo; then
cat << EOF > ${KVM_QEMU_CONF_HOST}
options kvm_amd nested=1
EOF
modprobe -r kvm_amd || true
modprobe kvm_amd nested=1
else
echo "Nested virtualization is not supported"
fi
fi
vencrypt:
# Issuer to use for the vencrypt certs.
issuer:
@@ -204,8 +265,23 @@ pod:
readOnlyRootFilesystem: false
libvirt_exporter:
privileged: true
libvirt_init_modules:
readOnlyRootFilesystem: true
privileged: true
capabilities:
drop:
- ALL
init_dynamic_options:
runAsUser: 65534
runAsNonRoot: true
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
sidecars:
libvirt_exporter: false
affinity:
anti:
type:
@@ -264,6 +340,7 @@ pod:
limits:
memory: "256Mi"
cpu: "500m"
dependencies:
dynamic:
common:
@@ -309,6 +386,7 @@ dependencies:
services:
- endpoint: internal
service: local_image_registry
manifests:
configmap_bin: true
configmap_etc: true
@@ -318,6 +396,7 @@ manifests:
network_policy: false
role_cert_manager: false
secret_registry: true
secrets:
oci_image_registry:
libvirt: libvirt-oci-image-registry-key
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: mariadb
version: 0.2.43
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -8,39 +8,32 @@
release_group: osh-openstack-mariadb
images:
tags:
mariadb: docker.io/openstackhelm/mariadb:ubuntu_focal-20250809
ingress: null
error_pages: null
mariadb: docker.io/openstackhelm/mariadb:latest-ubuntu_jammy
prometheus_create_mysql_user: null
prometheus_mysql_exporter: null
prometheus_mysql_exporter_helm_tests: null
dep_check: quay.io/airshipit/kubernetes-entrypoint:9ff5d2e488ad18187bccc48e9595f197d27110c4-ubuntu_jammy
image_repo_sync: null
mariadb_backup: null
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
scripted_test: null
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
mariadb_controller: docker.io/openstackhelm/mariadb:ubuntu_focal-20250809
mariadb_controller: docker.io/openstackhelm/mariadb:latest-ubuntu_jammy
pull_policy: "IfNotPresent"
local_registry:
active: false
exclude:
- dep_check
- image_repo_sync
labels:
isApplication: false
server:
node_selector_key: openstack-control-plane
node_selector_value: enabled
ingress:
node_selector_key: openstack-control-plane
node_selector_value: enabled
prometheus_mysql_exporter:
node_selector_key: openstack-control-plane
node_selector_value: enabled
error_server:
node_selector_key: openstack-control-plane
node_selector_value: enabled
job:
node_selector_key: openstack-control-plane
node_selector_value: enabled
@@ -50,6 +43,7 @@ labels:
controller:
node_selector_key: openstack-control-plane
node_selector_value: enabled
pod:
env:
mariadb_controller:
@@ -61,6 +55,7 @@ pod:
mariadb:
readiness:
enabled: true
disk_usage_percent: 99
params:
initialDelaySeconds: 30
periodSeconds: 30
@@ -79,6 +74,19 @@ pod:
initialDelaySeconds: 60
periodSeconds: 60
failureThreshold: 10
mariadb_exporter:
readiness:
enabled: true
params:
initialDelaySeconds: 5
periodSeconds: 60
timeoutSeconds: 10
liveness:
enabled: true
params:
initialDelaySeconds: 15
periodSeconds: 60
timeoutSeconds: 10
security_context:
server:
pod:
@@ -91,20 +99,6 @@ pod:
runAsUser: 999
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
ingress:
pod:
runAsUser: 65534
container:
server:
runAsUser: 0
readOnlyRootFilesystem: false
error_pages:
pod:
runAsUser: 65534
container:
server:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
prometheus_mysql_exporter:
pod:
runAsUser: 99
@@ -148,6 +142,16 @@ pod:
controller:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
cluster_wait:
pod:
runAsUser: 65534
runAsNonRoot: true
container:
mariadb_cluster_wait:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
affinity:
anti:
type:
@@ -171,9 +175,6 @@ pod:
effect: NoSchedule
replicas:
server: 3
ingress: 2
error_page: 1
prometheus_mysql_exporter: 1
controller: 1
lifecycle:
upgrades:
@@ -184,22 +185,13 @@ pod:
max_unavailable: 1
max_surge: 3
termination_grace_period:
prometheus_mysql_exporter:
timeout: 30
error_pages:
timeout: 10
server:
timeout: 600
disruption_budget:
mariadb:
min_available: 0
resources:
enabled: true
prometheus_mysql_exporter:
limits:
memory: "1024Mi"
cpu: "2000m"
requests:
memory: "128Mi"
cpu: "500m"
enabled: false
server:
requests:
memory: "128Mi"
@@ -207,14 +199,6 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
ingress:
requests:
memory: "128Mi"
cpu: "100m"
ephemeral-storage: "500Ki"
limits:
memory: "1024Mi"
cpu: "2000m"
jobs:
tests:
limits:
@@ -251,6 +235,7 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
dependencies:
dynamic:
common:
@@ -261,13 +246,6 @@ dependencies:
- endpoint: node
service: local_image_registry
static:
error_pages:
jobs: null
ingress:
jobs: null
services:
- endpoint: error_pages
service: oslo_db
mariadb_backup:
jobs:
- mariadb-ks-user
@@ -278,18 +256,6 @@ dependencies:
services:
- endpoint: internal
service: oslo_db
prometheus_mysql_exporter:
jobs:
- exporter-create-sql-user
services:
- endpoint: internal
service: oslo_db
prometheus_mysql_exporter_tests:
services:
- endpoint: internal
service: prometheus_mysql_exporter
- endpoint: internal
service: monitoring
image_repo_sync:
services:
- endpoint: internal
@@ -300,6 +266,10 @@ dependencies:
service: oslo_db
controller:
services: null
cluster_wait:
services:
- endpoint: internal
service: oslo_db
volume:
# this value is used for single pod deployments of mariadb to prevent losing all data
# if the pod is restarted
@@ -314,7 +284,13 @@ volume:
enabled: true
class_name: general
size: 5Gi
jobs:
cluster_wait:
clusterCheckWait: 30
clusterCheckRetries: 30
clusterStabilityCount: 30
clusterStabilityWait: 4
exporter_create_sql_user:
backoffLimit: 87600
activeDeadlineSeconds: 3600
@@ -330,10 +306,10 @@ jobs:
# activeDeadlineSeconds == 0 means no deadline
activeDeadlineSeconds: 0
backoffLimit: 6
conf:
tests:
# This may either be:
# * internal: which will hit the endpoint exposed by the ingress controller
# * direct: which will hit the backends directly via a k8s service ip
# Note, deadlocks and failure are to be expected with concurrency if
# hitting the `direct` endpoint.
@@ -345,10 +321,6 @@ conf:
- --number-of-queries=1000
- --number-char-cols=1
- --number-int-cols=1
ingress: null
ingress_conf:
worker-processes: "4"
log-format-stream: "\"$remote_addr [$time_local] $protocol $status $bytes_received $bytes_sent $upstream_addr $upstream_connect_time $upstream_first_byte_time $upstream_session_time $session_time\""
mariadb_server:
setup_wait:
iteration: 30
@@ -524,10 +496,16 @@ conf:
wsrep_provider_options="gmcast.listen_addr=tcp://[::]:{{ tuple "oslo_db" "direct" "wsrep" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}"
bind_address=::
wsrep_sst_method=rsync
{{ if .Values.manifests.certificates }}
wsrep_provider_options="socket.ssl_ca=/etc/mysql/certs/ca.crt; socket.ssl_cert=/etc/mysql/certs/tls.crt; socket.ssl_key=/etc/mysql/certs/tls.key; gmcast.listen_addr=tcp://[::]:{{ tuple "oslo_db" "direct" "wsrep" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}"
{{ else }}
wsrep_provider_options="evs.suspect_timeout=PT30S; gmcast.peer_timeout=PT15S; gmcast.listen_addr=tcp://[::]:{{ tuple "oslo_db" "direct" "wsrep" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}"
{{ end }}
99_force: |
[mysqld]
datadir=/var/lib/mysql
tmpdir=/tmp
monitoring:
prometheus:
enabled: false
@@ -552,6 +530,7 @@ secrets:
server:
public: mariadb-tls-server
internal: mariadb-tls-direct
# typically overridden by environmental
# values, but should include all endpoints
# required by this chart
@@ -632,7 +611,6 @@ endpoints:
default: mariadb
direct: mariadb-server
discovery: mariadb-discovery
error_pages: mariadb-ingress-error-pages
host_fqdn_override:
default: null
path: null
@@ -700,11 +678,10 @@ endpoints:
api:
default: 80
internal: 5000
network:
mariadb: {}
mariadb_discovery: {}
mariadb_ingress: {}
mariadb_ingress_error_pages: {}
mariadb_master: {}
ip_family_policy: PreferDualStack
network_policy:
@@ -718,18 +695,16 @@ network_policy:
- {}
egress:
- {}
# Helm hook breaks for helm2.
# Set helm3_hook: false in case helm2 is used.
helm3_hook: true
manifests:
certificates: false
configmap_bin: true
configmap_etc: true
configmap_ingress_conf: false
configmap_ingress_etc: false
configmap_services_tcp: true
deployment_error: false
deployment_ingress: false
job_pre_apply_cleanup: true
job_image_repo_sync: true
cron_job_mariadb_backup: false
@@ -738,11 +713,8 @@ manifests:
monitoring:
prometheus:
configmap_bin: true
deployment_exporter: true
job_user_create: true
secret_etc: true
service_exporter: true
network_policy_exporter: false
pdb_server: true
network_policy: false
pod_test: false
@@ -753,11 +725,11 @@ manifests:
secret_etc: true
secret_registry: true
service_discovery: true
service_ingress: false
service_error: false
service: true
statefulset: true
config_ipv6: false
deployment_controller: true
service_master: true
job_cluster_wait: false
config_ipv6: false
...
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: memcached
version: 0.1.14
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -14,6 +14,7 @@ conf:
memory: 1024
stats_cachedump:
enabled: true
dependencies:
dynamic:
common:
@@ -30,9 +31,11 @@ dependencies:
services:
- endpoint: internal
service: local_image_registry
secrets:
oci_image_registry:
memcached: memcached-oci-image-registry-key
endpoints:
cluster_domain_suffix: cluster.local
local_image_registry:
@@ -89,22 +92,28 @@ endpoints:
dns:
default: 53
protocol: UDP
network:
memcached: {}
network_policy:
memcached:
ingress:
- {}
egress:
- {}
monitoring:
prometheus:
enabled: false
memcached_exporter:
scrape: true
images:
pull_policy: IfNotPresent
tags:
dep_check: 'quay.io/airshipit/kubernetes-entrypoint:9ff5d2e488ad18187bccc48e9595f197d27110c4-ubuntu_jammy'
memcached: 'docker.io/library/memcached:1.5.5'
dep_check: quay.io/airshipit/kubernetes-entrypoint:9ff5d2e488ad18187bccc48e9595f197d27110c4-ubuntu_jammy
memcached: docker.io/library/memcached:1.5.5
prometheus_memcached_exporter: null
image_repo_sync: null
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
@@ -113,6 +122,7 @@ images:
exclude:
- dep_check
- image_repo_sync
labels:
isApplication: false
server:
@@ -123,24 +133,61 @@ labels:
node_selector_value: enabled
manifests:
configmap_bin: true
deployment: true
statefulset: true
job_pre_apply_cleanup: true
job_image_repo_sync: true
network_policy: false
service: true
secret_registry: true
pod:
security_context:
server:
pod:
runAsUser: 65534
runAsNonRoot: true
fsGroup: 65534
container:
memcached:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
memcached_exporter:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
probes:
memcached:
memcached:
readiness:
enabled: True
params:
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 5
liveness:
enabled: True
params:
initialDelaySeconds: 10
periodSeconds: 15
timeoutSeconds: 10
memcached_exporter:
liveness:
enabled: True
params:
initialDelaySeconds: 15
periodSeconds: 60
timeoutSeconds: 10
readiness:
enabled: True
params:
initialDelaySeconds: 5
periodSeconds: 60
timeoutSeconds: 10
affinity:
anti:
topologyKey:
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: neutron
version: 0.3.44
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -14,8 +14,8 @@ images:
db_init: docker.io/starlingx/stx-heat:master-debian-stable-latest
neutron_db_sync: docker.io/starlingx/stx-neutron:master-debian-stable-latest
db_drop: docker.io/starlingx/stx-heat:master-debian-stable-latest
rabbit_init: docker.io/library/rabbitmq:3.9.29-management
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
rabbit_init: docker.io/rabbitmq:3.13-management
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
netoffload: null
@@ -44,6 +44,7 @@ images:
exclude:
- dep_check
- image_repo_sync
labels:
isApplication: false
agent:
@@ -96,6 +97,7 @@ labels:
test:
node_selector_key: openstack-control-plane
node_selector_value: enabled
network:
# provide what type of network wiring will be used
backend:
@@ -136,11 +138,13 @@ network:
node_port:
enabled: false
port: 30096
bootstrap:
enabled: false
ks_user: neutron
script: |
openstack token issue
dependencies:
dynamic:
common:
@@ -365,6 +369,7 @@ dependencies:
services:
- endpoint: internal
service: local_image_registry
pod:
use_fqdn:
neutron_agent: true
@@ -1015,6 +1020,7 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
conf:
rally_tests:
force_project_purge: false
@@ -1417,13 +1423,6 @@ conf:
# INFO means log all usage
# ERROR means only log unsuccessful attempts
syslog_log_level=ERROR
[xenapi]
# XenAPI configuration is only required by the L2 agent if it is to
# target a XenServer/XCP compute host's dom0.
xenapi_connection_url=<None>
xenapi_connection_username=root
xenapi_connection_password=<None>
rootwrap_filters:
debug:
pods:
@@ -1987,6 +1986,8 @@ conf:
endpoint_type: internal
allow_reverse_dns_lookup: true
ironic:
auth_type: password
auth_version: v3
endpoint_type: internal
keystone_authtoken:
service_token_roles: service
@@ -2141,21 +2142,22 @@ conf:
enable_metadata_network: false
resync_interval: 30
dnsmasq: |
#no-hosts
#port=5353
#cache-size=500
#no-negcache
#dns-forward-max=100
#resolve-file=
#strict-order
#bind-interface
#bind-dynamic
#domain=
#dhcp-range=10.10.10.10,10.10.10.100,24h
#dhcp-lease-max=150
#dhcp-host=11:22:33:44:55:66,ignore
#dhcp-option=3,10.10.10.1
#dhcp-option-force=26,1450
#no-hosts
#port=5353
#cache-size=500
#no-negcache
#dns-forward-max=100
#resolve-file=
#strict-order
#bind-interface
#bind-dynamic
#domain=
#dhcp-range=10.10.10.10,10.10.10.100,24h
#dhcp-lease-max=150
#dhcp-host=11:22:33:44:55:66,ignore
#dhcp-option=3,10.10.10.1
#dhcp-option-force=26,1450
neutron_vpnaas: null
ovn_vpn_agent:
DEFAULT:
@@ -2174,6 +2176,7 @@ conf:
metering_agent: null
metadata_agent:
DEFAULT:
log_config_append: /etc/neutron/logging.conf
# we cannot change the proxy socket path as it is declared
# as a hostPath volume from agent daemonsets
metadata_proxy_socket: /var/lib/neutron/openstack-helm/metadata_proxy
@@ -2195,6 +2198,7 @@ conf:
ovs:
ovsdb_connection: unix:/run/openvswitch/db.sock
bgp_dragent: {}
rabbitmq:
# NOTE(rk760n): adding rmq policy to mirror messages from notification queues and set expiration time for the ones
policies:
@@ -2228,12 +2232,14 @@ conf:
# br-ex will be added by default
auto_bridge_add:
br-ex: null
# Network off-loading configuration
netoffload:
enabled: false
asap2:
# - dev: enp97s0f0
# vfs: 16
# - dev: enp97s0f0
# vfs: 16
# configuration of OVS DPDK bridges and NICs
# this is a separate section and not part of the auto_bridge_add section
# because additional parameters are needed
@@ -2268,8 +2274,8 @@ conf:
# vhost-iommu-support: true
bridges:
- name: br-phy
# optional parameter, in case tunnel traffic needs to be transported over a vlan underlay
# - tunnel_underlay_vlan: 45
# optional parameter, in case tunnel traffic needs to be transported over a vlan underlay
# - tunnel_underlay_vlan: 45
# Optional parameter for configuring bonding in OVS-DPDK
# - name: br-phy-bond0
# bonds:
@@ -2343,6 +2349,7 @@ secrets:
internal: neutron-tls-server
oci_image_registry:
neutron: neutron-oci-image-registry
# typically overridden by environmental
# values, but should include all endpoints
# required by this chart
@@ -2649,6 +2656,7 @@ endpoints:
port:
ingress:
default: 80
network_policy:
neutron:
# TODO(lamt): Need to tighten this ingress for security.
@@ -2656,14 +2664,18 @@ network_policy:
- {}
egress:
- {}
helm3_hook: true
health_probe:
logging:
level: ERROR
tls:
identity: false
oslo_messaging: false
oslo_db: false
manifests:
certificates: false
configmap_bin: true
@@ -2678,6 +2690,8 @@ manifests:
daemonset_bagpipe_bgp: false
daemonset_bgp_dragent: false
daemonset_netns_cleanup_cron: true
daemonset_ovn_metadata_agent: false
daemonset_ovn_vpn_agent: false
deployment_ironic_agent: false
deployment_server: true
deployment_rpc_server: true
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: nginx-ports-control
version: 0.2.0
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: nova-api-proxy
version: 0.2.0
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: nova
version: 0.3.42
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -33,15 +33,16 @@ labels:
scheduler:
node_selector_key: openstack-control-plane
node_selector_value: enabled
serialproxy:
node_selector_key: openstack-control-plane
node_selector_value: enabled
spiceproxy:
node_selector_key: openstack-control-plane
node_selector_value: enabled
test:
node_selector_key: openstack-control-plane
node_selector_value: enabled
consoleauth:
node_selector_key: openstack-control-plane
node_selector_value: enabled
images:
pull_policy: IfNotPresent
tags:
@@ -49,8 +50,8 @@ images:
db_drop: docker.io/starlingx/stx-heat:master-debian-stable-latest
db_init: docker.io/starlingx/stx-heat:master-debian-stable-latest
dep_check: 'quay.io/airshipit/kubernetes-entrypoint:9ff5d2e488ad18187bccc48e9595f197d27110c4-ubuntu_jammy'
rabbit_init: docker.io/library/rabbitmq:3.9.29-management
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
rabbit_init: docker.io/rabbitmq:3.13-management
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
nova_archive_deleted_rows: docker.io/starlingx/stx-nova:master-debian-stable-latest
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
@@ -65,10 +66,11 @@ images:
nova_novncproxy: docker.io/starlingx/stx-nova:master-debian-stable-latest
nova_novncproxy_assets: 'docker.io/starlingx/stx-nova:master-debian-stable-latest'
nova_scheduler: docker.io/starlingx/stx-nova:master-debian-stable-latest
nova_storage_init: 'docker.io/openstackhelm/ceph-config-helper:ubuntu_bionic-20201223'
nova_storage_init: docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_jammy
# NOTE(portdirect): we simply use the ceph config helper here,
# as it has both oscli and jq.
nova_service_cleaner: 'docker.io/openstackhelm/ceph-config-helper:ubuntu_bionic-20201223'
nova_service_cleaner: docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_jammy
nova_serialproxy: docker.io/starlingx/stx-nova:master-debian-stable-latest
nova_spiceproxy: docker.io/starlingx/stx-nova:master-debian-stable-latest
nova_spiceproxy_assets: docker.io/starlingx/stx-nova:master-debian-stable-latest
test: null
@@ -80,6 +82,7 @@ images:
exclude:
- dep_check
- image_repo_sync
jobs:
# NOTE(portdirect): When using cells new nodes will be added to the cell on the hour by default.
# TODO(portdirect): Add a post-start action to nova compute pods that registers themselves.
@@ -108,6 +111,7 @@ jobs:
history:
success: 3
failed: 1
bootstrap:
enabled: true
ks_user: admin
@@ -193,6 +197,7 @@ bootstrap:
sleep $SLEEP
fi
done
network:
# provide what type of network wiring will be used
# possible options: openvswitch, linuxbridge, sriov
@@ -235,6 +240,17 @@ network:
node_port:
enabled: false
port: 30680
serialproxy:
ingress:
public: true
classes:
namespace: "nginx-openstack"
cluster: "nginx"
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
node_port:
enabled: false
port: 30683
spiceproxy:
ingress:
public: true
@@ -257,6 +273,7 @@ network:
- ed25519
private_key: 'null'
public_key: 'null'
dependencies:
dynamic:
common:
@@ -449,6 +466,12 @@ dependencies:
services:
- endpoint: internal
service: oslo_db
serialproxy:
jobs:
- nova-db-sync
services:
- endpoint: internal
service: oslo_db
spiceproxy:
jobs:
- nova-db-sync
@@ -482,10 +505,21 @@ dependencies:
services:
- endpoint: internal
service: local_image_registry
console:
# serial | spice | novnc | none
console_kind: novnc
serial:
compute:
# IF blank, search default routing interface
server_proxyclient_interface: null
# or set network cidr
server_proxyclient_network_cidr: 0/0
proxy:
# IF blank, search default routing interface
server_proxyclient_interface: null
# or set network cidr
server_proxyclient_network_cidr: 0/0
spice:
compute:
# IF blank, search default routing interface
@@ -512,11 +546,13 @@ console:
ceph_client:
configmap: ceph-etc
user_secret_name: pvc-ceph-client-key
rbd_pool:
app_name: nova-vms
replication: 3
crush_rule: replicated_rule
chunk_size: 8
conf:
security: |
#
@@ -1424,6 +1460,10 @@ conf:
server_listen: "::"
# This would be set by each compute nodes's ip
# server_proxyclient_address: 127.0.0.1
serial_console:
serialproxy_host: "::"
# This would be set by each compute nodes's ip
# proxyclient_address: 127.0.0.1
conductor:
workers: 1
oslo_policy:
@@ -1706,8 +1746,13 @@ secrets:
spiceproxy:
public: nova-spiceproxy-tls-public
internal: nova-spiceproxy-tls-proxy
compute_serial_proxy:
serialproxy:
public: nova-serialproxy-tls-public
internal: nova-serialproxy-tls-proxy
oci_image_registry:
nova: nova-oci-image-registry
# typically overridden by environmental
# values, but should include all endpoints
# required by this chart
@@ -2001,6 +2046,21 @@ endpoints:
commonName: nova-novncproxy
usages:
- client auth
compute_serial_proxy:
name: nova
hosts:
default: nova-serialproxy
public: serialproxy
host_fqdn_override:
default: null
scheme:
default: 'ws'
path:
default: /serial_auto.html
port:
serial_proxy:
default: 6083
public: 80
compute_spice_proxy:
name: nova
hosts:
@@ -2102,6 +2162,7 @@ endpoints:
port:
ingress:
default: 80
pod:
probes:
rpc_timeout: 60
@@ -2197,6 +2258,20 @@ pod:
initialDelaySeconds: 80
periodSeconds: 90
timeoutSeconds: 70
serialproxy:
default:
liveness:
enabled: True
params:
initialDelaySeconds: 30
periodSeconds: 60
timeoutSeconds: 15
readiness:
enabled: True
params:
initialDelaySeconds: 30
periodSeconds: 60
timeoutSeconds: 15
compute-spice-proxy:
default:
liveness:
@@ -2229,6 +2304,9 @@ pod:
nova_compute_vnc_init:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
nova_compute_serial_init:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
nova_compute_spice_init:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
@@ -2264,6 +2342,12 @@ pod:
nova_scheduler:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
nova_serialproxy_init:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
nova_serialproxy:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
nova_spiceproxy_init:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
@@ -2395,6 +2479,11 @@ pod:
nova_novncproxy:
volumeMounts:
volumes:
nova_serialproxy:
init_serialproxy: null
nova_serialproxy:
volumeMounts:
volumes:
nova_spiceproxy:
init_spiceproxy: null
nova_spiceproxy:
@@ -2413,8 +2502,8 @@ pod:
conductor: 1
scheduler: 1
novncproxy: 1
serialproxy: 1
spiceproxy: 1
consoleauth: 1
lifecycle:
upgrades:
deployments:
@@ -2498,6 +2587,13 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
serialproxy:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
spiceproxy:
requests:
memory: "128Mi"
@@ -2604,6 +2700,7 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
network_policy:
nova:
# TODO(lamt): Need to tighten this ingress for security.
@@ -2611,16 +2708,20 @@ network_policy:
- {}
egress:
- {}
# NOTE(helm_hook): helm_hook might break for helm2 binary.
# set helm3_hook: false when using the helm2 binary.
helm3_hook: true
health_probe:
logging:
level: ERROR
tls:
identity: false
oslo_messaging: false
oslo_db: false
manifests:
certificates: false
compute_uuid_self_provisioning: false
@@ -2634,10 +2735,12 @@ manifests:
deployment_api_osapi: true
deployment_conductor: true
deployment_novncproxy: true
deployment_serialproxy: true
deployment_spiceproxy: true
deployment_scheduler: true
ingress_metadata: true
ingress_novncproxy: true
ingress_serialproxy: true
ingress_spiceproxy: true
ingress_osapi: true
job_pre_apply_cleanup: true
@@ -2665,10 +2768,12 @@ manifests:
secret_registry: true
service_ingress_metadata: true
service_ingress_novncproxy: true
service_ingress_serialproxy: true
service_ingress_spiceproxy: true
service_ingress_osapi: true
service_metadata: true
service_novncproxy: true
service_serialproxy: true
service_spiceproxy: true
service_osapi: true
statefulset_compute_ironic: false
@@ -2682,7 +2787,7 @@ manifests:
secret_keystone_placement: false
service_ingress_placement: false
service_placement: false
deployment_consoleauth: false
# List of hosts and uuids
hosts_uuids: []
annotations:
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: openvswitch
version: 0.1.25
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -19,11 +19,13 @@ images:
exclude:
- dep_check
- image_repo_sync
labels:
isApplication: false
ovs:
node_selector_key: openvswitch
node_selector_value: enabled
pod:
tini:
enabled: true
@@ -134,9 +136,11 @@ pod:
user:
nova:
uid: 42424
secrets:
oci_image_registry:
openvswitch: openvswitch-oci-image-registry-key
endpoints:
cluster_domain_suffix: cluster.local
local_image_registry:
@@ -166,12 +170,14 @@ endpoints:
port:
registry:
default: null
network_policy:
openvswitch:
ingress:
- {}
egress:
- {}
dependencies:
dynamic:
common:
@@ -187,6 +193,7 @@ dependencies:
services:
- endpoint: internal
service: local_image_registry
manifests:
configmap_bin: true
daemonset: true
@@ -195,6 +202,7 @@ manifests:
job_image_repo_sync: true
network_policy: false
secret_registry: true
conf:
poststart:
timeout: 5
@@ -227,4 +235,10 @@ conf:
# vHost IOMMU feature restricts the vhost memory that a virtio device
# access, available with DPDK v17.11
# vhost_iommu_support: true
## OVS supports run in non-root for both OVS and OVS DPDK mode, the user
# for OVS need to be added to container image with user id 42424.
# useradd -u 42424 openvswitch; groupmod -g 42424 openvswitch
#
# Leave empty to run as user that invokes the command (default: root)
ovs_user_name: "openvswitch:openvswitch"
...
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: pci-irq-affinity-agent
version: 0.2.0
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -16,7 +16,7 @@ spec:
chart:
spec:
chart: placement
version: 0.3.14
version: 2025.1.0
sourceRef:
kind: HelmRepository
name: starlingx
@@ -6,67 +6,144 @@
---
release_group: osh-openstack-placement
endpoints:
identity:
force_public_endpoint: true
labels:
isApplication: false
placement:
api:
node_selector_key: openstack-control-plane
node_selector_value: enabled
job:
node_selector_key: openstack-control-plane
node_selector_value: enabled
images:
pull_policy: IfNotPresent
tags:
db_drop: docker.io/starlingx/stx-heat:master-debian-stable-latest
db_init: docker.io/starlingx/stx-heat:master-debian-stable-latest
dep_check: quay.io/airshipit/kubernetes-entrypoint:9ff5d2e488ad18187bccc48e9595f197d27110c4-ubuntu_jammy
image_repo_sync: null
ks_user: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_user: docker.io/starlingx/stx-openstackclients:master-debian-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-debian-stable-latest
ks_endpoints: docker.io/starlingx/stx-heat:master-debian-stable-latest
placement: docker.io/starlingx/stx-placement:master-debian-stable-latest
placement_db_sync: docker.io/starlingx/stx-placement:master-debian-stable-latest
pre_apply_cleanup: docker.io/starlingx/stx-vault-manager:master-debian-stable-latest
local_registry:
active: false
exclude:
- dep_check
- image_repo_sync
network:
api:
port: 8778
ingress:
public: true
classes:
namespace: "nginx-openstack"
cluster: "nginx"
pod:
replicas:
placement: 1
affinity:
anti:
type:
default: requiredDuringSchedulingIgnoredDuringExecution
tolerations:
placement:
enabled: true
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
- key: openstack-compute-node
operator: Exists
effect: NoSchedule
resources:
enabled: true
api:
requests:
ephemeral-storage: "250Ki"
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
external_policy_local: false
node_port:
enabled: false
port: 30778
conf:
policy: {}
placement:
DEFAULT:
debug: false
use_syslog: false
log_config_append: /etc/placement/logging.conf
placement_database:
connection: null
keystone_authtoken:
service_token_roles: service
service_token_roles_required: true
auth_version: v3
auth_type: password
memcache_security_strategy: ENCRYPT
service_type: placement
auth_uri: http://keystone.openstack.svc.cluster.local:80/v3
auth_url: http://keystone.openstack.svc.cluster.local:80/v3
logging:
loggers:
keys:
- root
- placement
handlers:
keys:
- stdout
- stderr
- "null"
formatters:
keys:
- context
- default
logger_root:
level: WARNING
handlers: 'null'
logger_placement:
level: INFO
handlers:
- stdout
qualname: placement
logger_amqp:
level: WARNING
handlers: stderr
qualname: amqp
logger_amqplib:
level: WARNING
handlers: stderr
qualname: amqplib
logger_eventletwsgi:
level: WARNING
handlers: stderr
qualname: eventlet.wsgi.server
logger_sqlalchemy:
level: WARNING
handlers: stderr
qualname: sqlalchemy
logger_boto:
level: WARNING
handlers: stderr
qualname: boto
handler_null:
class: logging.NullHandler
formatter: default
args: ()
handler_stdout:
class: StreamHandler
args: (sys.stdout,)
formatter: context
handler_stderr:
class: StreamHandler
args: (sys.stderr,)
formatter: context
formatter_context:
class: oslo_log.formatters.ContextFormatter
datefmt: "%Y-%m-%d %H:%M:%S"
formatter_default:
format: "%(message)s"
datefmt: "%Y-%m-%d %H:%M:%S"
placement_api_uwsgi:
uwsgi:
processes: 1
add-header: "Connection: close"
buffer-size: 65535
die-on-term: true
enable-threads: true
exit-on-reload: false
hook-master-start: unix_signal:15 gracefully_kill_them_all
lazy-apps: true
log-x-forwarded-for: true
master: true
procname-prefix-spaced: "placement-api:"
route-user-agent: '^kube-probe.* donotlog:'
thunder-lock: true
worker-reload-mercy: 80
wsgi-file: /var/lib/openstack/bin/placement-api
wsgi_placement: |
Listen :::{{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
@@ -97,4 +174,323 @@ conf:
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
</Location>
endpoints:
cluster_domain_suffix: cluster.local
local_image_registry:
name: docker-registry
namespace: docker-registry
hosts:
default: localhost
internal: docker-registry
node: localhost
host_fqdn_override:
default: null
port:
registry:
node: 5000
oci_image_registry:
name: oci-image-registry
namespace: oci-image-registry
auth:
enabled: false
placement:
username: placement
password: password
hosts:
default: localhost
host_fqdn_override:
default: null
port:
registry:
default: null
oslo_db:
auth:
admin:
username: root
password: password
secret:
tls:
internal: mariadb-tls-direct
placement:
username: placement
password: password
# NOTE: This should be the username/password used to access the nova_api
# database. This is required only if database migration from nova to
# placement is desired.
nova_api:
username: nova
password: password
hosts:
default: mariadb
host_fqdn_override:
default: null
path: /placement
scheme: mysql+pymysql
port:
mysql:
default: 3306
oslo_cache:
auth:
# NOTE(portdirect): this is used to define the value for keystone
# authtoken cache encryption key, if not set it will be populated
# automatically with a random value, but to take advantage of
# this feature all services should be set to use the same key,
# and memcache service.
memcache_secret_key: null
hosts:
default: memcached
host_fqdn_override:
default: null
port:
memcache:
default: 11211
identity:
force_public_endpoint: true
name: keystone
auth:
admin:
region_name: RegionOne
username: admin
password: password
project_name: admin
user_domain_name: default
project_domain_name: default
placement:
role: admin
region_name: RegionOne
username: placement
password: password
project_name: service
user_domain_name: service
project_domain_name: service
hosts:
default: keystone
internal: keystone-api
host_fqdn_override:
default: null
path:
default: /v3
scheme:
default: http
port:
api:
default: 80
internal: 5000
placement:
name: placement
hosts:
default: placement-api
public: placement
host_fqdn_override:
default: null
path:
default: /
scheme:
default: 'http'
service: 'http'
port:
api:
default: 8778
public: 80
service: 8778
pod:
security_context:
placement:
pod:
runAsUser: 42424
container:
placement_api:
readOnlyRootFilesystem: false
runAsUser: 0
placement_mysql_migration:
readOnlyRootFilesystem: false
runAsUser: 0
affinity:
anti:
type:
default: requiredDuringSchedulingIgnoredDuringExecution
topologyKey:
default: kubernetes.io/hostname
tolerations:
placement:
enabled: true
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
- key: openstack-compute-node
operator: Exists
effect: NoSchedule
mounts:
placement:
init_container: null
placement:
volumeMounts:
volumes:
replicas:
api: 1
lifecycle:
upgrades:
deployments:
revision_history: 3
pod_replacement_strategy: RollingUpdate
rolling_update:
max_unavailable: 1
max_surge: 3
disruption_budget:
api:
min_available: 0
termination_grace_period:
api:
timeout: 30
resources:
enabled: true
api:
requests:
ephemeral-storage: "250Ki"
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
jobs:
db_init:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
db_sync:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
db_drop:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
ks_endpoints:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
ks_service:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
ks_user:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
secrets:
identity:
admin: placement-keystone-admin
placement: placement-keystone-user
oslo_db:
admin: placement-db-admin
placement: placement-db-user
tls:
placement:
api:
public: placement-tls-public
internal: placement-tls-api
oci_image_registry:
placement: placement-oci-image-registry
dependencies:
dynamic:
common:
local_image_registry:
jobs:
- image-repo-sync
services:
- endpoint: node
service: local_image_registry
static:
api:
jobs:
- placement-db-sync