Update charts to use service tokens
diff --git a/charts/placement/Chart.yaml b/charts/placement/Chart.yaml
index 188ccfb..fa4c4c2 100644
--- a/charts/placement/Chart.yaml
+++ b/charts/placement/Chart.yaml
@@ -9,4 +9,4 @@
 sources:
 - https://opendev.org/openstack/placement
 - https://opendev.org/openstack/openstack-helm
-version: 0.3.2
+version: 0.3.7
diff --git a/charts/placement/charts/helm-toolkit/Chart.yaml b/charts/placement/charts/helm-toolkit/Chart.yaml
index 404f380..e6aec81 100644
--- a/charts/placement/charts/helm-toolkit/Chart.yaml
+++ b/charts/placement/charts/helm-toolkit/Chart.yaml
@@ -9,4 +9,4 @@
 sources:
 - https://opendev.org/openstack/openstack-helm-infra
 - https://opendev.org/openstack/openstack-helm
-version: 0.2.52
+version: 0.2.54
diff --git a/charts/placement/charts/helm-toolkit/templates/scripts/_db-init.py.tpl b/charts/placement/charts/helm-toolkit/templates/scripts/_db-init.py.tpl
index 4294d40..6027b95 100644
--- a/charts/placement/charts/helm-toolkit/templates/scripts/_db-init.py.tpl
+++ b/charts/placement/charts/helm-toolkit/templates/scripts/_db-init.py.tpl
@@ -133,8 +133,10 @@
 # Create DB User
 try:
     root_engine.execute(
-        "GRANT ALL ON `{0}`.* TO \'{1}\'@\'%%\' IDENTIFIED BY \'{2}\' {3}".format(
-            database, user, password, mysql_x509))
+        "CREATE USER IF NOT EXISTS \'{0}\'@\'%%\' IDENTIFIED BY \'{1}\' {2}".format(
+            user, password, mysql_x509))
+    root_engine.execute(
+        "GRANT ALL ON `{0}`.* TO \'{1}\'@\'%%\'".format(database, user))
     logger.info("Created user {0} for {1}".format(user, database))
 except:
     logger.critical("Could not create user {0} for {1}".format(user, database))
diff --git a/charts/placement/charts/helm-toolkit/templates/utils/_dependency_resolver.tpl b/charts/placement/charts/helm-toolkit/templates/utils/_dependency_resolver.tpl
index b99c00d..4a88dd8 100644
--- a/charts/placement/charts/helm-toolkit/templates/utils/_dependency_resolver.tpl
+++ b/charts/placement/charts/helm-toolkit/templates/utils/_dependency_resolver.tpl
@@ -27,10 +27,12 @@
 {{- else if kindIs "slice" $dependencyMixinParam }}
 {{- $_ := set $envAll.Values "__deps" ( index $envAll.Values.dependencies.static $dependencyKey ) }}
 {{- range $k, $v := $dependencyMixinParam -}}
+{{- if ( index $envAll.Values.dependencies.dynamic.targeted $v ) }}
 {{- $_ := include "helm-toolkit.utils.merge" (tuple $envAll.Values.pod_dependency $envAll.Values.__deps ( index $envAll.Values.dependencies.dynamic.targeted $v $dependencyKey ) ) -}}
 {{- $_ := set $envAll.Values "__deps" $envAll.Values.pod_dependency -}}
 {{- end }}
 {{- end }}
+{{- end }}
 {{- else -}}
 {{- $_ := set $envAll.Values "pod_dependency" ( index $envAll.Values.dependencies.static $dependencyKey ) -}}
 {{- end -}}
diff --git a/charts/placement/requirements.lock b/charts/placement/requirements.lock
index cbe09c9..9824cb6 100644
--- a/charts/placement/requirements.lock
+++ b/charts/placement/requirements.lock
@@ -1,6 +1,6 @@
 dependencies:
 - name: helm-toolkit
   repository: file://../../openstack-helm-infra/helm-toolkit
