From e2010544cf1f9e3a1964603751dd2da45074d636 Mon Sep 17 00:00:00 2001 From: Jackie Huang Date: Wed, 23 Jun 2021 14:55:10 +0800 Subject: [PATCH] openstack-helm: update for stx 5.0 * inherit stx-metadata to help aplly updated patches from stx 'openstack-armada-app' repo. * remove the local copy of stx patches and files. * inherit stx-chartmuseum-native to help build the helm charts. * rename the bb with _git. * update PV and PR so the generated rpm match the one in stx 5.0: openstack-helm-1.0-44.tis.noarch.rpm Story: 2008952 Task: 42576 Signed-off-by: Jackie Huang Change-Id: I22019496af703e6a2e6dbf4a1980536b0004816d --- ...-add-the-ability-to-publish-events-t.patch | 81 -- ...ache2-service-pids-when-a-POD-starts.patch | 70 -- ...onsole-ip-address-search-optionality.patch | 66 - ...hart-Support-ephemeral-pool-creation.patch | 347 ----- ...-for-disabling-Readiness-Liveness-pr.patch | 228 ---- .../0006-Add-Placement-Chart.patch | 1114 ----------------- .../openstack-helm/index.yaml | 4 - .../openstack-helm/repositories.yaml | 12 - .../openstack-helm_1.0.bb | 109 -- .../openstack-helm_git.bb | 97 ++ 10 files changed, 97 insertions(+), 2031 deletions(-) delete mode 100644 meta-stx-flock/stx-openstack-armada-app/openstack-helm/0001-Ceilometer-chart-add-the-ability-to-publish-events-t.patch delete mode 100644 meta-stx-flock/stx-openstack-armada-app/openstack-helm/0002-Remove-stale-Apache2-service-pids-when-a-POD-starts.patch delete mode 100644 meta-stx-flock/stx-openstack-armada-app/openstack-helm/0003-Nova-console-ip-address-search-optionality.patch delete mode 100644 meta-stx-flock/stx-openstack-armada-app/openstack-helm/0004-Nova-chart-Support-ephemeral-pool-creation.patch delete mode 100644 meta-stx-flock/stx-openstack-armada-app/openstack-helm/0005-Nova-Add-support-for-disabling-Readiness-Liveness-pr.patch delete mode 100644 meta-stx-flock/stx-openstack-armada-app/openstack-helm/0006-Add-Placement-Chart.patch delete mode 100644 meta-stx-flock/stx-openstack-armada-app/openstack-helm/index.yaml delete mode 100644 meta-stx-flock/stx-openstack-armada-app/openstack-helm/repositories.yaml delete mode 100644 meta-stx-flock/stx-openstack-armada-app/openstack-helm_1.0.bb create mode 100644 meta-stx-flock/stx-openstack-armada-app/openstack-helm_git.bb diff --git a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0001-Ceilometer-chart-add-the-ability-to-publish-events-t.patch b/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0001-Ceilometer-chart-add-the-ability-to-publish-events-t.patch deleted file mode 100644 index 578592b..0000000 --- a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0001-Ceilometer-chart-add-the-ability-to-publish-events-t.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 5302aa4e87694e96cc3dfc56ae494a1a8211cc37 Mon Sep 17 00:00:00 2001 -From: Angie Wang -Date: Wed, 6 Mar 2019 18:06:06 -0500 -Subject: [PATCH 01] Ceilometer chart: add the ability to publish events to - panko - -Ceilometer notification agent sends the events to panko via panko -dispatcher/publisher which requires the db connection information -in /etc/panko/panko.conf. -This commit updates to mount the configuration file for panko in -ceilometer notification pod. - -Change-Id: I4ca524ed7462f945a245e9dbe1d69493dbc4211d -Story: 2005019 -Task: 29498 -Depends-On: https://review.openstack.org/#/c/641144/ -Signed-off-by: Angie Wang -(cherry picked from commit 507bc47f1447808c57c1c8aa82b0639543083656) -Signed-off-by: Robert Church ---- - ceilometer/values.yaml | 29 +++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/ceilometer/values.yaml b/ceilometer/values.yaml -index 44dda74..1343670 100644 ---- a/ceilometer/values.yaml -+++ b/ceilometer/values.yaml -@@ -1706,6 +1706,8 @@ dependencies: - service: mongodb - - endpoint: internal - service: metric -+ - endpoint: internal -+ service: event - tests: - services: - - endpoint: internal -@@ -1827,6 +1829,21 @@ endpoints: - api: - default: 8041 - public: 80 -+ event: -+ name: panko -+ hosts: -+ default: panko-api -+ public: panko -+ host_fqdn_override: -+ default: null -+ path: -+ default: null -+ scheme: -+ default: 'http' -+ port: -+ api: -+ default: 8977 -+ public: 80 - alarming: - name: aodh - hosts: -@@ -1958,7 +1975,19 @@ pod: - init_container: null - ceilometer_notification: - volumeMounts: -+ - name: etcpanko -+ mountPath: /etc/panko -+ - name: panko-etc -+ mountPath: /etc/panko/panko.conf -+ subPath: panko.conf -+ readOnly: true - volumes: -+ - name: etcpanko -+ emptyDir: {} -+ - name: panko-etc -+ secret: -+ secretName: panko-etc -+ defaultMode: 0444 - ceilometer_db_sync: - ceilometer_db_sync: - volumeMounts: --- -2.7.4 - diff --git a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0002-Remove-stale-Apache2-service-pids-when-a-POD-starts.patch b/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0002-Remove-stale-Apache2-service-pids-when-a-POD-starts.patch deleted file mode 100644 index 768673e..0000000 --- a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0002-Remove-stale-Apache2-service-pids-when-a-POD-starts.patch +++ /dev/null @@ -1,70 +0,0 @@ -From a0e8c7e3764b168eaaa82d17d965f62d34766573 Mon Sep 17 00:00:00 2001 -From: Chris Friesen -Date: Wed, 28 Nov 2018 01:33:39 -0500 -Subject: [PATCH 02] Remove stale Apache2 service pids when a POD starts. - -Stale Apache2 pids will prevent Apache2 from starting and will leave -the POD in a crashed state. - -Note: the pid file is somewhat confusingly called -/var/run/httpd/httpd.pid and /var/run/apache2 is just a symlink to -/var/run/httpd. - -This is loosely based off the in-review upstream commit at -https://review.openstack.org/#/c/619747 - -Signed-off-by: Robert Church ---- - ceilometer/templates/bin/_ceilometer-api.sh.tpl | 3 +++ - keystone/templates/bin/_keystone-api.sh.tpl | 6 ++---- - nova/templates/bin/_nova-placement-api.sh.tpl | 3 +++ - 3 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/ceilometer/templates/bin/_ceilometer-api.sh.tpl b/ceilometer/templates/bin/_ceilometer-api.sh.tpl -index 25b2f9e..3870b4e 100644 ---- a/ceilometer/templates/bin/_ceilometer-api.sh.tpl -+++ b/ceilometer/templates/bin/_ceilometer-api.sh.tpl -@@ -42,6 +42,9 @@ function start () { - fi - fi - -+ # Get rid of stale pid file if present. -+ rm -f /var/run/apache2/*.pid -+ - # Start Apache2 - exec {{ .Values.conf.software.apache2.binary }} {{ .Values.conf.software.apache2.start_parameters }} - } -diff --git a/keystone/templates/bin/_keystone-api.sh.tpl b/keystone/templates/bin/_keystone-api.sh.tpl -index 384ee8b..4c72310 100644 ---- a/keystone/templates/bin/_keystone-api.sh.tpl -+++ b/keystone/templates/bin/_keystone-api.sh.tpl -@@ -43,10 +43,8 @@ function start () { - source /etc/apache2/envvars - fi - -- if [ -f /var/run/apache2/apache2.pid ]; then -- # Remove the stale pid for debian/ubuntu images -- rm -f /var/run/apache2/apache2.pid -- fi -+ # Get rid of stale pid, shared memory segment and wsgi sock files if present. -+ rm -f /var/run/apache2/* - - # Start Apache2 - exec {{ .Values.conf.software.apache2.binary }} {{ .Values.conf.software.apache2.start_parameters }} -diff --git a/nova/templates/bin/_nova-placement-api.sh.tpl b/nova/templates/bin/_nova-placement-api.sh.tpl -index bc15a37..055d079 100644 ---- a/nova/templates/bin/_nova-placement-api.sh.tpl -+++ b/nova/templates/bin/_nova-placement-api.sh.tpl -@@ -33,6 +33,9 @@ function start () { - fi - fi - -+ # Get rid of stale pid file if present. -+ rm -f /var/run/apache2/*.pid -+ - # Start Apache2 - {{- if .Values.conf.software.apache2.a2enmod }} - {{- range .Values.conf.software.apache2.a2enmod }} --- -2.7.4 - diff --git a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0003-Nova-console-ip-address-search-optionality.patch b/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0003-Nova-console-ip-address-search-optionality.patch deleted file mode 100644 index 8a57d19..0000000 --- a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0003-Nova-console-ip-address-search-optionality.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 64b22037b53e6423c465367c26a6d7255768ae17 Mon Sep 17 00:00:00 2001 -From: Gerry Kopec -Date: Wed, 27 Mar 2019 00:35:57 -0400 -Subject: [PATCH 03] Nova console/ip address search optionality - -Add options to nova to enable/disable the use of: -1. the vnc or spice server proxyclient address found by the console - compute init container -2. my_ip hypervisor address found by compute init container - -These options can be used to prevent cases where the found addresses -overwrite what has already been defined in nova.conf by per host nova -compute daemonset overrides. - -Story: 2005259 -Task: 30066 -Change-Id: Idf490f8b19dcd1e71a9b5fa8934461f1198a8af8 -Signed-off-by: Gerry Kopec -(cherry picked from commit f5e8ad20e35b770e5967f75f6f93f0a4dc6e3b41) -Signed-off-by: Robert Church ---- - nova/templates/bin/_nova-compute.sh.tpl | 6 +++++- - nova/values.yaml | 3 ++- - 2 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/nova/templates/bin/_nova-compute.sh.tpl b/nova/templates/bin/_nova-compute.sh.tpl -index c80da6d..4927908 100644 ---- a/nova/templates/bin/_nova-compute.sh.tpl -+++ b/nova/templates/bin/_nova-compute.sh.tpl -@@ -20,6 +20,10 @@ set -ex - - exec nova-compute \ - --config-file /etc/nova/nova.conf \ -+{{- if .Values.console.address_search_enabled }} - --config-file /tmp/pod-shared/nova-console.conf \ -+{{- end }} - --config-file /tmp/pod-shared/nova-libvirt.conf \ -- --config-file /tmp/pod-shared/nova-hypervisor.conf -\ No newline at end of file -+{{- if .Values.conf.hypervisor.address_search_enabled }} -+ --config-file /tmp/pod-shared/nova-hypervisor.conf -+{{- end }} -diff --git a/nova/values.yaml b/nova/values.yaml -index 29512ca..7ba2925 100644 ---- a/nova/values.yaml -+++ b/nova/values.yaml -@@ -461,7 +461,7 @@ console: - vncproxy: - # IF blank, search default routing interface - vncserver_proxyclient_interface: -- -+ address_search_enabled: true - ssh: - key_types: - - rsa -@@ -1598,6 +1598,7 @@ conf: - # If this option is set to None, the hostname of the migration target compute node will be used. - live_migration_interface: - hypervisor: -+ address_search_enabled: true - # my_ip can be set automatically through this interface name. - host_interface: - # This list is the keys to exclude from the config file ingested by nova-compute --- -2.7.4 - diff --git a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0004-Nova-chart-Support-ephemeral-pool-creation.patch b/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0004-Nova-chart-Support-ephemeral-pool-creation.patch deleted file mode 100644 index 6e66796..0000000 --- a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0004-Nova-chart-Support-ephemeral-pool-creation.patch +++ /dev/null @@ -1,347 +0,0 @@ -From 4f6701c4cab07d9f54012e2a143173803f97ff3d Mon Sep 17 00:00:00 2001 -From: Irina Mihai -Date: Tue, 26 Feb 2019 17:43:53 +0000 -Subject: [PATCH 04] Nova chart: Support ephemeral pool creation - -If libvirt images_type is rbd, then we need to have the -images_rbd_pool present. These changes add a new job -to make sure this pool exists. - -Change-Id: Iee307cb54384d1c4583d00a8d28f7b1a0676d7d8 -Story: 2004922 -Task: 29285 -Signed-off-by: Irina Mihai -(cherry picked from commit 0afcb0b37cdcf57436e44867bac9242d8684ce81) -Signed-off-by: Robert Church ---- - nova/templates/bin/_nova-storage-init.sh.tpl | 75 +++++++++++++ - nova/templates/configmap-bin.yaml | 4 +- - nova/templates/job-storage-init.yaml | 155 +++++++++++++++++++++++++++ - nova/values.yaml | 19 +++- - 4 files changed, 251 insertions(+), 2 deletions(-) - create mode 100644 nova/templates/bin/_nova-storage-init.sh.tpl - create mode 100644 nova/templates/job-storage-init.yaml - -diff --git a/nova/templates/bin/_nova-storage-init.sh.tpl b/nova/templates/bin/_nova-storage-init.sh.tpl -new file mode 100644 -index 0000000..f79fcff ---- /dev/null -+++ b/nova/templates/bin/_nova-storage-init.sh.tpl -@@ -0,0 +1,75 @@ -+#!/bin/bash -+ -+{{/* -+Copyright 2019 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. -+*/}} -+ -+set -x -+if [ "x$STORAGE_BACKEND" == "xrbd" ]; then -+ SECRET=$(mktemp --suffix .yaml) -+ KEYRING=$(mktemp --suffix .keyring) -+ function cleanup { -+ rm -f ${SECRET} ${KEYRING} -+ } -+ trap cleanup EXIT -+fi -+ -+set -ex -+if [ "x$STORAGE_BACKEND" == "xrbd" ]; then -+ ceph -s -+ function ensure_pool () { -+ ceph osd pool stats $1 || ceph osd pool create $1 $2 -+ local test_version=$(ceph tell osd.* version | egrep -c "mimic|luminous" | xargs echo) -+ if [[ ${test_version} -gt 0 ]]; then -+ ceph osd pool application enable $1 $3 -+ fi -+ size_protection=$(ceph osd pool get $1 nosizechange | cut -f2 -d: | tr -d '[:space:]') -+ ceph osd pool set $1 nosizechange 0 -+ ceph osd pool set $1 size ${RBD_POOL_REPLICATION} -+ ceph osd pool set $1 nosizechange ${size_protection} -+ ceph osd pool set $1 crush_rule "${RBD_POOL_CRUSH_RULE}" -+ } -+ ensure_pool ${RBD_POOL_NAME} ${RBD_POOL_CHUNK_SIZE} "nova-ephemeral" -+ -+ if USERINFO=$(ceph auth get client.${RBD_POOL_USER}); then -+ echo "Cephx user client.${RBD_POOL_USER} already exist." -+ echo "Update its cephx caps" -+ ceph auth caps client.${RBD_POOL_USER} \ -+ mon "profile rbd" \ -+ osd "profile rbd" -+ ceph auth get client.${RBD_POOL_USER} -o ${KEYRING} -+ else -+ # NOTE: Restrict Nova permissions to what is needed. -+ # MON Read only and RBD access to the Nova ephemeral pool only. -+ ceph auth get-or-create client.${RBD_POOL_USER} \ -+ mon "profile rbd" \ -+ osd "profile rbd" \ -+ -o ${KEYRING} -+ fi -+ -+ ENCODED_KEYRING=$(sed -n 's/^[[:blank:]]*key[[:blank:]]\+=[[:blank:]]\(.*\)/\1/p' ${KEYRING} | base64 -w0) -+ cat > ${SECRET} < -Date: Fri, 22 Mar 2019 03:42:08 -0400 -Subject: [PATCH 05] Nova: Add support for disabling Readiness/Liveness - probes - -With the introduction of Readiness/Liveness probes in -Ib8e4b93486588320fd2d562c3bc90b65844e52e5, some probes are failing and -preventing successful armada manifest applies. - -Add support to disable the probes. - -Change-Id: Iebe7327055f58fa78ce3fcac968c1fa617c30c2f -Signed-off-by: Robert Church ---- - nova/templates/daemonset-compute.yaml | 4 ++++ - nova/templates/deployment-conductor.yaml | 4 ++++ - nova/templates/deployment-consoleauth.yaml | 4 ++++ - nova/templates/deployment-novncproxy.yaml | 4 ++++ - nova/templates/deployment-scheduler.yaml | 4 ++++ - nova/templates/deployment-spiceproxy.yaml | 4 ++++ - nova/values.yaml | 28 ++++++++++++++++++++++++++++ - 7 files changed, 52 insertions(+) - -diff --git a/nova/templates/daemonset-compute.yaml b/nova/templates/daemonset-compute.yaml -index feea6ab..86dc2b9 100644 ---- a/nova/templates/daemonset-compute.yaml -+++ b/nova/templates/daemonset-compute.yaml -@@ -190,6 +190,7 @@ spec: - - name: LIBVIRT_CEPH_SECRET_UUID - value: "{{ .Values.conf.ceph.secret_uuid }}" - {{ end }} -+ {{- if .Values.pod.probes.readiness.nova_compute.enabled }} - readinessProbe: - exec: - command: -@@ -202,6 +203,8 @@ spec: - initialDelaySeconds: 80 - periodSeconds: 90 - timeoutSeconds: 70 -+ {{- end }} -+ {{- if .Values.pod.probes.liveness.nova_compute.enabled }} - livenessProbe: - exec: - command: -@@ -215,6 +218,7 @@ spec: - initialDelaySeconds: 120 - periodSeconds: 90 - timeoutSeconds: 70 -+ {{- end }} - command: - - /tmp/nova-compute.sh - volumeMounts: -diff --git a/nova/templates/deployment-conductor.yaml b/nova/templates/deployment-conductor.yaml -index f927afa..0caa006 100644 ---- a/nova/templates/deployment-conductor.yaml -+++ b/nova/templates/deployment-conductor.yaml -@@ -59,6 +59,7 @@ spec: - {{ tuple $envAll "nova_conductor" | include "helm-toolkit.snippets.image" | indent 10 }} - {{ tuple $envAll $envAll.Values.pod.resources.conductor | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} - {{ dict "envAll" $envAll "application" "nova" "container" "nova_conductor" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }} -+ {{- if .Values.pod.probes.readiness.nova_conductor.enabled }} - readinessProbe: - exec: - command: -@@ -71,6 +72,8 @@ spec: - initialDelaySeconds: 80 - periodSeconds: 90 - timeoutSeconds: 70 -+ {{- end }} -+ {{- if .Values.pod.probes.liveness.nova_conductor.enabled }} - livenessProbe: - exec: - command: -@@ -84,6 +87,7 @@ spec: - initialDelaySeconds: 120 - periodSeconds: 90 - timeoutSeconds: 70 -+ {{- end }} - command: - - /tmp/nova-conductor.sh - volumeMounts: -diff --git a/nova/templates/deployment-consoleauth.yaml b/nova/templates/deployment-consoleauth.yaml -index b9cb717..0f590e0 100644 ---- a/nova/templates/deployment-consoleauth.yaml -+++ b/nova/templates/deployment-consoleauth.yaml -@@ -59,6 +59,7 @@ spec: - {{ tuple $envAll "nova_consoleauth" | include "helm-toolkit.snippets.image" | indent 10 }} - {{ tuple $envAll $envAll.Values.pod.resources.consoleauth | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} - {{ dict "envAll" $envAll "application" "nova" "container" "nova_consoleauth" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }} -+ {{- if .Values.pod.probes.readiness.nova_consoleauth.enabled }} - readinessProbe: - exec: - command: -@@ -71,6 +72,8 @@ spec: - initialDelaySeconds: 80 - periodSeconds: 90 - timeoutSeconds: 70 -+ {{- end }} -+ {{- if .Values.pod.probes.liveness.nova_consoleauth.enabled }} - livenessProbe: - exec: - command: -@@ -84,6 +87,7 @@ spec: - initialDelaySeconds: 120 - periodSeconds: 90 - timeoutSeconds: 70 -+ {{- end }} - command: - - /tmp/nova-consoleauth.sh - volumeMounts: -diff --git a/nova/templates/deployment-novncproxy.yaml b/nova/templates/deployment-novncproxy.yaml -index 42a52af..495c1ac 100644 ---- a/nova/templates/deployment-novncproxy.yaml -+++ b/nova/templates/deployment-novncproxy.yaml -@@ -103,14 +103,18 @@ spec: - {{ tuple $envAll "nova_novncproxy" | include "helm-toolkit.snippets.image" | indent 10 }} - {{ tuple $envAll $envAll.Values.pod.resources.novncproxy | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} - {{ dict "envAll" $envAll "application" "nova" "container" "nova_novncproxy" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }} -+ {{- if .Values.pod.probes.readiness.nova_novcnproxy.enabled }} - readinessProbe: - tcpSocket: - port: {{ tuple "compute_novnc_proxy" "internal" "novnc_proxy" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} - initialDelaySeconds: 30 -+ {{- end }} -+ {{- if .Values.pod.probes.liveness.nova_novcnproxy.enabled }} - livenessProbe: - tcpSocket: - port: {{ tuple "compute_novnc_proxy" "internal" "novnc_proxy" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} - initialDelaySeconds: 30 -+ {{- end }} - command: - - /tmp/nova-console-proxy.sh - ports: -diff --git a/nova/templates/deployment-scheduler.yaml b/nova/templates/deployment-scheduler.yaml -index 05ee949..9a30fa6 100644 ---- a/nova/templates/deployment-scheduler.yaml -+++ b/nova/templates/deployment-scheduler.yaml -@@ -59,6 +59,7 @@ spec: - {{ tuple $envAll "nova_scheduler" | include "helm-toolkit.snippets.image" | indent 10 }} - {{ tuple $envAll $envAll.Values.pod.resources.scheduler | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} - {{ dict "envAll" $envAll "application" "nova" "container" "nova_scheduler" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }} -+ {{- if .Values.pod.probes.readiness.nova_scheduler.enabled }} - readinessProbe: - exec: - command: -@@ -72,6 +73,8 @@ spec: - initialDelaySeconds: 80 - periodSeconds: 90 - timeoutSeconds: 70 -+ {{- end }} -+ {{- if .Values.pod.probes.liveness.nova_scheduler.enabled }} - livenessProbe: - exec: - command: -@@ -86,6 +89,7 @@ spec: - initialDelaySeconds: 120 - periodSeconds: 90 - timeoutSeconds: 70 -+ {{- end }} - command: - - /tmp/nova-scheduler.sh - volumeMounts: -diff --git a/nova/templates/deployment-spiceproxy.yaml b/nova/templates/deployment-spiceproxy.yaml -index a221656..038c85c 100644 ---- a/nova/templates/deployment-spiceproxy.yaml -+++ b/nova/templates/deployment-spiceproxy.yaml -@@ -101,14 +101,18 @@ spec: - {{ tuple $envAll "nova_spiceproxy" | include "helm-toolkit.snippets.image" | indent 10 }} - {{ tuple $envAll $envAll.Values.pod.resources.spiceproxy | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} - {{ dict "envAll" $envAll "application" "nova" "container" "nova_spiceproxy" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }} -+ {{- if .Values.pod.probes.readiness.nova_spiceproxy.enabled }} - readinessProbe: - tcpSocket: - port: {{ tuple "compute_spice_proxy" "internal" "spice_proxy" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} - initialDelaySeconds: 30 -+ {{- end }} -+ {{- if .Values.pod.probes.liveness.nova_spiceproxy.enabled }} - livenessProbe: - tcpSocket: - port: {{ tuple "compute_spice_proxy" "internal" "spice_proxy" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} - initialDelaySeconds: 30 -+ {{- end }} - command: - - /tmp/nova-console-proxy.sh - ports: -diff --git a/nova/values.yaml b/nova/values.yaml -index 97ef1b5..4092329 100644 ---- a/nova/values.yaml -+++ b/nova/values.yaml -@@ -2499,6 +2499,34 @@ pod: - limits: - memory: "1024Mi" - cpu: "2000m" -+ probes: -+ readiness: -+ nova_compute: -+ enabled: true -+ nova_conductor: -+ enabled: true -+ nova_consoleauth: -+ enabled: true -+ nova_novcnproxy: -+ enabled: true -+ nova_scheduler: -+ enabled: true -+ nova_spiceproxy: -+ enabled: true -+ liveness: -+ nova_compute: -+ enabled: true -+ nova_conductor: -+ enabled: true -+ nova_consoleauth: -+ enabled: true -+ nova_novcnproxy: -+ enabled: true -+ nova_scheduler: -+ enabled: true -+ nova_spiceproxy: -+ enabled: true -+ - network_policy: - nova: - # TODO(lamt): Need to tighten this ingress for security. --- -2.7.4 - diff --git a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0006-Add-Placement-Chart.patch b/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0006-Add-Placement-Chart.patch deleted file mode 100644 index e0b9615..0000000 --- a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/0006-Add-Placement-Chart.patch +++ /dev/null @@ -1,1114 +0,0 @@ -From 374b61d70c593694f850bd6f6a74842c12ecf5f8 Mon Sep 17 00:00:00 2001 -From: zhipengl -Date: Fri, 31 May 2019 06:49:51 +0800 -Subject: [PATCH] Add placement chart - -This commit adds a helm chart to deploy placement. - -Related test pass on simplex and multi-node setup - -Story: 2005799 -Task: 33532 - -Change-Id: Ife908628c6379d2d39d15f72073da3018cc26950 -Signed-off-by: zhipengl ---- - placement/Chart.yaml | 9 + - placement/requirements.yaml | 10 + - placement/templates/bin/_db-sync.sh.tpl | 13 + - placement/templates/bin/_placement-api.sh.tpl | 34 +++ - placement/templates/configmap-bin.yaml | 31 ++ - placement/templates/configmap-etc.yaml | 58 ++++ - placement/templates/deployment.yaml | 116 ++++++++ - placement/templates/ingress.yaml | 12 + - placement/templates/job-db-drop.yaml | 13 + - placement/templates/job-db-init.yaml | 15 + - placement/templates/job-db-sync.yaml | 12 + - placement/templates/job-image-repo-sync.yaml | 12 + - placement/templates/job-ks-endpoints.yaml | 12 + - placement/templates/job-ks-service.yaml | 12 + - placement/templates/job-ks-user.yaml | 12 + - placement/templates/network_policy.yaml | 12 + - placement/templates/pdb.yaml | 21 ++ - placement/templates/secret-db.yaml | 22 ++ - placement/templates/secret-ingress-tls.yaml | 11 + - placement/templates/secret-keystone.yaml | 22 ++ - placement/templates/service-ingress.yaml | 12 + - placement/templates/service.yaml | 26 ++ - placement/values.yaml | 413 ++++++++++++++++++++++++++ - 23 files changed, 910 insertions(+) - create mode 100644 placement/Chart.yaml - create mode 100644 placement/requirements.yaml - create mode 100644 placement/templates/bin/_db-sync.sh.tpl - create mode 100644 placement/templates/bin/_placement-api.sh.tpl - create mode 100644 placement/templates/configmap-bin.yaml - create mode 100644 placement/templates/configmap-etc.yaml - create mode 100644 placement/templates/deployment.yaml - create mode 100644 placement/templates/ingress.yaml - create mode 100644 placement/templates/job-db-drop.yaml - create mode 100644 placement/templates/job-db-init.yaml - create mode 100644 placement/templates/job-db-sync.yaml - create mode 100644 placement/templates/job-image-repo-sync.yaml - create mode 100644 placement/templates/job-ks-endpoints.yaml - create mode 100644 placement/templates/job-ks-service.yaml - create mode 100644 placement/templates/job-ks-user.yaml - create mode 100644 placement/templates/network_policy.yaml - create mode 100644 placement/templates/pdb.yaml - create mode 100644 placement/templates/secret-db.yaml - create mode 100644 placement/templates/secret-ingress-tls.yaml - create mode 100644 placement/templates/secret-keystone.yaml - create mode 100644 placement/templates/service-ingress.yaml - create mode 100644 placement/templates/service.yaml - create mode 100644 placement/values.yaml - -diff --git a/placement/Chart.yaml b/placement/Chart.yaml -new file mode 100644 -index 0000000..e8eb058 ---- /dev/null -+++ b/placement/Chart.yaml -@@ -0,0 +1,9 @@ -+# -+# Copyright (c) 2019 StarlingX. -+# -+ -+apiVersion: v1 -+appVersion: "1.0" -+description: OpenStack Placement Service -+name: placement -+version: 0.1.0 -diff --git a/placement/requirements.yaml b/placement/requirements.yaml -new file mode 100644 -index 0000000..3a162a6 ---- /dev/null -+++ b/placement/requirements.yaml -@@ -0,0 +1,10 @@ -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+ -+dependencies: -+ - name: helm-toolkit -+ repository: http://localhost:8879/charts -+ version: 0.1.0 -diff --git a/placement/templates/bin/_db-sync.sh.tpl b/placement/templates/bin/_db-sync.sh.tpl -new file mode 100644 -index 0000000..4a36848 ---- /dev/null -+++ b/placement/templates/bin/_db-sync.sh.tpl -@@ -0,0 +1,13 @@ -+#!/bin/bash -+ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+set -ex -+ -+su -s /bin/sh -c "placement-manage db sync" placement -diff --git a/placement/templates/bin/_placement-api.sh.tpl b/placement/templates/bin/_placement-api.sh.tpl -new file mode 100644 -index 0000000..4f82970 ---- /dev/null -+++ b/placement/templates/bin/_placement-api.sh.tpl -@@ -0,0 +1,34 @@ -+#!/bin/bash -+ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+set -ex -+COMMAND="${@:-start}" -+ -+function start () { -+ -+ cp -a $(type -p placement-api) /var/www/cgi-bin/placement/ -+ -+ if [ -f /etc/apache2/envvars ]; then -+ # Loading Apache2 ENV variables -+ source /etc/apache2/envvars -+ fi -+ -+ # Get rid of stale pid file if present. -+ rm -f /var/run/apache2/*.pid -+ -+ # Start Apache2 -+ exec apache2 -DFOREGROUND -+} -+ -+function stop () { -+ apachectl -k graceful-stop -+} -+ -+$COMMAND -diff --git a/placement/templates/configmap-bin.yaml b/placement/templates/configmap-bin.yaml -new file mode 100644 -index 0000000..3e98ea9 ---- /dev/null -+++ b/placement/templates/configmap-bin.yaml -@@ -0,0 +1,31 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.configmap_bin }} -+{{- $envAll := . }} -+--- -+apiVersion: v1 -+kind: ConfigMap -+metadata: -+ name: placement-bin -+data: -+ placement-api.sh: | -+{{ tuple "bin/_placement-api.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} -+ db-sync.sh: | -+{{ tuple "bin/_db-sync.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} -+ db-init.py: | -+{{- include "helm-toolkit.scripts.db_init" . | indent 4 }} -+ db-drop.py: | -+{{- include "helm-toolkit.scripts.db_drop" . | indent 4 }} -+ ks-service.sh: | -+{{- include "helm-toolkit.scripts.keystone_service" . | indent 4 }} -+ ks-endpoints.sh: | -+{{- include "helm-toolkit.scripts.keystone_endpoints" . | indent 4 }} -+ ks-user.sh: | -+{{- include "helm-toolkit.scripts.keystone_user" . | indent 4 }} -+{{- end }} -diff --git a/placement/templates/configmap-etc.yaml b/placement/templates/configmap-etc.yaml -new file mode 100644 -index 0000000..62834cc ---- /dev/null -+++ b/placement/templates/configmap-etc.yaml -@@ -0,0 +1,58 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.configmap_etc }} -+{{- $envAll := . }} -+ -+{{- if empty .Values.conf.placement.placement_database.connection -}} -+{{- $_ := tuple "oslo_db" "internal" "placement" "mysql" . | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | set .Values.conf.placement.placement_database "connection" -}} -+{{- end -}} -+ -+{{- if empty .Values.conf.placement.keystone_authtoken.auth_uri -}} -+{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup" | set .Values.conf.placement.keystone_authtoken "auth_uri" -}} -+{{- end -}} -+{{- if empty .Values.conf.placement.keystone_authtoken.auth_url -}} -+{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup" | set .Values.conf.placement.keystone_authtoken "auth_url" -}} -+{{- end -}} -+ -+{{- if empty .Values.conf.placement.keystone_authtoken.os_region_name -}} -+{{- $_ := set .Values.conf.placement.keystone_authtoken "os_region_name" .Values.endpoints.identity.auth.placement.region_name -}} -+{{- end -}} -+{{- if empty .Values.conf.placement.keystone_authtoken.project_name -}} -+{{- $_ := set .Values.conf.placement.keystone_authtoken "project_name" .Values.endpoints.identity.auth.placement.project_name -}} -+{{- end -}} -+{{- if empty .Values.conf.placement.keystone_authtoken.project_domain_name -}} -+{{- $_ := set .Values.conf.placement.keystone_authtoken "project_domain_name" .Values.endpoints.identity.auth.placement.project_domain_name -}} -+{{- end -}} -+{{- if empty .Values.conf.placement.keystone_authtoken.user_domain_name -}} -+{{- $_ := set .Values.conf.placement.keystone_authtoken "user_domain_name" .Values.endpoints.identity.auth.placement.user_domain_name -}} -+{{- end -}} -+{{- if empty .Values.conf.placement.keystone_authtoken.username -}} -+{{- $_ := set .Values.conf.placement.keystone_authtoken "username" .Values.endpoints.identity.auth.placement.username -}} -+{{- end -}} -+{{- if empty .Values.conf.placement.keystone_authtoken.password -}} -+{{- $_ := set .Values.conf.placement.keystone_authtoken "password" .Values.endpoints.identity.auth.placement.password -}} -+{{- end -}} -+{{- if empty .Values.conf.placement.keystone_authtoken.memcached_servers -}} -+{{- $_ := tuple "oslo_cache" "internal" "memcache" . | include "helm-toolkit.endpoints.host_and_port_endpoint_uri_lookup" | set .Values.conf.placement.keystone_authtoken "memcached_servers" -}} -+{{- end -}} -+{{- if empty .Values.conf.placement.keystone_authtoken.memcache_secret_key -}} -+{{- $_ := set .Values.conf.placement.keystone_authtoken "memcache_secret_key" ( default ( randAlphaNum 64 ) .Values.endpoints.oslo_cache.auth.memcache_secret_key ) -}} -+{{- end -}} -+--- -+apiVersion: v1 -+kind: Secret -+metadata: -+ name: placement-etc -+type: Opaque -+data: -+ policy.yaml: {{ toYaml .Values.conf.policy | b64enc }} -+ placement.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.placement | b64enc }} -+ logging.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.logging | b64enc }} -+{{- include "helm-toolkit.snippets.values_template_renderer" (dict "envAll" $envAll "template" .Values.conf.wsgi_placement "key" "wsgi-placement.conf" "format" "Secret" ) | indent 2 }} -+{{- end }} -diff --git a/placement/templates/deployment.yaml b/placement/templates/deployment.yaml -new file mode 100644 -index 0000000..922bbcf ---- /dev/null -+++ b/placement/templates/deployment.yaml -@@ -0,0 +1,116 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.deployment }} -+{{- $envAll := . }} -+ -+{{- $mounts_placement := .Values.pod.mounts.placement.placement }} -+{{- $mounts_placement_init := .Values.pod.mounts.placement.init_container }} -+ -+{{- $serviceAccountName := "placement-api" }} -+{{ tuple $envAll "api" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} -+--- -+apiVersion: apps/v1 -+kind: Deployment -+metadata: -+ name: placement-api -+ annotations: -+ {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }} -+ labels: -+{{ tuple $envAll "placement" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} -+spec: -+ replicas: {{ .Values.pod.replicas.api }} -+ selector: -+ matchLabels: -+{{ tuple $envAll "placement" "api" | 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 "placement" "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" }} -+ spec: -+ serviceAccountName: {{ $serviceAccountName }} -+ affinity: -+{{ tuple $envAll "placement" "api" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }} -+ nodeSelector: -+ {{ .Values.labels.api.node_selector_key }}: {{ .Values.labels.api.node_selector_value }} -+ terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.api.timeout | default "30" }} -+ initContainers: -+{{ tuple $envAll "api" $mounts_placement_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }} -+ containers: -+ - name: placement-api -+{{ tuple $envAll "placement" | include "helm-toolkit.snippets.image" | indent 10 }} -+{{ tuple $envAll $envAll.Values.pod.resources.api | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} -+ command: -+ - /tmp/placement-api.sh -+ - start -+ lifecycle: -+ preStop: -+ exec: -+ command: -+ - /tmp/placement-api.sh -+ - stop -+ ports: -+ - name: p-api -+ containerPort: {{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} -+ readinessProbe: -+ #NOTE(portdirect): use tcpSocket check as HTTP will return 401 -+ tcpSocket: -+ port: {{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} -+ initialDelaySeconds: 15 -+ periodSeconds: 10 -+ livenessProbe: -+ tcpSocket: -+ port: {{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} -+ initialDelaySeconds: 50 -+ periodSeconds: 10 -+ volumeMounts: -+ - name: pod-tmp -+ mountPath: /tmp -+ - name: wsgi-placement -+ mountPath: /var/www/cgi-bin/placement -+ - name: placement-bin -+ mountPath: /tmp/placement-api.sh -+ subPath: placement-api.sh -+ readOnly: true -+ - name: placement-etc -+ mountPath: /etc/placement/placement.conf -+ subPath: placement.conf -+ readOnly: true -+ - name: placement-etc -+ mountPath: {{ .Values.conf.placement.DEFAULT.log_config_append }} -+ subPath: {{ base .Values.conf.placement.DEFAULT.log_config_append }} -+ readOnly: true -+ - name: placement-etc -+ mountPath: /etc/placement/policy.yaml -+ subPath: policy.yaml -+ readOnly: true -+ - name: placement-etc -+ mountPath: /etc/apache2/conf-enabled/wsgi-placement.conf -+ subPath: wsgi-placement.conf -+ readOnly: true -+{{ if $mounts_placement.volumeMounts }}{{ toYaml $mounts_placement.volumeMounts | indent 12 }}{{ end }} -+ volumes: -+ - name: pod-tmp -+ emptyDir: {} -+ - name: wsgi-placement -+ emptyDir: {} -+ - name: placement-bin -+ configMap: -+ name: placement-bin -+ defaultMode: 0555 -+ - name: placement-etc -+ secret: -+ secretName: placement-etc -+ defaultMode: 0444 -+{{ if $mounts_placement.volumes }}{{ toYaml $mounts_placement.volumes | indent 8 }}{{ end }} -+{{- end }} -diff --git a/placement/templates/ingress.yaml b/placement/templates/ingress.yaml -new file mode 100644 -index 0000000..5dcced8 ---- /dev/null -+++ b/placement/templates/ingress.yaml -@@ -0,0 +1,12 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if and .Values.manifests.ingress .Values.network.api.ingress.public }} -+{{- $ingressOpts := dict "envAll" . "backendServiceType" "placement" "backendPort" "p-api" -}} -+{{ $ingressOpts | include "helm-toolkit.manifests.ingress" }} -+{{- end }} -diff --git a/placement/templates/job-db-drop.yaml b/placement/templates/job-db-drop.yaml -new file mode 100644 -index 0000000..1cdb753 ---- /dev/null -+++ b/placement/templates/job-db-drop.yaml -@@ -0,0 +1,13 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.job_db_drop }} -+{{- $serviceName := "placement" -}} -+{{- $dbDropJob := dict "envAll" . "serviceName" $serviceName -}} -+{{ $dbDropJob | include "helm-toolkit.manifests.job_db_drop_mysql" }} -+{{- end }} -diff --git a/placement/templates/job-db-init.yaml b/placement/templates/job-db-init.yaml -new file mode 100644 -index 0000000..4c9d450 ---- /dev/null -+++ b/placement/templates/job-db-init.yaml -@@ -0,0 +1,15 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.job_db_init }} -+{{- $serviceName := "placement" -}} -+{{- $dbApi := dict "adminSecret" .Values.secrets.oslo_db.admin "configFile" (printf "/etc/%s/%s.conf" $serviceName $serviceName ) "logConfigFile" (printf "/etc/%s/logging.conf" $serviceName ) "configDbSection" "placement_database" "configDbKey" "connection" -}} -+{{- $dbsToInit := list $dbApi }} -+{{- $dbInitJob := dict "envAll" . "serviceName" $serviceName "dbsToInit" $dbsToInit -}} -+{{ $dbInitJob | include "helm-toolkit.manifests.job_db_init_mysql" }} -+{{- end }} -diff --git a/placement/templates/job-db-sync.yaml b/placement/templates/job-db-sync.yaml -new file mode 100644 -index 0000000..5aeefba ---- /dev/null -+++ b/placement/templates/job-db-sync.yaml -@@ -0,0 +1,12 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.job_db_sync }} -+{{- $dbSyncJob := dict "envAll" . "serviceName" "placement" -}} -+{{ $dbSyncJob | include "helm-toolkit.manifests.job_db_sync" }} -+{{- end }} -diff --git a/placement/templates/job-image-repo-sync.yaml b/placement/templates/job-image-repo-sync.yaml -new file mode 100644 -index 0000000..022b160 ---- /dev/null -+++ b/placement/templates/job-image-repo-sync.yaml -@@ -0,0 +1,12 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if and .Values.manifests.job_image_repo_sync .Values.images.local_registry.active }} -+{{- $imageRepoSyncJob := dict "envAll" . "serviceName" "placement" -}} -+{{ $imageRepoSyncJob | include "helm-toolkit.manifests.job_image_repo_sync" }} -+{{- end }} -diff --git a/placement/templates/job-ks-endpoints.yaml b/placement/templates/job-ks-endpoints.yaml -new file mode 100644 -index 0000000..d3a43fc ---- /dev/null -+++ b/placement/templates/job-ks-endpoints.yaml -@@ -0,0 +1,12 @@ -+{{/* -+# -+# Copyright (c) 2018 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.job_ks_endpoints }} -+{{- $ksServiceJob := dict "envAll" . "serviceName" "placement" "serviceTypes" ( tuple "placement" ) -}} -+{{ $ksServiceJob | include "helm-toolkit.manifests.job_ks_endpoints" }} -+{{- end }} -diff --git a/placement/templates/job-ks-service.yaml b/placement/templates/job-ks-service.yaml -new file mode 100644 -index 0000000..0dd6d6e ---- /dev/null -+++ b/placement/templates/job-ks-service.yaml -@@ -0,0 +1,12 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.job_ks_service }} -+{{- $ksServiceJob := dict "envAll" . "serviceName" "placement" "serviceTypes" ( tuple "placement" ) -}} -+{{ $ksServiceJob | include "helm-toolkit.manifests.job_ks_service" }} -+{{- end }} -diff --git a/placement/templates/job-ks-user.yaml b/placement/templates/job-ks-user.yaml -new file mode 100644 -index 0000000..b0f7799 ---- /dev/null -+++ b/placement/templates/job-ks-user.yaml -@@ -0,0 +1,12 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.job_ks_user }} -+{{- $ksUserJob := dict "envAll" . "serviceName" "placement" -}} -+{{ $ksUserJob | include "helm-toolkit.manifests.job_ks_user" }} -+{{- end }} -diff --git a/placement/templates/network_policy.yaml b/placement/templates/network_policy.yaml -new file mode 100644 -index 0000000..6355f90 ---- /dev/null -+++ b/placement/templates/network_policy.yaml -@@ -0,0 +1,12 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.network_policy -}} -+{{- $netpol_opts := dict "envAll" . "name" "application" "label" "placement" }} -+{{ $netpol_opts | include "helm-toolkit.manifests.kubernetes_network_policy" }} -+{{- end -}} -diff --git a/placement/templates/pdb.yaml b/placement/templates/pdb.yaml -new file mode 100644 -index 0000000..a61fe58 ---- /dev/null -+++ b/placement/templates/pdb.yaml -@@ -0,0 +1,21 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.pdb }} -+{{- $envAll := . }} -+--- -+apiVersion: policy/v1beta1 -+kind: PodDisruptionBudget -+metadata: -+ name: placement-api -+spec: -+ minAvailable: {{ .Values.pod.lifecycle.disruption_budget.api.min_available }} -+ selector: -+ matchLabels: -+{{ tuple $envAll "placement" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }} -+{{- end }} -diff --git a/placement/templates/secret-db.yaml b/placement/templates/secret-db.yaml -new file mode 100644 -index 0000000..5c7321e ---- /dev/null -+++ b/placement/templates/secret-db.yaml -@@ -0,0 +1,22 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.secret_db }} -+{{- $envAll := . }} -+{{- range $key1, $userClass := tuple "admin" "placement" }} -+{{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }} -+--- -+apiVersion: v1 -+kind: Secret -+metadata: -+ name: {{ $secretName }} -+type: Opaque -+data: -+ DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}} -+{{- end }} -+{{- end }} -diff --git a/placement/templates/secret-ingress-tls.yaml b/placement/templates/secret-ingress-tls.yaml -new file mode 100644 -index 0000000..3413b5b ---- /dev/null -+++ b/placement/templates/secret-ingress-tls.yaml -@@ -0,0 +1,11 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.secret_ingress_tls }} -+{{ include "helm-toolkit.manifests.secret_ingress_tls" ( dict "envAll" . "backendServiceType" "placement" ) }} -+{{- end }} -diff --git a/placement/templates/secret-keystone.yaml b/placement/templates/secret-keystone.yaml -new file mode 100644 -index 0000000..efc1a17 ---- /dev/null -+++ b/placement/templates/secret-keystone.yaml -@@ -0,0 +1,22 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.secret_keystone }} -+{{- $envAll := . }} -+{{- range $key1, $userClass := tuple "admin" "placement" }} -+{{- $secretName := index $envAll.Values.secrets.identity $userClass }} -+--- -+apiVersion: v1 -+kind: Secret -+metadata: -+ name: {{ $secretName }} -+type: Opaque -+data: -+{{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}} -+{{- end }} -+{{- end }} -diff --git a/placement/templates/service-ingress.yaml b/placement/templates/service-ingress.yaml -new file mode 100644 -index 0000000..75fcd61 ---- /dev/null -+++ b/placement/templates/service-ingress.yaml -@@ -0,0 +1,12 @@ -+{{/* -+# -+# Copyright (c) 2019 StarlingX. -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if and .Values.manifests.service_ingress .Values.network.api.ingress.public }} -+{{- $serviceIngressOpts := dict "envAll" . "backendServiceType" "placement" -}} -+{{ $serviceIngressOpts | include "helm-toolkit.manifests.service_ingress" }} -+{{- end }} -diff --git a/placement/templates/service.yaml b/placement/templates/service.yaml -new file mode 100644 -index 0000000..0bda157 ---- /dev/null -+++ b/placement/templates/service.yaml -@@ -0,0 +1,26 @@ -+{{/* -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+*/}} -+ -+{{- if .Values.manifests.service }} -+{{- $envAll := . }} -+--- -+apiVersion: v1 -+kind: Service -+metadata: -+ name: {{ tuple "placement" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }} -+spec: -+ ports: -+ - name: p-api -+ port: {{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} -+ {{ if .Values.network.api.node_port.enabled }} -+ nodePort: {{ .Values.network.api.node_port.port }} -+ {{ end }} -+ selector: -+{{ tuple $envAll "placement" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} -+ {{ if .Values.network.api.node_port.enabled }} -+ type: NodePort -+ {{ end }} -+{{- end }} -diff --git a/placement/values.yaml b/placement/values.yaml -new file mode 100644 -index 0000000..33139f0 ---- /dev/null -+++ b/placement/values.yaml -@@ -0,0 +1,413 @@ -+# -+# SPDX-License-Identifier: Apache-2.0 -+# -+ -+# Default values for openstack-placement. -+# This is a YAML-formatted file. -+# Declare variables to be passed into your templates. -+ -+release_group: null -+ -+labels: -+ 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: -+ placement: docker.io/openstackhelm/placement:ocata-ubuntu_xenial -+ ks_user: docker.io/openstackhelm/heat:ocata-ubuntu_xenial -+ ks_service: docker.io/openstackhelm/heat:ocata-ubuntu_xenial -+ ks_endpoints: docker.io/openstackhelm/heat:ocata-ubuntu_xenial -+ db_init: docker.io/openstackhelm/heat:ocata-ubuntu_xenial -+ db_drop: docker.io/openstackhelm/heat:ocata-ubuntu_xenial -+ placement_db_sync: docker.io/openstackhelm/placement:ocata-ubuntu_xenial -+ dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1 -+ image_repo_sync: docker.io/docker:17.07.0 -+ local_registry: -+ active: false -+ exclude: -+ - dep_check -+ - image_repo_sync -+ -+network: -+ api: -+ port: 8778 -+ ingress: -+ public: true -+ classes: -+ namespace: "nginx" -+ cluster: "nginx-cluster" -+ annotations: -+ nginx.ingress.kubernetes.io/rewrite-target: / -+ external_policy_local: false -+ node_port: -+ enabled: false -+ port: 30778 -+ -+conf: -+ policy: -+ context_is_admin: 'role:admin' -+ segregation: 'rule:context_is_admin' -+ admin_or_owner: 'rule:context_is_admin or project_id:%(project_id)s' -+ default: 'rule:admin_or_owner' -+ placement: -+ DEFAULT: -+ debug: false -+ use_syslog: false -+ log_config_append: /etc/placement/logging.conf -+ placement_database: -+ connection: null -+ keystone_authtoken: -+ auth_version: v3 -+ auth_type: password -+ memcache_security_strategy: ENCRYPT -+ logging: -+ loggers: -+ keys: -+ - root -+ - placement -+ handlers: -+ keys: -+ - stdout -+ - stderr -+ - "null" -+ formatters: -+ keys: -+ - context -+ - default -+ logger_root: -+ level: WARNING -+ handlers: stdout -+ 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" -+ wsgi_placement: | -+ Listen 0.0.0.0:{{ 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 -+ LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy -+ SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded -+ CustomLog /dev/stdout combined env=!forwarded -+ CustomLog /dev/stdout proxy env=forwarded -+ -+ WSGIDaemonProcess placement-api processes=1 threads=4 user=placement group=placement display-name=%{GROUP} -+ WSGIProcessGroup placement-api -+ WSGIScriptAlias / /var/www/cgi-bin/placement/placement-api -+ WSGIApplicationGroup %{GLOBAL} -+ WSGIPassAuthorization On -+ = 2.4> -+ ErrorLogFormat "%{cu}t %M" -+ -+ ErrorLog /dev/stdout -+ SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded -+ CustomLog /dev/stdout combined env=!forwarded -+ CustomLog /dev/stdout proxy env=forwarded -+ -+ Alias /placement /var/www/cgi-bin/placement/placement-api -+ -+ SetHandler wsgi-script -+ Options +ExecCGI -+ WSGIProcessGroup placement-api -+ WSGIApplicationGroup %{GLOBAL} -+ WSGIPassAuthorization On -+ -+ -+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 -+ oslo_db: -+ auth: -+ admin: -+ username: root -+ password: password -+ placement: -+ username: placement -+ 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: -+ 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' -+ port: -+ api: -+ default: 8778 -+ public: 80 -+ -+pod: -+ user: -+ placement: -+ uid: 42424 -+ affinity: -+ anti: -+ type: -+ default: preferredDuringSchedulingIgnoredDuringExecution -+ topologyKey: -+ default: kubernetes.io/hostname -+ 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: false -+ api: -+ requests: -+ 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 -+ -+dependencies: -+ dynamic: -+ common: -+ local_image_registry: -+ jobs: -+ - image-repo-sync -+ services: -+ - endpoint: node -+ service: local_image_registry -+ static: -+ api: -+ jobs: -+ - placement-db-sync -+ - placement-ks-service -+ - placement-ks-user -+ - placement-ks-endpoints -+ ks_endpoints: -+ jobs: -+ - placement-ks-user -+ - placement-ks-service -+ services: -+ - endpoint: internal -+ service: identity -+ ks_service: -+ services: -+ - endpoint: internal -+ service: identity -+ ks_user: -+ services: -+ - endpoint: internal -+ service: identity -+ db_drop: -+ services: -+ - endpoint: internal -+ service: oslo_db -+ db_init: -+ services: -+ - endpoint: internal -+ service: oslo_db -+ db_sync: -+ jobs: -+ - placement-db-init -+ services: -+ - endpoint: internal -+ service: oslo_db -+ -+manifests: -+ configmap_bin: true -+ configmap_etc: true -+ deployment: true -+ job_image_repo_sync: true -+ job_db_init: true -+ job_db_sync: true -+ job_db_drop: false -+ job_ks_endpoints: true -+ job_ks_service: true -+ job_ks_user: true -+ network_policy: false -+ secret_db: true -+ secret_ingress_tls: true -+ pdb: true -+ ingress: true -+ secret_keystone: true -+ service_ingress: true -+ service: true --- -2.7.4 - diff --git a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/index.yaml b/meta-stx-flock/stx-openstack-armada-app/openstack-helm/index.yaml deleted file mode 100644 index 166dfef..0000000 --- a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -apiVersion: v1 -entries: {} -generated: 2019-01-07T12:33:46.098166523-06:00 diff --git a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/repositories.yaml b/meta-stx-flock/stx-openstack-armada-app/openstack-helm/repositories.yaml deleted file mode 100644 index 7fbaebd..0000000 --- a/meta-stx-flock/stx-openstack-armada-app/openstack-helm/repositories.yaml +++ /dev/null @@ -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: "" diff --git a/meta-stx-flock/stx-openstack-armada-app/openstack-helm_1.0.bb b/meta-stx-flock/stx-openstack-armada-app/openstack-helm_1.0.bb deleted file mode 100644 index cd051d8..0000000 --- a/meta-stx-flock/stx-openstack-armada-app/openstack-helm_1.0.bb +++ /dev/null @@ -1,109 +0,0 @@ - -SUMMARY = "Openstack Helm charts" -DESCRIPTION = "Openstack Helm charts" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" - -DEPENDS += " \ - helm-native \ - openstack-helm-infra \ -" - -PROTOCOL = "https" -BRANCH = "r/stx.3.0" -SRCREV_openstack-helm = "82c72367c85ca94270f702661c7b984899c1ae38" -SRCREV_openstack-armada-app = "863f4b9733d3d4f4fd490606a94b84cfdaf2df2c" - -SRC_URI = " \ - git://github.com/openstack/openstack-helm;protocol=${PROTOCOL};name=openstack-helm \ - file://0001-Ceilometer-chart-add-the-ability-to-publish-events-t.patch \ - file://0002-Remove-stale-Apache2-service-pids-when-a-POD-starts.patch \ - file://0003-Nova-console-ip-address-search-optionality.patch \ - file://0004-Nova-chart-Support-ephemeral-pool-creation.patch \ - file://0005-Nova-Add-support-for-disabling-Readiness-Liveness-pr.patch \ - file://0006-Add-Placement-Chart.patch \ - file://repositories.yaml \ - file://index.yaml \ - " - -PATCHTOOL = "git" -PATCH_COMMIT_FUNCTIONS = "1" - -S = "${WORKDIR}/git" - -inherit allarch - -helm_folder = "${nonarch_libdir}/helm" -toolkit_version = "0.1.0" -helmchart_version = "0.1.0" - -do_configure[noexec] = "1" - -do_compile () { - # initialize helm and build the toolkit - # helm init --client-only does not work if there is no networking - # The following commands do essentially the same as: helm init - export HOME="${B}/${USER}" - export helm_home="${B}/${USER}/.helm" - rm -rf ${helm_home} - - mkdir -p ${helm_home} - mkdir ${helm_home}/repository - mkdir ${helm_home}/repository/cache - mkdir ${helm_home}/repository/local - mkdir ${helm_home}/plugins - mkdir ${helm_home}/starters - mkdir ${helm_home}/cache - mkdir ${helm_home}/cache/archive - - # Stage a repository file that only has a local repo - install -m 0644 ${WORKDIR}/repositories.yaml ${helm_home}/repository/repositories.yaml - - # Stage a local repo index that can be updated by the build - install -m 0644 ${WORKDIR}/index.yaml ${helm_home}/repository/local/index.yaml - - # Stage helm-toolkit in the local repo - cp ${RECIPE_SYSROOT}${helm_folder}/helm-toolkit-${toolkit_version}.tgz . - - # Host a server for the charts - helm serve --repo-path . & - sleep 1 - helm repo rm local - helm repo add local http://localhost:8879/charts - - # Make the charts. These produce a tgz file - make aodh - make barbican - make ceilometer - make cinder - make glance - make heat - make horizon - make ironic - make keystone - make magnum - make neutron - make nova - make panko - make placement - - # terminate helm server (the last backgrounded task) - kill $! - rm -rf ${helm_home} - - # Remove the helm-toolkit tarball - rm helm-toolkit-${toolkit_version}.tgz -} - -do_install () { - install -d -m 755 ${D}${helm_folder} - install -p -D -m 755 ${B}/*.tgz ${D}${helm_folder} -} - -FILES_${PN} = "${helm_folder}" - -RDEPENDS_${PN} = " \ - helm \ - openstack-helm-infra \ -" diff --git a/meta-stx-flock/stx-openstack-armada-app/openstack-helm_git.bb b/meta-stx-flock/stx-openstack-armada-app/openstack-helm_git.bb new file mode 100644 index 0000000..9ecda8f --- /dev/null +++ b/meta-stx-flock/stx-openstack-armada-app/openstack-helm_git.bb @@ -0,0 +1,97 @@ +SUMMARY = "Openstack Helm charts" +DESCRIPTION = "Openstack Helm charts" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +DEPENDS += " \ + helm-native \ + openstack-helm-infra \ +" + +PROTOCOL = "https" +SRCREV = "34a7533b6484a157c8725889d0d68e792e13fc8d" + +PV = "1.0" +PR = "44" +PRAUTO = "tis" + +inherit stx-chartmuseum +inherit stx-metadata + +STX_REPO = "openstack-armada-app" +STX_SUBPATH = "${BPN}/files" + +SRC_URI_STX = " \ + file://0001-Ceilometer-chart-add-the-ability-to-publish-events-t.patch \ + file://0002-Remove-stale-Apache2-service-pids-when-a-POD-starts.patch \ + file://0003-Nova-console-ip-address-search-optionality.patch \ + file://0004-Nova-chart-Support-ephemeral-pool-creation.patch \ + file://0005-Nova-Add-support-for-disabling-Readiness-Liveness-pr.patch \ + file://0006-Support-ingress-creation-for-keystone-admin-endpoint.patch \ + file://0007-Allow-more-generic-overrides-for-placeme.patch \ + file://0008-Allow-set-public-endpoint-url-for-keystone-endpoints.patch \ + file://0009-Wrong-usage-of-rbd_store_chunk_size.patch \ + file://0010-Add-stx_admin-account.patch \ + " + +SRC_URI = " \ + git://github.com/openstack/${BPN};protocol=${PROTOCOL} \ + " + +PATCHTOOL = "git" +PATCH_COMMIT_FUNCTIONS = "1" + +S = "${WORKDIR}/git" + +inherit allarch + +helm_folder = "${nonarch_libdir}/helm" +toolkit_version = "0.1.0" +helmchart_version = "0.1.0" + +do_configure[noexec] = "1" + +do_compile () { + # Stage helm-toolkit in the local repo + cp ${RECIPE_SYSROOT}${helm_folder}/helm-toolkit-${toolkit_version}.tgz . + + # Host a server for the charts + chartmuseum --debug --port=${CHARTMUSEUM_PORT} --context-path='/charts' --storage="local" --storage-local-rootdir="." & + sleep 2 + helm repo add local http://localhost:${CHARTMUSEUM_PORT}/charts + + # Make the charts. These produce a tgz file + make aodh + make barbican + make ceilometer + make cinder + make glance + make heat + make horizon + make ironic + make keystone + make magnum + make neutron + make nova + make panko + make placement + + # terminate helm server (the last backgrounded task) + kill $! + + # Remove the helm-toolkit tarball + rm helm-toolkit-${toolkit_version}.tgz +} + +do_install () { + install -d -m 755 ${D}${helm_folder} + install -p -D -m 755 ${B}/*.tgz ${D}${helm_folder} +} + +FILES_${PN} = "${helm_folder}" + +RDEPENDS_${PN} = " \ + helm \ + openstack-helm-infra \ +"