1 From 374b61d70c593694f850bd6f6a74842c12ecf5f8 Mon Sep 17 00:00:00 2001
2 From: zhipengl <zhipengs.liu@intel.com>
3 Date: Fri, 31 May 2019 06:49:51 +0800
4 Subject: [PATCH] Add placement chart
6 This commit adds a helm chart to deploy placement.
8 Related test pass on simplex and multi-node setup
13 Change-Id: Ife908628c6379d2d39d15f72073da3018cc26950
14 Signed-off-by: zhipengl <zhipengs.liu@intel.com>
16 placement/Chart.yaml | 9 +
17 placement/requirements.yaml | 10 +
18 placement/templates/bin/_db-sync.sh.tpl | 13 +
19 placement/templates/bin/_placement-api.sh.tpl | 34 +++
20 placement/templates/configmap-bin.yaml | 31 ++
21 placement/templates/configmap-etc.yaml | 58 ++++
22 placement/templates/deployment.yaml | 116 ++++++++
23 placement/templates/ingress.yaml | 12 +
24 placement/templates/job-db-drop.yaml | 13 +
25 placement/templates/job-db-init.yaml | 15 +
26 placement/templates/job-db-sync.yaml | 12 +
27 placement/templates/job-image-repo-sync.yaml | 12 +
28 placement/templates/job-ks-endpoints.yaml | 12 +
29 placement/templates/job-ks-service.yaml | 12 +
30 placement/templates/job-ks-user.yaml | 12 +
31 placement/templates/network_policy.yaml | 12 +
32 placement/templates/pdb.yaml | 21 ++
33 placement/templates/secret-db.yaml | 22 ++
34 placement/templates/secret-ingress-tls.yaml | 11 +
35 placement/templates/secret-keystone.yaml | 22 ++
36 placement/templates/service-ingress.yaml | 12 +
37 placement/templates/service.yaml | 26 ++
38 placement/values.yaml | 413 ++++++++++++++++++++++++++
39 23 files changed, 910 insertions(+)
40 create mode 100644 placement/Chart.yaml
41 create mode 100644 placement/requirements.yaml
42 create mode 100644 placement/templates/bin/_db-sync.sh.tpl
43 create mode 100644 placement/templates/bin/_placement-api.sh.tpl
44 create mode 100644 placement/templates/configmap-bin.yaml
45 create mode 100644 placement/templates/configmap-etc.yaml
46 create mode 100644 placement/templates/deployment.yaml
47 create mode 100644 placement/templates/ingress.yaml
48 create mode 100644 placement/templates/job-db-drop.yaml
49 create mode 100644 placement/templates/job-db-init.yaml
50 create mode 100644 placement/templates/job-db-sync.yaml
51 create mode 100644 placement/templates/job-image-repo-sync.yaml
52 create mode 100644 placement/templates/job-ks-endpoints.yaml
53 create mode 100644 placement/templates/job-ks-service.yaml
54 create mode 100644 placement/templates/job-ks-user.yaml
55 create mode 100644 placement/templates/network_policy.yaml
56 create mode 100644 placement/templates/pdb.yaml
57 create mode 100644 placement/templates/secret-db.yaml
58 create mode 100644 placement/templates/secret-ingress-tls.yaml
59 create mode 100644 placement/templates/secret-keystone.yaml
60 create mode 100644 placement/templates/service-ingress.yaml
61 create mode 100644 placement/templates/service.yaml
62 create mode 100644 placement/values.yaml
64 diff --git a/placement/Chart.yaml b/placement/Chart.yaml
66 index 0000000..e8eb058
68 +++ b/placement/Chart.yaml
71 +# Copyright (c) 2019 StarlingX.
76 +description: OpenStack Placement Service
79 diff --git a/placement/requirements.yaml b/placement/requirements.yaml
81 index 0000000..3a162a6
83 +++ b/placement/requirements.yaml
86 +# Copyright (c) 2019 StarlingX.
88 +# SPDX-License-Identifier: Apache-2.0
92 + - name: helm-toolkit
93 + repository: http://localhost:8879/charts
95 diff --git a/placement/templates/bin/_db-sync.sh.tpl b/placement/templates/bin/_db-sync.sh.tpl
97 index 0000000..4a36848
99 +++ b/placement/templates/bin/_db-sync.sh.tpl
105 +# Copyright (c) 2019 StarlingX.
107 +# SPDX-License-Identifier: Apache-2.0
113 +su -s /bin/sh -c "placement-manage db sync" placement
114 diff --git a/placement/templates/bin/_placement-api.sh.tpl b/placement/templates/bin/_placement-api.sh.tpl
116 index 0000000..4f82970
118 +++ b/placement/templates/bin/_placement-api.sh.tpl
124 +# Copyright (c) 2019 StarlingX.
126 +# SPDX-License-Identifier: Apache-2.0
131 +COMMAND="${@:-start}"
135 + cp -a $(type -p placement-api) /var/www/cgi-bin/placement/
137 + if [ -f /etc/apache2/envvars ]; then
138 + # Loading Apache2 ENV variables
139 + source /etc/apache2/envvars
142 + # Get rid of stale pid file if present.
143 + rm -f /var/run/apache2/*.pid
146 + exec apache2 -DFOREGROUND
150 + apachectl -k graceful-stop
154 diff --git a/placement/templates/configmap-bin.yaml b/placement/templates/configmap-bin.yaml
156 index 0000000..3e98ea9
158 +++ b/placement/templates/configmap-bin.yaml
162 +# Copyright (c) 2019 StarlingX.
164 +# SPDX-License-Identifier: Apache-2.0
168 +{{- if .Values.manifests.configmap_bin }}
174 + name: placement-bin
176 + placement-api.sh: |
177 +{{ tuple "bin/_placement-api.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
179 +{{ tuple "bin/_db-sync.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
181 +{{- include "helm-toolkit.scripts.db_init" . | indent 4 }}
183 +{{- include "helm-toolkit.scripts.db_drop" . | indent 4 }}
185 +{{- include "helm-toolkit.scripts.keystone_service" . | indent 4 }}
187 +{{- include "helm-toolkit.scripts.keystone_endpoints" . | indent 4 }}
189 +{{- include "helm-toolkit.scripts.keystone_user" . | indent 4 }}
191 diff --git a/placement/templates/configmap-etc.yaml b/placement/templates/configmap-etc.yaml
193 index 0000000..62834cc
195 +++ b/placement/templates/configmap-etc.yaml
199 +# Copyright (c) 2019 StarlingX.
201 +# SPDX-License-Identifier: Apache-2.0
205 +{{- if .Values.manifests.configmap_etc }}
208 +{{- if empty .Values.conf.placement.placement_database.connection -}}
209 +{{- $_ := tuple "oslo_db" "internal" "placement" "mysql" . | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | set .Values.conf.placement.placement_database "connection" -}}
212 +{{- if empty .Values.conf.placement.keystone_authtoken.auth_uri -}}
213 +{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup" | set .Values.conf.placement.keystone_authtoken "auth_uri" -}}
215 +{{- if empty .Values.conf.placement.keystone_authtoken.auth_url -}}
216 +{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup" | set .Values.conf.placement.keystone_authtoken "auth_url" -}}
219 +{{- if empty .Values.conf.placement.keystone_authtoken.os_region_name -}}
220 +{{- $_ := set .Values.conf.placement.keystone_authtoken "os_region_name" .Values.endpoints.identity.auth.placement.region_name -}}
222 +{{- if empty .Values.conf.placement.keystone_authtoken.project_name -}}
223 +{{- $_ := set .Values.conf.placement.keystone_authtoken "project_name" .Values.endpoints.identity.auth.placement.project_name -}}
225 +{{- if empty .Values.conf.placement.keystone_authtoken.project_domain_name -}}
226 +{{- $_ := set .Values.conf.placement.keystone_authtoken "project_domain_name" .Values.endpoints.identity.auth.placement.project_domain_name -}}
228 +{{- if empty .Values.conf.placement.keystone_authtoken.user_domain_name -}}
229 +{{- $_ := set .Values.conf.placement.keystone_authtoken "user_domain_name" .Values.endpoints.identity.auth.placement.user_domain_name -}}
231 +{{- if empty .Values.conf.placement.keystone_authtoken.username -}}
232 +{{- $_ := set .Values.conf.placement.keystone_authtoken "username" .Values.endpoints.identity.auth.placement.username -}}
234 +{{- if empty .Values.conf.placement.keystone_authtoken.password -}}
235 +{{- $_ := set .Values.conf.placement.keystone_authtoken "password" .Values.endpoints.identity.auth.placement.password -}}
237 +{{- if empty .Values.conf.placement.keystone_authtoken.memcached_servers -}}
238 +{{- $_ := tuple "oslo_cache" "internal" "memcache" . | include "helm-toolkit.endpoints.host_and_port_endpoint_uri_lookup" | set .Values.conf.placement.keystone_authtoken "memcached_servers" -}}
240 +{{- if empty .Values.conf.placement.keystone_authtoken.memcache_secret_key -}}
241 +{{- $_ := set .Values.conf.placement.keystone_authtoken "memcache_secret_key" ( default ( randAlphaNum 64 ) .Values.endpoints.oslo_cache.auth.memcache_secret_key ) -}}
247 + name: placement-etc
250 + policy.yaml: {{ toYaml .Values.conf.policy | b64enc }}
251 + placement.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.placement | b64enc }}
252 + logging.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.logging | b64enc }}
253 +{{- include "helm-toolkit.snippets.values_template_renderer" (dict "envAll" $envAll "template" .Values.conf.wsgi_placement "key" "wsgi-placement.conf" "format" "Secret" ) | indent 2 }}
255 diff --git a/placement/templates/deployment.yaml b/placement/templates/deployment.yaml
257 index 0000000..922bbcf
259 +++ b/placement/templates/deployment.yaml
263 +# Copyright (c) 2019 StarlingX.
265 +# SPDX-License-Identifier: Apache-2.0
269 +{{- if .Values.manifests.deployment }}
272 +{{- $mounts_placement := .Values.pod.mounts.placement.placement }}
273 +{{- $mounts_placement_init := .Values.pod.mounts.placement.init_container }}
275 +{{- $serviceAccountName := "placement-api" }}
276 +{{ tuple $envAll "api" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
281 + name: placement-api
283 + {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
285 +{{ tuple $envAll "placement" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
287 + replicas: {{ .Values.pod.replicas.api }}
290 +{{ tuple $envAll "placement" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
291 +{{ tuple $envAll | include "helm-toolkit.snippets.kubernetes_upgrades_deployment" | indent 2 }}
295 +{{ tuple $envAll "placement" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
297 +{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
298 + configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
299 + configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
301 + serviceAccountName: {{ $serviceAccountName }}
303 +{{ tuple $envAll "placement" "api" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
305 + {{ .Values.labels.api.node_selector_key }}: {{ .Values.labels.api.node_selector_value }}
306 + terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.api.timeout | default "30" }}
308 +{{ tuple $envAll "api" $mounts_placement_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
310 + - name: placement-api
311 +{{ tuple $envAll "placement" | include "helm-toolkit.snippets.image" | indent 10 }}
312 +{{ tuple $envAll $envAll.Values.pod.resources.api | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
314 + - /tmp/placement-api.sh
320 + - /tmp/placement-api.sh
324 + containerPort: {{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
326 + #NOTE(portdirect): use tcpSocket check as HTTP will return 401
328 + port: {{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
329 + initialDelaySeconds: 15
333 + port: {{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
334 + initialDelaySeconds: 50
339 + - name: wsgi-placement
340 + mountPath: /var/www/cgi-bin/placement
341 + - name: placement-bin
342 + mountPath: /tmp/placement-api.sh
343 + subPath: placement-api.sh
345 + - name: placement-etc
346 + mountPath: /etc/placement/placement.conf
347 + subPath: placement.conf
349 + - name: placement-etc
350 + mountPath: {{ .Values.conf.placement.DEFAULT.log_config_append }}
351 + subPath: {{ base .Values.conf.placement.DEFAULT.log_config_append }}
353 + - name: placement-etc
354 + mountPath: /etc/placement/policy.yaml
355 + subPath: policy.yaml
357 + - name: placement-etc
358 + mountPath: /etc/apache2/conf-enabled/wsgi-placement.conf
359 + subPath: wsgi-placement.conf
361 +{{ if $mounts_placement.volumeMounts }}{{ toYaml $mounts_placement.volumeMounts | indent 12 }}{{ end }}
365 + - name: wsgi-placement
367 + - name: placement-bin
369 + name: placement-bin
371 + - name: placement-etc
373 + secretName: placement-etc
375 +{{ if $mounts_placement.volumes }}{{ toYaml $mounts_placement.volumes | indent 8 }}{{ end }}
377 diff --git a/placement/templates/ingress.yaml b/placement/templates/ingress.yaml
379 index 0000000..5dcced8
381 +++ b/placement/templates/ingress.yaml
385 +# Copyright (c) 2019 StarlingX.
387 +# SPDX-License-Identifier: Apache-2.0
391 +{{- if and .Values.manifests.ingress .Values.network.api.ingress.public }}
392 +{{- $ingressOpts := dict "envAll" . "backendServiceType" "placement" "backendPort" "p-api" -}}
393 +{{ $ingressOpts | include "helm-toolkit.manifests.ingress" }}
395 diff --git a/placement/templates/job-db-drop.yaml b/placement/templates/job-db-drop.yaml
397 index 0000000..1cdb753
399 +++ b/placement/templates/job-db-drop.yaml
403 +# Copyright (c) 2019 StarlingX.
405 +# SPDX-License-Identifier: Apache-2.0
409 +{{- if .Values.manifests.job_db_drop }}
410 +{{- $serviceName := "placement" -}}
411 +{{- $dbDropJob := dict "envAll" . "serviceName" $serviceName -}}
412 +{{ $dbDropJob | include "helm-toolkit.manifests.job_db_drop_mysql" }}
414 diff --git a/placement/templates/job-db-init.yaml b/placement/templates/job-db-init.yaml
416 index 0000000..4c9d450
418 +++ b/placement/templates/job-db-init.yaml
422 +# Copyright (c) 2019 StarlingX.
424 +# SPDX-License-Identifier: Apache-2.0
428 +{{- if .Values.manifests.job_db_init }}
429 +{{- $serviceName := "placement" -}}
430 +{{- $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" -}}
431 +{{- $dbsToInit := list $dbApi }}
432 +{{- $dbInitJob := dict "envAll" . "serviceName" $serviceName "dbsToInit" $dbsToInit -}}
433 +{{ $dbInitJob | include "helm-toolkit.manifests.job_db_init_mysql" }}
435 diff --git a/placement/templates/job-db-sync.yaml b/placement/templates/job-db-sync.yaml
437 index 0000000..5aeefba
439 +++ b/placement/templates/job-db-sync.yaml
443 +# Copyright (c) 2019 StarlingX.
445 +# SPDX-License-Identifier: Apache-2.0
449 +{{- if .Values.manifests.job_db_sync }}
450 +{{- $dbSyncJob := dict "envAll" . "serviceName" "placement" -}}
451 +{{ $dbSyncJob | include "helm-toolkit.manifests.job_db_sync" }}
453 diff --git a/placement/templates/job-image-repo-sync.yaml b/placement/templates/job-image-repo-sync.yaml
455 index 0000000..022b160
457 +++ b/placement/templates/job-image-repo-sync.yaml
461 +# Copyright (c) 2019 StarlingX.
463 +# SPDX-License-Identifier: Apache-2.0
467 +{{- if and .Values.manifests.job_image_repo_sync .Values.images.local_registry.active }}
468 +{{- $imageRepoSyncJob := dict "envAll" . "serviceName" "placement" -}}
469 +{{ $imageRepoSyncJob | include "helm-toolkit.manifests.job_image_repo_sync" }}
471 diff --git a/placement/templates/job-ks-endpoints.yaml b/placement/templates/job-ks-endpoints.yaml
473 index 0000000..d3a43fc
475 +++ b/placement/templates/job-ks-endpoints.yaml
479 +# Copyright (c) 2018 StarlingX.
481 +# SPDX-License-Identifier: Apache-2.0
485 +{{- if .Values.manifests.job_ks_endpoints }}
486 +{{- $ksServiceJob := dict "envAll" . "serviceName" "placement" "serviceTypes" ( tuple "placement" ) -}}
487 +{{ $ksServiceJob | include "helm-toolkit.manifests.job_ks_endpoints" }}
489 diff --git a/placement/templates/job-ks-service.yaml b/placement/templates/job-ks-service.yaml
491 index 0000000..0dd6d6e
493 +++ b/placement/templates/job-ks-service.yaml
497 +# Copyright (c) 2019 StarlingX.
499 +# SPDX-License-Identifier: Apache-2.0
503 +{{- if .Values.manifests.job_ks_service }}
504 +{{- $ksServiceJob := dict "envAll" . "serviceName" "placement" "serviceTypes" ( tuple "placement" ) -}}
505 +{{ $ksServiceJob | include "helm-toolkit.manifests.job_ks_service" }}
507 diff --git a/placement/templates/job-ks-user.yaml b/placement/templates/job-ks-user.yaml
509 index 0000000..b0f7799
511 +++ b/placement/templates/job-ks-user.yaml
515 +# Copyright (c) 2019 StarlingX.
517 +# SPDX-License-Identifier: Apache-2.0
521 +{{- if .Values.manifests.job_ks_user }}
522 +{{- $ksUserJob := dict "envAll" . "serviceName" "placement" -}}
523 +{{ $ksUserJob | include "helm-toolkit.manifests.job_ks_user" }}
525 diff --git a/placement/templates/network_policy.yaml b/placement/templates/network_policy.yaml
527 index 0000000..6355f90
529 +++ b/placement/templates/network_policy.yaml
533 +# Copyright (c) 2019 StarlingX.
535 +# SPDX-License-Identifier: Apache-2.0
539 +{{- if .Values.manifests.network_policy -}}
540 +{{- $netpol_opts := dict "envAll" . "name" "application" "label" "placement" }}
541 +{{ $netpol_opts | include "helm-toolkit.manifests.kubernetes_network_policy" }}
543 diff --git a/placement/templates/pdb.yaml b/placement/templates/pdb.yaml
545 index 0000000..a61fe58
547 +++ b/placement/templates/pdb.yaml
551 +# Copyright (c) 2019 StarlingX.
553 +# SPDX-License-Identifier: Apache-2.0
557 +{{- if .Values.manifests.pdb }}
560 +apiVersion: policy/v1beta1
561 +kind: PodDisruptionBudget
563 + name: placement-api
565 + minAvailable: {{ .Values.pod.lifecycle.disruption_budget.api.min_available }}
568 +{{ tuple $envAll "placement" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
570 diff --git a/placement/templates/secret-db.yaml b/placement/templates/secret-db.yaml
572 index 0000000..5c7321e
574 +++ b/placement/templates/secret-db.yaml
578 +# Copyright (c) 2019 StarlingX.
580 +# SPDX-License-Identifier: Apache-2.0
584 +{{- if .Values.manifests.secret_db }}
586 +{{- range $key1, $userClass := tuple "admin" "placement" }}
587 +{{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
592 + name: {{ $secretName }}
595 + DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
598 diff --git a/placement/templates/secret-ingress-tls.yaml b/placement/templates/secret-ingress-tls.yaml
600 index 0000000..3413b5b
602 +++ b/placement/templates/secret-ingress-tls.yaml
606 +# Copyright (c) 2019 StarlingX.
608 +# SPDX-License-Identifier: Apache-2.0
612 +{{- if .Values.manifests.secret_ingress_tls }}
613 +{{ include "helm-toolkit.manifests.secret_ingress_tls" ( dict "envAll" . "backendServiceType" "placement" ) }}
615 diff --git a/placement/templates/secret-keystone.yaml b/placement/templates/secret-keystone.yaml
617 index 0000000..efc1a17
619 +++ b/placement/templates/secret-keystone.yaml
623 +# Copyright (c) 2019 StarlingX.
625 +# SPDX-License-Identifier: Apache-2.0
629 +{{- if .Values.manifests.secret_keystone }}
631 +{{- range $key1, $userClass := tuple "admin" "placement" }}
632 +{{- $secretName := index $envAll.Values.secrets.identity $userClass }}
637 + name: {{ $secretName }}
640 +{{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
643 diff --git a/placement/templates/service-ingress.yaml b/placement/templates/service-ingress.yaml
645 index 0000000..75fcd61
647 +++ b/placement/templates/service-ingress.yaml
651 +# Copyright (c) 2019 StarlingX.
653 +# SPDX-License-Identifier: Apache-2.0
657 +{{- if and .Values.manifests.service_ingress .Values.network.api.ingress.public }}
658 +{{- $serviceIngressOpts := dict "envAll" . "backendServiceType" "placement" -}}
659 +{{ $serviceIngressOpts | include "helm-toolkit.manifests.service_ingress" }}
661 diff --git a/placement/templates/service.yaml b/placement/templates/service.yaml
663 index 0000000..0bda157
665 +++ b/placement/templates/service.yaml
669 +# SPDX-License-Identifier: Apache-2.0
673 +{{- if .Values.manifests.service }}
679 + name: {{ tuple "placement" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
683 + port: {{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
684 + {{ if .Values.network.api.node_port.enabled }}
685 + nodePort: {{ .Values.network.api.node_port.port }}
688 +{{ tuple $envAll "placement" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
689 + {{ if .Values.network.api.node_port.enabled }}
693 diff --git a/placement/values.yaml b/placement/values.yaml
695 index 0000000..33139f0
697 +++ b/placement/values.yaml
700 +# SPDX-License-Identifier: Apache-2.0
703 +# Default values for openstack-placement.
704 +# This is a YAML-formatted file.
705 +# Declare variables to be passed into your templates.
711 + node_selector_key: openstack-control-plane
712 + node_selector_value: enabled
714 + node_selector_key: openstack-control-plane
715 + node_selector_value: enabled
718 + pull_policy: IfNotPresent
720 + placement: docker.io/openstackhelm/placement:ocata-ubuntu_xenial
721 + ks_user: docker.io/openstackhelm/heat:ocata-ubuntu_xenial
722 + ks_service: docker.io/openstackhelm/heat:ocata-ubuntu_xenial
723 + ks_endpoints: docker.io/openstackhelm/heat:ocata-ubuntu_xenial
724 + db_init: docker.io/openstackhelm/heat:ocata-ubuntu_xenial
725 + db_drop: docker.io/openstackhelm/heat:ocata-ubuntu_xenial
726 + placement_db_sync: docker.io/openstackhelm/placement:ocata-ubuntu_xenial
727 + dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
728 + image_repo_sync: docker.io/docker:17.07.0
742 + cluster: "nginx-cluster"
744 + nginx.ingress.kubernetes.io/rewrite-target: /
745 + external_policy_local: false
752 + context_is_admin: 'role:admin'
753 + segregation: 'rule:context_is_admin'
754 + admin_or_owner: 'rule:context_is_admin or project_id:%(project_id)s'
755 + default: 'rule:admin_or_owner'
760 + log_config_append: /etc/placement/logging.conf
761 + placement_database:
763 + keystone_authtoken:
765 + auth_type: password
766 + memcache_security_strategy: ENCRYPT
788 + qualname: placement
797 + logger_eventletwsgi:
800 + qualname: eventlet.wsgi.server
804 + qualname: sqlalchemy
810 + class: logging.NullHandler
814 + class: StreamHandler
815 + args: (sys.stdout,)
818 + class: StreamHandler
819 + args: (sys.stderr,)
822 + class: oslo_log.formatters.ContextFormatter
823 + datefmt: "%Y-%m-%d %H:%M:%S"
825 + format: "%(message)s"
826 + datefmt: "%Y-%m-%d %H:%M:%S"
828 + Listen 0.0.0.0:{{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
829 + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
830 + LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
831 + SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
832 + CustomLog /dev/stdout combined env=!forwarded
833 + CustomLog /dev/stdout proxy env=forwarded
834 + <VirtualHost *:{{ tuple "placement" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}>
835 + WSGIDaemonProcess placement-api processes=1 threads=4 user=placement group=placement display-name=%{GROUP}
836 + WSGIProcessGroup placement-api
837 + WSGIScriptAlias / /var/www/cgi-bin/placement/placement-api
838 + WSGIApplicationGroup %{GLOBAL}
839 + WSGIPassAuthorization On
841 + ErrorLogFormat "%{cu}t %M"
843 + ErrorLog /dev/stdout
844 + SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
845 + CustomLog /dev/stdout combined env=!forwarded
846 + CustomLog /dev/stdout proxy env=forwarded
848 + Alias /placement /var/www/cgi-bin/placement/placement-api
849 + <Location /placement>
850 + SetHandler wsgi-script
852 + WSGIProcessGroup placement-api
853 + WSGIApplicationGroup %{GLOBAL}
854 + WSGIPassAuthorization On
858 + cluster_domain_suffix: cluster.local
859 + local_image_registry:
860 + name: docker-registry
861 + namespace: docker-registry
864 + internal: docker-registry
866 + host_fqdn_override:
877 + username: placement
881 + host_fqdn_override:
884 + scheme: mysql+pymysql
890 + # NOTE(portdirect): this is used to define the value for keystone
891 + # authtoken cache encryption key, if not set it will be populated
892 + # automatically with a random value, but to take advantage of
893 + # this feature all services should be set to use the same key,
894 + # and memcache service.
895 + memcache_secret_key: null
898 + host_fqdn_override:
907 + region_name: RegionOne
910 + project_name: admin
911 + user_domain_name: default
912 + project_domain_name: default
915 + region_name: RegionOne
916 + username: placement
918 + project_name: service
919 + user_domain_name: service
920 + project_domain_name: service
923 + internal: keystone-api
924 + host_fqdn_override:
937 + default: placement-api
939 + host_fqdn_override:
957 + default: preferredDuringSchedulingIgnoredDuringExecution
959 + default: kubernetes.io/hostname
962 + init_container: null
971 + revision_history: 3
972 + pod_replacement_strategy: RollingUpdate
979 + termination_grace_period:
1037 + admin: placement-keystone-admin
1038 + placement: placement-keystone-user
1040 + admin: placement-db-admin
1041 + placement: placement-db-user
1045 + public: placement-tls-public
1050 + local_image_registry:
1055 + service: local_image_registry
1059 + - placement-db-sync
1060 + - placement-ks-service
1061 + - placement-ks-user
1062 + - placement-ks-endpoints
1065 + - placement-ks-user
1066 + - placement-ks-service
1068 + - endpoint: internal
1072 + - endpoint: internal
1076 + - endpoint: internal
1080 + - endpoint: internal
1084 + - endpoint: internal
1088 + - placement-db-init
1090 + - endpoint: internal
1094 + configmap_bin: true
1095 + configmap_etc: true
1097 + job_image_repo_sync: true
1100 + job_db_drop: false
1101 + job_ks_endpoints: true
1102 + job_ks_service: true
1104 + network_policy: false
1106 + secret_ingress_tls: true
1109 + secret_keystone: true
1110 + service_ingress: true