-  version: 0.2.52
-digest: sha256:fa4cf6491d7d370591b9751dbc9e761b5ae4bd1fdfda954f0acc240b187e0551
-generated: "2023-03-20T23:06:01.180245043Z"
+  version: 0.2.54
+digest: sha256:337a0f1ffb3eae591150b305c22293d85fb8c18abec78f56672de4f3ada2faae
+generated: "2023-09-01T14:09:25.657734667Z"
diff --git a/charts/placement/values.yaml b/charts/placement/values.yaml
index ff33660..4a702ac 100644
--- a/charts/placement/values.yaml
+++ b/charts/placement/values.yaml
@@ -82,9 +82,12 @@
     placement_database:
       connection: null
     keystone_authtoken:
+      service_token_roles: service
+      service_token_roles_required: true
       auth_version: v3
       auth_type: password
       memcache_security_strategy: ENCRYPT
+      service_type: placement
   logging:
     loggers:
       keys:
@@ -319,6 +322,9 @@
       - key: node-role.kubernetes.io/master
         operator: Exists
         effect: NoSchedule
+      - key: node-role.kubernetes.io/control-plane
+        operator: Exists
+        effect: NoSchedule
   mounts:
     placement:
       init_container: null
diff --git a/charts/placement/values_overrides/2023.1-ubuntu_focal.yaml b/charts/placement/values_overrides/2023.1-ubuntu_focal.yaml
new file mode 100644
index 0000000..b5804f9
--- /dev/null
+++ b/charts/placement/values_overrides/2023.1-ubuntu_focal.yaml
@@ -0,0 +1,19 @@
+---
+images:
+  pull_policy: IfNotPresent
+  tags:
+    placement: "docker.io/openstackhelm/placement:2023.1-ubuntu_focal"
+    ks_user: "docker.io/openstackhelm/heat:2023.1-ubuntu_focal"
+    ks_service: "docker.io/openstackhelm/heat:2023.1-ubuntu_focal"
+    ks_endpoints: "docker.io/openstackhelm/heat:2023.1-ubuntu_focal"
+    db_init: "docker.io/openstackhelm/heat:2023.1-ubuntu_focal"
+    db_drop: "docker.io/openstackhelm/heat:2023.1-ubuntu_focal"
+    placement_db_sync: "docker.io/openstackhelm/placement:2023.1-ubuntu_focal"
+    dep_check: "quay.io/airshipit/kubernetes-entrypoint:v1.0.0"
+    image_repo_sync: "docker.io/docker:17.07.0"
+dependencies:
+  static:
+    db_sync:
+      jobs:
+        - placement-db-init
+...
diff --git a/charts/placement/values_overrides/zed-ubuntu_focal.yaml b/charts/placement/values_overrides/zed-ubuntu_focal.yaml
new file mode 100644
index 0000000..901bc96
--- /dev/null
+++ b/charts/placement/values_overrides/zed-ubuntu_focal.yaml
@@ -0,0 +1,19 @@
+---
+images:
+  pull_policy: IfNotPresent
+  tags:
+    placement: "docker.io/openstackhelm/placement:zed-ubuntu_focal"
+    ks_user: "docker.io/openstackhelm/heat:zed-ubuntu_focal"
+    ks_service: "docker.io/openstackhelm/heat:zed-ubuntu_focal"
+    ks_endpoints: "docker.io/openstackhelm/heat:zed-ubuntu_focal"
+    db_init: "docker.io/openstackhelm/heat:zed-ubuntu_focal"
+    db_drop: "docker.io/openstackhelm/heat:zed-ubuntu_focal"
+    placement_db_sync: "docker.io/openstackhelm/placement:zed-ubuntu_focal"
+    dep_check: "quay.io/airshipit/kubernetes-entrypoint:v1.0.0"
+    image_repo_sync: "docker.io/docker:17.07.0"
+dependencies:
+  static:
+    db_sync:
+      jobs:
+        - placement-db-init
+...