Refactor values_overrides for porthole charts

* Switch to using the OSH plugin for processing values_overrides.
* Move override files into a separate directory, aligning with
  the structure of the openstack-helm-infra repository.
* Clean up and streamline related Bash scripts.

Change-Id: Ie14cb5c4885bff0572aa57eab18b690593f6c2f3
This commit is contained in:
Arina Stebenkova 2025-03-19 20:32:14 +02:00
parent 2d3e2028ad
commit f89395dc9c
39 changed files with 312 additions and 123 deletions

View File

@ -22,7 +22,7 @@ IMAGE_NAME ?= $@
IMAGE_TAG ?= latest
BUILD_DIR := $(shell mktemp -d)
HELM ?= $(BUILD_DIR)/helm
CHARTS := $(filter-out deps, $(patsubst charts/%/.,%,$(wildcard charts/*/.)))
CHARTS := $(filter-out deps values_overrides, $(patsubst charts/%/.,%,$(wildcard charts/*/.)))
IMAGES := $(addprefix porthole-,$(patsubst images/%/.,%,$(wildcard images/*/.)))
PROXY ?= http://proxy.foo.com:8000
NO_PROXY ?= localhost,127.0.0.1,.svc.cluster.local

View File

@ -1 +1,22 @@
values_overrides
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj

View File

@ -1 +1,22 @@
values_overrides
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj

View File

@ -1 +1,22 @@
values_overrides
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj

View File

@ -1 +1,22 @@
values_overrides
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj

View File

@ -1 +1,22 @@
values_overrides
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj

View File

@ -1 +1,22 @@
values_overrides
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj

View File

@ -1 +1,22 @@
values_overrides
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj

View File

@ -7,7 +7,7 @@ cd "${PORTHOLE_PATH}" || exit
mkdir -p artifacts
make all
make all || { echo "[!] Failed to build Helm charts. Aborting..."; exit 1; }
cd charts || exit
for i in $(find . -maxdepth 1 -name "*.tgz" -print | sed -e 's/\-[0-9.]*\.tgz//'| cut -d / -f 2 | sort)

View File

@ -12,15 +12,18 @@
# under the License.
set -xe
namespace=utility
export HELM_CHART_ROOT_PATH="${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}"
: ${PORTHOLE_EXTRA_HELM_ARGS_CALICOCTL_UTILITY:="$(helm osh get-values-overrides -c calicoctl-utility)"}
# NOTE: Define variables
: ${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}
: ${PORTHOLE_VALUES_OVERRIDES_PATH:="../porthole/charts/values_overrides"}
: ${PORTHOLE_EXTRA_HELM_ARGS_CALICOCTL_UTILITY:="$(helm osh get-values-overrides -p ${PORTHOLE_VALUES_OVERRIDES_PATH} -c calicoctl-utility ${FEATURES})"}
: ${NAMESPACE:=utility}
helm upgrade --install calicoctl-utility ./artifacts/calicoctl-utility.tgz --namespace=$namespace \
# NOTE: Deploy calicoctl-utility helm chart
helm upgrade --install calicoctl-utility ./artifacts/calicoctl-utility.tgz \
--namespace=${NAMESPACE} \
${PORTHOLE_EXTRA_HELM_ARGS_CALICOCTL_UTILITY}
# Wait for Deployment
: "${OSH_INFRA_PATH:="../openstack-helm-infra"}"
cd "${OSH_INFRA_PATH}"
helm osh wait-for-pods $namespace
# NOTE: Wait for deploy
helm osh wait-for-pods ${NAMESPACE}

View File

@ -1,23 +1,37 @@
#!/bin/bash
CURRENT_DIR="$(pwd)"
: "${OSH_PATH:="../openstack-helm"}"
: "${OSH_INFRA_PATH:="../openstack-helm-infra"}"
#
# 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.
set -xe
CURRENT_DIR="$(pwd)"
# NOTE: Define variables
: ${OSH_PATH:="../openstack-helm"}
: ${OSH_INFRA_PATH:="../openstack-helm-infra"}
: ${NAMESPACE:=utility}
cd "${OSH_INFRA_PATH}" || exit
# Lint and package ceph charts
# NOTE: Lint and package ceph helm charts
for CHART in ceph-mon ceph-osd ceph-client ceph-provisioners; do
make "${CHART}"
make "${CHART}" SKIP_CHANGELOG=1
done
./tools/deployment/ceph/ceph.sh
namespace="utility"
: ${OSH_EXTRA_HELM_ARGS:=""}
cd "${OSH_INFRA_PATH}"
#Deploy Ceph-provisioners
tee /tmp/ceph-utility-config.yaml <<EOF
endpoints:
identity:
@ -50,23 +64,33 @@ pod:
init: runtime/default
EOF
: ${OSH_EXTRA_HELM_ARGS:=""}
: ${OSH_INFRA_VALUES_OVERRIDES_PATH:="../openstack-helm-infra/values_overrides"}
: ${OSH_INFRA_EXTRA_HELM_ARGS_CEPH_DEPLOY:="$(helm osh get-values-overrides -p ${OSH_INFRA_VALUES_OVERRIDES_PATH} -c ceph-provisioners ${FEATURES})"}
# NOTE: Deploy ceph-provisioners helm chart
helm upgrade --install ceph-utility-config ./ceph-provisioners \
--namespace=$namespace \
--namespace=${NAMESPACE} \
--values=/tmp/ceph-utility-config.yaml \
${OSH_EXTRA_HELM_ARGS} \
${OSH_INFRA_EXTRA_HELM_ARGS_CEPH_DEPLOY:-$(helm osh get-values-overrides -c ceph-provisioners)} \
${OSH_INFRA_EXTRA_HELM_ARGS_CEPH_DEPLOY} \
${OSH_EXTRA_HELM_ARGS_CEPH_NS_ACTIVATE}
# Deploy Ceph-Utility
# NOTE: Wait for deploy
helm osh wait-for-pods ${NAMESPACE}
cd ${CURRENT_DIR}
export HELM_CHART_ROOT_PATH="${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}"
: ${PORTHOLE_EXTRA_HELM_ARGS_CEPH_UTILITY:="$(helm osh get-values-overrides -c ceph-utility)"}
# NOTE: Define variables
: ${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}
: ${PORTHOLE_VALUES_OVERRIDES_PATH:="../porthole/charts/values_overrides"}
: ${PORTHOLE_EXTRA_HELM_ARGS_CEPH_UTILITY:="$(helm osh get-values-overrides -p ${PORTHOLE_VALUES_OVERRIDES_PATH} -c ceph-utility ${FEATURES})"}
helm upgrade --install ceph-utility ./artifacts/ceph-utility.tgz --namespace=$namespace \
# NOTE: Deploy ceph-utility helm chart
helm upgrade --install ceph-utility ./artifacts/ceph-utility.tgz \
--namespace=${NAMESPACE} \
${PORTHOLE_EXTRA_HELM_ARGS_CEPH_UTILITY}
# Wait for Deployment
: "${OSH_INFRA_PATH:="../openstack-helm-infra"}"
cd "${OSH_INFRA_PATH}"
helm osh wait-for-pods $namespace
# NOTE: Wait for deploy
helm osh wait-for-pods ${NAMESPACE}

View File

@ -13,16 +13,18 @@
# under the License.
set -xe
namespace="utility"
export HELM_CHART_ROOT_PATH="${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}"
: ${PORTHOLE_EXTRA_HELM_ARGS_COMPUTE_UTILITY:="$(helm osh get-values-overrides -c compute-utility)"}
# NOTE: Define variables
: ${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}
: ${PORTHOLE_VALUES_OVERRIDES_PATH:="../porthole/charts/values_overrides"}
: ${PORTHOLE_EXTRA_HELM_ARGS_COMPUTE_UTILITY:="$(helm osh get-values-overrides -p ${PORTHOLE_VALUES_OVERRIDES_PATH} -c compute-utility ${FEATURES})"}
: ${NAMESPACE:=utility}
helm upgrade --install compute-utility ./artifacts/compute-utility.tgz --namespace=$namespace \
# NOTE: Deploy compute-utility helm chart
helm upgrade --install compute-utility ./artifacts/compute-utility.tgz \
--namespace=${NAMESPACE} \
${PORTHOLE_EXTRA_HELM_ARGS_COMPUTE_UTILITY}
# NOTE: Wait for deploy
helm osh wait-for-pods ${NAMESPACE}
# Wait for Deployment
: "${OSH_INFRA_PATH:="../openstack-helm-infra"}"
cd "${OSH_INFRA_PATH}"
helm osh wait-for-pods $namespace

View File

@ -12,16 +12,18 @@
# under the License.
set -xe
namespace="utility"
export HELM_CHART_ROOT_PATH="${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}"
: ${PORTHOLE_EXTRA_HELM_ARGS_ETCDCTL_UTILITY:="$(helm osh get-values-overrides -c etcdctl-utility)"}
# NOTE: Define variables
: ${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}
: ${PORTHOLE_VALUES_OVERRIDES_PATH:="../porthole/charts/values_overrides"}
: ${PORTHOLE_EXTRA_HELM_ARGS_ETCDCTL_UTILITY:="$(helm osh get-values-overrides -p ${PORTHOLE_VALUES_OVERRIDES_PATH} -c etcdctl-utility ${FEATURES})"}
: ${NAMESPACE:=utility}
helm upgrade --install etcdctl-utility ./artifacts/etcdctl-utility.tgz --namespace=$namespace \
# NOTE: Deploy etcdctl-utility helm chart
helm upgrade --install etcdctl-utility ./artifacts/etcdctl-utility.tgz \
--namespace=${NAMESPACE} \
${PORTHOLE_EXTRA_HELM_ARGS_ETCDCTL_UTILITY}
# NOTE: Wait for deploy
helm osh wait-for-pods ${NAMESPACE}
# Wait for Deployment
: "${OSH_INFRA_PATH:="../openstack-helm-infra"}"
cd "${OSH_INFRA_PATH}"
helm osh wait-for-pods $namespace

View File

@ -14,10 +14,11 @@
set -xe
CURRENT_DIR="$(pwd)"
: "${OSH_PATH:="../openstack-helm"}"
# Deploy mariadb server
cd "${OSH_PATH}"
# NOTE: Define variables
: ${OSH_PATH:="../openstack-helm"}
: ${OSH_INFRA_PATH:="../openstack-helm-infra"}
tee /tmp/mariadb-server-config.yaml <<EOF
conf:
backup:
@ -31,37 +32,40 @@ manifests:
pvc_backup: true
EOF
export HELM_CHART_ROOT_PATH="${HELM_CHART_ROOT_PATH:="${OSH_INFRA_PATH:="../openstack-helm-infra"}"}"
: ${OSH_EXTRA_HELM_ARGS_MARIADB:="$(helm osh get-values-overrides -c mariadb)"}
cd "${OSH_INFRA_PATH}" || exit
#NOTE: Lint and package chart
make -C "${HELM_CHART_ROOT_PATH}" mariadb SKIP_CHANGELOG=1
# NOTE: Lint and package mariadb helm chart
make mariadb SKIP_CHANGELOG=1
#NOTE: Deploy command
: ${OSH_EXTRA_HELM_ARGS:=""}
helm upgrade --install mariadb ${HELM_CHART_ROOT_PATH}/mariadb \
: ${OSH_INFRA_VALUES_OVERRIDES_PATH:="../openstack-helm-infra/values_overrides"}
: ${OSH_EXTRA_HELM_ARGS_MARIADB:="$(helm osh get-values-overrides -p ${OSH_INFRA_VALUES_OVERRIDES_PATH} -c mariadb ${FEATURES})"}
# NOTE: Deploy mariadb helm chart
helm upgrade --install mariadb ./mariadb \
--namespace=openstack \
--values /tmp/mariadb-server-config.yaml \
--set pod.replicas.server=1 \
${OSH_EXTRA_HELM_ARGS} \
${OSH_EXTRA_HELM_ARGS_MARIADB}
#NOTE: Wait for deploy
# NOTE: Wait for deploy
helm osh wait-for-pods openstack
# Deploy mysqlclient-utility
cd "${CURRENT_DIR}"
namespace="utility"
# NOTE: Define variables
: ${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}
: ${PORTHOLE_VALUES_OVERRIDES_PATH:="../porthole/charts/values_overrides"}
: ${PORTHOLE_EXTRA_HELM_ARGS_MYSQLCLIENT_UTILITY:="$(helm osh get-values-overrides -p ${PORTHOLE_VALUES_OVERRIDES_PATH} -c mysqlclient-utility ${FEATURES})"}
: ${NAMESPACE:=utility}
export HELM_CHART_ROOT_PATH="${PORTHOLE_PATH:="../porthole/charts"}"
: ${PORTHOLE_EXTRA_HELM_ARGS_MYSQLCLIENT_UTILITY:="$(helm osh get-values-overrides -c mysqlclient-utility)"}
helm upgrade --install mysqlclient-utility ./artifacts/mysqlclient-utility.tgz --namespace=$namespace \
# NOTE: Deploy mysqlclient-utility helm chart
helm upgrade --install mysqlclient-utility ./artifacts/mysqlclient-utility.tgz \
--namespace=${NAMESPACE} \
--set "conf.mariadb_backup_restore.enabled_namespaces=openstack" \
${PORTHOLE_EXTRA_HELM_ARGS_MYSQLCLIENT_UTILITY}
# Wait for Deployment
: "${OSH_INFRA_PATH:="../openstack-helm-infra"}"
cd "${OSH_INFRA_PATH}"
helm osh wait-for-pods $namespace
# Wait for deploy
helm osh wait-for-pods ${NAMESPACE}

View File

@ -12,15 +12,18 @@
# under the License.
set -xe
namespace="utility"
export HELM_CHART_ROOT_PATH="${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}"
: ${PORTHOLE_EXTRA_HELM_ARGS_OPENSTACK_UTILITY:="$(helm osh get-values-overrides -c openstack-utility)"}
# NOTE: Define variables
: ${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}
: ${PORTHOLE_VALUES_OVERRIDES_PATH:="../porthole/charts/values_overrides"}
: ${PORTHOLE_EXTRA_HELM_ARGS_OPENSTACK_UTILITY:="$(helm osh get-values-overrides -p ${PORTHOLE_VALUES_OVERRIDES_PATH} -c openstack-utility ${FEATURES})"}
: ${NAMESPACE:=utility}
helm upgrade --install openstack-utility ./artifacts/openstack-utility.tgz --namespace=$namespace \
# NOTE: Deploy openstack-utility helm chart
helm upgrade --install openstack-utility ./artifacts/openstack-utility.tgz \
--namespace=${NAMESPACE} \
${PORTHOLE_EXTRA_HELM_ARGS_OPENSTACK_UTILITY}
# Wait for Deployment
: "${OSH_INFRA_PATH:="../openstack-helm-infra"}"
cd "${OSH_INFRA_PATH}"
helm osh wait-for-pods $namespace
# NOTE: Wait for deploy
helm osh wait-for-pods ${NAMESPACE}

View File

@ -10,22 +10,25 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
set -xe
CURRENT_DIR="$(pwd)"
: "${OSH_INFRA_PATH:="../openstack-helm-infra"}"
# Deploy postgresql server
cd "${OSH_INFRA_PATH}"
# bash -c "./tools/deployment/common/postgresql.sh"
# NOTE: Define variables
: ${OSH_PATH:="../openstack-helm"}
: ${OSH_INFRA_PATH:="../openstack-helm-infra"}
#NOTE: Lint and package chart
cd "${OSH_INFRA_PATH}" || exit
# NOTE: Lint and package postgresql helm chart
make postgresql SKIP_CHANGELOG=1
#NOTE: Deploy command
: ${OSH_INFRA_EXTRA_HELM_ARGS:=""}
: ${OSH_INFRA_EXTRA_HELM_ARGS_POSTGRESQL:="$(helm osh get-values-overrides -c postgresql)"}
: ${OSH_INFRA_VALUES_OVERRIDES_PATH:="../openstack-helm-infra/values_overrides"}
: ${OSH_INFRA_EXTRA_HELM_ARGS_POSTGRESQL:="$(helm osh get-values-overrides -p ${OSH_INFRA_VALUES_OVERRIDES_PATH} -c postgresql ${FEATURES})"}
# NOTE: Deploy postgresql helm chart
helm upgrade --install postgresql ./postgresql \
--namespace=osh-infra \
--set monitoring.prometheus.enabled=true \
@ -35,23 +38,23 @@ helm upgrade --install postgresql ./postgresql \
${OSH_INFRA_EXTRA_HELM_ARGS} \
${OSH_INFRA_EXTRA_HELM_ARGS_POSTGRESQL}
#NOTE: Wait for deploy
# NOTE: Wait for deploy
helm osh wait-for-pods osh-infra
# Deploy postgresql-utility
cd ${CURRENT_DIR}
namespace="utility"
# NOTE: Define variables
: ${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}
: ${PORTHOLE_VALUES_OVERRIDES_PATH:="../porthole/charts/values_overrides"}
: ${PORTHOLE_EXTRA_HELM_ARGS_POSTGRESQL_UTILITY:="$(helm osh get-values-overrides -p ${PORTHOLE_VALUES_OVERRIDES_PATH} -c postgresql-utility ${FEATURES})"}
: ${NAMESPACE:=utility}
export HELM_CHART_ROOT_PATH="${HELM_CHART_ROOT_PATH:="${PORTHOLE_PATH:="../porthole/charts"}"}"
: ${PORTHOLE_EXTRA_HELM_ARGS_POSTGRESQL_UTILITY:="$(./tools/deployment/get-values-overrides.sh -c postgresql-utility)"}
helm upgrade --install postgresql-utility ./artifacts/postgresql-utility.tgz --namespace=$namespace \
# NOTE: Deploy postgresql-utility helm chart
helm upgrade --install postgresql-utility ./artifacts/postgresql-utility.tgz \
--namespace=${NAMESPACE} \
--set "conf.postgresql_backup_restore.enabled_namespaces=osh-infra" \
${PORTHOLE_EXTRA_HELM_ARGS_POSTGRESQL_UTILITY}
# Wait for deploy
helm osh wait-for-pods ${NAMESPACE}
# Wait for Deployment
: "${OSH_INFRA_PATH:="../openstack-helm-infra"}"
cd "${OSH_INFRA_PATH}"
helm osh wait-for-pods $namespace

View File

@ -38,4 +38,5 @@
OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"
COREDNS_VERSION: "{{ coredns_version | default('v1.11.1') }}"
FEATURES: "images {{ osh_params.feature_gates | default('') | regex_replace(',', ' ') }} {{ osh_params.openstack_release | default('') }} {{ osh_params.container_distro_name | default('') }}_{{ osh_params.container_distro_version | default('') }} {{ osh_params.container_distro_name | default('') }}"
...