1115 lines
34 KiB
Diff
1115 lines
34 KiB
Diff
From 374b61d70c593694f850bd6f6a74842c12ecf5f8 Mon Sep 17 00:00:00 2001
|
|
From: zhipengl <zhipengs.liu@intel.com>
|
|
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 <zhipengs.liu@intel.com>
|
|
---
|
|
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
|
|
+ <VirtualHost *:{{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}>
|
|
+ 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
|
|
+ <IfVersion >= 2.4>
|
|
+ ErrorLogFormat "%{cu}t %M"
|
|
+ </IfVersion>
|
|
+ ErrorLog /dev/stdout
|
|
+ SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
|
|
+ CustomLog /dev/stdout combined env=!forwarded
|
|
+ CustomLog /dev/stdout proxy env=forwarded
|
|
+ </VirtualHost>
|
|
+ Alias /placement /var/www/cgi-bin/placement/placement-api
|
|
+ <Location /placement>
|
|
+ SetHandler wsgi-script
|
|
+ Options +ExecCGI
|
|
+ WSGIProcessGroup placement-api
|
|
+ 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
|
|
+ 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
|
|
|