Showing preview only (9,108K chars total). Download the full file or copy to clipboard to get everything.
Repository: openstack/openstack-helm
Branch: master
Commit: 7e8f26de0ac3
Files: 3167
Total size: 8.1 MB
Directory structure:
gitextract_9pqhdo10/
├── .gitignore
├── .gitreview
├── .pre-commit-config.yaml
├── CONTRIBUTING.rst
├── LICENSE
├── Makefile
├── README.rst
├── aodh/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _aodh-alarms-cleaner.sh.tpl
│ │ │ ├── _aodh-api.sh.tpl
│ │ │ ├── _aodh-evaluator.sh.tpl
│ │ │ ├── _aodh-listener.sh.tpl
│ │ │ ├── _aodh-notifier.sh.tpl
│ │ │ ├── _aodh-test.sh.tpl
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ └── _db-sync.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-alarms-cleaner.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-evaluator.yaml
│ │ ├── deployment-listener.yaml
│ │ ├── deployment-notifier.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-aodh-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── barbican/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _barbican-test.sh.tpl
│ │ │ ├── _barbican.sh.tpl
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ └── _simple_crypto_kek_rewrap.py.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── bindep.txt
├── blazar/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _blazar_api.sh.tpl
│ │ │ ├── _blazar_manager.sh.tpl
│ │ │ └── _db-sync.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-manager.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pdb-manager.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── ca-clusterissuer/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── clusterissuer-ca.yaml
│ │ ├── extra-manifests.yaml
│ │ └── secret-ca.yaml
│ └── values.yaml
├── ca-issuer/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── extra-manifests.yaml
│ │ ├── issuer-ca.yaml
│ │ └── secret-ca.yaml
│ └── values.yaml
├── ceilometer/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceilometer-central.sh.tpl
│ │ │ ├── _ceilometer-compute.sh.tpl
│ │ │ ├── _ceilometer-ipmi.sh.tpl
│ │ │ ├── _ceilometer-notification.sh.tpl
│ │ │ └── _db-sync.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-compute.yaml
│ │ ├── daemonset-ipmi.yaml
│ │ ├── deployment-central.yaml
│ │ ├── deployment-notification.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── ceph-adapter-rook/
│ ├── Chart.yaml
│ ├── README.md
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _config-manager.sh.tpl
│ │ │ └── _key-manager.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc-client.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-namespace-client-ceph-config.yaml
│ │ └── job-namespace-client-key.yaml
│ └── values.yaml
├── ceph-client/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ ├── _init-dirs.sh.tpl
│ │ │ ├── mds/
│ │ │ │ └── _start.sh.tpl
│ │ │ ├── pool/
│ │ │ │ ├── _calc.py.tpl
│ │ │ │ └── _init.sh.tpl
│ │ │ └── utils/
│ │ │ ├── _checkDNS.sh.tpl
│ │ │ ├── _checkDNS_start.sh.tpl
│ │ │ ├── _checkPGs.sh.tpl
│ │ │ └── _defragOSDs.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc-client.yaml
│ │ ├── cronjob-checkPGs.yaml
│ │ ├── cronjob-defragosds.yaml
│ │ ├── deployment-checkdns.yaml
│ │ ├── deployment-mds.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-rbd-pool.yaml
│ │ ├── pod-helm-tests.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── ceph-mon/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _init-dirs.sh.tpl
│ │ │ ├── _post-apply.sh.tpl
│ │ │ ├── keys/
│ │ │ │ ├── _bootstrap-keyring-generator.py.tpl
│ │ │ │ ├── _bootstrap-keyring-manager.sh.tpl
│ │ │ │ └── _storage-keyring-manager.sh.tpl
│ │ │ ├── mgr/
│ │ │ │ ├── _check.sh.tpl
│ │ │ │ └── _start.sh.tpl
│ │ │ ├── mon/
│ │ │ │ ├── _check.sh.tpl
│ │ │ │ ├── _start.sh.tpl
│ │ │ │ └── _stop.sh.tpl
│ │ │ ├── moncheck/
│ │ │ │ ├── _reap-zombies.py.tpl
│ │ │ │ └── _start.sh.tpl
│ │ │ └── utils/
│ │ │ ├── _checkDNS.sh.tpl
│ │ │ ├── _checkObjectReplication.py.tpl
│ │ │ └── _checkPGs.py.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── configmap-templates.yaml
│ │ ├── daemonset-mon.yaml
│ │ ├── deployment-mgr.yaml
│ │ ├── deployment-moncheck.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-keyring.yaml
│ │ ├── job-post-apply.yaml
│ │ ├── job-storage-admin-keys.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-mgr.yaml
│ │ ├── service-mon-discovery.yaml
│ │ ├── service-mon.yaml
│ │ ├── snippets/
│ │ │ └── _mon_host_from_k8s_ep.sh.tpl
│ │ └── utils/
│ │ └── _mon_daemonset_overrides.tpl
│ └── values.yaml
├── ceph-osd/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ ├── _init-dirs.sh.tpl
│ │ │ ├── _post-apply.sh.tpl
│ │ │ ├── osd/
│ │ │ │ ├── _check.sh.tpl
│ │ │ │ ├── _config.sh.tpl
│ │ │ │ ├── _directory.sh.tpl
│ │ │ │ ├── _init.sh.tpl
│ │ │ │ ├── _log-runner-stop.sh.tpl
│ │ │ │ ├── _log-tail.sh.tpl
│ │ │ │ ├── _start.sh.tpl
│ │ │ │ ├── _stop.sh.tpl
│ │ │ │ └── ceph-volume/
│ │ │ │ ├── _block.sh.tpl
│ │ │ │ ├── _bluestore.sh.tpl
│ │ │ │ ├── _common.sh.tpl
│ │ │ │ ├── _init-ceph-volume-helper-block-logical.sh.tpl
│ │ │ │ ├── _init-ceph-volume-helper-bluestore.sh.tpl
│ │ │ │ ├── _init-ceph-volume-helper-directory.sh.tpl
│ │ │ │ └── _init-with-ceph-volume.sh.tpl
│ │ │ └── utils/
│ │ │ ├── _checkDNS.sh.tpl
│ │ │ ├── _defragOSDs.sh.tpl
│ │ │ └── _resolveLocations.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-osd.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-post-apply.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-registry.yaml
│ │ └── utils/
│ │ └── _osd_daemonset_overrides.tpl
│ └── values.yaml
├── ceph-provisioners/
│ ├── Chart.yaml
│ ├── crds/
│ │ ├── snapshot.storage.k8s.io_volumesnapshotclasses.yaml
│ │ ├── snapshot.storage.k8s.io_volumesnapshotcontents.yaml
│ │ └── snapshot.storage.k8s.io_volumesnapshots.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ └── provisioner/
│ │ │ ├── cephfs/
│ │ │ │ ├── _client-key-manager.sh.tpl
│ │ │ │ └── _start.sh.tpl
│ │ │ └── rbd/
│ │ │ ├── _namespace-client-ceph-config-manager.sh.tpl
│ │ │ ├── _namespace-client-key-cleaner.sh.tpl
│ │ │ ├── _namespace-client-key-manager.sh.tpl
│ │ │ └── _start.sh.tpl
│ │ ├── configmap-bin-provisioner.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc-client.yaml
│ │ ├── configmap-etc-csi.yaml
│ │ ├── daemonset-csi-rbd-plugin.yaml
│ │ ├── deployment-csi-rbd-provisioner.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-cephfs-client-key.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-namespace-client-ceph-config.yaml
│ │ ├── job-namespace-client-key-cleaner.yaml
│ │ ├── job-namespace-client-key.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-registry.yaml
│ │ └── storageclass.yaml
│ └── values.yaml
├── ceph-rgw/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-rgw-storage-init.sh.tpl
│ │ │ ├── _create-rgw-placement-targets.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ ├── _init-dirs.sh.tpl
│ │ │ ├── _rgw-restart.sh.tpl
│ │ │ ├── rgw/
│ │ │ │ ├── _init.sh.tpl
│ │ │ │ ├── _rerun-pool-job.sh.tpl
│ │ │ │ └── _start.sh.tpl
│ │ │ └── utils/
│ │ │ └── _checkDNS.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin-ks.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-ceph-rgw-templates.yaml
│ │ ├── configmap-etc-client.yaml
│ │ ├── deployment-rgw.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-rgw.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rgw-placement-targets.yaml
│ │ ├── job-rgw-pool.yaml
│ │ ├── job-rgw-restart.yaml
│ │ ├── job-rgw-storage-init.yaml
│ │ ├── job-s3-admin.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone-rgw.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-s3-rgw.yaml
│ │ ├── service-ingress-rgw.yaml
│ │ └── service-rgw.yaml
│ └── values.yaml
├── cert-rotation/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _rotate-certs.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── cron-job-cert-rotate.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-cert-rotate.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── cinder/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _backup-storage-init.sh.tpl
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ ├── _cinder-api.sh.tpl
│ │ │ ├── _cinder-backup.sh.tpl
│ │ │ ├── _cinder-scheduler.sh.tpl
│ │ │ ├── _cinder-volume.sh.tpl
│ │ │ ├── _clean-secrets.sh.tpl
│ │ │ ├── _create-internal-tenant-id.sh.tpl
│ │ │ ├── _db-purge.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _external-ceph-rbd-admin-keyring.sh.tpl
│ │ │ ├── _iscsiadm.tpl
│ │ │ ├── _multipath.tpl
│ │ │ ├── _multipathd.tpl
│ │ │ ├── _retrieve-internal-tenant-id.sh.tpl
│ │ │ ├── _storage-init.sh.tpl
│ │ │ └── _volume-usage-audit.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-cinder-db-purge.yaml
│ │ ├── cron-job-cinder-volume-usage-audit.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-backup.yaml
│ │ ├── deployment-scheduler.yaml
│ │ ├── deployment-volume.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-backup-storage-init.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-clean.yaml
│ │ ├── job-create-internal-tenant.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── job-storage-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── pvc-backup.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-external-ceph-keyring.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── utils/
│ │ ├── _ceph_backend_list.tpl
│ │ ├── _has_ceph_backend.tpl
│ │ └── _is_ceph_backend.tpl
│ └── values.yaml
├── cloudkitty/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _cloudkitty-api.sh.tpl
│ │ │ ├── _cloudkitty-processor.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ └── _storage-init.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-processor.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbitmq-init.yaml
│ │ ├── job-storage-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pbd-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ └── service-api.yaml
│ └── values.yaml
├── cyborg/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _cyborg-agent.sh.tpl
│ │ │ ├── _cyborg-api.sh.tpl
│ │ │ ├── _cyborg-conductor.sh.tpl
│ │ │ └── _db-sync.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-agent.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-conductor.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── designate/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _designate-api.sh.tpl
│ │ │ ├── _designate-central.sh.tpl
│ │ │ ├── _designate-mdns.sh.tpl
│ │ │ ├── _designate-producer.sh.tpl
│ │ │ ├── _designate-service-cleaner.sh.tpl
│ │ │ ├── _designate-sink.sh.tpl
│ │ │ └── _designate-worker.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-service.cleaner.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-central.yaml
│ │ ├── deployment-mdns.yaml
│ │ ├── deployment-producer.yaml
│ │ ├── deployment-sink.yaml
│ │ ├── deployment-worker.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pdb-central.yaml
│ │ ├── pdb-mdns.yaml
│ │ ├── pdb-producer.yaml
│ │ ├── pdb-sink.yaml
│ │ ├── pdb-worker.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── service-mdns.yaml
│ └── values.yaml
├── doc/
│ ├── helm-docs.rst.gotmpl
│ ├── requirements.txt
│ └── source/
│ ├── _exts/
│ │ └── helm_docs.py
│ ├── _static/
│ │ └── .placeholder
│ ├── chart/
│ │ ├── index.rst
│ │ ├── infra_charts.rst
│ │ └── openstack_charts.rst
│ ├── conf.py
│ ├── devref/
│ │ ├── endpoints.rst
│ │ ├── fluent-logging.rst
│ │ ├── images.rst
│ │ ├── index.rst
│ │ ├── networking.rst
│ │ ├── node-and-label-specific-configurations.rst
│ │ ├── oslo-config.rst
│ │ ├── pod-disruption-budgets.rst
│ │ └── upgrades.rst
│ ├── index.rst
│ ├── install/
│ │ ├── before_starting.rst
│ │ ├── index.rst
│ │ ├── kubernetes.rst
│ │ ├── openstack.rst
│ │ └── prerequisites.rst
│ ├── logging/
│ │ ├── elasticsearch.rst
│ │ ├── fluent-logging.rst
│ │ ├── index.rst
│ │ └── kibana.rst
│ ├── monitoring/
│ │ ├── grafana.rst
│ │ ├── index.rst
│ │ ├── nagios.rst
│ │ └── prometheus.rst
│ ├── readme.rst
│ ├── specs/
│ │ ├── 2025.1/
│ │ │ └── chart_versioning.rst
│ │ ├── 2025.2/
│ │ │ └── own_service_accounts.rst
│ │ ├── COPYME
│ │ ├── developer-environment.rst
│ │ ├── fluentbit-fluentd-architecture.rst
│ │ ├── index.rst
│ │ ├── multi-os.rst
│ │ ├── neutron-multiple-sdns.rst
│ │ ├── nginx-sidecar.rst
│ │ ├── osh-1.0-requirements.rst
│ │ ├── osh-lma-stack.rst
│ │ ├── support-OCI-image-registry-with-authentication-turned-on.rst
│ │ ├── support-linux-bridge-on-neutron.rst
│ │ ├── tenant-ceph.rst
│ │ └── values-ordering.rst
│ ├── testing/
│ │ ├── ceph-node-resiliency.rst
│ │ ├── ceph-resiliency/
│ │ │ ├── README.rst
│ │ │ ├── disk-failure.rst
│ │ │ ├── failure-domain.rst
│ │ │ ├── host-failure.rst
│ │ │ ├── index.rst
│ │ │ ├── monitor-failure.rst
│ │ │ ├── namespace-deletion.rst
│ │ │ ├── osd-failure.rst
│ │ │ └── validate-object-replication.rst
│ │ ├── ceph-upgrade.rst
│ │ ├── helm-tests.rst
│ │ └── index.rst
│ ├── troubleshooting/
│ │ ├── ceph.rst
│ │ ├── database.rst
│ │ ├── index.rst
│ │ ├── migrate-ceph-to-rook.rst
│ │ ├── persistent-storage.rst
│ │ └── ubuntu-hwe-kernel.rst
│ └── upgrade/
│ ├── index.rst
│ └── multiple-osd-releases.rst
├── elastic-apm-server/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── elastic-filebeat/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── elastic-metricbeat/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-node-metrics.yaml
│ │ ├── deployment-modules.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── elastic-packetbeat/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── elasticsearch/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _apache.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _create_s3_buckets.sh.tpl
│ │ │ ├── _create_s3_users.sh.tpl
│ │ │ ├── _create_template.sh.tpl
│ │ │ ├── _curator.sh.tpl
│ │ │ ├── _elasticsearch.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ └── _verify-repositories.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin-curator.yaml
│ │ ├── configmap-bin-elasticsearch.yaml
│ │ ├── configmap-etc-curator.yaml
│ │ ├── configmap-etc-elasticsearch.yaml
│ │ ├── cron-job-curator.yaml
│ │ ├── cron-job-verify-repositories.yaml
│ │ ├── deployment-client.yaml
│ │ ├── deployment-gateway.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-elasticsearch.yaml
│ │ ├── job-elasticsearch-template.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-s3-bucket.yaml
│ │ ├── job-s3-user.yaml
│ │ ├── monitoring/
│ │ │ └── prometheus/
│ │ │ ├── exporter-deployment.yaml
│ │ │ ├── exporter-network-policy.yaml
│ │ │ └── exporter-service.yaml
│ │ ├── network-policy.yaml
│ │ ├── object-bucket-claim.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-elasticsearch.yaml
│ │ ├── secret-environment.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-s3-user.yaml
│ │ ├── service-data.yaml
│ │ ├── service-discovery.yaml
│ │ ├── service-gateway.yaml
│ │ ├── service-ingress-elasticsearch.yaml
│ │ ├── service-logging.yaml
│ │ ├── statefulset-data.yaml
│ │ └── statefulset-master.yaml
│ └── values.yaml
├── etcd/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _etcd-db-compact.sh.tpl
│ │ │ ├── _etcd-healthcheck.sh.tpl
│ │ │ └── _etcd.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── cron-job-db-compact.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-discovery.yaml
│ │ ├── service.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── fluentbit/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _fluent-bit.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-fluent-bit.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── fluentd/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _fluentd.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ ├── secret-fluentd.yaml
│ │ ├── secret-kafka-creds.yaml
│ │ ├── secret-registry.yaml
│ │ └── service-fluentd.yaml
│ └── values.yaml
├── freezer/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ └── _freezer-api.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── pdb-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── glance/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ ├── _clean-image.sh.tpl
│ │ │ ├── _clean-secrets.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _glance-api.sh.tpl
│ │ │ ├── _iscsiadm.tpl
│ │ │ ├── _metadefs-load.sh.tpl
│ │ │ ├── _multipath.tpl
│ │ │ ├── _multipathd.tpl
│ │ │ ├── _nginx.sh.tpl
│ │ │ └── _storage-init.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-clean.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-metadefs-load.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── job-storage-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── pvc-images.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── gnocchi/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ ├── _clean-secrets.sh.tpl
│ │ │ ├── _db-init.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _gnocchi-api.sh.tpl
│ │ │ ├── _gnocchi-metricd.sh.tpl
│ │ │ ├── _gnocchi-resources-cleaner.sh.tpl
│ │ │ ├── _gnocchi-statsd.sh.tpl
│ │ │ ├── _gnocchi-test.sh.tpl
│ │ │ └── _storage-init.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-resources-cleaner.yaml
│ │ ├── daemonset-metricd.yaml
│ │ ├── daemonset-statsd.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-clean.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init-indexer.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-storage-init.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-gnocchi-test.yaml
│ │ ├── secret-db-indexer.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── service-statsd.yaml
│ └── values.yaml
├── grafana/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-session-sync.py.tpl
│ │ │ ├── _grafana.sh.tpl
│ │ │ ├── _selenium-tests.py.tpl
│ │ │ └── _set-admin-password.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-dashboards.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-grafana.yaml
│ │ ├── job-db-init-session.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-session-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-run-migrator.yaml
│ │ ├── job-set-admin-user.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-admin-creds.yaml
│ │ ├── secret-db-session.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-prom-creds.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secrets/
│ │ │ └── _my.cnf.tpl
│ │ ├── service-ingress.yaml
│ │ └── service.yaml
│ └── values.yaml
├── heat/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _heat-api.sh.tpl
│ │ │ ├── _heat-cfn.sh.tpl
│ │ │ ├── _heat-engine-cleaner.sh.tpl
│ │ │ ├── _heat-engine.sh.tpl
│ │ │ ├── _heat-purge-deleted-active.sh.tpl
│ │ │ └── _trusts.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-engine-cleaner.yaml
│ │ ├── cron-job-purge-deleted.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-cfn.yaml
│ │ ├── deployment-engine.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── ingress-cfn.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user-domain.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── job-trusts.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pdb-cfn.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-cfn.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── service-ingress-cfn.yaml
│ └── values.yaml
├── helm-toolkit/
│ ├── Chart.yaml
│ └── templates/
│ ├── endpoints/
│ │ ├── _authenticated_endpoint_uri_lookup.tpl
│ │ ├── _authenticated_transport_endpoint_uri_lookup.tpl
│ │ ├── _endpoint_host_lookup.tpl
│ │ ├── _endpoint_port_lookup.tpl
│ │ ├── _endpoint_token_lookup.tpl
│ │ ├── _host_and_port_endpoint_uri_lookup.tpl
│ │ ├── _hostname_fqdn_endpoint_lookup.tpl
│ │ ├── _hostname_namespaced_endpoint_lookup.tpl
│ │ ├── _hostname_namespaced_endpoint_namespace_lookup.tpl
│ │ ├── _hostname_short_endpoint_lookup.tpl
│ │ ├── _keystone_endpoint_name_lookup.tpl
│ │ ├── _keystone_endpoint_path_lookup.tpl
│ │ ├── _keystone_endpoint_scheme_lookup.tpl
│ │ ├── _keystone_endpoint_uri_lookup.tpl
│ │ └── _service_name_endpoint_with_namespace_lookup.tpl
│ ├── manifests/
│ │ ├── _ceph-storageclass.tpl
│ │ ├── _certificates.tpl
│ │ ├── _configmap-oslo-policy.tpl
│ │ ├── _ingress.tpl
│ │ ├── _job-bootstrap.tpl
│ │ ├── _job-db-drop-mysql.tpl
│ │ ├── _job-db-init-mysql.tpl
│ │ ├── _job-db-sync.tpl
│ │ ├── _job-ks-endpoints.tpl
│ │ ├── _job-ks-service.tpl
│ │ ├── _job-ks-user.yaml.tpl
│ │ ├── _job-rabbit-init.yaml.tpl
│ │ ├── _job-s3-bucket.yaml.tpl
│ │ ├── _job-s3-user.yaml.tpl
│ │ ├── _job_image_repo_sync.tpl
│ │ ├── _network_policy.tpl
│ │ ├── _secret-ks-etc.yaml.tpl
│ │ ├── _secret-registry.yaml.tpl
│ │ ├── _secret-tls.yaml.tpl
│ │ └── _service-ingress.tpl
│ ├── scripts/
│ │ ├── _create-s3-user.sh.tpl
│ │ ├── _db-drop.py.tpl
│ │ ├── _db-init.py.tpl
│ │ ├── _db-pg-init.sh.tpl
│ │ ├── _image-repo-sync.sh.tpl
│ │ ├── _ks-domain-user.sh.tpl
│ │ ├── _ks-endpoints.sh.tpl
│ │ ├── _ks-service.sh.tpl
│ │ ├── _ks-user.sh.tpl
│ │ ├── _rabbit-init.sh.tpl
│ │ ├── _rally_test.sh.tpl
│ │ └── db-backup-restore/
│ │ ├── _backup_main.sh.tpl
│ │ └── _restore_main.sh.tpl
│ ├── snippets/
│ │ ├── _custom_job_annotations.tpl
│ │ ├── _custom_pod_annotations.tpl
│ │ ├── _custom_secret_annotations.tpl
│ │ ├── _image.tpl
│ │ ├── _keystone_openrc_env_vars.tpl
│ │ ├── _keystone_openrc_failover_env_vars.tpl
│ │ ├── _keystone_secret_openrc.tpl
│ │ ├── _keystone_user_create_env_vars.tpl
│ │ ├── _kubernetes_apparmor_configmap.tpl
│ │ ├── _kubernetes_apparmor_loader_init_container.tpl
│ │ ├── _kubernetes_apparmor_volumes.tpl
│ │ ├── _kubernetes_container_security_context.tpl
│ │ ├── _kubernetes_entrypoint_init_container.tpl
│ │ ├── _kubernetes_kubectl_params.tpl
│ │ ├── _kubernetes_mandatory_access_control_annotation.tpl
│ │ ├── _kubernetes_metadata_labels.tpl
│ │ ├── _kubernetes_pod_anti_affinity.tpl
│ │ ├── _kubernetes_pod_image_pull_secret.tpl
│ │ ├── _kubernetes_pod_priority_class.tpl
│ │ ├── _kubernetes_pod_rbac_roles.tpl
│ │ ├── _kubernetes_pod_rbac_serviceaccount.tpl
│ │ ├── _kubernetes_pod_runtime_class.tpl
│ │ ├── _kubernetes_pod_security_context.tpl
│ │ ├── _kubernetes_probes.tpl
│ │ ├── _kubernetes_resources.tpl
│ │ ├── _kubernetes_seccomp_annotation.tpl
│ │ ├── _kubernetes_tolerations.tpl
│ │ ├── _kubernetes_upgrades_daemonset.tpl
│ │ ├── _kubernetes_upgrades_deployment.tpl
│ │ ├── _kubernetes_upgrades_statefulset.tpl
│ │ ├── _mon_host_from_k8s_ep.sh.tpl
│ │ ├── _prometheus_pod_annotations.tpl
│ │ ├── _prometheus_service_annotations.tpl
│ │ ├── _release_uuid.tpl
│ │ ├── _rgw_s3_admin_env_vars.tpl
│ │ ├── _rgw_s3_bucket_user_env_vars_rook.tpl
│ │ ├── _rgw_s3_secret_creds.tpl
│ │ ├── _rgw_s3_user_env_vars.tpl
│ │ ├── _service_params.tpl
│ │ ├── _tls_volume.tpl
│ │ ├── _tls_volume_mount.tpl
│ │ └── _values_template_renderer.tpl
│ ├── tls/
│ │ └── _tls_generate_certs.tpl
│ └── utils/
│ ├── _comma_joined_service_list.tpl
│ ├── _configmap_templater.tpl
│ ├── _daemonset_overrides.tpl
│ ├── _daemonset_overrides_root.tpl
│ ├── _dependency_jobs.tpl
│ ├── _dependency_resolver.tpl
│ ├── _hash.tpl
│ ├── _hash2.tpl
│ ├── _host_list.tpl
│ ├── _image_sync_list.tpl
│ ├── _joinListWithComma.tpl
│ ├── _joinListWithCommaAndSingleQuotes.tpl
│ ├── _joinListWithPrefix.tpl
│ ├── _joinListWithSpace.tpl
│ ├── _merge.tpl
│ ├── _template.tpl
│ ├── _to_ini.tpl
│ ├── _to_k8s_env_secret_vars.tpl
│ ├── _to_k8s_env_vars.tpl
│ ├── _to_kv_list.tpl
│ └── _to_oslo_conf.tpl
├── horizon/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── releasenotes/
│ │ └── notes/
│ │ ├── horizon-023da44e7958de05.yaml
│ │ └── horizon-4c5d5e3b58c700a0.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _django.wsgi.tpl
│ │ │ ├── _horizon.sh.tpl
│ │ │ ├── _manage.py.tpl
│ │ │ └── _selenium-test.py.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── configmap-logo.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress.yaml
│ │ └── service.yaml
│ └── values.yaml
├── ironic/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _ironic-api.sh.tpl
│ │ │ ├── _ironic-conductor-init.sh.tpl
│ │ │ ├── _ironic-conductor.sh.tpl
│ │ │ ├── _manage-cleaning-network.sh.tpl
│ │ │ └── _retreive-swift-config.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-manage-cleaning-network.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── statefulset-conductor.yaml
│ └── values.yaml
├── keystone/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _cred-clean.py.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _domain-manage-init.sh.tpl
│ │ │ ├── _domain-manage.py.tpl
│ │ │ ├── _domain-manage.sh.tpl
│ │ │ ├── _fernet-manage.py.tpl
│ │ │ └── _keystone-api.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-credential-rotate.yaml
│ │ ├── cron-job-fernet-rotate.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-credential-cleanup.yaml
│ │ ├── job-credential-setup.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-domain-manage.yaml
│ │ ├── job-fernet-setup.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-credential-keys.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-fernet-keys.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ldap-tls.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── kibana/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _apache.sh.tpl
│ │ │ ├── _create_kibana_index_patterns.sh.tpl
│ │ │ ├── _flush_kibana_metadata.sh.tpl
│ │ │ └── _kibana.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-kibana.yaml
│ │ ├── job-flush-kibana-metadata.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-register-kibana-indexes.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress-kibana.yaml
│ │ └── service.yaml
│ └── values.yaml
├── kube-dns/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-kube-dns.yaml
│ │ ├── deployment-kube-dns.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-kube-dns.yaml
│ │ └── serviceaccount-kube-dns.yaml
│ └── values.yaml
├── kubernetes-keystone-webhook/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _kubernetes-keystone-webhook-test.sh.tpl
│ │ │ └── _start.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-certificates.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── service.yaml
│ └── values.yaml
├── kubernetes-node-problem-detector/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _node-problem-detector.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── ldap/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── _helpers.tpl
│ │ ├── bin/
│ │ │ └── _bootstrap.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── libvirt/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── releasenotes/
│ │ └── notes/
│ │ └── libvirt-339936ca478fbf50.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ └── _libvirt.sh.tpl
│ │ ├── configmap-apparmor.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-libvirt.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network-policy.yaml
│ │ ├── pod-monitor.yaml
│ │ ├── role-cert-manager.yaml
│ │ ├── secret-registry.yaml
│ │ └── utils/
│ │ └── _to_libvirt_conf.tpl
│ └── values.yaml
├── local-storage/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── extra-manifests.yaml
│ │ ├── persistent-volumes.yaml
│ │ └── storage-class.yaml
│ └── values.yaml
├── local-volume-provisioner/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _fakemount.py.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-lvp.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ └── storageclasses.yaml
│ └── values.yaml
├── magnum/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _magnum-api.sh.tpl
│ │ │ ├── _magnum-conductor-init.sh.tpl
│ │ │ └── _magnum-conductor.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user-domain.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── kubeconfig.tpl
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── statefulset-conductor.yaml
│ └── values.yaml
├── manila/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _manila-api.sh.tpl
│ │ │ ├── _manila-data.sh.tpl
│ │ │ ├── _manila-scheduler.sh.tpl
│ │ │ ├── _manila-share-init.sh.tpl
│ │ │ └── _manila-share.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-data.yaml
│ │ ├── deployment-scheduler.yaml
│ │ ├── deployment-share.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── mariadb/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── README.rst
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _backup_mariadb.sh.tpl
│ │ │ ├── _health.sh.tpl
│ │ │ ├── _mariadb-wait-for-cluster.py.tpl
│ │ │ ├── _mariadb_controller.py.tpl
│ │ │ ├── _prometheus-create-mysql-user.sh.tpl
│ │ │ ├── _prometheus-mysqld-exporter.sh.tpl
│ │ │ ├── _restore_mariadb.sh.tpl
│ │ │ ├── _start.py.tpl
│ │ │ ├── _start_mariadb_verify_server.sh.tpl
│ │ │ └── _test.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── configmap-services-tcp.yaml
│ │ ├── cron-job-backup-mariadb.yaml
│ │ ├── deployment-controller.yaml
│ │ ├── exporter-configmap-bin.yaml
│ │ ├── exporter-job-create-user.yaml
│ │ ├── exporter-secrets-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-cluster-wait.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── mariadb-backup-pvc.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-mariadb.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-backup-restore.yaml
│ │ ├── secret-dbadmin-password.yaml
│ │ ├── secret-dbaudit-password.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-rgw.yaml
│ │ ├── secret-sst-password.yaml
│ │ ├── secrets/
│ │ │ ├── _admin_user.cnf.tpl
│ │ │ ├── _admin_user_internal.cnf.tpl
│ │ │ └── _prometheus-exporter_user.cnf.tpl
│ │ ├── secrets-etc.yaml
│ │ ├── service-discovery.yaml
│ │ ├── service-master.yaml
│ │ ├── service.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── mariadb-backup/
│ ├── Chart.yaml
│ ├── README.rst
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _backup_mariadb.sh.tpl
│ │ │ ├── _restore_mariadb.sh.tpl
│ │ │ └── _start_mariadb_verify_server.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-backup-mariadb.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── mariadb-backup-pvc.yaml
│ │ ├── secret-backup-restore.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-rgw.yaml
│ │ ├── secrets/
│ │ │ ├── _admin_user.cnf.tpl
│ │ │ └── _admin_user_internal.cnf.tpl
│ │ └── secrets-etc.yaml
│ └── values.yaml
├── mariadb-cluster/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── README.rst
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _liveness.sh.tpl
│ │ │ ├── _readiness.sh.tpl
│ │ │ └── _test.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-refresh-statefulset.yaml
│ │ ├── mariadb.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-dbadmin-password.yaml
│ │ ├── secret-dbaudit-password.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-sst-password.yaml
│ │ ├── secrets/
│ │ │ ├── _admin_user.cnf.tpl
│ │ │ ├── _admin_user_internal.cnf.tpl
│ │ │ └── _privileges.sql.tpl
│ │ └── secrets-etc.yaml
│ └── values.yaml
├── masakari/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _manage-db.sh.tpl
│ │ │ ├── _masakari-api.sh.tpl
│ │ │ ├── _masakari-engine.sh.tpl
│ │ │ ├── _masakari-host-monitor.sh.tpl
│ │ │ ├── _masakari-instance-monitor.sh.tpl
│ │ │ ├── _masakari-introspective-instance-monitor.sh.tpl
│ │ │ ├── _masakari-monitors-init.sh.tpl
│ │ │ └── _masakari-process-monitor.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-host-monitor.yaml
│ │ ├── daemonset-instance-monitor.yaml
│ │ ├── daemonset-introspective-instance-monitor.yaml
│ │ ├── daemonset-process-monitor.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-engine.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbitmq-init.yaml
│ │ ├── pbd-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ └── service-api.yaml
│ └── values.yaml
├── memcached/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _memcached.sh.tpl
│ │ ├── configmap-apparmor.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── mistral/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _mistral-api.sh.tpl
│ │ │ ├── _mistral-engine.sh.tpl
│ │ │ ├── _mistral-event-engine.sh.tpl
│ │ │ └── _mistral-executor.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-executor.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ ├── statefulset-engine.yaml
│ │ └── statefulset-event-engine.yaml
│ └── values.yaml
├── nagios/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _apache.sh.tpl
│ │ │ ├── _nagios-readiness.sh.tpl
│ │ │ └── _selenium-tests.py.tpl
│ │ ├── configmap-additional-plugins.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-nagios.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-nagios.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress-nagios.yaml
│ │ └── service.yaml
│ └── values.yaml
├── namespace-config/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── extra-manifests.yaml
│ │ └── limit-range.yaml
│ └── values.yaml
├── neutron/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _health-probe.py.tpl
│ │ │ ├── _neutron-bagpipe-bgp-init.sh.tpl
│ │ │ ├── _neutron-bagpipe-bgp.sh.tpl
│ │ │ ├── _neutron-bgp-dragent.sh.tpl
│ │ │ ├── _neutron-dhcp-agent-init.sh.tpl
│ │ │ ├── _neutron-dhcp-agent.sh.tpl
│ │ │ ├── _neutron-ironic-agent-init.sh.tpl
│ │ │ ├── _neutron-ironic-agent.sh.tpl
│ │ │ ├── _neutron-l2gw-agent.sh.tpl
│ │ │ ├── _neutron-l3-agent-init.sh.tpl
│ │ │ ├── _neutron-l3-agent.sh.tpl
│ │ │ ├── _neutron-linuxbridge-agent-init-modules.sh.tpl
│ │ │ ├── _neutron-linuxbridge-agent-init.sh.tpl
│ │ │ ├── _neutron-linuxbridge-agent.sh.tpl
│ │ │ ├── _neutron-metadata-agent-init.sh.tpl
│ │ │ ├── _neutron-metadata-agent.sh.tpl
│ │ │ ├── _neutron-netns-cleanup-cron.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent-init-modules.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent-init-netoffload.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent-init.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent-liveness.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent-readiness.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent.sh.tpl
│ │ │ ├── _neutron-ovn-db-sync.sh.tpl
│ │ │ ├── _neutron-ovn-init.sh.tpl
│ │ │ ├── _neutron-ovn-metadata-agent.sh.tpl
│ │ │ ├── _neutron-ovn-vpn-agent-init.sh.tpl
│ │ │ ├── _neutron-ovn-vpn-agent.sh.tpl
│ │ │ ├── _neutron-rpc-server.sh.tpl
│ │ │ ├── _neutron-server.sh.tpl
│ │ │ ├── _neutron-sriov-agent-init.sh.tpl
│ │ │ ├── _neutron-sriov-agent.sh.tpl
│ │ │ ├── _neutron-test-force-cleanup.sh.tpl
│ │ │ └── _nginx.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-ovn-db-sync.yaml
│ │ ├── daemonset-bagpipe-bgp.yaml
│ │ ├── daemonset-bgp-dragent.yaml
│ │ ├── daemonset-dhcp-agent.yaml
│ │ ├── daemonset-l2gw-agent.yaml
│ │ ├── daemonset-l3-agent.yaml
│ │ ├── daemonset-lb-agent.yaml
│ │ ├── daemonset-metadata-agent.yaml
│ │ ├── daemonset-netns-cleanup-cron.yaml
│ │ ├── daemonset-neutron-ovn-vpn-agent.yaml
│ │ ├── daemonset-ovn-metadata-agent.yaml
│ │ ├── daemonset-ovs-agent.yaml
│ │ ├── daemonset-sriov-agent.yaml
│ │ ├── deployment-ironic-agent.yaml
│ │ ├── deployment-rpc_server.yaml
│ │ ├── deployment-server.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-server.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-server.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress-neutron.yaml
│ │ └── service-server.yaml
│ └── values.yaml
├── nfs-provisioner/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service.yaml
│ │ ├── storage_class.yaml
│ │ └── volume_claim.yaml
│ └── values.yaml
├── nova/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _cell-setup-init.sh.tpl
│ │ │ ├── _cell-setup.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ ├── _db-archive-deleted-row.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _fake-iptables.sh.tpl
│ │ │ ├── _health-probe.py.tpl
│ │ │ ├── _iscsiadm.tpl
│ │ │ ├── _multipath.tpl
│ │ │ ├── _multipathd.tpl
│ │ │ ├── _nova-api-metadata-init.sh.tpl
│ │ │ ├── _nova-api-metadata.sh.tpl
│ │ │ ├── _nova-api.sh.tpl
│ │ │ ├── _nova-compute-init.sh.tpl
│ │ │ ├── _nova-compute-ironic.sh.tpl
│ │ │ ├── _nova-compute.sh.tpl
│ │ │ ├── _nova-conductor.sh.tpl
│ │ │ ├── _nova-console-compute-init.sh.tpl
│ │ │ ├── _nova-console-proxy-init-assets.sh.tpl
│ │ │ ├── _nova-console-proxy-init.sh.tpl
│ │ │ ├── _nova-console-proxy.sh.tpl
│ │ │ ├── _nova-scheduler.sh.tpl
│ │ │ ├── _nova-service-cleaner.sh.tpl
│ │ │ ├── _ssh-init.sh.tpl
│ │ │ ├── _ssh-start.sh.tpl
│ │ │ ├── _storage-init.sh.tpl
│ │ │ └── _wait-for-computes-init.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-archive-deleted-rows.yaml
│ │ ├── cron-job-cell-setup.yaml
│ │ ├── cron-job-service-cleaner.yaml
│ │ ├── daemonset-compute.yaml
│ │ ├── deployment-api-metadata.yaml
│ │ ├── deployment-api-osapi.yaml
│ │ ├── deployment-conductor.yaml
│ │ ├── deployment-novncproxy.yaml
│ │ ├── deployment-scheduler.yaml
│ │ ├── deployment-serialproxy.yaml
│ │ ├── deployment-spiceproxy.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-metadata.yaml
│ │ ├── ingress-novncproxy.yaml
│ │ ├── ingress-osapi.yaml
│ │ ├── ingress-serialproxy.yaml
│ │ ├── ingress-spiceproxy.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-cell-setup.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-nova-storage-init.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── netpol-nova.yaml
│ │ ├── pdb-metadata.yaml
│ │ ├── pdb-osapi.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db-api.yaml
│ │ ├── secret-db-cell0.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-ssh.yaml
│ │ ├── service-ingress-metadata.yaml
│ │ ├── service-ingress-novncproxy.yaml
│ │ ├── service-ingress-osapi.yaml
│ │ ├── service-ingress-serialproxy.yaml
│ │ ├── service-ingress-spiceproxy.yaml
│ │ ├── service-metadata.yaml
│ │ ├── service-novncproxy.yaml
│ │ ├── service-osapi.yaml
│ │ ├── service-serialproxy.yaml
│ │ ├── service-spiceproxy.yaml
│ │ ├── statefulset-compute-ironic.yaml
│ │ ├── statefulset-conductor.yaml
│ │ └── statefulset-scheduler.yaml
│ └── values.yaml
├── octavia/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _octavia-api.sh.tpl
│ │ │ ├── _octavia-driver-agent.sh.tpl
│ │ │ ├── _octavia-health-manager-get-port.sh.tpl
│ │ │ ├── _octavia-health-manager-nic-init.sh.tpl
│ │ │ ├── _octavia-health-manager.sh.tpl
│ │ │ ├── _octavia-housekeeping.sh.tpl
│ │ │ ├── _octavia-worker-get-port.sh.tpl
│ │ │ ├── _octavia-worker-nic-init.sh.tpl
│ │ │ └── _octavia-worker.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-health-manager.yaml
│ │ ├── daemonset-worker.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-driver-agent.yaml
│ │ ├── deployment-housekeeping.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoint.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── secret-db-persistence.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── openvswitch/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _openvswitch-db-server.sh.tpl
│ │ │ ├── _openvswitch-vswitchd-init-modules.sh.tpl
│ │ │ └── _openvswitch-vswitchd.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network-policy.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── ovn/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _ovn-controller-init.sh.tpl
│ │ │ └── _ovn-network-logging-parser.sh.tpl
│ │ ├── clusterrole-controller.yaml
│ │ ├── clusterrolebinding-controller.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-controller.yaml
│ │ ├── deployment-northd.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── role-controller.yaml
│ │ ├── role-northd.yaml
│ │ ├── role-ovsdb.yaml
│ │ ├── rolebinding-controller.yaml
│ │ ├── rolebinding-northd.yaml
│ │ ├── rolebinding-ovsdb.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-vector.yaml
│ │ ├── service-ovsdb-nb.yaml
│ │ ├── service-ovsdb-sb.yaml
│ │ ├── statefulset-ovsdb-nb.yaml
│ │ └── statefulset-ovsdb-sb.yaml
│ └── values.yaml
├── placement/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-sync.sh.tpl
│ │ │ └── _placement-api.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress.yaml
│ │ └── service.yaml
│ └── values.yaml
├── playbooks/
│ ├── build-chart.yaml
│ ├── collect-logs.yaml
│ ├── deploy-env-kubespray.yaml
│ ├── deploy-env.yaml
│ ├── enable-hugepages.yaml
│ ├── inject-keys.yaml
│ ├── lint.yaml
│ ├── mount-volumes.yaml
│ ├── osh-bandit.yaml
│ ├── prepare-hosts.yaml
│ ├── publish/
│ │ ├── post.yaml
│ │ └── run.yaml
│ └── run-scripts.yaml
├── postgresql/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _backup_postgresql.sh.tpl
│ │ │ ├── _common_backup_restore.sh.tpl
│ │ │ ├── _db_test.sh.tpl
│ │ │ ├── _postgresql_archive_cleanup.sh.tpl
│ │ │ ├── _readiness.sh.tpl
│ │ │ ├── _remote_retrieve_postgresql.sh.tpl
│ │ │ ├── _remote_store_postgresql.sh.tpl
│ │ │ ├── _restore_postgresql.sh.tpl
│ │ │ └── _start.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-backup-postgres.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── monitoring/
│ │ │ └── prometheus/
│ │ │ ├── bin/
│ │ │ │ └── _create-postgresql-exporter-user.sh.tpl
│ │ │ ├── exporter-configmap-bin.yaml
│ │ │ ├── exporter-configmap-etc.yaml
│ │ │ ├── exporter-deployment.yaml
│ │ │ ├── exporter-job-create-user.yaml
│ │ │ ├── exporter-secrets-etc.yaml
│ │ │ └── exporter-service.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-test.yaml
│ │ ├── postgresql-backup-pvc.yaml
│ │ ├── secret-admin.yaml
│ │ ├── secret-audit.yaml
│ │ ├── secret-backup-restore.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-rgw.yaml
│ │ ├── secrets/
│ │ │ └── _admin_user.conf.tpl
│ │ ├── secrets-etc.yaml
│ │ ├── service-postgres.yaml
│ │ ├── service-restapi.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── powerdns/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _powerdns-mysql-sync.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── prometheus/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _apache.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ └── _prometheus.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-prometheus.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-prometheus.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-tls-configs.yaml
│ │ ├── service-ingress-prometheus.yaml
│ │ ├── service.yaml
│ │ ├── statefulset.yaml
│ │ └── utils/
│ │ └── _command_line_flags.tpl
│ └── values.yaml
├── prometheus-alertmanager/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _alertmanager.sh.tpl
│ │ │ └── _apache.sh.tpl
│ │ ├── clusterrolebinding.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-alertmanager.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-admin-user.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-discovery.yaml
│ │ ├── service-ingress-alertmanager.yaml
│ │ ├── service.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── prometheus-blackbox-exporter/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret.yaml
│ │ └── service.yaml
│ └── values.yaml
├── prometheus-kube-state-metrics/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-controller-manager.yaml
│ │ ├── service-kube-state-metrics.yaml
│ │ └── service-scheduler.yaml
│ └── values.yaml
├── prometheus-mysql-exporter/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── README.rst
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _create-mysql-user.sh.tpl
│ │ │ └── _mysqld-exporter.sh.tpl
│ │ ├── exporter-configmap-bin.yaml
│ │ ├── exporter-deployment.yaml
│ │ ├── exporter-job-create-user.yaml
│ │ ├── exporter-network-policy.yaml
│ │ ├── exporter-secrets-etc.yaml
│ │ ├── exporter-service.yaml
│ │ ├── extra-manifests.yaml
│ │ └── secrets/
│ │ └── _exporter_user.cnf.tpl
│ └── values.yaml
├── prometheus-node-exporter/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _node-exporter.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── prometheus-openstack-exporter/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _prometheus-openstack-exporter.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── prometheus-process-exporter/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── rabbitmq/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _rabbitmq-cookie.sh.tpl
│ │ │ ├── _rabbitmq-liveness.sh.tpl
│ │ │ ├── _rabbitmq-password-hash.py.tpl
│ │ │ ├── _rabbitmq-readiness.sh.tpl
│ │ │ ├── _rabbitmq-start.sh.tpl
│ │ │ ├── _rabbitmq-test.sh.tpl
│ │ │ └── _rabbitmq-wait-for-cluster.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── etc/
│ │ │ └── _enabled_plugins.tpl
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-management.yaml
│ │ ├── job-cluster-wait.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-erlang-cookie.yaml
│ │ ├── secret-rabbit-admin.yaml
│ │ ├── secret-rabbitmq-users-credentials.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress-management.yaml
│ │ ├── service.yaml
│ │ ├── statefulset.yaml
│ │ └── utils/
│ │ └── _to_rabbit_config.tpl
│ └── values.yaml
├── rally/
│ ├── Chart.yaml
│ ├── README.rst
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _manage-db.sh.tpl
│ │ │ └── _run-task.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── configmap-tasks.yaml
│ │ ├── configmap-test-templates.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-manage-db.yaml
│ │ ├── job-run-task.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pvc-rally.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── redis/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── pod_test.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service.yaml
│ │ └── test/
│ │ ├── _python_redis_tests.py.tpl
│ │ └── _redis_test.sh.tpl
│ └── values.yaml
├── registry/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _registry-proxy.sh.tpl
│ │ │ └── _registry.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-registry-proxy.yaml
│ │ ├── deployment-registry.yaml
│ │ ├── etc/
│ │ │ └── _default.conf.tpl
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── pvc-images.yaml
│ │ ├── secret-registry.yaml
│ │ └── service-registry.yaml
│ └── values.yaml
├── release.asc
├── releasenotes/
│ ├── config.yaml
│ ├── notes/
│ │ ├── added-nova-uid-parameter-to-ovs-chart-41d2b05b79300a31.yaml
│ │ ├── aodh-0fe345390dd08642.yaml
│ │ ├── aodh-1002dad350db1c60.yaml
│ │ ├── aodh-bb91c011b0c7d911.yaml
│ │ ├── aodh.yaml
│ │ ├── barbican-669168de73ab5847.yaml
│ │ ├── barbican-d291498fada9e601.yaml
│ │ ├── barbican-ead8061b2a6b1b1b.yaml
│ │ ├── barbican.yaml
│ │ ├── blazar-73cedded47699964.yaml
│ │ ├── blazar-a7b9b29ba15720c0.yaml
│ │ ├── blazar-b7fc5016b49c8f59.yaml
│ │ ├── ca-clusterissuer.yaml
│ │ ├── ca-issuer.yaml
│ │ ├── ceilometer-15768e1064d3339d.yaml
│ │ ├── ceilometer-8fc69d6664cdf101.yaml
│ │ ├── ceilometer-ab177a5c0aad98df.yaml
│ │ ├── ceilometer-b03ea218e1e61f90.yaml
│ │ ├── ceilometer-b86532145d088208.yaml
│ │ ├── ceilometer-c08f029ffa1e122f.yaml
│ │ ├── ceilometer.yaml
│ │ ├── ceph-adapter-rook-2fd83689f9bf78fb.yaml
│ │ ├── ceph-adapter-rook-f0855e8843fe615f.yaml
│ │ ├── ceph-adapter-rook.yaml
│ │ ├── ceph-client-055d675e86b2d0ea.yaml
│ │ ├── ceph-client-f4c8397a4313c53a.yaml
│ │ ├── ceph-client.yaml
│ │ ├── ceph-mon-1a1ecc38a96bfead.yaml
│ │ ├── ceph-mon-5ece5f0b0f571966.yaml
│ │ ├── ceph-mon-a1f450d714b90cfb.yaml
│ │ ├── ceph-mon-f029c2a86a0b7edd.yaml
│ │ ├── ceph-mon.yaml
│ │ ├── ceph-osd-294b73092b0b301b.yaml
│ │ ├── ceph-osd-c897b82dd8d0104b.yaml
│ │ ├── ceph-osd-e9bd9ab0cb036080.yaml
│ │ ├── ceph-osd.yaml
│ │ ├── ceph-provisioners-091a682dc01c219f.yaml
│ │ ├── ceph-provisioners-c4334743e1cadc04.yaml
│ │ ├── ceph-provisioners.yaml
│ │ ├── ceph-rgw-1dc7fd498ff7ed46.yaml
│ │ ├── ceph-rgw-9d99622a011584b0.yaml
│ │ ├── ceph-rgw.yaml
│ │ ├── cert-rotation-06fbf166bc55e372.yaml
│ │ ├── cert-rotation.yaml
│ │ ├── change-default-ovs-image-c1e24787f1b03170.yaml
│ │ ├── change-memcache-backend-2d85a3c75b32db39.yaml
│ │ ├── changed-ovs-dpdk-root-key-f8aaf3ad65189c8a.yaml
│ │ ├── cinder-1db248fbc00e56ff.yaml
│ │ ├── cinder-32aac095ffc09912.yaml
│ │ ├── cinder-48232b427a294d57.yaml
│ │ ├── cinder-4e17dd8ee84ca1a2.yaml
│ │ ├── cinder-8f8fd56d2c9a5d75.yaml
│ │ ├── cinder-92ee9aa061442690.yaml
│ │ ├── cinder-a25114bef0ed2f56.yaml
│ │ ├── cinder-a530fe90112c74d1.yaml
│ │ ├── cinder-aca94f2247bcddcd.yaml
│ │ ├── cinder-b605e2bc57b6d49f.yaml
│ │ ├── cinder-ddd3bb79dff72ba6.yaml
│ │ ├── cinder-ded5ec20ef58ac93.yaml
│ │ ├── cinder-f177532ecd78dcec.yaml
│ │ ├── cinder.yaml
│ │ ├── cloudkitty-a95de06fbfeac965.yaml
│ │ ├── cloudkitty-d61bea096f10b731.yaml
│ │ ├── cloudkitty.yaml
│ │ ├── common-695408be564c5d44.yaml
│ │ ├── common-76e452ae14eb3707.yaml
│ │ ├── common-8730c7058550f934.yaml
│ │ ├── common-d6d7b93fcc7296e9.yaml
│ │ ├── common-eb7338a63d83ad95.yaml
│ │ ├── common-f19dec4799b18756.yaml
│ │ ├── cyborg.yaml
│ │ ├── designate-9ed4257ab657b224.yaml
│ │ ├── designate-bc18055009645160.yaml
│ │ ├── designate.yaml
│ │ ├── elastic-apm-server.yaml
│ │ ├── elastic-filebeat.yaml
│ │ ├── elastic-metricbeat.yaml
│ │ ├── elastic-packetbeat.yaml
│ │ ├── elasticseach-625bc83028513f08.yaml
│ │ ├── elasticsearch-127e34013b70451d.yaml
│ │ ├── elasticsearch-1fb9cb9d0b6169a7.yaml
│ │ ├── elasticsearch-4a005ef3cec5f170.yaml
│ │ ├── elasticsearch-653d4b77cf26c277.yaml
│ │ ├── elasticsearch-ba314935c85c3b25.yaml
│ │ ├── elasticsearch-baf978b047efc111.yaml
│ │ ├── elasticsearch.yaml
│ │ ├── etcd.yaml
│ │ ├── fluentbit.yaml
│ │ ├── fluentd.yaml
│ │ ├── freezer-3272cc6ed891f5a3.yaml
│ │ ├── glance-1245a71c1694b79c.yaml
│ │ ├── glance-79dad0da1e27df42.yaml
│ │ ├── glance-9043d8c0a8119256.yaml
│ │ ├── glance-cb814fab2bccc95e.yaml
│ │ ├── glance-cbd61a1ae1e902b5.yaml
│ │ ├── glance-e528d9f2473763a1.yaml
│ │ ├── glance.yaml
│ │ ├── gnocchi-37ba93d527c7ba75.yaml
│ │ ├── gnocchi-71bec40a3416cb8a.yaml
│ │ ├── gnocchi.yaml
│ │ ├── grafana-b3fac6a311d115a6.yaml
│ │ ├── grafana-d1a2049e057fe878.yaml
│ │ ├── grafana.yaml
│ │ ├── heat-5e861ec1ee8e2784.yaml
│ │ ├── heat-7222563449ea848e.yaml
│ │ ├── heat-a584fab629e1c4fc.yaml
│ │ ├── heat.yaml
│ │ ├── helm-toolkit-04996581655d9952.yaml
│ │ ├── helm-toolkit-1ac16e62f779d907.yaml
│ │ ├── helm-toolkit-49593d58783c3a97.yaml
│ │ ├── helm-toolkit-5fa68b35be3378b3.yaml
│ │ ├── helm-toolkit-81cf091a301877ff.yaml
│ │ ├── helm-toolkit-9618f6c4379c13bc.yaml
│ │ ├── helm-toolkit-a2810391532bd64a.yaml
│ │ ├── helm-toolkit-acb954baa2fe7b2f.yaml
│ │ ├── helm-toolkit-e84e695df114929d.yaml
│ │ ├── helm-toolkit-fa49be61648b2d72.yaml
│ │ ├── helm-toolkit.yaml
│ │ ├── horizon-172a4ff3264fc495.yaml
│ │ ├── horizon.yaml
│ │ ├── increase-default-logging-31db0e9d3e51b429.yaml
│ │ ├── ingress.yaml
│ │ ├── ironic-0035b6286b1c6333.yaml
│ │ ├── ironic-022571f573f6c430.yaml
│ │ ├── ironic-2b9283c8924f8c63.yaml
│ │ ├── ironic-2fcd7c5ae98b55f4.yaml
│ │ ├── ironic-4963b8bfe3c212d0.yaml
│ │ ├── ironic-4a1d33f9e4147b79.yaml
│ │ ├── ironic-82bd78c64b57d2ce.yaml
│ │ ├── ironic-adbba9c6718cc0d6.yaml
│ │ ├── ironic-c0de8abe9970dca0.yaml
│ │ ├── ironic.yaml
│ │ ├── keystone-0e6674e1c443cd81.yaml
│ │ ├── keystone-12efe8927d1a0934.yaml
│ │ ├── keystone-17cdfeb53f6eb5dd.yaml
│ │ ├── keystone-1aaec51f0512e445.yaml
│ │ ├── keystone-56908951efdcc19e.yaml
│ │ ├── keystone-5dd1eca70f3382d8.yaml
│ │ ├── keystone-9bca09a40cc3dc68.yaml
│ │ ├── keystone-dab27a4eeaab96d1.yaml
│ │ ├── keystone-e2d6c0f6c85415ab.yaml
│ │ ├── keystone-fb00add9c87916a3.yaml
│ │ ├── keystone-healthcheck-1f72d266f886e735.yaml
│ │ ├── keystone.yaml
│ │ ├── kibana-053401293f7f508d.yaml
│ │ ├── kibana-add46185e9a8d6af.yaml
│ │ ├── kibana-c0b39f760a7c5b80.yaml
│ │ ├── kibana.yaml
│ │ ├── kube-dns.yaml
│ │ ├── kubernetes-keystone-webhook.yaml
│ │ ├── kubernetes-node-problem-detector.yaml
│ │ ├── ldap-4737a2ba0a8a499f.yaml
│ │ ├── ldap.yaml
│ │ ├── libvirt-5bf3185fc00a9938.yaml
│ │ ├── libvirt-85375c3ae369bc39.yaml
│ │ ├── libvirt-ac59444a6623ddb9.yaml
│ │ ├── libvirt-b5dc605552feb278.yaml
│ │ ├── libvirt-e8ba1d91a8ca4999.yaml
│ │ ├── libvirt-f81d6fc0b0094209.yaml
│ │ ├── libvirt.yaml
│ │ ├── local-storage.yaml
│ │ ├── local-volume-provisioner.yaml
│ │ ├── magnum.yaml
│ │ ├── manila-23590e37667d10a5.yaml
│ │ ├── manila-3a767553950629bd.yaml
│ │ ├── manila-7bf5ad7472dbf691.yaml
│ │ ├── manila-a5beeacdb577dd23.yaml
│ │ ├── manila-f7286f302a9372eb.yaml
│ │ ├── manila-f8ada2e675fcc308.yaml
│ │ ├── manila.yaml
│ │ ├── mariadb-0cb94bb0ae8cf38a.yaml
│ │ ├── mariadb-2d75f250c1fbcd73.yaml
│ │ ├── mariadb-7d8282a6eeb4d249.yaml
│ │ ├── mariadb-840fccbf8f0e9d39.yaml
│ │ ├── mariadb-b923ac9345734125.yaml
│ │ ├── mariadb-backup-58c8a77f9c03bae8.yaml
│ │ ├── mariadb-backup-af891fea0cfa3db5.yaml
│ │ ├── mariadb-backup-c27eb2dc0a56a7ed.yaml
│ │ ├── mariadb-backup.yaml
│ │ ├── mariadb-cluster-4672d16769afdb47.yaml
│ │ ├── mariadb-cluster.yaml
│ │ ├── mariadb-dcd35d40fcd4a749.yaml
│ │ ├── mariadb.yaml
│ │ ├── masakari-ea8acf2427bc9811.yaml
│ │ ├── masakari.yaml
│ │ ├── memcached-1ae10613b2e36813.yaml
│ │ ├── memcached.yaml
│ │ ├── mistral.yaml
│ │ ├── nagios-36a6b2cb6e9fc720.yaml
│ │ ├── nagios.yaml
│ │ ├── namespace-config.yaml
│ │ ├── neutron-00a56405067b123d.yaml
│ │ ├── neutron-013c9be46456b92c.yaml
│ │ ├── neutron-288ac8b37720832e.yaml
│ │ ├── neutron-2af36e49a0a377c3.yaml
│ │ ├── neutron-2bb975307f0d27f2.yaml
│ │ ├── neutron-2d4db97bc8900286.yaml
│ │ ├── neutron-315f825e54d3f34c.yaml
│ │ ├── neutron-32815761690bedf5.yaml
│ │ ├── neutron-3c11cf48f8c7c592.yaml
│ │ ├── neutron-3c33aea435f7ab8a.yaml
│ │ ├── neutron-42b77d74ce8fe287.yaml
│ │ ├── neutron-4f9263300df02c9b.yaml
│ │ ├── neutron-659f0c21af1feaa0.yaml
│ │ ├── neutron-670d4cd96f100dea.yaml
│ │ ├── neutron-96d95ffbdeaaf29a.yaml
│ │ ├── neutron-9dbb4250fd893743.yaml
│ │ ├── neutron-add-uwsgi-start-time-d73ba462e1157dd2.yaml
│ │ ├── neutron-b2247f89a5f258aa.yaml
│ │ ├── neutron-b225c11a5e1d522d.yaml
│ │ ├── neutron-c0c7ca4e49cbf03c.yaml
│ │ ├── neutron-c451a4129f97e891.yaml
│ │ ├── neutron-d39cc4643edac73c.yaml
│ │ ├── neutron-f0674e08d80fc203.yaml
│ │ ├── neutron-fca28403d7a0be3a.yaml
│ │ ├── neutron.yaml
│ │ ├── nfs-provisioner.yaml
│ │ ├── nova-1a7fb130b261f92d.yaml
│ │ ├── nova-29572c7b62b6ae0b.yaml
│ │ ├── nova-2c10ffbcf8d2f838.yaml
│ │ ├── nova-2e97a6de46b4c9b9.yaml
│ │ ├── nova-3493b35ba8c4479a.yaml
│ │ ├── nova-366b14dea33d416d.yaml
│ │ ├── nova-467e6c34e9fd1b05.yaml
│ │ ├── nova-476f40003a31bc77.yaml
│ │ ├── nova-495c648112a2b539.yaml
│ │ ├── nova-4b998ef222e57fd1.yaml
│ │ ├── nova-5bb93c130c2a280d.yaml
│ │ ├── nova-5d7903f3b97aa088.yaml
│ │ ├── nova-60c926ac61319ba1.yaml
│ │ ├── nova-69cb1a01b6f5c561.yaml
│ │ ├── nova-6b1d99fb5c67b2dd.yaml
│ │ ├── nova-7f3dbce1333752b8.yaml
│ │ ├── nova-9df2dfa1e3521305.yaml
│ │ ├── nova-b0749b6144e2b871.yaml
│ │ ├── nova-b2ce6bcc83029d1b.yaml
│ │ ├── nova-c59fc7469b3a8500.yaml
│ │ ├── nova-dd4188dbc489977c.yaml
│ │ ├── nova-e42deac3199480e6.yaml
│ │ ├── nova-e8350419e59bc440.yaml
│ │ ├── nova-fc00bda9bb69988e.yaml
│ │ ├── nova.yaml
│ │ ├── octavia-171c56de7891c86d.yaml
│ │ ├── octavia-3c13346818a743cc.yaml
│ │ ├── octavia-63cb483419410e3c.yaml
│ │ ├── octavia-73c0f7c8c13c00a1.yaml
│ │ ├── octavia-74938cd9ffae016b.yaml
│ │ ├── octavia-875ff6ae26e5586c.yaml
│ │ ├── octavia-a9a696fde141cd8b.yaml
│ │ ├── octavia-b40e89ec5e5b5568.yaml
│ │ ├── octavia-c0e8011e138832db.yaml
│ │ ├── octavia-c952d2266d5dbd62.yaml
│ │ ├── octavia-c9f2b0ece7ba8406.yaml
│ │ ├── octavia-d22c4az0a92b7d16.yaml
│ │ ├── octavia-f6afc93cf3ccc8f7.yaml
│ │ ├── octavia-health-manager-net-caps-49adc645e1d03456.yaml
│ │ ├── octavia.yaml
│ │ ├── openstack.yaml
│ │ ├── openvswitch-0b37403ffc75bb63.yaml
│ │ ├── openvswitch-3401ba2f0dc8e1f6.yaml
│ │ ├── openvswitch-3df8c5ca6034009f.yaml
│ │ ├── openvswitch-5c0d74ca4f420e56.yaml
│ │ ├── openvswitch-63f74f08815529dd.yaml
│ │ ├── openvswitch-c123b289b476575a.yaml
│ │ ├── openvswitch-e761d6733b84bdc7.yaml
│ │ ├── openvswitch-e888d02378d4d044.yaml
│ │ ├── openvswitch.yaml
│ │ ├── other-23a753cb53b10bb8.yaml
│ │ ├── ovn-3b9e82e5d469bc98.yaml
│ │ ├── ovn-3e576a7be97232fe.yaml
│ │ ├── ovn-50ba6d3611decff9.yaml
│ │ ├── ovn-53e7ddb42d51e7c9.yaml
│ │ ├── ovn-6c1c8afff28cf7f7.yaml
│ │ ├── ovn-73332b0bc5d647f2.yaml
│ │ ├── ovn-8b5cc103886f3b25.yaml
│ │ ├── ovn-a82eced671495a3d.yaml
│ │ ├── ovn-b172c29d8c0602b1.yaml
│ │ ├── ovn-d195851d81d68036.yaml
│ │ ├── ovn-ffd84bb8c9e73b64.yaml
│ │ ├── ovn.yaml
│ │ ├── panko.yaml
│ │ ├── placement-2b023904bc06028b.yaml
│ │ ├── placement-3115f3ce4c0801af.yaml
│ │ ├── placement-a180f4e88ed81d30.yaml
│ │ ├── placement.yaml
│ │ ├── podsecuritypolicy.yaml
│ │ ├── postgresql-4ee4e72706f17d8a.yaml
│ │ ├── postgresql-e1a02dbbe6601b0f.yaml
│ │ ├── postgresql.yaml
│ │ ├── powerdns.yaml
│ │ ├── prometeus-alertmanager-293616e8a47a12e8.yaml
│ │ ├── prometeus-e9a80f262470313c.yaml
│ │ ├── prometheus-alertmanager.yaml
│ │ ├── prometheus-blackbox-exporter.yaml
│ │ ├── prometheus-kube-state-metrics-b1fc3bf8e9109ae4.yaml
│ │ ├── prometheus-kube-state-metrics.yaml
│ │ ├── prometheus-mysql-exporter.yaml
│ │ ├── prometheus-node-exporter.yaml
│ │ ├── prometheus-openstack-exporter-39b2a7f52552033d.yaml
│ │ ├── prometheus-openstack-exporter-d95d286faa68ea98.yaml
│ │ ├── prometheus-openstack-exporter.yaml
│ │ ├── prometheus-process-exporter.yaml
│ │ ├── prometheus.yaml
│ │ ├── rabbitmq-04d68343d1f9dbec.yaml
│ │ ├── rabbitmq.yaml
│ │ ├── rally.yaml
│ │ ├── redis.yaml
│ │ ├── registry-daf63a0fbe9771cb.yaml
│ │ ├── registry.yaml
│ │ ├── remove-legacy-volume-apis-12d2d1abbb7fbe61.yaml
│ │ ├── remove-share-v1-api-d7b0b85e395bf131.yaml
│ │ ├── rename-ceph-rbd-pool-app-name.yaml
│ │ ├── skyline-0cc4caaea4f05714.yaml
│ │ ├── skyline-4763b3a9c14ace98.yaml
│ │ ├── skyline-794e9be9cc48f98d.yaml
│ │ ├── skyline-db-sync-image-b56ba0a4cad85c9c.yaml
│ │ ├── skyline-de744253bec9dfa3.yaml
│ │ ├── tacker.yaml
│ │ ├── tempest.yaml
│ │ ├── trove-a1b2c3d4e5f6g7h8.yaml
│ │ ├── trove.yaml
│ │ ├── watcher.yaml
│ │ └── zaqar-e43f9b2ace992d92.yaml
│ ├── requirements.txt
│ └── source/
│ ├── conf.py
│ ├── current.rst
│ ├── index.rst
│ └── locale/
│ └── en_GB/
│ └── LC_MESSAGES/
│ └── releasenotes.po
├── roles/
│ ├── build-helm-packages/
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ ├── tasks/
│ │ │ ├── main.yaml
│ │ │ └── setup-helm-serve.yaml
│ │ └── templates/
│ │ └── helm-serve.service.j2
│ ├── chart-testing/
│ │ ├── README.rst
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── clean-host/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── deploy-apparmor/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── deploy-docker/
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ ├── tasks/
│ │ │ ├── deploy-ansible-docker-support.yaml
│ │ │ └── main.yaml
│ │ └── templates/
│ │ ├── centos-docker.service.j2
│ │ ├── fedora-docker.service.j2
│ │ ├── http-proxy.conf.j2
│ │ └── ubuntu-docker.service.j2
│ ├── deploy-env/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── files/
│ │ │ ├── calico_patch.yaml
│ │ │ ├── cluster_resolv.conf
│ │ │ ├── containerd_config.toml
│ │ │ ├── daemon.json
│ │ │ ├── etc_default_kubelet.j2
│ │ │ ├── hosts
│ │ │ ├── hosts.toml
│ │ │ ├── kubeadm_config.yaml.j2
│ │ │ ├── loop-setup.service
│ │ │ ├── nginx_tcp_proxy.conf
│ │ │ ├── resolv.conf
│ │ │ └── ssh_config
│ │ ├── handlers/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ ├── buildset_registry_alias.yaml
│ │ ├── calico.yaml
│ │ ├── cilium.yaml
│ │ ├── client_cluster_ssh.yaml
│ │ ├── client_cluster_tunnel.yaml
│ │ ├── containerd.yaml
│ │ ├── coredns_resolver.yaml
│ │ ├── env_inventory.yaml
│ │ ├── flannel.yaml
│ │ ├── floating_network.yaml
│ │ ├── gatewayapi_envoy.yaml
│ │ ├── ingress_haproxy.yaml
│ │ ├── ingress_nginx.yaml
│ │ ├── k8s_client.yaml
│ │ ├── k8s_common.yaml
│ │ ├── k8s_control_plane.yaml
│ │ ├── loopback_devices.yaml
│ │ ├── loopback_devices_mount.yaml
│ │ ├── main.yaml
│ │ ├── metallb.yaml
│ │ ├── overlay.yaml
│ │ ├── prerequisites.yaml
│ │ └── public_endpoints.yaml
│ ├── deploy-jq/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── deploy-package/
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ └── tasks/
│ │ ├── dist.yaml
│ │ └── pip.yaml
│ ├── deploy-python/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── deploy-python-pip/
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── deploy-selenium/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── describe-kubernetes-objects/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── disable-local-nameserver/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── enable-hugepages/
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── ensure-chart-testing/
│ │ ├── README.rst
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── gather-host-logs/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── gather-pod-logs/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── gather-prom-metrics/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── gather-selenium-data/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── helm-release-status/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── mount-extra-volume/
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── osh-bandit/
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── osh-run-script/
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── osh-run-script-set/
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── override-images/
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── setup-firewall/
│ │ └── tasks/
│ │ └── main.yaml
│ └── upgrade-host/
│ ├── defaults/
│ │ └── main.yml
│ └── tasks/
│ └── main.yaml
├── skyline/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _skyline-apiserver-init.sh.tpl
│ │ │ └── _skyline-apiserver.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress.yaml
│ │ └── service.yaml
│ └── values.yaml
├── swift/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _account-start.sh.tpl
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _container-start.sh.tpl
│ │ │ ├── _ks-endpoints.sh.tpl
│ │ │ ├── _ks-service.sh.tpl
│ │ │ ├── _ks-user.sh.tpl
│ │ │ ├── _object-start.sh.tpl
│ │ │ ├── _proxy-start.sh.tpl
│ │ │ ├── _ring-builder.sh.tpl
│ │ │ ├── _ring-copy.sh.tpl
│ │ │ ├── _storage-init.sh.tpl
│ │ │ ├── _storage-start.sh.tpl
│ │ │ └── _swift-test.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-storage.yaml
│ │ ├── deployment-proxy.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-proxy.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-ring-builder.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-proxy.yaml
│ │ ├── pdb-storage.yaml
│ │ ├── pod-test.yaml
│ │ ├── pvc.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── service-ingress-proxy.yaml
│ │ └── service-proxy.yaml
│ └── values.yaml
├── tacker/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _tacker-test.sh.tpl
│ │ │ ├── _tacker_conductor.sh.tpl
│ │ │ └── _tacker_server.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-conductor.yaml
│ │ ├── deployment-server.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── pod-test.yaml
│ │ ├── pvc.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── service-api.yaml
│ │ ├── service-conductor.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── tempest/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── _helpers.tpl
│ │ ├── bin/
│ │ │ └── _run-tests.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-run-tests.yaml
│ │ ├── pvc-tempest.yaml
│ │ ├── secret-keystone.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── tests/
│ ├── dns-test.yaml
│ └── pvc-test.yaml
├── tools/
│ ├── changelog.py
│ ├── chart_version.sh
│ ├── debug_sleep.sh
│ ├── deployment/
│ │ ├── baremetal/
│ │ │ ├── 005-setup-nodes.sh
│ │ │ ├── 010-setup-client.sh
│ │ │ ├── 110-compute-kit.sh
│ │ │ ├── 800-create-baremetal-host-aggregate.sh
│ │ │ ├── 810-register-baremetal-nodes.sh
│ │ │ ├── 820-create-baremetal-flavor.sh
│ │ │ ├── 900-use-it.sh
│ │ │ ├── fake-baremetal-1.xml
│ │ │ └── heat-basic-bm-deployment.yaml
│ │ ├── ceph/
│ │ │ ├── ceph-adapter-rook.sh
│ │ │ ├── ceph-ns-activate.sh
│ │ │ ├── ceph-radosgw.sh
│ │ │ ├── ceph-rook.sh
│ │ │ ├── ceph.sh
│ │ │ ├── ceph_legacy.sh
│ │ │ ├── migrate-after.sh
│ │ │ ├── migrate-before.sh
│ │ │ ├── migrate-to-rook-ceph.sh
│ │ │ └── migrate-values.sh
│ │ ├── common/
│ │ │ ├── cert-manager.sh
│ │ │ ├── clean-it.sh
│ │ │ ├── deploy-docker-registry.sh
│ │ │ ├── env-variables.sh
│ │ │ ├── force-cronjob-run.sh
│ │ │ ├── heat-basic-vm-deployment.yaml
│ │ │ ├── heat-public-net-deployment.yaml
│ │ │ ├── heat-subnet-pool-deployment.yaml
│ │ │ ├── heat-vm-volume-attach.yaml
│ │ │ ├── namespace-config.sh
│ │ │ ├── prepare-bashrc.sh
│ │ │ ├── prepare-charts.sh
│ │ │ ├── prepare-helm-repos-local.sh
│ │ │ ├── prepare-helm-repos-public.sh
│ │ │ ├── prepare-k8s.sh
│ │ │ ├── pull-images.sh
│ │ │ ├── rally-reports.yaml
│ │ │ ├── run-helm-tests.sh
│ │ │ ├── setup-certificates.sh
│ │ │ ├── setup-client.sh
│ │ │ ├── sleep.sh
│ │ │ ├── test-networkpolicy.sh
│ │ │ └── use-it.sh
│ │ ├── component/
│ │ │ ├── aodh/
│ │ │ │ └── aodh.sh
│ │ │ ├── barbican/
│ │ │ │ └── barbican.sh
│ │ │ ├── blazar/
│ │ │ │ ├── blazar.sh
│ │ │ │ └── blazar_smoke_test.sh
│ │ │ ├── ceilometer/
│ │ │ │ └── ceilometer.sh
│ │ │ ├── cinder/
│ │ │ │ └── cinder.sh
│ │ │ ├── cloudkitty/
│ │ │ │ └── cloudkitty.sh
│ │ │ ├── common/
│ │ │ │ ├── ldap.sh
│ │ │ │ ├── memcached.sh
│ │ │ │ ├── openstack.sh
│ │ │ │ └── rabbitmq.sh
│ │ │ ├── compute-kit/
│ │ │ │ ├── compute-kit-sr-iov.sh
│ │ │ │ ├── compute-kit.sh
│ │ │ │ ├── libvirt.sh
│ │ │ │ └── openvswitch.sh
│ │ │ ├── freezer/
│ │ │ │ ├── freezer.sh
│ │ │ │ └── freezer_smoke_test.sh
│ │ │ ├── glance/
│ │ │ │ └── glance.sh
│ │ │ ├── heat/
│ │ │ │ └── heat.sh
│ │ │ ├── horizon/
│ │ │ │ └── horizon.sh
│ │ │ ├── keystone/
│ │ │ │ └── keystone.sh
│ │ │ ├── magnum/
│ │ │ │ └── magnum.sh
│ │ │ ├── manila/
│ │ │ │ └── manila.sh
│ │ │ ├── mistral/
│ │ │ │ └── mistral.sh
│ │ │ ├── nfs-provisioner/
│ │ │ │ └── nfs-provisioner.sh
│ │ │ ├── octavia/
│ │ │ │ ├── create_dual_intermediate_CA.sh
│ │ │ │ ├── heat_octavia_env.yaml
│ │ │ │ ├── octavia.sh
│ │ │ │ ├── octavia_certs.sh
│ │ │ │ ├── octavia_resources.sh
│ │ │ │ ├── octavia_test.sh
│ │ │ │ └── openssl.cnf
│ │ │ ├── ovn/
│ │ │ │ └── ovn.sh
│ │ │ ├── redis/
│ │ │ │ └── redis.sh
│ │ │ ├── skyline/
│ │ │ │ └── skyline.sh
│ │ │ ├── swift/
│ │ │ │ └── swift.sh
│ │ │ ├── tacker/
│ │ │ │ └── tacker.sh
│ │ │ ├── trove/
│ │ │ │ └── trove.sh
│ │ │ ├── watcher/
│ │ │ │ └── watcher.sh
│ │ │ └── zaqar/
│ │ │ ├── zaqar.sh
│ │ │ └── zaqar_smoke_test.sh
│ │ ├── db/
│ │ │ ├── mariadb-backup.sh
│ │ │ ├── mariadb-operator-cluster.sh
│ │ │ ├── mariadb.sh
│ │ │ └── postgresql.sh
│ │ ├── logging/
│ │ │ ├── elasticsearch.sh
│ │ │ ├── fluentbit.sh
│ │ │ ├── fluentd.sh
│ │ │ └── kibana.sh
│ │ ├── monitoring/
│ │ │ ├── alertmanager.sh
│ │ │ ├── blackbox-exporter.sh
│ │ │ ├── grafana.sh
│ │ │ ├── kube-state-metrics.sh
│ │ │ ├── mysql-exporter.sh
│ │ │ ├── nagios.sh
│ │ │ ├── node-exporter.sh
│ │ │ ├── node-problem-detector.sh
│ │ │ ├── openstack-exporter.sh
│ │ │ ├── process-exporter.sh
│ │ │ └── prometheus.sh
│ │ └── openstack/
│ │ └── keystone.sh
│ └── gate/
│ └── selenium/
│ ├── grafana-selenium.sh
│ ├── grafanaSelenium.py
│ ├── kibana-selenium.sh
│ ├── kibanaSelenium.py
│ ├── nagios-selenium.sh
│ ├── nagiosSelenium.py
│ ├── prometheus-selenium.sh
│ ├── prometheusSelenium.py
│ ├── seleniumtester.py
│ ├── skyline-selenium.sh
│ └── skylineSelenium.py
├── tox.ini
├── trove/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-purge.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _trove-api.sh.tpl
│ │ │ ├── _trove-conductor.sh.tpl
│ │ │ └── _trove-taskmanager.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-trove-db-purge.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-conductor.yaml
│ │ ├── deployment-taskmanager.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── values_overrides/
│ ├── aodh/
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── barbican/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── blazar/
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ ├── ceilometer/
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ └── annotations.yaml
│ ├── ceph-client/
│ │ └── apparmor.yaml
│ ├── ceph-mon/
│ │ └── apparmor.yaml
│ ├── ceph-osd/
│ │ └── apparmor.yaml
│ ├── ceph-provisioners/
│ │ └── apparmor.yaml
│ ├── ceph-rgw/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── netpol.yaml
│ │ └── tls.yaml
│ ├── cinder/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── backend_pure.yaml
│ │ ├── external-ceph-backend.yaml
│ │ ├── external-ceph-configmap.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── nfs-cinder-backup.yaml
│ │ ├── qos.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── cloudkitty/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ ├── cyborg/
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ ├── mariadb-operator.yaml
│ │ └── rabbitmq4.yaml
│ ├── designate/
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── elastic-apm-server/
│ │ └── apparmor.yaml
│ ├── elastic-filebeat/
│ │ └── apparmor.yaml
│ ├── elasticsearch/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── local-storage.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── remote-cluster.yaml
│ │ └── tls.yaml
│ ├── fluentd/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── tls.yaml
│ ├── freezer/
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ ├── glance/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── bootstrap-ubuntu-image.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── gnocchi/
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── grafana/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── calico.yaml
│ │ ├── ceph.yaml
│ │ ├── containers.yaml
│ │ ├── coredns.yaml
│ │ ├── elasticsearch.yaml
│ │ ├── gateway.yaml
│ │ ├── home_dashboard.yaml
│ │ ├── kubernetes.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── nginx.yaml
│ │ ├── nodes.yaml
│ │ ├── openstack.yaml
│ │ ├── persistentvolume.yaml
│ │ ├── prometheus.yaml
│ │ ├── sqlite3.yaml
│ │ └── tls.yaml
│ ├── heat/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── horizon/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── logo.yaml
│ │ ├── netpol.yaml
│ │ └── tls.yaml
│ ├── ironic/
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ ├── mariadb-operator.yaml
│ │ └── standalone.yaml
│ ├── keystone/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── internal-reverse-proxy.yaml
│ │ ├── ldap.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── tls-custom.yaml
│ │ └── tls.yaml
│ ├── kibana/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── tls.yaml
│ ├── kubernetes-keystone-webhook/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ └── loci-2025.2-ubuntu_noble.yaml
│ ├── kubernetes-node-problem-detector/
│ │ └── apparmor.yaml
│ ├── libvirt/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── cinder-external-ceph-backend.yaml
│ │ ├── inovex_exporter.yaml
│ │ ├── netpol.yaml
│ │ ├── node_overrides.yaml
│ │ ├── ovn.yaml
│ │ ├── ssl.yaml
│ │ └── vexxhost_exporter.yaml
│ ├── local-storage/
│ │ └── local-storage.yaml
│ ├── magnum/
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── manila/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── mariadb/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── backups.yaml
│ │ ├── local-storage.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── netpol.yaml
│ │ ├── remote_backups.yaml
│ │ ├── staggered-backups.yaml
│ │ ├── tls.yaml
│ │ └── wait-for-cluster.yaml
│ ├── mariadb-backup/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── backups.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── staggered-backups.yaml
│ │ └── tls.yaml
│ ├── mariadb-cluster/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── downscaled.yaml
│ │ ├── local-storage.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── netpol.yaml
│ │ ├── prometheus.yaml
│ │ ├── tls.yaml
│ │ └── upscaled.yaml
│ ├── masakari/
│ │ ├── annotations.yaml
│ │ └── mariadb-operator.yaml
│ ├── memcached/
│ │ ├── apparmor.yaml
│ │ ├── exporter.yaml
│ │ └── netpol.yaml
│ ├── mistral/
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── nagios/
│ │ ├── apparmor.yaml
│ │ ├── elasticsearch-objects.yaml
│ │ ├── gateway.yaml
│ │ ├── openstack-objects.yaml
│ │ ├── postgresql-objects.yaml
│ │ └── tls.yaml
│ ├── neutron/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── bagpipe_bgp.yaml
│ │ ├── dpdk-bond.yaml
│ │ ├── dpdk.yaml
│ │ ├── gate.yaml
│ │ ├── gateway.yaml
│ │ ├── l2gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── ovn.yaml
│ │ ├── ovn_vpn.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── shared-sriov-ovs-dpdk-bond.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── nova/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── cntt.yaml
│ │ ├── dpdk.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── opensuse_15.yaml
│ │ ├── ovn.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── ssh.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── octavia/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ ├── openvswitch/
│ │ ├── apparmor.yaml
│ │ ├── dpdk-ubuntu_jammy.yaml
│ │ ├── dpdk-ubuntu_noble.yaml
│ │ ├── exporter.yaml
│ │ ├── netpol.yaml
│ │ ├── ovn.yaml
│ │ ├── ubuntu_jammy.yaml
│ │ ├── ubuntu_noble.yaml
│ │ └── vswitchd-probes.yaml
│ ├── ovn/
│ │ ├── ubuntu_jammy.yaml
│ │ └── ubuntu_noble.yaml
│ ├── placement/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── postgresql/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── backups.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── netpol.yaml
│ │ ├── staggered-backups.yaml
│ │ └── tls.yaml
│ ├── powerdns/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ └── loci-2025.2-ubuntu_noble.yaml
│ ├── prometheus/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── alertmanager.yaml
│ │ ├── apparmor.yaml
│ │ ├── ceph.yaml
│ │ ├── elasticsearch.yaml
│ │ ├── gateway.yaml
│ │ ├── kubernetes.yaml
│ │ ├── local-storage.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── nodes.yaml
│ │ ├── openstack.yaml
│ │ ├── postgresql.yaml
│ │ └── tls.yaml
│ ├── prometheus-alertmanager/
│ │ ├── apparmor.yaml
│ │ └── gateway.yaml
│ ├── prometheus-blackbox-exporter/
│ │ └── apparmor.yaml
│ ├── prometheus-kube-state-metrics/
│ │ └── apparmor.yaml
│ ├── prometheus-mysql-exporter/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── prometheus.yaml
│ │ └── tls.yaml
│ ├── prometheus-node-exporter/
│ │ └── apparmor.yaml
│ ├── prometheus-openstack-exporter/
│ │ ├── apparmor.yaml
│ │ ├── netpol.yaml
│ │ └── tls.yaml
│ ├── prometheus-process-exporter/
│ │ └── apparmor.yaml
│ ├── rabbitmq/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── builtin-metrics.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── netpol.yaml
│ │ ├── rabbitmq-exporter.yaml
│ │ └── tls.yaml
│ ├── rally/
│ │ ├── annotations.yaml
│ │ ├── mariadb-operator.yaml
│ │ └── tls-offloading.yaml
│ ├── skyline/
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ └── loci-2025.2-ubuntu_noble.yaml
│ ├── swift/
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ └── gateway.yaml
│ ├── tacker/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ ├── tempest/
│ │ └── annotations.yaml
│ ├── trove/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── watcher/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ └── zaqar/
│ ├── 2025.1-ubuntu_jammy.yaml
│ ├── 2025.1-ubuntu_noble.yaml
│ ├── 2025.2-ubuntu_noble.yaml
│ ├── gateway.yaml
│ ├── loci-2025.1-ubuntu_noble.yaml
│ └── loci-2025.2-ubuntu_noble.yaml
├── watcher/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _watcher-api.sh.tpl
│ │ │ ├── _watcher-applier.sh.tpl
│ │ │ └── _watcher-decision-engine.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-applier.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── statefulset-decision-engine.yaml
│ └── values.yaml
├── yamllint-templates.conf
├── yamllint.conf
├── zaqar/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _zaqar-test.sh.tpl
│ │ │ └── _zaqar_api.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
└── zuul.d/
├── 2024.2.yaml
├── 2025.1.yaml
├── 2025.2-ubuntu_noble.yaml
├── base.yaml
├── infra_jobs.yaml
├── nodesets.yaml
└── project.yaml
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.py[cod]
# C extensions
*.so
# Packages
*.egg*
*.egg-info
dist
build
eggs
parts
var
sdist
develop-eggs
.installed.cfg
lib
lib64
# Installer logs
pip-log.txt
# Unit test / coverage reports
cover/
.coverage*
!.coveragerc
.tox
nosetests.xml
.testrepository
.venv
# Translations
*.mo
# Mr Developer
.mr.developer.cfg
.project
.pydevproject
# Complexity
output/*.html
output/*/index.html
# Sphinx
doc/build
doc/source/chart/*
!doc/source/chart/index.rst
!doc/source/chart/openstack_charts.rst
!doc/source/chart/infra_charts.rst
# installed tools
tools/helm-docs
# pbr generates these
AUTHORS
ChangeLog
# Editors
*~
.*.swp
.*sw?
# Files created by releasenotes build
releasenotes/build
# Dev tools
.idea/
.vscode/
.devcontainer/
**/.vagrant
**/*.log
# Helm internals
*.lock
*/*.lock
*.tgz
**/*.tgz
**/_partials.tpl
**/_globals.tpl
# Gate and Check Logs
logs/
tools/gate/local-overrides/
playbooks/*.retry
tmp/
# Helm-toolkit dev
helm-toolkit/templates/test.yaml
helm-toolkit/values.yaml
================================================
FILE: .gitreview
================================================
[gerrit]
host=review.opendev.org
port=29418
project=openstack/openstack-helm.git
================================================
FILE: .pre-commit-config.yaml
================================================
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: trailing-whitespace
- id: fix-byte-order-marker
- id: mixed-line-ending
args: ['--fix', 'lf']
- id: check-merge-conflict
- repo: https://github.com/sphinx-contrib/sphinx-lint
rev: v1.0.0
hooks:
- id: sphinx-lint
args: [--enable=default-role]
files: ^doc/|releasenotes
================================================
FILE: CONTRIBUTING.rst
================================================
The source repository for this project can be found at:
https://opendev.org/openstack/openstack-helm.git
Pull requests submitted through GitHub are not monitored.
To start contributing to OpenStack, follow the steps in the contribution guide
to set up and use Gerrit:
https://docs.openstack.org/contributors/code-and-documentation/quick-start.html
Bugs should be filed on StoryBoard:
https://storyboard.openstack.org/#!/project/openstack/openstack-helm
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
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.
================================================
FILE: Makefile
================================================
# 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.
# It's necessary to set this because some environments don't link sh -> bash.
SHELL := /bin/bash
HELM := helm
PYTHON := python3
TASK := build
HELM_DOCS := tools/helm-docs
UNAME_OS := $(shell uname -s)
UNAME_ARCH := $(shell uname -m)
# We generate CHANGELOG.md files by default which
# requires reno>=4.1.0 installed.
# To skip generating it use the following:
# make all SKIP_CHANGELOG=1
SKIP_CHANGELOG ?= 0
PKG_ARGS =
ifdef VERSION
PKG_ARGS += --version $(VERSION)
endif
ifdef PACKAGE_DIR
PKG_ARGS += --destination $(PACKAGE_DIR)
endif
BASE_VERSION ?= 2025.2.0
CHART_DIRS := $(subst /,,$(dir $(wildcard */Chart.yaml)))
CHARTS := $(sort helm-toolkit $(CHART_DIRS))
.PHONY: $(CHARTS)
all: $(CHARTS)
charts:
@echo $(CHART_DIRS)
$(CHARTS):
@if [ -d $@ ]; then \
echo; \
echo "===== Processing [$@] chart ====="; \
make $(TASK)-$@; \
fi
HELM_DOCS_VERSION ?= 1.14.2
.PHONY: helm-docs ## Download helm-docs locally if necessary
helm-docs: $(HELM_DOCS)
$(HELM_DOCS):
{ \
curl -fsSL -o tools/helm-docs.tar.gz https://github.com/norwoodj/helm-docs/releases/download/v$(HELM_DOCS_VERSION)/helm-docs_$(HELM_DOCS_VERSION)_$(UNAME_OS)_$(UNAME_ARCH).tar.gz && \
tar -zxf tools/helm-docs.tar.gz -C tools helm-docs && \
rm -f tools/helm-docs.tar.gz && \
chmod +x tools/helm-docs; \
}
init-%:
if [ -f $*/Makefile ]; then make -C $*; fi
if grep -qE "^dependencies:" $*/Chart.yaml; then $(HELM) dep up $*; fi
lint-%: init-%
if [ -d $* ]; then $(HELM) lint $*; fi
# reno required for changelog generation
%/CHANGELOG.md:
if [ -d $* ]; then $(PYTHON) tools/changelog.py --charts $*; fi
build-%: lint-% $(if $(filter-out 1,$(SKIP_CHANGELOG)),%/CHANGELOG.md)
if [ -d $* ]; then \
$(HELM) package $* --version $$(tools/chart_version.sh $* $(BASE_VERSION)) $(PKG_ARGS); \
fi
# This is used exclusively with helm3 building in the gate to publish
package-%: init-%
if [ -d $* ]; then $(HELM) package $* $(PKG_ARGS); fi
clean:
@echo "Clean all build artifacts"
rm -f */templates/_partials.tpl */templates/_globals.tpl
rm -f *tgz */charts/*tgz */requirements.lock
rm -rf */charts */tmpcharts
pull-all-images:
@./tools/deployment/common/pull-images.sh
pull-images:
@./tools/deployment/common/pull-images.sh $(filter-out $@,$(MAKECMDGOALS))
dev-deploy:
@./tools/gate/devel/start.sh $(filter-out $@,$(MAKECMDGOALS))
%:
@:
================================================
FILE: README.rst
================================================
==============
OpenStack-Helm
==============
Mission
-------
The goal of OpenStack-Helm is to provide a collection of Helm charts that
simply, resiliently, and flexibly deploy OpenStack and related services
on Kubernetes.
Versions supported
------------------
The table below shows the combinations of the Openstack/Platform/Kubernetes versions
that are tested and proved to work.
.. list-table::
:widths: 30 30 30 30
:header-rows: 1
* - Openstack version
- Host OS
- Image OS
- Kubernetes version
* - 2024.1 (Caracal)
- Ubuntu Jammy
- Ubuntu Jammy
- >=1.29,<=1.31
* - 2024.2 (Dalmatian)
- Ubuntu Jammy
- Ubuntu Jammy
- >=1.29,<=1.31
* - 2025.1 (Epoxy)
- Ubuntu Jammy
- Ubuntu Jammy
- >=1.29,<=1.31
* - 2025.1 (Epoxy)
- Ubuntu Noble
- Ubuntu Noble
- >=1.29,<=1.31
Communication
-------------
* Join us on `IRC <irc://chat.oftc.net/openstack-helm>`_:
``#openstack-helm`` on oftc
* Join us on `Slack <https://kubernetes.slack.com/messages/C3WERB7DE/>`_
(this is preferable way of communication): ``#openstack-helm``
* Join us on `Openstack-discuss <https://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss>`_
mailing list (use subject prefix ``[openstack-helm]``)
The list of Openstack-Helm core team members is available here
`openstack-helm-core <https://review.opendev.org/#/admin/groups/1749,members>`_.
Storyboard
----------
You found an issue and want to make sure we are aware of it? You can do so on our
`Storyboard <https://storyboard.openstack.org/#!/project_group/64>`_.
Bugs should be filed as stories in Storyboard, not GitHub.
Please be as much specific as possible while describing an issue. Usually having
more context in the bug description means less efforts for a developer to
reproduce the bug and understand how to fix it.
Also before filing a bug to the Openstack-Helm `Storyboard <https://storyboard.openstack.org/#!/project_group/64>`_
please try to identify if the issue is indeed related to the deployment
process and not to the deployable software.
Other links
-----------
Our documentation is available `here <https://docs.openstack.org/openstack-helm/latest/>`_.
This project is under active development. We encourage anyone interested in
OpenStack-Helm to review the `code changes <https://review.opendev.org/q/(project:openstack/openstack-helm+OR+project:openstack/openstack-helm-images+OR+project:openstack/loci)+AND+-is:abandoned>`_
Our repositories:
* OpenStack charts `openstack-helm <https://opendev.org/openstack/openstack-helm.git>`_
* OpenStack-Helm plugin `openstack-helm-plugin <https://opendev.org/openstack/openstack-helm-plugin.git>`_
* Build non-OpenStack images `openstack-helm-images <https://opendev.org/openstack/openstack-helm-images.git>`_
* Build Openstack images `loci <https://opendev.org/openstack/loci.git>`_
We welcome contributions in any form: code review, code changes, usage feedback, updating documentation.
Release notes
-------------
We use `reno <https://opendev.org/openstack/reno.git>`_ for managing release notes. If you update
a chart, please add a release note using the following command:
.. code-block:: bash
reno new <chart_name>
This will create a new release note file ``releasenotes/notes/<chart_name>-<sha>.yaml``. Fill in the
necessary information and commit the release note file.
If you update multiple charts in a single commit use the following command:
.. code-block:: bash
reno new common
This will create a new release note file ``releasenotes/notes/common-<sha>.yaml``. In this case you
can add multiple chart specific sections in this release note file.
When building tarballs, we will use the ``reno`` features to combine release notes from all files and
generate ``<chart_name>/CHANGELOG.md`` files.
================================================
FILE: aodh/Chart.yaml
================================================
# Copyright 2019 Wind River Systems, Inc.
#
# 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.
---
apiVersion: v2
appVersion: v1.0.0
description: Openstack-Helm Aodh
name: aodh
version: 2025.2.0
home: https://docs.openstack.org/aodh/latest/
sources:
- https://opendev.org/openstack/aodh
- https://opendev.org/openstack/openstack-helm
maintainers:
- name: OpenStack-Helm Authors
dependencies:
- name: helm-toolkit
repository: file://../helm-toolkit
version: ">= 0.1.0"
...
================================================
FILE: aodh/templates/bin/_aodh-alarms-cleaner.sh.tpl
================================================
#!/bin/bash
{{/*
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 -ex
exec aodh-expirer \
--config-file=/etc/aodh/aodh.conf \
--config-dir=/etc/aodh/aodh.conf.d
================================================
FILE: aodh/templates/bin/_aodh-api.sh.tpl
================================================
#!/bin/bash
{{/*
Copyright 2019 Wind River Systems, Inc.
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 -ex
COMMAND="${@:-start}"
function start () {
cp -a $(type -p aodh-api) /var/www/cgi-bin/aodh/
if [ -f /etc/apache2/envvars ]; then
# Loading Apache2 ENV variables
source /etc/apache2/envvars
# The directory below has to be created due to the fact that
# libapache2-mod-wsgi-py3 doesn't create it in contrary by libapache2-mod-wsgi
if [ ! -d ${APACHE_RUN_DIR} ]; then
mkdir -p ${APACHE_RUN_DIR}
fi
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
================================================
FILE: aodh/templates/bin/_aodh-evaluator.sh.tpl
================================================
#!/bin/bash
{{/*
Copyright 2019 Wind River Systems, Inc.
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 -ex
exec aodh-evaluator \
--config-file=/etc/aodh/aodh.conf \
--config-dir=/etc/aodh/aodh.conf.d
================================================
FILE: aodh/templates/bin/_aodh-listener.sh.tpl
================================================
#!/bin/bash
{{/*
Copyright 2019 Wind River Systems, Inc.
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 -ex
exec aodh-listener \
--config-file=/etc/aodh/aodh.conf \
--config-dir=/etc/aodh/aodh.conf.d
================================================
FILE: aodh/templates/bin/_aodh-notifier.sh.tpl
================================================
#!/bin/bash
{{/*
Copyright 2019 Wind River Systems, Inc.
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 -ex
exec aodh-notifier \
--config-file=/etc/aodh/aodh.conf \
--config-dir=/etc/aodh/aodh.conf.d
================================================
FILE: aodh/templates/bin/_aodh-test.sh.tpl
================================================
#!/bin/bash
{{/*
Copyright 2019 Wind River Systems, Inc.
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 -ex
export HOME=/tmp
echo "Test: create an alarm"
aodh alarm create \
--name test_cpu_aggregation \
--type gnocchi_aggregation_by_resources_threshold \
--metric cpu --threshold 214106115 \
--comparison-operator lt \
--aggregation-method mean \
--granularity 300 \
--evaluation-periods 1 \
--alarm-action 'http://localhost:8776/alarm' \
--resource-type instance \
--query '{"=": {"flavor_name": "small"}}'
sleep 5
echo "Test: list alarms"
aodh alarm list
sleep 5
echo "Test: show an alarm"
ALARM_UUID=$(aodh alarm list -c alarm_id -f value | head -1)
aodh alarm show ${ALARM_UUID}
sleep 5
echo "Test: update an alarm"
aodh alarm update ${ALARM_UUID} --comparison-operator gt
sleep 5
echo "Test: delete an alarm"
aodh alarm delete ${ALARM_UUID}
exit 0
================================================
FILE: aodh/templates/bin/_bootstrap.sh.tpl
================================================
#!/bin/bash
{{/*
Copyright 2019 Wind River Systems, Inc.
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 -ex
{{ .Values.bootstrap.script | default "echo 'Not Enabled'" }}
================================================
FILE: aodh/templates/bin/_db-sync.sh.tpl
================================================
#!/bin/bash
{{/*
Copyright 2019 Wind River Systems, Inc.
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 -ex
exec aodh-dbsync
================================================
FILE: aodh/templates/configmap-bin.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.configmap_bin }}
{{- $envAll := . }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: aodh-bin
data:
{{- if .Values.images.local_registry.active }}
image-repo-sync.sh: |
{{- include "helm-toolkit.scripts.image_repo_sync" . | indent 4 }}
{{- end }}
{{- if .Values.bootstrap.enabled }}
bootstrap.sh: |
{{ tuple "bin/_bootstrap.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
{{- end }}
aodh-test.sh: |
{{ tuple "bin/_aodh-test.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
db-init.py: |
{{- include "helm-toolkit.scripts.db_init" . | indent 4 }}
db-sync.sh: |
{{ tuple "bin/_db-sync.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
db-drop.py: |
{{- include "helm-toolkit.scripts.db_drop" . | indent 4 }}
aodh-api.sh: |
{{ tuple "bin/_aodh-api.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
aodh-evaluator.sh: |
{{ tuple "bin/_aodh-evaluator.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
aodh-listener.sh: |
{{ tuple "bin/_aodh-listener.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
aodh-notifier.sh: |
{{ tuple "bin/_aodh-notifier.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
aodh-alarms-cleaner.sh: |
{{ tuple "bin/_aodh-alarms-cleaner.sh.tpl" . | include "helm-toolkit.utils.template" | 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 }}
rabbit-init.sh: |
{{- include "helm-toolkit.scripts.rabbit_init" . | indent 4 }}
{{- end }}
================================================
FILE: aodh/templates/configmap-etc.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.configmap_etc }}
{{- $envAll := . }}
{{- if empty .Values.conf.aodh.keystone_authtoken.auth_uri -}}
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup" | set .Values.conf.aodh.keystone_authtoken "auth_uri" -}}
{{- end -}}
{{- if empty .Values.conf.aodh.keystone_authtoken.auth_url -}}
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup" | set .Values.conf.aodh.keystone_authtoken "auth_url" -}}
{{- end -}}
{{- if empty .Values.conf.aodh.keystone_authtoken.region_name -}}
{{- $_ := set .Values.conf.aodh.keystone_authtoken "region_name" .Values.endpoints.identity.auth.aodh.region_name -}}
{{- end -}}
{{- if empty .Values.conf.aodh.keystone_authtoken.project_name -}}
{{- $_ := set .Values.conf.aodh.keystone_authtoken "project_name" .Values.endpoints.identity.auth.aodh.project_name -}}
{{- end -}}
{{- if empty .Values.conf.aodh.keystone_authtoken.project_domain_name -}}
{{- $_ := set .Values.conf.aodh.keystone_authtoken "project_domain_name" .Values.endpoints.identity.auth.aodh.project_domain_name -}}
{{- end -}}
{{- if empty .Values.conf.aodh.keystone_authtoken.user_domain_name -}}
{{- $_ := set .Values.conf.aodh.keystone_authtoken "user_domain_name" .Values.endpoints.identity.auth.aodh.user_domain_name -}}
{{- end -}}
{{- if empty .Values.conf.aodh.keystone_authtoken.username -}}
{{- $_ := set .Values.conf.aodh.keystone_authtoken "username" .Values.endpoints.identity.auth.aodh.username -}}
{{- end -}}
{{- if empty .Values.conf.aodh.keystone_authtoken.password -}}
{{- $_ := set .Values.conf.aodh.keystone_authtoken "password" .Values.endpoints.identity.auth.aodh.password -}}
{{- end -}}
{{- if empty .Values.conf.aodh.keystone_authtoken.memcached_servers -}}
{{- $_ := tuple "oslo_cache" "internal" "memcache" . | include "helm-toolkit.endpoints.host_and_port_endpoint_uri_lookup" | set .Values.conf.aodh.keystone_authtoken "memcached_servers" -}}
{{- end -}}
{{- if empty .Values.conf.aodh.keystone_authtoken.memcache_secret_key -}}
{{- $_ := set .Values.conf.aodh.keystone_authtoken "memcache_secret_key" ( default ( randAlphaNum 64 ) .Values.endpoints.oslo_cache.auth.memcache_secret_key ) -}}
{{- end -}}
{{- if and (not (kindIs "invalid" .Values.conf.aodh.database.connection)) (empty .Values.conf.aodh.database.connection) -}}
{{- $_ := tuple "oslo_db" "internal" "aodh" "mysql" . | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | set .Values.conf.aodh.database "connection" -}}
{{- end -}}
{{- if empty .Values.conf.aodh.DEFAULT.transport_url -}}
{{- $_ := tuple "oslo_messaging" "internal" "aodh" "amqp" . | include "helm-toolkit.endpoints.authenticated_transport_endpoint_uri_lookup" | set .Values.conf.aodh.DEFAULT "transport_url" -}}
{{- end -}}
{{- if empty .Values.conf.aodh.service_credentials.auth_url -}}
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set .Values.conf.aodh.service_credentials "auth_url" -}}
{{- end -}}
{{- if empty .Values.conf.aodh.service_credentials.region_name -}}
{{- $_ := set .Values.conf.aodh.service_credentials "region_name" .Values.endpoints.identity.auth.aodh.region_name -}}
{{- end -}}
{{- if empty .Values.conf.aodh.service_credentials.project_name -}}
{{- $_ := set .Values.conf.aodh.service_credentials "project_name" .Values.endpoints.identity.auth.aodh.project_name -}}
{{- end -}}
{{- if empty .Values.conf.aodh.service_credentials.project_domain_name -}}
{{- $_ := set .Values.conf.aodh.service_credentials "project_domain_name" .Values.endpoints.identity.auth.aodh.project_domain_name -}}
{{- end -}}
{{- if empty .Values.conf.aodh.service_credentials.user_domain_name -}}
{{- $_ := set .Values.conf.aodh.service_credentials "user_domain_name" .Values.endpoints.identity.auth.aodh.user_domain_name -}}
{{- end -}}
{{- if empty .Values.conf.aodh.service_credentials.username -}}
{{- $_ := set .Values.conf.aodh.service_credentials "username" .Values.endpoints.identity.auth.aodh.username -}}
{{- end -}}
{{- if empty .Values.conf.aodh.service_credentials.password -}}
{{- $_ := set .Values.conf.aodh.service_credentials "password" .Values.endpoints.identity.auth.aodh.password -}}
{{- end -}}
{{- if and (empty .Values.conf.logging.handler_fluent) (has "fluent" .Values.conf.logging.handlers.keys) -}}
{{- $fluentd_host := tuple "fluentd" "internal" $envAll | include "helm-toolkit.endpoints.hostname_namespaced_endpoint_lookup" }}
{{- $fluentd_port := tuple "fluentd" "internal" "service" $envAll | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
{{- $fluent_args := printf "('%s.%s', '%s', %s)" .Release.Namespace .Release.Name $fluentd_host $fluentd_port }}
{{- $handler_fluent := dict "class" "fluent.handler.FluentHandler" "formatter" "fluent" "args" $fluent_args -}}
{{- $_ := set .Values.conf.logging "handler_fluent" $handler_fluent -}}
{{- end -}}
{{- if and (empty .Values.conf.logging.formatter_fluent) (has "fluent" .Values.conf.logging.formatters.keys) -}}
{{- $formatter_fluent := dict "class" "oslo_log.formatters.FluentFormatter" -}}
{{- $_ := set .Values.conf.logging "formatter_fluent" $formatter_fluent -}}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: aodh-etc
type: Opaque
data:
aodh.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.aodh | b64enc }}
logging.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.logging | b64enc }}
api-paste.ini: {{ include "helm-toolkit.utils.to_ini" .Values.conf.paste | b64enc }}
policy.yaml: {{ toYaml .Values.conf.policy | b64enc }}
{{ include "helm-toolkit.snippets.values_template_renderer" (dict "envAll" $envAll "template" .Values.conf.wsgi_aodh "key" "wsgi-aodh.conf" "format" "Secret" ) | indent 2 }}
{{- end }}
================================================
FILE: aodh/templates/cron-job-alarms-cleaner.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.cron_job_alarms_cleaner }}
{{- $envAll := . }}
{{- $mounts_aodh_alarms_cleaner := .Values.pod.mounts.aodh_alarms_cleaner.aodh_alarms_cleaner }}
{{- $mounts_aodh_alarms_cleaner_init := .Values.pod.mounts.aodh_alarms_cleaner.init_container }}
{{- $serviceAccountName := "aodh-alarms-cleaner" }}
{{ tuple $envAll "alarms_cleaner" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
{{- $etcSources := .Values.pod.etcSources.aodh_alarms_cleaner }}
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: aodh-alarms-cleaner
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
spec:
schedule: {{ .Values.jobs.alarms_cleaner.cron | quote }}
successfulJobsHistoryLimit: {{ .Values.jobs.alarms_cleaner.history.success }}
failedJobsHistoryLimit: {{ .Values.jobs.alarms_cleaner.history.failed }}
concurrencyPolicy: Forbid
jobTemplate:
metadata:
labels:
{{ tuple $envAll "aodh" "alarms-cleaner" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
spec:
template:
metadata:
labels:
{{ tuple $envAll "aodh" "alarms-cleaner" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 12 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
restartPolicy: OnFailure
nodeSelector:
{{ .Values.labels.job.node_selector_key }}: {{ .Values.labels.job.node_selector_value }}
{{ if $envAll.Values.pod.tolerations.aodh.enabled }}
{{ tuple $envAll "aodh" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 10 }}
{{ end }}
initContainers:
{{ tuple $envAll "alarms_cleaner" $mounts_aodh_alarms_cleaner_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 12 }}
containers:
- name: aodh-alarms-cleaner
{{ tuple $envAll "aodh_alarms_cleaner" | include "helm-toolkit.snippets.image" | indent 14 }}
{{ tuple $envAll $envAll.Values.pod.resources.jobs.alarms_cleaner | include "helm-toolkit.snippets.kubernetes_resources" | indent 14 }}
command:
- /tmp/aodh-alarms-cleaner.sh
volumeMounts:
- name: pod-tmp
mountPath: /tmp
- name: aodh-bin
mountPath: /tmp/aodh-alarms-cleaner.sh
subPath: aodh-alarms-cleaner.sh
readOnly: true
- name: pod-etc-aodh
mountPath: /etc/aodh
- name: aodh-etc
mountPath: /etc/aodh/aodh.conf
subPath: aodh.conf
readOnly: true
- name: aodh-etc-snippets
mountPath: /etc/aodh/aodh.conf.d/
readOnly: true
{{- if .Values.conf.aodh.DEFAULT.log_config_append }}
- name: aodh-etc
mountPath: {{ .Values.conf.aodh.DEFAULT.log_config_append }}
subPath: {{ base .Values.conf.aodh.DEFAULT.log_config_append }}
readOnly: true
{{- end }}
{{ if $mounts_aodh_alarms_cleaner.volumeMounts }}{{ toYaml $mounts_aodh_alarms_cleaner.volumeMounts | indent 16 }}{{ end }}
volumes:
- name: pod-tmp
emptyDir: {}
- name: pod-etc-aodh
emptyDir: {}
- name: aodh-etc
secret:
secretName: aodh-etc
defaultMode: 0444
- name: aodh-et-etc-snippets
{{- if $etcSources }}
projected:
sources:
{{ toYaml $etcSources | indent 18 }}
{{- else }}
emptyDir: {}
{{ end }}
- name: aodh-bin
configMap:
name: aodh-bin
defaultMode: 0555
{{ if $mounts_aodh_alarms_cleaner.volumes }}{{ toYaml $mounts_aodh_alarms_cleaner.volumes | indent 12 }}{{ end }}
{{- end }}
================================================
FILE: aodh/templates/deployment-api.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.deployment_api }}
{{- $envAll := . }}
{{- $mounts_aodh_api := .Values.pod.mounts.aodh_api.aodh_api }}
{{- $mounts_aodh_api_init := .Values.pod.mounts.aodh_api.init_container }}
{{- $serviceAccountName := "aodh-api" }}
{{ tuple $envAll "api" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
{{- $etcSources := .Values.pod.etcSources.aodh_api }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: aodh-api
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
labels:
{{ tuple $envAll "aodh" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
spec:
replicas: {{ .Values.pod.replicas.api }}
selector:
matchLabels:
{{ tuple $envAll "aodh" "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 "aodh" "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" }}
{{ tuple "aodh_api" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
{{ dict "envAll" $envAll "application" "aodh" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
affinity:
{{ tuple $envAll "aodh" "api" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
nodeSelector:
{{ .Values.labels.api.node_selector_key }}: {{ .Values.labels.api.node_selector_value }}
{{ if $envAll.Values.pod.tolerations.aodh.enabled }}
{{ tuple $envAll "aodh" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
{{ end }}
terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.api.timeout | default "30" }}
initContainers:
{{ tuple $envAll "api" $mounts_aodh_api_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
containers:
- name: aodh-api
{{ tuple $envAll "aodh_api" | include "helm-toolkit.snippets.image" | indent 10 }}
{{ tuple $envAll $envAll.Values.pod.resources.api | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
{{ dict "envAll" $envAll "application" "aodh" "container" "aodh_api" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
command:
- /tmp/aodh-api.sh
- start
lifecycle:
preStop:
exec:
command:
- /tmp/aodh-api.sh
- stop
ports:
- name: a-api
containerPort: {{ tuple "alarming" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
readinessProbe:
tcpSocket:
port: {{ tuple "alarming" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
volumeMounts:
- name: pod-tmp
mountPath: /tmp
- name: oslo-lock-path
mountPath: {{ .Values.conf.aodh.oslo_concurrency.lock_path }}
- name: wsgi-aodh
mountPath: /var/www/cgi-bin/aodh
- name: pod-etc-aodh
mountPath: /etc/aodh
- name: aodh-etc
mountPath: /etc/aodh/aodh.conf
subPath: aodh.conf
readOnly: true
- name: aodh-etc-snippets
mountPath: /etc/aodh/aodh.conf.d/
readOnly: true
{{- if .Values.conf.aodh.DEFAULT.log_config_append }}
- name: aodh-etc
mountPath: {{ .Values.conf.aodh.DEFAULT.log_config_append }}
subPath: {{ base .Values.conf.aodh.DEFAULT.log_config_append }}
readOnly: true
{{- end }}
- name: aodh-etc
mountPath: /etc/aodh/api_paste.ini
subPath: api-paste.ini
readOnly: true
- name: aodh-etc
mountPath: /etc/aodh/policy.yaml
subPath: policy.yaml
readOnly: true
- name: aodh-etc
mountPath: /etc/apache2/conf-enabled/wsgi-aodh.conf
subPath: wsgi-aodh.conf
readOnly: true
- name: aodh-bin
mountPath: /tmp/aodh-api.sh
subPath: aodh-api.sh
readOnly: true
{{ if $mounts_aodh_api.volumeMounts }}{{ toYaml $mounts_aodh_api.volumeMounts | indent 12 }}{{ end }}
volumes:
- name: pod-tmp
emptyDir: {}
- name: oslo-lock-path
emptyDir: {}
- name: wsgi-aodh
emptyDir: {}
- name: pod-etc-aodh
emptyDir: {}
- name: aodh-etc
secret:
secretName: aodh-etc
defaultMode: 0444
- name: aodh-etc-snippets
{{- if $etcSources }}
projected:
sources:
{{ toYaml $etcSources | indent 14 }}
{{- else }}
emptyDir: {}
{{ end }}
- name: aodh-bin
configMap:
name: aodh-bin
defaultMode: 0555
{{ if $mounts_aodh_api.volumes }}{{ toYaml $mounts_aodh_api.volumes | indent 8 }}{{ end }}
{{- end }}
================================================
FILE: aodh/templates/deployment-evaluator.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.deployment_evaluator }}
{{- $envAll := . }}
{{- $mounts_aodh_evaluator := .Values.pod.mounts.aodh_evaluator.aodh_evaluator }}
{{- $mounts_aodh_evaluator_init := .Values.pod.mounts.aodh_evaluator.init_container }}
{{- $serviceAccountName := "aodh-evaluator" }}
{{ tuple $envAll "evaluator" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
{{- $etcSources := .Values.pod.etcSources.aodh_evaluator }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: aodh-evaluator
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
labels:
{{ tuple $envAll "aodh" "evaluator" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
spec:
replicas: {{ .Values.pod.replicas.evaluator }}
selector:
matchLabels:
{{ tuple $envAll "aodh" "evaluator" | 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 "aodh" "evaluator" | 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" }}
{{ tuple "aodh_evaluator" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
{{ dict "envAll" $envAll "application" "aodh" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
affinity:
{{ tuple $envAll "aodh" "evaluator" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
nodeSelector:
{{ .Values.labels.evaluator.node_selector_key }}: {{ .Values.labels.evaluator.node_selector_value }}
{{ if $envAll.Values.pod.tolerations.aodh.enabled }}
{{ tuple $envAll "aodh" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
{{ end }}
initContainers:
{{ tuple $envAll "evaluator" $mounts_aodh_evaluator_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
containers:
- name: aodh-evaluator
{{ tuple $envAll "aodh_evaluator" | include "helm-toolkit.snippets.image" | indent 10 }}
{{ tuple $envAll $envAll.Values.pod.resources.evaluator | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
{{ dict "envAll" $envAll "application" "aodh" "container" "aodh_evaluator" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
command:
- /tmp/aodh-evaluator.sh
- start
lifecycle:
preStop:
exec:
command:
- /tmp/aodh-evaluator.sh
- stop
volumeMounts:
- name: pod-tmp
mountPath: /tmp
- name: oslo-lock-path
mountPath: {{ .Values.conf.aodh.oslo_concurrency.lock_path }}
- name: pod-etc-aodh
mountPath: /etc/aodh
- name: aodh-etc
mountPath: /etc/aodh/aodh.conf
subPath: aodh.conf
readOnly: true
- name: aodh-etc-snippets
mountPath: /etc/aodh/aodh.conf.d/
readOnly: true
{{- if .Values.conf.aodh.DEFAULT.log_config_append }}
- name: aodh-etc
mountPath: {{ .Values.conf.aodh.DEFAULT.log_config_append }}
subPath: {{ base .Values.conf.aodh.DEFAULT.log_config_append }}
readOnly: true
{{- end }}
- name: aodh-etc
mountPath: /etc/aodh/policy.yaml
subPath: policy.yaml
readOnly: true
- name: aodh-bin
mountPath: /tmp/aodh-evaluator.sh
subPath: aodh-evaluator.sh
readOnly: true
{{ if $mounts_aodh_evaluator.volumeMounts }}{{ toYaml $mounts_aodh_evaluator.volumeMounts | indent 12 }}{{ end }}
volumes:
- name: pod-tmp
emptyDir: {}
- name: oslo-lock-path
emptyDir: {}
- name: pod-etc-aodh
emptyDir: {}
- name: aodh-etc
secret:
secretName: aodh-etc
defaultMode: 0444
- name: aodh-etc-snippets
{{- if $etcSources }}
projected:
sources:
{{ toYaml $etcSources | indent 14 }}
{{- else }}
emptyDir: {}
{{ end }}
- name: aodh-bin
configMap:
name: aodh-bin
defaultMode: 0555
{{ if $mounts_aodh_evaluator.volumes }}{{ toYaml $mounts_aodh_evaluator.volumes | indent 8 }}{{ end }}
{{- end }}
================================================
FILE: aodh/templates/deployment-listener.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.deployment_listener }}
{{- $envAll := . }}
{{- $mounts_aodh_listener := .Values.pod.mounts.aodh_listener.aodh_listener }}
{{- $mounts_aodh_listener_init := .Values.pod.mounts.aodh_listener.init_container }}
{{- $serviceAccountName := "aodh-listener" }}
{{ tuple $envAll "listener" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
{{- $etcSources := .Values.pod.etcSources.aodh_listener }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: aodh-listener
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
labels:
{{ tuple $envAll "aodh" "listener" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
spec:
replicas: {{ .Values.pod.replicas.listener }}
selector:
matchLabels:
{{ tuple $envAll "aodh" "listener" | 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 "aodh" "listener" | 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" }}
{{ tuple "aodh_listener" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
{{ dict "envAll" $envAll "application" "aodh" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
affinity:
{{ tuple $envAll "aodh" "listener" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
nodeSelector:
{{ .Values.labels.listener.node_selector_key }}: {{ .Values.labels.listener.node_selector_value }}
{{ if $envAll.Values.pod.tolerations.aodh.enabled }}
{{ tuple $envAll "aodh" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
{{ end }}
initContainers:
{{ tuple $envAll "listener" $mounts_aodh_listener_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
containers:
- name: aodh-listener
{{ tuple $envAll "aodh_listener" | include "helm-toolkit.snippets.image" | indent 10 }}
{{ tuple $envAll $envAll.Values.pod.resources.listener | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
{{ dict "envAll" $envAll "application" "aodh" "container" "aodh_listener" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
command:
- /tmp/aodh-listener.sh
- start
lifecycle:
preStop:
exec:
command:
- /tmp/aodh-listener.sh
- stop
volumeMounts:
- name: pod-tmp
mountPath: /tmp
- name: oslo-lock-path
mountPath: {{ .Values.conf.aodh.oslo_concurrency.lock_path }}
- name: pod-etc-aodh
mountPath: /etc/aodh
- name: aodh-etc
mountPath: /etc/aodh/aodh.conf
subPath: aodh.conf
readOnly: true
- name: aodh-etc-snippets
mountPath: /etc/aodh/aodh.conf.d/
readOnly: true
{{- if .Values.conf.aodh.DEFAULT.log_config_append }}
- name: aodh-etc
mountPath: {{ .Values.conf.aodh.DEFAULT.log_config_append }}
subPath: {{ base .Values.conf.aodh.DEFAULT.log_config_append }}
readOnly: true
{{- end }}
- name: aodh-etc
mountPath: /etc/aodh/policy.yaml
subPath: policy.yaml
readOnly: true
- name: aodh-bin
mountPath: /tmp/aodh-listener.sh
subPath: aodh-listener.sh
readOnly: true
{{ if $mounts_aodh_listener.volumeMounts }}{{ toYaml $mounts_aodh_listener.volumeMounts | indent 12 }}{{ end }}
volumes:
- name: pod-tmp
emptyDir: {}
- name: oslo-lock-path
emptyDir: {}
- name: pod-etc-aodh
emptyDir: {}
- name: aodh-etc
secret:
secretName: aodh-etc
defaultMode: 0444
- name: aodh-etc-snippets
{{- if $etcSources }}
projected:
sources:
{{ toYaml $etcSources | indent 14 }}
{{- else }}
emptyDir: {}
{{ end }}
- name: aodh-bin
configMap:
name: aodh-bin
defaultMode: 0555
{{ if $mounts_aodh_listener.volumes }}{{ toYaml $mounts_aodh_listener.volumes | indent 8 }}{{ end }}
{{- end }}
================================================
FILE: aodh/templates/deployment-notifier.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.deployment_notifier }}
{{- $envAll := . }}
{{- $mounts_aodh_notifier := .Values.pod.mounts.aodh_notifier.aodh_notifier }}
{{- $mounts_aodh_notifier_init := .Values.pod.mounts.aodh_notifier.init_container }}
{{- $serviceAccountName := "aodh-notifier" }}
{{ tuple $envAll "notifier" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
{{- $etcSources := .Values.pod.etcSources.aodh_notifier }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: aodh-notifier
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
labels:
{{ tuple $envAll "aodh" "notifier" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
spec:
replicas: {{ .Values.pod.replicas.notifier }}
selector:
matchLabels:
{{ tuple $envAll "aodh" "notifier" | 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 "aodh" "notifier" | 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" }}
{{ tuple "aodh_notifier" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
spec:
serviceAccountName: {{ $serviceAccountName }}
{{ dict "envAll" $envAll "application" "aodh" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
affinity:
{{ tuple $envAll "aodh" "notifier" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
nodeSelector:
{{ .Values.labels.notifier.node_selector_key }}: {{ .Values.labels.notifier.node_selector_value }}
{{ if $envAll.Values.pod.tolerations.aodh.enabled }}
{{ tuple $envAll "aodh" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
{{ end }}
initContainers:
{{ tuple $envAll "notifier" $mounts_aodh_notifier_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
containers:
- name: aodh-notifier
{{ tuple $envAll "aodh_notifier" | include "helm-toolkit.snippets.image" | indent 10 }}
{{ tuple $envAll $envAll.Values.pod.resources.notifier | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
{{ dict "envAll" $envAll "application" "aodh" "container" "aodh_notifier" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
command:
- /tmp/aodh-notifier.sh
- start
lifecycle:
preStop:
exec:
command:
- /tmp/aodh-notifier.sh
- stop
volumeMounts:
- name: pod-tmp
mountPath: /tmp
- name: oslo-lock-path
mountPath: {{ .Values.conf.aodh.oslo_concurrency.lock_path }}
- name: pod-etc-aodh
mountPath: /etc/aodh
- name: aodh-etc
mountPath: /etc/aodh/aodh.conf
subPath: aodh.conf
readOnly: true
- name: aodh-etc-snippets
mountPath: /etc/aodh/aodh.conf.d/
readOnly: true
{{- if .Values.conf.aodh.DEFAULT.log_config_append }}
- name: aodh-etc
mountPath: {{ .Values.conf.aodh.DEFAULT.log_config_append }}
subPath: {{ base .Values.conf.aodh.DEFAULT.log_config_append }}
readOnly: true
{{- end }}
- name: aodh-etc
mountPath: /etc/aodh/policy.yaml
subPath: policy.yaml
readOnly: true
- name: aodh-bin
mountPath: /tmp/aodh-notifier.sh
subPath: aodh-notifier.sh
readOnly: true
{{ if $mounts_aodh_notifier.volumeMounts }}{{ toYaml $mounts_aodh_notifier.volumeMounts | indent 12 }}{{ end }}
volumes:
- name: pod-tmp
emptyDir: {}
- name: oslo-lock-path
emptyDir: {}
- name: pod-etc-aodh
emptyDir: {}
- name: aodh-etc
secret:
secretName: aodh-etc
defaultMode: 0444
- name: aodh-etc-snippets
{{- if $etcSources }}
projected:
sources:
{{ toYaml $etcSources | indent 14 }}
{{- else }}
emptyDir: {}
{{ end }}
- name: aodh-bin
configMap:
name: aodh-bin
defaultMode: 0555
{{ if $mounts_aodh_notifier.volumes }}{{ toYaml $mounts_aodh_notifier.volumes | indent 8 }}{{ end }}
{{- end }}
================================================
FILE: aodh/templates/extra-manifests.yaml
================================================
{{ range .Values.extraObjects }}
---
{{ if typeIs "string" . }}
{{- tpl . $ }}
{{- else }}
{{- tpl (toYaml .) $ }}
{{- end }}
{{ end }}
================================================
FILE: aodh/templates/ingress-api.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if and .Values.manifests.ingress_api .Values.network.api.ingress.public }}
{{- $ingressOpts := dict "envAll" . "backendServiceType" "alarming" "backendPort" "a-api" -}}
{{ $ingressOpts | include "helm-toolkit.manifests.ingress" }}
{{- end }}
================================================
FILE: aodh/templates/job-bootstrap.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if and .Values.manifests.job_bootstrap .Values.bootstrap.enabled }}
{{- $bootstrapJob := dict "envAll" . "serviceName" "aodh" "keystoneUser" .Values.bootstrap.ks_user -}}
{{- if .Values.pod.tolerations.aodh.enabled -}}
{{- $_ := set $bootstrapJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $bootstrapJob | include "helm-toolkit.manifests.job_bootstrap" }}
{{- end }}
================================================
FILE: aodh/templates/job-db-drop.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.job_db_drop }}
{{- $dbDropJob := dict "envAll" . "serviceName" "aodh" -}}
{{- if .Values.pod.tolerations.aodh.enabled -}}
{{- $_ := set $dbDropJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $dbDropJob | include "helm-toolkit.manifests.job_db_drop_mysql" }}
{{- end }}
================================================
FILE: aodh/templates/job-db-init.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.job_db_init }}
{{- $dbInitJob := dict "envAll" . "serviceName" "aodh" -}}
{{- if .Values.pod.tolerations.aodh.enabled -}}
{{- $_ := set $dbInitJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $dbInitJob | include "helm-toolkit.manifests.job_db_init_mysql" }}
{{- end }}
================================================
FILE: aodh/templates/job-db-sync.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.job_db_sync }}
{{- $dbSyncJob := dict "envAll" . "serviceName" "aodh" -}}
{{- $dbSyncJob := dict "envAll" . "serviceName" "aodh" "podVolMounts" .Values.pod.mounts.aodh_db_sync.aodh_db_sync.volumeMounts "podVols" .Values.pod.mounts.aodh_db_sync.aodh_db_sync.volumes -}}
{{- if .Values.pod.tolerations.aodh.enabled -}}
{{- $_ := set $dbSyncJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $dbSyncJob | include "helm-toolkit.manifests.job_db_sync" }}
{{- end }}
================================================
FILE: aodh/templates/job-image-repo-sync.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if and .Values.manifests.job_image_repo_sync .Values.images.local_registry.active }}
{{- $imageRepoSyncJob := dict "envAll" . "serviceName" "aodh" -}}
{{- if .Values.pod.tolerations.aodh.enabled -}}
{{- $_ := set $imageRepoSyncJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $imageRepoSyncJob | include "helm-toolkit.manifests.job_image_repo_sync" }}
{{- end }}
================================================
FILE: aodh/templates/job-ks-endpoints.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.job_ks_endpoints }}
{{- $ksServiceJob := dict "envAll" . "serviceName" "aodh" "serviceTypes" ( tuple "alarming" ) -}}
{{- if .Values.pod.tolerations.aodh.enabled -}}
{{- $_ := set $ksServiceJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $ksServiceJob | include "helm-toolkit.manifests.job_ks_endpoints" }}
{{- end }}
================================================
FILE: aodh/templates/job-ks-service.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.job_ks_service }}
{{- $ksServiceJob := dict "envAll" . "serviceName" "aodh" "serviceTypes" ( tuple "alarming" ) -}}
{{- if .Values.pod.tolerations.aodh.enabled -}}
{{- $_ := set $ksServiceJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $ksServiceJob | include "helm-toolkit.manifests.job_ks_service" }}
{{- end }}
================================================
FILE: aodh/templates/job-ks-user.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.job_ks_user }}
{{- $ksUserJob := dict "envAll" . "serviceName" "aodh" -}}
{{- if .Values.pod.tolerations.aodh.enabled -}}
{{- $_ := set $ksUserJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $ksUserJob | include "helm-toolkit.manifests.job_ks_user" }}
{{- end }}
================================================
FILE: aodh/templates/job-rabbit-init.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.job_rabbit_init }}
{{- $rmqUserJob := dict "envAll" . "serviceName" "aodh" -}}
{{- if .Values.pod.tolerations.aodh.enabled -}}
{{- $_ := set $rmqUserJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $rmqUserJob | include "helm-toolkit.manifests.job_rabbit_init" }}
{{- end }}
================================================
FILE: aodh/templates/network_policy.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.network_policy -}}
{{- $opts := dict "envAll" . "name" "application" "label" "aodh" -}}
{{ $opts | include "helm-toolkit.manifests.kubernetes_network_policy" }}
{{- end -}}
================================================
FILE: aodh/templates/pdb-api.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.pdb_api }}
{{- $envAll := . }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: aodh-api
spec:
minAvailable: {{ .Values.pod.lifecycle.disruption_budget.api.min_available }}
selector:
matchLabels:
{{ tuple $envAll "aodh" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
{{- end }}
================================================
FILE: aodh/templates/pod-aodh-test.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.pod_aodh_test }}
{{- $envAll := . }}
{{- $mounts_tests := .Values.pod.mounts.aodh_tests.aodh_tests }}
{{- $mounts_tests_init := .Values.pod.mounts.aodh_tests.init_container }}
{{- $serviceAccountName := print $envAll.Release.Name "-test" }}
{{ tuple $envAll "tests" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
---
apiVersion: v1
kind: Pod
metadata:
name: {{ print $envAll.Release.Name "-test" }}
labels:
{{ tuple $envAll "aodh" "test" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
annotations:
"helm.sh/hook": test-success
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
spec:
restartPolicy: Never
nodeSelector:
{{ .Values.labels.test.node_selector_key }}: {{ .Values.labels.test.node_selector_value }}
{{ if $envAll.Values.pod.tolerations.aodh.enabled }}
{{ tuple $envAll "aodh" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 2 }}
{{ end }}
serviceAccountName: {{ $serviceAccountName }}
initContainers:
{{ tuple $envAll "tests" $mounts_tests_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 4 }}
containers:
- name: {{ .Release.Name }}-test
{{ tuple $envAll "aodh_api" | include "helm-toolkit.snippets.image" | indent 6 }}
{{ tuple $envAll $envAll.Values.pod.resources.jobs.tests | include "helm-toolkit.snippets.kubernetes_resources" | indent 6 }}
env:
{{- with $env := dict "ksUserSecret" .Values.secrets.identity.admin }}
{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 8 }}
{{- end }}
command:
- /tmp/aodh-test.sh
volumeMounts:
- name: pod-tmp
mountPath: /tmp
- name: aodh-etc
mountPath: /etc/aodh/aodh.conf
subPath: aodh.conf
readOnly: true
- name: aodh-bin
mountPath: /tmp/aodh-test.sh
subPath: aodh-test.sh
readOnly: true
{{ if $mounts_tests.volumeMounts }}{{ toYaml $mounts_tests.volumeMounts | indent 8 }}{{ end }}
volumes:
- name: pod-tmp
emptyDir: {}
- name: aodh-etc
secret:
secretName: aodh-etc
defaultMode: 0444
- name: aodh-bin
configMap:
name: aodh-bin
defaultMode: 0555
{{ if $mounts_tests.volumes }}{{ toYaml $mounts_tests.volumes | indent 4 }}{{ end }}
{{- end }}
================================================
FILE: aodh/templates/secret-db.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.secret_db }}
{{- $envAll := . }}
{{- range $key1, $userClass := tuple "admin" "aodh" }}
{{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ $secretName }}
annotations:
{{ tuple "oslo_db" $userClass $envAll | include "helm-toolkit.snippets.custom_secret_annotations" | indent 4 }}
type: Opaque
data:
DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
{{- end }}
{{- end }}
================================================
FILE: aodh/templates/secret-ingress-tls.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.secret_ingress_tls }}
{{- include "helm-toolkit.manifests.secret_ingress_tls" ( dict "envAll" . "backendServiceType" "alarming" ) }}
{{- end }}
================================================
FILE: aodh/templates/secret-keystone.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.secret_keystone }}
{{- $envAll := . }}
{{- range $key1, $userClass := tuple "admin" "aodh" }}
{{- $secretName := index $envAll.Values.secrets.identity $userClass }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ $secretName }}
annotations:
{{ tuple "identity" $userClass $envAll | include "helm-toolkit.snippets.custom_secret_annotations" | indent 4 }}
type: Opaque
data:
{{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
{{- end }}
{{- end }}
================================================
FILE: aodh/templates/secret-rabbitmq.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.secret_rabbitmq }}
{{- $envAll := . }}
{{- range $key1, $userClass := tuple "admin" "aodh" }}
{{- $secretName := index $envAll.Values.secrets.oslo_messaging $userClass }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ $secretName }}
annotations:
{{ tuple "oslo_messaging" $userClass $envAll | include "helm-toolkit.snippets.custom_secret_annotations" | indent 4 }}
type: Opaque
data:
RABBITMQ_CONNECTION: {{ tuple "oslo_messaging" "internal" $userClass "http" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc }}
{{- end }}
{{- end }}
================================================
FILE: aodh/templates/secret-registry.yaml
================================================
{{/*
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.
*/}}
{{- if and .Values.manifests.secret_registry .Values.endpoints.oci_image_registry.auth.enabled }}
{{ include "helm-toolkit.manifests.secret_registry" ( dict "envAll" . "registryUser" .Chart.Name ) }}
{{- end }}
================================================
FILE: aodh/templates/service-api.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if .Values.manifests.service_api }}
{{- $envAll := . }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ tuple "alarming" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
spec:
ports:
- name: a-api
port: {{ tuple "alarming" "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 "aodh" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
{{ if .Values.network.api.node_port.enabled }}
type: NodePort
{{ if .Values.network.api.external_policy_local }}
externalTrafficPolicy: Local
{{ end }}
{{ end }}
{{- end }}
================================================
FILE: aodh/templates/service-ingress-api.yaml
================================================
{{/*
Copyright 2019 Wind River Systems, Inc.
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.
*/}}
{{- if and .Values.manifests.service_ingress_api .Values.network.api.ingress.public }}
{{- $serviceIngressOpts := dict "envAll" . "backendServiceType" "alarming" -}}
{{ $serviceIngressOpts | include "helm-toolkit.manifests.service_ingress" }}
{{- end }}
================================================
FILE: aodh/values.yaml
================================================
# Copyright 2019 Wind River Systems, Inc.
#
# 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.
# Default values for aodh.
# This is a YAML-formatted file.
# Declare name/value pairs to be passed into your templates.
# name: value
---
release_group: null
labels:
api:
node_selector_key: openstack-control-plane
node_selector_value: enabled
evaluator:
node_selector_key: openstack-control-plane
node_selector_value: enabled
listener:
node_selector_key: openstack-control-plane
node_selector_value: enabled
notifier:
node_selector_key: openstack-control-plane
node_selector_value: enabled
job:
node_selector_key: openstack-control-plane
node_selector_value: enabled
test:
node_selector_key: openstack-control-plane
node_selector_value: enabled
images:
tags:
bootstrap: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
db_init: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
db_drop: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
rabbit_init: docker.io/rabbitmq:3.13-management
aodh_db_sync: quay.io/airshipit/aodh:2025.1-ubuntu_noble
ks_user: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
ks_service: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
ks_endpoints: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
aodh_api: quay.io/airshipit/aodh:2025.1-ubuntu_noble
aodh_evaluator: quay.io/airshipit/aodh:2025.1-ubuntu_noble
aodh_listener: quay.io/airshipit/aodh:2025.1-ubuntu_noble
aodh_notifier: quay.io/airshipit/aodh:2025.1-ubuntu_noble
aodh_alarms_cleaner: quay.io/airshipit/aodh:2025.1-ubuntu_noble
dep_check: quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_noble
image_repo_sync: docker.io/docker:17.07.0
pull_policy: "IfNotPresent"
local_registry:
active: false
exclude:
- dep_check
- image_repo_sync
jobs:
alarms_cleaner:
# daily
cron: "0 */24 * * *"
history:
success: 3
failed: 1
pod:
security_context:
aodh:
pod:
runAsUser: 42402
container:
aodh_api:
runAsUser: 0
aodh_evaluator:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
aodh_notifier:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
aodh_listener:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
affinity:
anti:
type:
default: preferredDuringSchedulingIgnoredDuringExecution
topologyKey:
default: kubernetes.io/hostname
weight:
default: 10
tolerations:
aodh:
enabled: false
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
mounts:
aodh_api:
init_container: null
aodh_api:
volumeMounts:
volumes:
aodh_evaluator:
init_container: null
aodh_evaluator:
volumeMounts:
volumes:
aodh_listener:
init_container: null
aodh_listener:
volumeMounts:
volumes:
aodh_notifier:
init_container: null
aodh_notifier:
volumeMounts:
volumes:
aodh_alarms_cleaner:
init_container: null
aodh_alarms_cleaner:
volumeMounts:
volumes:
aodh_bootstrap:
init_container: null
aodh_bootstrap:
volumeMounts:
volumes:
aodh_tests:
init_container: null
aodh_tests:
volumeMounts:
volumes:
aodh_db_sync:
aodh_db_sync:
volumeMounts:
volumes:
# -- This allows users to add Kubernetes Projected Volumes to be mounted at /etc/aodh/aodh.conf.d/
## This is a list of projected volume source objects for each deployment/statefulset/daemonset/cronjob
## https://kubernetes.io/docs/concepts/storage/projected-volumes/
etcSources:
aodh_api: []
aodh_evaluator: []
aodh_listener: []
aodh_notifier: []
aodh_alarms_cleaner: []
aodh_db_sync: []
replicas:
api: 1
evaluator: 1
listener: 1
notifier: 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"
evaluator:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
listener:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
notifier:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
jobs:
bootstrap:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
rabbit_init:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
db_init:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
db_sync:
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"
alarms_cleaner:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
db_drop:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
tests:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
image_repo_sync:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
network:
api:
ingress:
public: true
classes:
namespace: "ingress-openstack"
cluster: "ingress-cluster"
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
haproxy.org/path-rewrite: /
external_policy_local: false
node_port:
enabled: false
port: 8042
dependencies:
dynamic:
common:
local_image_registry:
jobs:
- aodh-image-repo-sync
services:
- endpoint: node
service: local_image_registry
static:
api:
jobs:
- aodh-db-sync
- aodh-ks-user
- aodh-ks-endpoints
services:
- endpoint: internal
service: oslo_db
- endpoint: internal
service: identity
evaluator:
jobs:
- aodh-db-sync
- aodh-rabbit-init
services:
- endpoint: internal
service: oslo_db
- endpoint: internal
service: identity
- endpoint: internal
service: alarming
listener:
jobs:
- aodh-db-sync
- aodh-rabbit-init
services:
- endpoint: internal
service: oslo_db
- endpoint: internal
service: identity
- endpoint: internal
service: alarming
notifier:
jobs:
- aodh-db-sync
- aodh-rabbit-init
services:
- endpoint: internal
service: oslo_db
- endpoint: internal
service: identity
- endpoint: internal
service: alarming
rabbit_init:
services:
- service: oslo_messaging
endpoint: internal
db_init:
services:
- endpoint: internal
service: oslo_db
db_sync:
jobs:
- aodh-db-init
services:
- endpoint: internal
service: oslo_db
db_drop:
services:
- endpoint: internal
service: oslo_db
ks_endpoints:
jobs:
- aodh-ks-service
services:
- endpoint: internal
service: identity
ks_service:
services:
- endpoint: internal
service: identity
ks_user:
services:
- endpoint: internal
service: identity
image_repo_sync:
services:
- endpoint: internal
service: local_image_registry
tests:
jobs:
- aodh-db-sync
services:
- endpoint: internal
service: identity
- endpoint: internal
service: oslo_db
- endpoint: internal
service: alarming
conf:
wsgi_aodh: |
Listen 0.0.0.0:{{ tuple "alarming" "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 "alarming" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}>
WSGIDaemonProcess aodh processes=2 threads=1 user=aodh group=aodh display-name=%{GROUP}
WSGIProcessGroup aodh
WSGIScriptAlias / /var/www/cgi-bin/aodh/aodh-api
WSGIApplicationGroup %{GLOBAL}
ErrorLogFormat "%{cu}t %M"
ErrorLog /dev/stdout
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
CustomLog /dev/stdout combined env=!forwarded
CustomLog /dev/stdout proxy env=forwarded
</VirtualHost>
paste:
composite:aodh+noauth:
use: egg:Paste#urlmap
/: aodhversions_pipeline
/v2: aodhv2_noauth_pipeline
/healthcheck: healthcheck
composite:aodh+keystone:
use: egg:Paste#urlmap
/: aodhversions_pipeline
/v2: aodhv2_keystone_pipeline
/healthcheck: healthcheck
app:healthcheck:
use: egg:oslo.middleware#healthcheck
oslo_config_project: aodh
pipeline:aodhversions_pipeline:
pipeline: cors http_proxy_to_wsgi aodhversions
app:aodhversions:
paste.app_factory: aodh.api.app:app_factory
root: aodh.api.controllers.root.VersionsController
pipeline:aodhv2_keystone_pipeline:
pipeline: cors http_proxy_to_wsgi request_id authtoken aodhv2
pipeline:aodhv2_noauth_pipeline:
pipeline: cors http_proxy_to_wsgi request_id aodhv2
app:aodhv2:
paste.app_factory: aodh.api.app:app_factory
root: aodh.api.controllers.v2.root.V2Controller
filter:authtoken:
paste.filter_factory: keystonemiddleware.auth_token:filter_factory
oslo_config_project: aodh
filter:request_id:
paste.filter_factory: oslo_middleware:RequestId.factory
filter:cors:
paste.filter_factory: oslo_middleware.cors:filter_factory
oslo_config_project: aodh
filter:http_proxy_to_wsgi:
paste.filter_factory: oslo_middleware.http_proxy_to_wsgi:HTTPProxyToWSGI.factory
oslo_config_project: aodh
policy: {}
aodh:
DEFAULT:
debug: false
log_config_append: /etc/aodh/logging.conf
oslo_middleware:
enable_proxy_headers_parsing: true
oslo_policy:
policy_file: /etc/aodh/policy.yaml
oslo_concurrency:
lock_path: /var/lock
database:
alarm_history_time_to_live: 86400
max_retries: -1
# -- Database connection URI. When empty the URI is auto-generated
## from endpoints.oslo_db. Set to null to disable auto-generation,
## e.g. when using an operator such as mariadb-operator that supplies
## the connection string via a mounted configuration snippet.
connection: ""
keystone_authtoken:
auth_version: v3
auth_type: password
memcache_security_strategy: ENCRYPT
service_type: alarming
service_credentials:
auth_type: password
interface: internal
auth_version: v3
logging:
loggers:
keys:
- root
- aodh
handlers:
keys:
- stdout
- stderr
- "null"
formatters:
keys:
- context
- default
logger_root:
level: WARNING
handlers: 'null'
logger_aodh:
level: INFO
handlers:
- stdout
qualname: aodh
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
formatter_default:
format: "%(message)s"
secrets:
identity:
admin: aodh-keystone-admin
aodh: aodh-keystone-user
oslo_db:
admin: aodh-db-admin
aodh: aodh-db-user
oslo_messaging:
admin: aodh-rabbitmq-admin
aodh: aodh-rabbitmq-user
tls:
alarming:
api:
public: aodh-tls-public
oci_image_registry:
aodh: aodh-oci-image-registry
bootstrap:
enabled: false
ks_user: aodh
script: |
openstack token issue
# typically overriden by environmental
# values, but should include all endpoints
# required by this chart
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
oci_image_registry:
name: oci-image-registry
namespace: oci-image-registry
auth:
enabled: false
aodh:
username: aodh
password: password
hosts:
default: localhost
host_fqdn_override:
default: null
port:
registry:
default: null
identity:
name: keystone
auth:
admin:
region_name: RegionOne
username: admin
password: password
project_name: admin
user_domain_name: default
project_domain_name: default
aodh:
role: admin
region_name: RegionOne
username: aodh
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
alarming:
name: aodh
hosts:
default: aodh-api
public: aodh
host_fqdn_override:
default: null
# NOTE: this chart supports TLS for fqdn over-ridden public
# endpoints using the following format:
# public:
# host: null
# tls:
# crt: null
# key: null
path:
default: null
scheme:
default: 'http'
port:
api:
default: 8042
public: 80
oslo_db:
auth:
admin:
username: root
password: password
aodh:
username: aodh
password: password
hosts:
default: mariadb
host_fqdn_override:
default: null
path: /aodh
scheme: mysql+pymysql
port:
mysql:
default: 3306
oslo_cache:
auth:
# NOTE: 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
oslo_messaging:
auth:
admin:
username: rabbitmq
password: password
aodh:
username: aodh
password: password
statefulset:
replicas: 2
name: rabbitmq-rabbitmq
hosts:
default: rabbitmq
host_fqdn_override:
default: null
path: /aodh
scheme: rabbit
port:
amqp:
default: 5672
http:
default: 15672
fluentd:
namespace: null
name: fluentd
hosts:
default: fluentd-logging
host_fqdn_override:
default: null
path:
default: null
scheme: 'http'
port:
service:
default: 24224
metrics:
default: 24220
network_policy:
aodh:
ingress:
- {}
egress:
- {}
manifests:
configmap_bin: true
configmap_etc: true
cron_job_alarms_cleaner: true
deployment_api: true
deployment_evaluator: true
deployment_listener: true
deployment_notifier: true
ingress_api: true
job_bootstrap: true
job_db_drop: false
job_db_init: true
job_image_repo_sync: true
job_rabbit_init: true
job_db_sync: true
job_ks_endpoints: true
job_ks_service: true
job_ks_user: true
network_policy: false
pdb_api: true
pod_aodh_test: true
secret_db: true
secret_ingress_tls: true
secret_keystone: true
secret_rabbitmq: true
secret_registry: true
service_api: true
service_ingress_api: true
# -- Array of extra K8s manifests to deploy
## Note: Supports use of custom Helm templates
extraObjects: []
# - apiVersion: secrets-store.csi.x-k8s.io/v1
# kind: SecretProviderClass
# metadata:
# name: osh-secrets-store
# spec:
# provider: aws
# parameters:
# objects: |
# - objectName: "osh"
# objectType: "secretsmanager"
# jmesPath:
# - path: "client_id"
# objectAlias: "client_id"
# - path: "client_secret"
# objectAlias: "client_secret"
# secretObjects:
# - data:
# - key: client_id
# objectName: client_id
# - key: client_secret
# objectName: client_secret
# secretName: osh-secrets-store
# type: Opaque
# labels:
# app.kubernetes.io/part-of: osh
...
================================================
FILE: barbican/.helmignore
================================================
values_overrides
================================================
FILE: barbican/Chart.yaml
================================================
# 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.
---
apiVersion: v2
appVersion: v1.0.0
description: OpenStack-Helm Barbican
name: barbican
version: 2025.2.0
home: https://docs.openstack.org/barbican/latest/
icon: https://www.openstack.org/themes/openstack/images/project-mascots/Barbican/OpenStack_Project_Barbican_vertical.png
sources:
- https://opendev.org/openstack/barbican
- https://opendev.org/openstack/openstack-helm
maintainers:
- name: OpenStack-Helm Authors
dependencies:
- name: helm-toolkit
repository: file://../helm-toolkit
version: ">= 0.1.0"
...
================================================
FILE: barbican/templates/bin/_barbican-test.sh.tpl
================================================
#!/bin/bash
{{/*
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 -ex
openstack secret list
# Come up with a random payload
PAYLOAD=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1`
echo $PAYLOAD
SECRET=`openstack secret store --name mysecret --payload ${PAYLOAD} | awk ' /href/ {print $5}'`
openstack secret list
openstack secret get $SECRET
openstack secret get --payload $SECRET
openstack secret delete $SECRET
openstack secret list
================================================
FILE: barbican/templates/bin/_barbican.sh.tpl
================================================
#!/bin/bash
{{/*
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 -ex
COMMAND="${@:-start}"
function start () {
exec uwsgi --ini /etc/barbican/barbican-api-uwsgi.ini
}
function stop () {
kill -TERM 1
}
$COMMAND
================================================
FILE: barbican/templates/bin/_bootstrap.sh.tpl
================================================
#!/bin/bash
{{/*
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 -ex
{{ .Values.bootstrap.script | default "echo 'Not Enabled'" }}
================================================
FILE: barbican/templates/bin/_db-sync.sh.tpl
================================================
#!/bin/bash
{{/*
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 -ex
barbican-db-manage upgrade
{{- $kek := (index (index .Values.conf.barbican "simple_crypto_plugin" | default dict) "kek") | default "" }}
{{- $old_kek := index .Values.conf.simple_crypto_kek_rewrap "old_kek" | default ""}}
{{- if and (not (empty $old_kek)) (not (empty $kek)) }}
set +x
echo "Ensuring that project KEKs are wrapped with the target global KEK"
/tmp/simple_crypto_kek_rewrap.py --old-keks="$(cat /tmp/old_keks)"
{{- end }}
================================================
FILE: barbican/templates/bin/_simple_crypto_kek_rewrap.py.tpl
================================================
#!/usr/bin/env python
# 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.
import argparse
import base64
import sys
from cryptography import fernet
from oslo_db.sqlalchemy import session
from sqlalchemy import orm
from sqlalchemy.orm import scoping
from barbican.common import utils
from barbican.model import models
from barbican.plugin.crypto import simple_crypto
# Use config values from simple_crypto
CONF = simple_crypto.CONF
class KekRewrap(object):
def __init__(self, conf, old_keks):
self.dry_run = False
self.db_engine = session.create_engine(conf.database.connection or conf.sql_connection)
self._session_creator = scoping.scoped_session(
orm.sessionmaker(
bind=self.db_engine
)
)
self.crypto_plugin = simple_crypto.SimpleCryptoPlugin(conf)
self.plugin_name = utils.generate_fullname_for(self.crypto_plugin)
if hasattr(self.crypto_plugin, 'master_kek'):
self.encryptor = fernet.Fernet(self.crypto_plugin.master_kek)
else:
self.encryptor = fernet.MultiFernet(
[fernet.Fernet(x) for x in self.crypto_plugin.master_keys]
)
self.decryptor = fernet.MultiFernet(
[fernet.Fernet(x.encode('utf-8')) for x in old_keks]
)
def rewrap_kek(self, project, kek):
db_begin_fn = self.db_session.begin_nested if (
self.db_session.in_transaction()) else self.db_session.begin
with db_begin_fn():
plugin_meta = kek.plugin_meta
# try to unwrap with the target kek, and if successful, skip
try:
if self.encryptor.decrypt(plugin_meta.encode('utf-8')):
print('Project KEK {} is already wrapped with target KEK, skipping'.format(kek.id))
return
except fernet.InvalidToken:
pass
# decrypt with the old kek
print('Unwrapping Project KEK {}'.format(kek.id))
try:
decrypted_plugin_meta = self.decryptor.decrypt(plugin_meta.encode('utf-8'))
except fernet.InvalidToken:
print('Failed to unwrap Project KEK {}'.format(kek.id))
raise
# encrypt with the new kek
print('Rewrapping Project KEK {}'.format(kek.id))
try:
new_plugin_meta = self.encryptor.encrypt(decrypted_plugin_meta).decode('utf-8')
except fernet.InvalidToken:
print('Failed to wrap Project KEK {}'.format(kek.id))
raise
if self.dry_run:
return
# Update KEK metadata in DB
print('Storing updated Project KEK {}'.format(kek.id))
kek.plugin_meta = new_plugin_meta
def get_keks_for_project(self, project):
keks = []
db_begin_fn = self.db_session.begin_nested if (
self.db_session.in_transaction()) else self.db_session.begin
with db_begin_fn() as transaction:
print('Retrieving KEKs for Project {}'.format(project.external_id))
query = transaction.session.query(models.KEKDatum)
query = query.filter_by(project_id=project.id)
query = query.filter_by(plugin_name=self.plugin_name)
keks = query.all()
return keks
def get_projects(self):
print('Retrieving all available projects')
projects = []
db_begin_fn = self.db_session.begin_nested if (
self.db_session.in_transaction()) else self.db_session.begin
with db_begin_fn() as transaction:
projects = transaction.session.query(models.Project).all()
return projects
@property
def db_session(self):
return self._session_creator()
def execute(self, dry_run=True):
self.dry_run = dry_run
if self.dry_run:
print('-- Running in dry-run mode --')
projects = self.get_projects()
successes = []
failures = []
for project in projects:
keks = self.get_keks_for_project(project)
for kek in keks:
try:
self.rewrap_kek(project, kek)
successes.append(kek.id)
except Exception:
failures.append(kek.id)
if successes:
print('Sucessfully processed the following KEKs:')
print('\n'.join(successes))
if failures:
print('Failed to rewrap the following KEKs:')
print('\n'.join(failures))
sys.exit(1)
def main():
script_desc = 'Utility to re-wrap Project KEKs after rotating the global KEK.'
parser = argparse.ArgumentParser(description=script_desc)
parser.add_argument(
'--dry-run',
action='store_true',
help='Displays changes that will be made (Non-destructive)'
)
parser.add_argument(
'--old-keks',
default="dGhpcnR5X3R3b19ieXRlX2tleWJsYWhibGFoYmxhaGg=",
help='Old key encryption keys previously used by Simple Crypto Plugin. '
'A comma separated string of list contain keys '
'( with formate 32 bytes and base64-encoded ). '
'First key in list is used for ecnrypting new data. '
'Additional keys used for decrypting existing data.'
)
args = parser.parse_args()
rewrapper = KekRewrap(CONF, args.old_keks.split(","))
rewrapper.execute(args.dry_run)
if __name__ == '__main__':
main()
================================================
FILE: barbican/templates/certificates.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.certificates -}}
{{ dict "envAll" . "service" "key_manager" "type" "internal" | include "helm-toolkit.manifests.certificates" }}
{{- end -}}
================================================
FILE: barbican/templates/configmap-bin.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.configmap_bin }}
{{- $envAll := . }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: barbican-bin
data:
{{- if .Values.images.local_registry.active }}
image-repo-sync.sh: |
{{- include "helm-toolkit.scripts.image_repo_sync" . | indent 4 }}
{{- end }}
{{- if .Values.bootstrap.enabled }}
bootstrap.sh: |
{{ tuple "bin/_bootstrap.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
{{- end }}
barbican-test.sh: |
{{ tuple "bin/_barbican-test.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
db-init.py: |
{{- include "helm-toolkit.scripts.db_init" . | indent 4 }}
db-sync.sh: |
{{ tuple "bin/_db-sync.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
db-drop.py: |
{{- include "helm-toolkit.scripts.db_drop" . | indent 4 }}
barbican.sh: |
{{ tuple "bin/_barbican.sh.tpl" . | include "helm-toolkit.utils.template" | 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 }}
rabbit-init.sh: |
{{- include "helm-toolkit.scripts.rabbit_init" . | indent 4 }}
simple_crypto_kek_rewrap.py: |
{{ tuple "bin/_simple_crypto_kek_rewrap.py.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
{{- end }}
================================================
FILE: barbican/templates/configmap-etc.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.configmap_etc }}
{{- $envAll := . }}
{{- if empty .Values.conf.barbican.keystone_authtoken.auth_uri -}}
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set .Values.conf.barbican.keystone_authtoken "auth_uri" -}}
{{- end -}}
{{- if empty .Values.conf.barbican.keystone_authtoken.auth_url -}}
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set .Values.conf.barbican.keystone_authtoken "auth_url" -}}
{{- end -}}
{{- if empty .Values.conf.barbican.keystone_authtoken.region_name -}}
{{- $_ := set .Values.conf.barbican.keystone_authtoken "region_name" .Values.endpoints.identity.auth.barbican.region_name -}}
{{- end -}}
{{- if empty .Values.conf.barbican.keystone_authtoken.project_name -}}
{{- $_ := set .Values.conf.barbican.keystone_authtoken "project_name" .Values.endpoints.identity.auth.barbican.project_name -}}
{{- end -}}
{{- if empty .Values.conf.barbican.keystone_authtoken.project_domain_name -}}
{{- $_ := set .Values.conf.barbican.keystone_authtoken "project_domain_name" .Values.endpoints.identity.auth.barbican.project_domain_name -}}
{{- end -}}
{{- if empty .Values.conf.barbican.keystone_authtoken.user_domain_name -}}
{{- $_ := set .Values.conf.barbican.keystone_authtoken "user_domain_name" .Values.endpoints.identity.auth.barbican.user_domain_name -}}
{{- end -}}
{{- if empty .Values.conf.barbican.keystone_authtoken.username -}}
{{- $_ := set .Values.conf.barbican.keystone_authtoken "username" .Values.endpoints.identity.auth.barbican.username -}}
{{- end -}}
{{- if empty .Values.conf.barbican.keystone_authtoken.password -}}
{{- $_ := set .Values.conf.barbican.keystone_authtoken "password" .Values.endpoints.identity.auth.barbican.password -}}
{{- end -}}
{{- if empty .Values.conf.barbican.keystone_authtoken.memcached_servers -}}
{{- $_ := tuple "oslo_cache" "internal" "memcache" . | include "helm-toolkit.endpoints.host_and_port_endpoint_uri_lookup" | set .Values.conf.barbican.keystone_authtoken "memcached_servers" -}}
{{- end -}}
{{- if empty .Values.conf.barbican.keystone_authtoken.memcache_secret_key -}}
{{- $_ := set .Values.conf.barbican.keystone_authtoken "memcache_secret_key" ( default ( randAlphaNum 64 ) .Values.endpoints.oslo_cache.auth.memcache_secret_key ) -}}
{{- end -}}
{{- if and (not (kindIs "invalid" .Values.conf.barbican.database.connection)) (empty .Values.conf.barbican.database.connection) -}}
{{- $connection := tuple "oslo_db" "internal" "barbican" "mysql" . | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" -}}
{{- if .Values.manifests.certificates -}}
{{- $_ := (printf "%s?charset=utf8&ssl_ca=/etc/mysql/certs/ca.crt&ssl_key=/etc/mysql/certs/tls.key&ssl_cert=/etc/mysql/certs/tls.crt&ssl_verify_cert" $connection ) | set .Values.conf.barbican.database "connection" -}}
{{- else -}}
{{- $_ := set .Values.conf.barbican.database "connection" $connection -}}
{{- end -}}
{{- end -}}
{{- if empty .Values.conf.barbican.DEFAULT.transport_url -}}
{{- $_ := tuple "oslo_messaging" "internal" "barbican" "amqp" . | include "helm-toolkit.endpoints.authenticated_transport_endpoint_uri_lookup" | set .Values.conf.barbican.DEFAULT "transport_url" -}}
{{- end -}}
{{- $barbicanPath := index .Values "endpoints" "key_manager" "path" "default" }}
{{- if empty .Values.conf.barbican.DEFAULT.host_href -}}
{{- $_ := tuple "key_manager" "public" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup" | trimSuffix $barbicanPath | set .Values.conf.barbican.DEFAULT "host_href" -}}
{{- end -}}
{{- if empty (index .Values.conf.barbican_api_uwsgi.uwsgi "http-socket") -}}
{{- $http_socket_port := tuple "key_manager" "service" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" | toString }}
{{- $http_socket := printf "0.0.0.0:%s" $http_socket_port }}
{{- $_ := set .Values.conf.barbican_api_uwsgi.uwsgi "http-socket" $http_socket -}}
{{- end -}}
{{- if and (empty .Values.conf.logging.handler_fluent) (has "fluent" .Values.conf.logging.handlers.keys) -}}
{{- $fluentd_host := tuple "fluentd" "internal" $envAll | include "helm-toolkit.endpoints.hostname_namespaced_endpoint_lookup" }}
{{- $fluentd_port := tuple "fluentd" "internal" "service" $envAll | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
{{- $fluent_args := printf "('%s.%s', '%s', %s)" .Release.Namespace .Release.Name $fluentd_host $fluentd_port }}
{{- $handler_fluent := dict "class" "fluent.handler.FluentHandler" "formatter" "fluent" "args" $fluent_args -}}
{{- $_ := set .Values.conf.logging "handler_fluent" $handler_fluent -}}
{{- end -}}
{{- if and (empty .Values.conf.logging.formatter_fluent) (has "fluent" .Values.conf.logging.formatters.keys) -}}
{{- $formatter_fluent := dict "class" "oslo_log.formatters.FluentFormatter" -}}
{{- $_ := set .Values.conf.logging "formatter_fluent" $formatter_fluent -}}
{{- end -}}
---
apiVersion: v1
kind: Secret
metadata:
name: barbican-etc
type: Opaque
data:
barbican.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.barbican | b64enc }}
logging.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.logging | b64enc }}
barbican-api-paste.ini: {{ include "helm-toolkit.utils.to_ini" .Values.conf.paste | b64enc }}
api_audit_map.conf: {{ include "helm-toolkit.utils.to_ini" .Values.conf.audit_map | b64enc }}
policy.yaml: {{ toYaml .Values.conf.policy | b64enc }}
barbican-api-uwsgi.ini: {{ include "helm-toolkit.utils.to_ini" .Values.conf.barbican_api_uwsgi | b64enc }}
old_keks: {{ index .Values.conf.simple_crypto_kek_rewrap "old_kek" | default "" | b64enc | quote }}
{{- end }}
================================================
FILE: barbican/templates/deployment-api.yaml
================================================
{{/*
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.
*/}}
{{- define "probeTemplate" }}
{{- $health_path := tuple "key_manager" "healthcheck" "internal" . | include "helm-toolkit.endpoints.keystone_endpoint_path_lookup" }}
httpGet:
scheme: {{ tuple "key_manager" "service" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_scheme_lookup" | upper }}
path: {{ $health_path }}
port: {{ tuple "key_manager" "service" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
{{- end }}
{{- if .Values.manifests.deployment_api }}
{{- $envAll := . }}
{{- $mounts_barbican_api := .Values.pod.mounts.barbican_api.barbican_api }}
{{- $mounts_barbican_api_init := .Values.pod.mounts.barbican_api.init_container }}
{{- $etcSources := .Values.pod.etcSources.barbican_api }}
{{- $serviceAccountName := "barbican-api" }}
{{ tuple $envAll "api" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: barbican-api
annotations:
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
labels:
{{ tuple $envAll "barbican" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
spec:
replicas: {{ .Values.pod.replicas.api }}
selector:
matchLabels:
{{ tuple $envAll "barbican" "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 "barbican" "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" }}
{{ tuple "barbican_api" . | include "helm-toolkit.snippets.custom_pod_annotations" | indent 8 }}
{{ dict "envAll" $envAll "podName" "barbican-api" "containerNames" (list "init" "barbican-api") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
spec:
{{ dict "envAll" $envAll "application" "barbican" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
{{ tuple "barbican_api" . | include "helm-toolkit.snippets.kubernetes_pod_priority_class" | indent 6 }}
{{ tuple "barbican_api" . | include "helm-toolkit.snippets.kubernetes_pod_runtime_class" | indent 6 }}
serviceAccountName: {{ $serviceAccountName }}
affinity:
{{ tuple $envAll "barbican" "api" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
nodeSelector:
{{ .Values.labels.api.node_selector_key }}: {{ .Values.labels.api.node_selector_value }}
{{ if $envAll.Values.pod.tolerations.barbican.enabled }}
{{ tuple $envAll "barbican" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
{{ end }}
initContainers:
{{ tuple $envAll "api" $mounts_barbican_api_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
containers:
- name: barbican-api
{{ tuple $envAll "barbican_api" | include "helm-toolkit.snippets.image" | indent 10 }}
{{ tuple $envAll $envAll.Values.pod.resources.api | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
{{ dict "envAll" $envAll "application" "barbican" "container" "barbican_api" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
{{ dict "envAll" $envAll "component" "api" "container" "barbican-api" "type" "readiness" "probeTemplate" (include "probeTemplate" $envAll | fromYaml) | include "helm-toolkit.snippets.kubernetes_probe" | indent 10 }}
{{ dict "envAll" $envAll "component" "api" "container" "barbican-api" "type" "liveness" "probeTemplate" (include "probeTemplate" $envAll | fromYaml) | include "helm-toolkit.snippets.kubernetes_probe" | indent 10 }}
command:
- /tmp/barbican.sh
- start
env:
{{- if or .Values.manifests.certificates .Values.tls.identity }}
- name: REQUESTS_CA_BUNDLE
value: "/etc/barbican/certs/ca.crt"
{{- end }}
lifecycle:
preStop:
exec:
command:
- /tmp/barbican.sh
- stop
ports:
- name: b-api
containerPort: {{ tuple "key_manager" "service" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
volumeMounts:
- name: pod-tmp
mountPath: /tmp
- name: oslo-lock-path
mountPath: {{ .Values.conf.barbican.oslo_concurrency.lock_path }}
- name: etcbarbican
mountPath: /etc/barbican
- name: barbican-etc
mountPath: /etc/barbican/barbican-api-uwsgi.ini
subPath: barbican-api-uwsgi.ini
readOnly: true
- name: barbican-etc
mountPath: /etc/barbican/barbican.conf
subPath: barbican.conf
readOnly: true
- name: barbican-etc-snippets
mountPath: /etc/barbican/barbican.conf.d/
readOnly: true
{{- if .Values.conf.barbican.DEFAULT.log_config_append }}
- name: barbican-etc
mountPath: {{ .Values.conf.barbican.DEFAULT.log_config_append }}
subPath: {{ base .Values.conf.barbican.DEFAULT.log_config_append }}
readOnly: true
{{- end }}
- name: barbican-etc
mountPath: /etc/barbican/api_audit_map.conf
subPath: api_audit_map.conf
readOnly: true
- name: barbican-etc
mountPath: /etc/barbican/barbican-api-paste.ini
subPath: barbican-api-paste.ini
readOnly: true
- name: barbican-etc
mountPath: /etc/barbican/policy.yaml
subPath: policy.yaml
readOnly: true
- name: barbican-bin
mountPath: /tmp/barbican.sh
subPath: barbican.sh
readOnly: true
{{- dict "enabled" .Values.tls.oslo_db "name" .Values.endpoints.oslo_db.auth.admin.secret.tls.internal "path" "/etc/mysql/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 12 }}
{{- dict "enabled" .Values.tls.identity "name" .Values.secrets.tls.key_manager.api.internal "path" "/etc/barbican/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 12 }}
{{- dict "enabled" $envAll.Values.tls.oslo_messaging "name" $envAll.Values.endpoints.oslo_messaging.auth.admin.secret.tls.internal "path" "/etc/rabbitmq/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 12 }}
{{ if $mounts_barbican_api.volumeMounts }}{{ toYaml $mounts_barbican_api.volumeMounts | indent 12 }}{{ end }}
volumes:
- name: pod-tmp
emptyDir: {}
- name: oslo-lock-path
emptyDir: {}
- name: etcbarbican
emptyDir: {}
- name: barbican-etc
secret:
secretName: barbican-etc
defaultMode: 0444
- name: barbican-etc-snippets
{{- if $etcSources }}
projected:
sources:
{{ toYaml $etcSources | indent 14 }}
{{- else }}
emptyDir: {}
{{ end }}
- name: barbican-bin
configMap:
name: barbican-bin
defaultMode: 0555
{{- dict "enabled" .Values.tls.oslo_db "name" .Values.endpoints.oslo_db.auth.admin.secret.tls.internal | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
{{- dict "enabled" .Values.tls.identity "name" .Values.secrets.tls.key_manager.api.internal | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
{{- dict "enabled" $envAll.Values.tls.oslo_messaging "name" $envAll.Values.endpoints.oslo_messaging.auth.admin.secret.tls.internal | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
{{ if $mounts_barbican_api.volumes }}{{ toYaml $mounts_barbican_api.volumes | indent 8 }}{{ end }}
{{- end }}
================================================
FILE: barbican/templates/extra-manifests.yaml
================================================
{{ range .Values.extraObjects }}
---
{{ if typeIs "string" . }}
{{- tpl . $ }}
{{- else }}
{{- tpl (toYaml .) $ }}
{{- end }}
{{ end }}
================================================
FILE: barbican/templates/ingress-api.yaml
================================================
{{/*
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.
*/}}
{{- if and .Values.manifests.ingress_api .Values.network.api.ingress.public }}
{{- $ingressOpts := dict "envAll" . "backendServiceType" "key_manager" "backendPort" "b-api" -}}
{{ $ingressOpts | include "helm-toolkit.manifests.ingress" }}
{{- end }}
================================================
FILE: barbican/templates/job-bootstrap.yaml
================================================
{{/*
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.
*/}}
{{- define "metadata.annotations.job.bootstrap" }}
helm.sh/hook: post-install,post-upgrade
helm.sh/hook-weight: "5"
{{- end }}
{{- if and .Values.manifests.job_bootstrap .Values.bootstrap.enabled }}
{{- $bootstrapJob := dict "envAll" . "serviceName" "barbican" "keystoneUser" .Values.bootstrap.ks_user "logConfigFile" .Values.conf.barbican.DEFAULT.log_config_append "jobAnnotations" (include "metadata.annotations.job.bootstrap" . | fromYaml) -}}
{{- if .Values.pod.tolerations.barbican.enabled -}}
{{- $_ := set $bootstrapJob "tolerationsEnabled" true -}}
{{- end -}}
{{- if or .Values.manifests.certificates .Values.tls.identity -}}
{{- $_ := set $bootstrapJob "tlsSecret" .Values.secrets.tls.key_manager.api.internal -}}
{{- end -}}
{{ $bootstrapJob | include "helm-toolkit.manifests.job_bootstrap" }}
{{- end }}
================================================
FILE: barbican/templates/job-db-drop.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.job_db_drop }}
{{- $dbDropJob := dict "envAll" . "serviceName" "barbican" -}}
{{- if .Values.manifests.certificates -}}
{{- $_ := set $dbDropJob "dbAdminTlsSecret" .Values.endpoints.oslo_db.auth.admin.secret.tls.internal -}}
{{- end -}}
{{- if .Values.pod.tolerations.barbican.enabled -}}
{{- $_ := set $dbDropJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $dbDropJob | include "helm-toolkit.manifests.job_db_drop_mysql" }}
{{- end }}
================================================
FILE: barbican/templates/job-db-init.yaml
================================================
{{/*
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.
*/}}
{{- define "metadata.annotations.job.db_init" }}
helm.sh/hook: post-install,post-upgrade
helm.sh/hook-weight: "-5"
{{- end }}
{{- if .Values.manifests.job_db_init }}
{{- $dbInitJob := dict "envAll" . "serviceName" "barbican" -}}
{{- if .Values.manifests.certificates -}}
{{- $_ := set $dbInitJob "dbAdminTlsSecret" .Values.endpoints.oslo_db.auth.admin.secret.tls.internal -}}
{{- end -}}
{{- $_ := set $dbInitJob "jobAnnotations" (include "metadata.annotations.job.db_init" . | fromYaml) }}
{{- if .Values.pod.tolerations.barbican.enabled -}}
{{- $_ := set $dbInitJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $dbInitJob | include "helm-toolkit.manifests.job_db_init_mysql" }}
{{- end }}
================================================
FILE: barbican/templates/job-db-sync.yaml
================================================
{{/*
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.
*/}}
{{- define "metadata.annotations.job.db_sync" }}
helm.sh/hook: post-install,post-upgrade
helm.sh/hook-weight: "-4"
{{- end }}
{{- $podVolMounts := .Values.pod.mounts.barbican_db_sync.barbican_db_sync.volumeMounts | default list }}
{{- $podVolMounts = append $podVolMounts (dict "name" "db-sync-sh" "mountPath" "/tmp/simple_crypto_kek_rewrap.py" "subPath" "simple_crypto_kek_rewrap.py" "readOnly" true) }}
{{- $podVolMounts = append $podVolMounts (dict "name" "db-sync-conf" "mountPath" "/tmp/old_keks" "subPath" "old_keks" "readOnly" true) }}
{{- if .Values.manifests.job_db_sync }}
{{- $dbSyncJob := dict "envAll" . "serviceName" "barbican" "podVolMounts" $podVolMounts "podVols" .Values.pod.mounts.barbican_db_sync.barbican_db_sync.volumes "jobAnnotations" (include "metadata.annotations.job.db_sync" . | fromYaml) -}}
{{- if .Values.manifests.certificates -}}
{{- $_ := set $dbSyncJob "dbAdminTlsSecret" .Values.endpoints.oslo_db.auth.admin.secret.tls.internal -}}
{{- end -}}
{{- if .Values.pod.tolerations.barbican.enabled -}}
{{- $_ := set $dbSyncJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $dbSyncJob | include "helm-toolkit.manifests.job_db_sync" }}
{{- end }}
================================================
FILE: barbican/templates/job-image-repo-sync.yaml
================================================
{{/*
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.
*/}}
{{- define "metadata.annotations.job.repo_sync" }}
helm.sh/hook: post-install,post-upgrade
{{- end }}
{{- if and .Values.manifests.job_image_repo_sync .Values.images.local_registry.active }}
{{- $imageRepoSyncJob := dict "envAll" . "serviceName" "barbican" "jobAnnotations" (include "metadata.annotations.job.repo_sync" . | fromYaml) -}}
{{- if .Values.pod.tolerations.barbican.enabled -}}
{{- $_ := set $imageRepoSyncJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $imageRepoSyncJob | include "helm-toolkit.manifests.job_image_repo_sync" }}
{{- end }}
================================================
FILE: barbican/templates/job-ks-endpoints.yaml
================================================
{{/*
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.
*/}}
{{- define "metadata.annotations.job.ks_endpoints" }}
helm.sh/hook: post-install,post-upgrade
helm.sh/hook-weight: "-2"
{{- end }}
{{- if .Values.manifests.job_ks_endpoints }}
{{- $ksServiceJob := dict "envAll" . "serviceName" "barbican" "serviceTypes" ( tuple "key-manager" ) "jobAnnotations" (include "metadata.annotations.job.ks_endpoints" . | fromYaml) -}}
{{- if .Values.pod.tolerations.barbican.enabled -}}
{{- $_ := set $ksServiceJob "tolerationsEnabled" true -}}
{{- end -}}
{{- if or .Values.manifests.certificates .Values.tls.identity -}}
{{- $_ := set $ksServiceJob "tlsSecret" .Values.secrets.tls.key_manager.api.internal -}}
{{- end -}}
{{ $ksServiceJob | include "helm-toolkit.manifests.job_ks_endpoints" }}
{{- end }}
================================================
FILE: barbican/templates/job-ks-service.yaml
================================================
{{/*
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.
*/}}
{{- define "metadata.annotations.job.ks_service" }}
helm.sh/hook: post-install,post-upgrade
helm.sh/hook-weight: "-3"
{{- end }}
{{- if .Values.manifests.job_ks_service }}
{{- $ksServiceJob := dict "envAll" . "serviceName" "barbican" "serviceTypes" ( tuple "key-manager" ) "jobAnnotations" (include "metadata.annotations.job.ks_service" . | fromYaml) -}}
{{- if .Values.pod.tolerations.barbican.enabled -}}
{{- $_ := set $ksServiceJob "tolerationsEnabled" true -}}
{{- end -}}
{{- if or .Values.manifests.certificates .Values.tls.identity -}}
{{- $_ := set $ksServiceJob "tlsSecret" .Values.secrets.tls.key_manager.api.internal -}}
{{- end -}}
{{ $ksServiceJob | include "helm-toolkit.manifests.job_ks_service" }}
{{- end }}
================================================
FILE: barbican/templates/job-ks-user.yaml
================================================
{{/*
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.
*/}}
{{- define "metadata.annotations.job.ks_user" }}
helm.sh/hook: post-install,post-upgrade
helm.sh/hook-weight: "-1"
{{- end }}
{{- if .Values.manifests.job_ks_user }}
{{- $ksUserJob := dict "envAll" . "serviceName" "barbican" "jobAnnotations" (include "metadata.annotations.job.ks_user" . | fromYaml) -}}
{{- if .Values.pod.tolerations.barbican.enabled -}}
{{- $_ := set $ksUserJob "tolerationsEnabled" true -}}
{{- end -}}
{{- if or .Values.manifests.certificates .Values.tls.identity -}}
{{- $_ := set $ksUserJob "tlsSecret" .Values.secrets.tls.key_manager.api.internal -}}
{{- end -}}
{{ $ksUserJob | include "helm-toolkit.manifests.job_ks_user" }}
{{- end }}
================================================
FILE: barbican/templates/job-rabbit-init.yaml
================================================
{{/*
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.
*/}}
{{- define "metadata.annotations.job.rabbit_init" }}
helm.sh/hook: post-install,post-upgrade
helm.sh/hook-weight: "-4"
{{- end }}
{{- if .Values.manifests.job_rabbit_init }}
{{- $rmqUserJob := dict "envAll" . "serviceName" "barbican" "jobAnnotations" (include "metadata.annotations.job.rabbit_init" . | fromYaml) -}}
{{- if and .Values.tls.oslo_messaging .Values.endpoints.oslo_messaging.auth.admin.secret.tls.internal -}}
{{- $_ := set $rmqUserJob "tlsSecret" .Values.endpoints.oslo_messaging.auth.admin.secret.tls.internal -}}
{{- end -}}
{{- if .Values.pod.tolerations.barbican.enabled -}}
{{- $_ := set $rmqUserJob "tolerationsEnabled" true -}}
{{- end -}}
{{ $rmqUserJob | include "helm-toolkit.manifests.job_rabbit_init" }}
{{- end }}
================================================
FILE: barbican/templates/network_policy.yaml
================================================
# 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.
{{- if .Values.manifests.network_policy -}}
{{- $netpol_opts := dict "envAll" . "name" "application" "label" "barbican" -}}
{{ $netpol_opts | include "helm-toolkit.manifests.kubernetes_network_policy" }}
{{- end -}}
================================================
FILE: barbican/templates/pdb-api.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.pdb_api }}
{{- $envAll := . }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: barbican-api
spec:
minAvailable: {{ .Values.pod.lifecycle.disruption_budget.api.min_available }}
selector:
matchLabels:
{{ tuple $envAll "barbican" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
{{- end }}
================================================
FILE: barbican/templates/pod-test.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.pod_test }}
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.static.tests }}
{{- $mounts_barbican_tests := .Values.pod.mounts.barbican_tests.barbican_tests }}
{{- $mounts_barbican_tests_init := .Values.pod.mounts.barbican_tests.init_container }}
{{- $serviceAccountName := print .Release.Name "-test" }}
{{ tuple $envAll "tests" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
---
apiVersion: v1
kind: Pod
metadata:
name: "{{.Release.Name}}-test"
labels:
{{ tuple $envAll "barbican" "test" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
annotations:
"helm.sh/hook": test-success
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
{{ dict "envAll" $envAll "podName" "barbican-test" "containerNames" (list "init" "barbican-test") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 4 }}
spec:
{{ tuple "barbican_tests" . | include "helm-toolkit.snippets.kubernetes_pod_priority_class" | indent 2 }}
{{ tuple "barbican_tests" . | include "helm-toolkit.snippets.kubernetes_pod_runtime_class" | indent 2 }}
serviceAccountName: {{ $serviceAccountName }}
{{ dict "envAll" $envAll "application" "test" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 2 }}
nodeSelector:
{{ .Values.labels.test.node_selector_key }}: {{ .Values.labels.test.node_selector_value }}
{{ if $envAll.Values.pod.tolerations.barbican.enabled }}
{{ tuple $envAll "barbican" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 2 }}
{{ end }}
restartPolicy: Never
initContainers:
{{ tuple $envAll "tests" $mounts_barbican_tests_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 4 }}
containers:
- name: barbican-test
{{ tuple $envAll "scripted_test" | include "helm-toolkit.snippets.image" | indent 6 }}
{{ dict "envAll" $envAll "application" "test" "container" "barbican_test" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 6 }}
env:
{{- with $env := dict "ksUserSecret" .Values.secrets.identity.admin }}
{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 8 }}
{{- end }}
command:
- /tmp/barbican-test.sh
volumeMounts:
- name: pod-tmp
mountPath: /tmp
- name: barbican-bin
mountPath: /tmp/barbican-test.sh
subPath: barbican-test.sh
readOnly: true
{{ if $mounts_barbican_tests.volumeMounts }}{{ toYaml $mounts_barbican_tests.volumeMounts | indent 8 }}{{ end }}
volumes:
- name: pod-tmp
emptyDir: {}
- name: barbican-bin
configMap:
name: barbican-bin
defaultMode: 0555
{{ if $mounts_barbican_tests.volumes }}{{ toYaml $mounts_barbican_tests.volumes | indent 4 }}{{ end }}
{{- end }}
================================================
FILE: barbican/templates/secret-db.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.secret_db }}
{{- $envAll := . }}
{{- range $key1, $userClass := tuple "admin" "barbican" }}
{{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
{{- $connection := tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ $secretName }}
annotations:
{{ tuple "oslo_db" $userClass $envAll | include "helm-toolkit.snippets.custom_secret_annotations" | indent 4 }}
type: Opaque
data:
{{- if $envAll.Values.manifests.certificates }}
DB_CONNECTION: {{ (printf "%s?charset=utf8&ssl_ca=/etc/mysql/certs/ca.crt&ssl_key=/etc/mysql/certs/tls.key&ssl_cert=/etc/mysql/certs/tls.crt&ssl_verify_cert" $connection ) | b64enc -}}
{{- else }}
DB_CONNECTION: {{ $connection | b64enc -}}
{{- end }}
{{- end }}
{{- end }}
================================================
FILE: barbican/templates/secret-ingress-tls.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.secret_ingress_tls }}
{{- include "helm-toolkit.manifests.secret_ingress_tls" ( dict "envAll" . "backendServiceType" "key_manager" ) }}
{{- end }}
================================================
FILE: barbican/templates/secret-keystone.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.secret_keystone }}
{{- $envAll := . }}
{{- range $key1, $userClass := tuple "admin" "barbican" }}
{{- $secretName := index $envAll.Values.secrets.identity $userClass }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ $secretName }}
annotations:
{{ tuple "identity" $userClass $envAll | include "helm-toolkit.snippets.custom_secret_annotations" | indent 4 }}
type: Opaque
data:
{{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
{{- end }}
{{- end }}
================================================
FILE: barbican/templates/secret-rabbitmq.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.secret_rabbitmq }}
{{- $envAll := . }}
{{- range $key1, $userClass := tuple "admin" "barbican" }}
{{- $secretName := index $envAll.Values.secrets.oslo_messaging $userClass }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ $secretName }}
annotations:
{{ tuple "oslo_messaging" $userClass $envAll | include "helm-toolkit.snippets.custom_secret_annotations" | indent 4 }}
type: Opaque
data:
RABBITMQ_CONNECTION: {{ tuple "oslo_messaging" "internal" $userClass "http" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc }}
{{- end }}
{{- end }}
================================================
FILE: barbican/templates/secret-registry.yaml
================================================
{{/*
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.
*/}}
{{- if and .Values.manifests.secret_registry .Values.endpoints.oci_image_registry.auth.enabled }}
{{ include "helm-toolkit.manifests.secret_registry" ( dict "envAll" . "registryUser" .Chart.Name ) }}
{{- end }}
================================================
FILE: barbican/templates/service-api.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.service_api }}
{{- $envAll := . }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ tuple "key-manager" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
spec:
ports:
- name: b-api
port: {{ tuple "key-manager" "service" "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 "barbican" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
{{ if .Values.network.api.node_port.enabled }}
type: NodePort
{{ if .Values.network.api.external_policy_local }}
externalTrafficPolicy: Local
{{ end }}
{{ end }}
{{- end }}
================================================
FILE: barbican/templates/service-ingress-api.yaml
================================================
{{/*
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.
*/}}
{{- if and .Values.manifests.service_ingress_api .Values.network.api.ingress.public }}
{{- $serviceIngressOpts := dict "envAll" . "backendServiceType" "key-manager" -}}
{{ $serviceIngressOpts | include "helm-toolkit.manifests.service_ingress" }}
{{- end }}
================================================
FILE: barbican/values.yaml
================================================
# 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.
# Default values for barbican.
# This is a YAML-formatted file.
# Declare name/value pairs to be passed into your templates.
# name: value
---
labels:
api:
node_selector_key: openstack-control-plane
node_selector_value: enabled
job:
node_selector_key: openstack-control-plane
node_selector_value: enabled
test:
node_selector_key: openstack-control-plane
node_selector_value: enabled
release_group: null
images:
tags:
bootstrap: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
dep_check: quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_jammy
scripted_test: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
db_init: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
barbican_db_sync: quay.io/airshipit/barbican:2025.1-ubuntu_noble
db_drop: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
ks_user: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
ks_service: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
ks_endpoints: quay.io/airshipit/openstack-client:2025.1-ubuntu_noble
barbican_api: quay.io/airshipit/barbican:2025.1-ubuntu_noble
rabbit_init: docker.io/rabbitmq:3.13-management
image_repo_sync: docker.io/docker:17.07.0
pull_policy: "IfNotPresent"
local_registry:
active: false
exclude:
- dep_check
- image_repo_sync
pod:
security_context:
barbican:
pod:
runAsUser: 42424
container:
barbican_api:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
test:
pod:
runAsUser: 42424
container:
barbican_test:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
affinity:
anti:
type:
default: preferredDuringSchedulingIgnoredDuringExecution
topologyKey:
default: kubernetes.io/hostname
weight:
default: 10
tolerations:
barbican:
enabled: false
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
mounts:
barbican_api:
init_container: null
barbican_api:
volumeMounts:
volumes:
barbican_bootstrap:
init_container: null
barbican_bootstrap:
volumeMounts:
volumes:
barbican_tests:
init_container: null
barbican_tests:
volumeMounts:
volumes:
barbican_db_sync:
barbican_db_sync:
volumeMounts:
volumes:
# -- This allows users to add Kubernetes Projected Volumes to be mounted at /etc/barbican/barbican.conf.d/
## This is a list of projected volume source objects for each deployment/statefulset/daemonset/cronjob
## https://kubernetes.io/docs/concepts/storage/projected-volumes/
etcSources:
barbican_api: []
barbican_db_sync: []
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
probes:
api:
barbican-api:
readiness:
enabled: true
params:
periodSeconds: 10
timeoutSeconds: 5
liveness:
enabled: true
params:
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
resources:
enabled: false
api:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
jobs:
bootstrap:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
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"
rabbit_init:
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"
tests:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
image_repo_sync:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "1024Mi"
cpu: "2000m"
network:
api:
ingress:
public: true
classes:
namespace: "ingress-openstack"
cluster: "ingress-cluster"
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
haproxy.org/path-rewrite: /
external_policy_local: false
node_port:
enabled: false
port: 30486
network_policy:
barbican:
ingress:
- {}
egress:
- {}
bootstrap:
enabled: false
ks_user: barbican
script: |
openstack token issue
dependencies:
dynamic:
common:
local_image_registry:
jobs:
- barbican-image-repo-sync
services:
- endpoint: node
service: local_image_registry
static:
api:
jobs:
- barbican-db-sync
- barbican-ks-user
- barbican-ks-endpoints
- barbican-rabbit-init
services:
- endpoint: internal
service: oslo_db
- endpoint: internal
service: identity
- endpoint: internal
service: oslo_messaging
db_drop:
services:
- endpoint: internal
service: oslo_db
db_init:
services:
- endpoint: internal
service: oslo_db
db_sync:
jobs:
- barbican-db-init
services:
- endpoint: internal
service: oslo_db
image_repo_sync:
services:
- endpoint: internal
service: local_image_registry
ks_endpoints:
jobs:
- barbican-ks-service
services:
- endpoint: internal
service: identity
ks_service:
services:
- endpoint: internal
service: identity
ks_user:
services:
- endpoint: internal
service: identity
rabbit_init:
services:
- endpoint: internal
service: oslo_messaging
conf:
paste:
composite:main:
use: egg:Paste#urlmap
/: barbican_version
/v1: barbican-api-keystone
/healthcheck: healthcheck
pipeline:barbican_version:
pipeline: cors http_proxy_to_wsgi versionapp
pipeline:barbican_api:
pipeline: cors http_proxy_to_wsgi unauthenticated-context apiapp
pipeline:barbican-profile:
pipeline: cors http_proxy_to_wsgi unauthenticated-context egg:Paste#cgitb egg:Paste#httpexceptions profile apiapp
pipeline:barbican-api-keystone:
pipeline: cors http_proxy_to_wsgi authtoken context apiapp
pipeline:barbican-api-keystone-audit:
pipeline: http_proxy_to_wsgi authtoken context audit apiapp
app:apiapp:
paste.app_factory: barbican.api.app:create_main_app
app:versionapp:
paste.app_factory: barbican.api.app:create_version_app
app:healthcheck:
paste.app_factory: oslo_middleware:Healthcheck.app_factory
backends: disable_by_file
disable_by_file_path: /etc/barbican/healthcheck_disable
filter:simple:
paste.filter_factory: barbican.api.middleware.simple:SimpleFilter.factory
filter:unauthenticated-context:
paste.filter_factory: barbican.api.middleware.context:UnauthenticatedContextMiddleware.factory
filter:context:
paste.filter_factory: barbican.api.middleware.context:ContextMiddleware.factory
filter:audit:
paste.filter_factory: keystonemiddleware.audit:filter_factory
audit_map_file: /etc/barbican/api_audit_map.conf
filter:authtoken:
paste.filter_factory: keystonemiddleware.auth_token:filter_factory
filter:profile:
use: egg:repoze.profile
log_filename: myapp.profile
cachegrind_filename: cachegrind.out.myapp
discard_first_request: true
path: /__profile__
flush_at_shutdown: true
unwind: false
filter:cors:
paste.filter_factory: oslo_middleware.cors:filter_factory
oslo_config_project: barbican
filter:http_proxy_to_wsgi:
paste.filter_factory: oslo_middleware:HTTPProxyToWSGI.factory
policy: {}
audit_map:
DEFAULT:
# default target endpoint type
# should match the endpoint type defined in service catalog
target_endpoint_type: key-manager
custom_actions:
# map urls ending with specific text to a unique action
# Don't need custom mapping for other resource operations
# Note: action should match action names defined in CADF taxonomy
acl/get: read
path_keywords:
# path of api requests for CADF target typeURI
# Just need to include top resource path to identify class of resources
secrets: null
containers: null
orders: null
cas: "None"
quotas: null
project-quotas: null
service_endpoints:
# map endpoint type defined in service catalog to CADF typeURI
key-manager: service/security/keymanager
barbican_api_uwsgi:
uwsgi:
add-header: "Connection: close"
buffer-size: 65535
die-on-term: true
enable-threads: true
exit-on-reload: false
hook-master-start: unix_signal:15 gracefully_kill_them_all
lazy-apps: true
log-x-forwarded-for: true
master: true
procname-prefix-spaced: "barbiacan-api:"
route-user-agent: '^kube-probe.* donotlog:'
thunder-lock: true
worker-reload-mercy: 80
wsgi-file: /var/lib/openstack/bin/barbican-wsgi-api
processes: 1
stats: 0.0.0.0:1717
stats-http: true
barbican:
DEFAULT:
transport_url: null
log_config_append: /etc/barbican/logging.conf
keystone_authtoken:
auth_type: password
auth_version: v3
memcache_security_strategy: ENCRYPT
memcache_secret_key: null
service_type: key-manager
database:
max_retries: -1
# -- Database connection URI. When empty the URI is auto-generated
## from endpoints.oslo_db. Set to null to disable auto-generation,
## e.g. when using an operator such as mariadb-operator that supplies
## the connection string via a mounted configuration snippet.
connection: ""
barbican_api:
# NOTE(portdirect): the bind port should not be defined, and is manipulated
# via the endpoints section.
bind_port: null
oslo_policy:
policy_file: /etc/barbican/policy.yaml
oslo_concurrency:
lock_path: /var/lock
# When using the simple_crypto_plugin, a kek must be provided as:
# .conf.barbican.simple_crypto_plugin.kek
# If no kek is provided, barbican will use a well-known default.
# If upgrading the chart with a new kek, the old kek must be provided in:
# .conf.simple_crypto_plugin_rewrap.old_kek
# Please refer to the .conf.simple_crypto_key_rewrap section below.
# The barbican defaults are included here as a reference:
# secretstore:
# enabled_secretstore_plugins:
# - store_crypto
# crypto:
# enabled_crypto_plugins:
# - simple_crypto
# simple_crypto_plugin:
# # The kek should be a 32-byte value which is base64 encoded.
# # First key is used for ecnrypting new data
# kek: "dGhpcnR5X3R3b19ieXRlX2tleWJsYWhibGFoYmxhaGg="
# # Additional keys used for decrypting existing data
# kek: "xCDpcnR5X3R3b19ieXRlX2tleWJsYWhibGFoYmxhaGg="
# KEK rotation for the simple_crypto plugin
simple_crypto_kek_rewrap:
# To allow for chart upgrades when modifying the Key Encryption Keys, the
# db-sync job can rewrap the existing project keys with the new kek, leaving
# each secret’s encrypted data unchanged.
# This feature is enabled automatically, if a kek is specified at:
# .conf.barbican.simple_crypto_plugin.kek
# and the previous kek is also specified at:
# .conf.simple_crypto_kek_rewrap.old_kek
# The project keys are decrypted with 'old_kek' and re-encrypted with the
# target kek (as defined in barbican.conf).
# This resembles the lightweight rotation described here, which was never
# implemented for the simple crypto plugin:
# https://specs.openstack.org/openstack/barbican-specs/specs/liberty/add-crypto-mkek-rotation-support-lightweight.html
# The KEK value "dGhpcnR5X3R3b19ieXRlX2tleWJsYWhibGFoYmxhaGg=" matches the
# plugin default, and is retained here for convenience, in case the chart was
# previously installed without explicitly specifying a kek.
# old_kek allows commna-separated string for keks
# old_kek:
# # First key is used for ecnrypting new data
# # Additional keys used for decrypting existing data
# - "dGhpcnR5X3R3b19ieXRlX2tleWJsYWhibGFoYmxhaGg=,dDDpcnR5X3R3b19ieXRlX2tleWJsYWhibGFoYmxhaGg="
old_kek: "dGhpcnR5X3R3b19ieXRlX2tleWJsYWhibGFoYmxhaGg="
logging:
loggers:
keys:
- root
- barbican
handlers:
keys:
- stdout
- stderr
- "null"
formatters:
keys:
- context
- default
logger_root:
level: WARNING
handlers: 'null'
logger_barbican:
level: INFO
handlers:
- stdout
qualname: barbican
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"
# Names of secrets used by bootstrap and environmental checks
secrets:
identity:
admin: barbican-keystone-admin
barbican: barbican-keystone-user
oslo_db:
admin: barbican-db-admin
barbican: barbican-db-user
oslo_messaging:
admin: barbican-rabbitmq-admin
barbican: barbican-rabbitmq-user
tls:
key_manager:
api:
public: barbican-tls-public
internal: barbican-tls-internal
oci_image_registry:
barbican: barbican-oci-image-registry
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
oci_image_registry:
name: oci-image-registry
namespace: oci-image-registry
auth:
enabled: false
barbican:
username: barbican
password: password
hosts:
default: localhost
host_fqdn_override:
default: null
port:
registry:
default: null
identity:
name: keystone
auth:
admin:
region_name: RegionOne
username: admin
password: password
project_name: admin
user_domain_name: default
project_domain_name: default
barbican:
role: admin
region_name: RegionOne
username: barbican
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
key_manager:
name: barbican
hosts:
default: barbican-api
public: barbican
host_fqdn_override:
default:
tls:
secretName: barbican-tls-internal
issuerRef:
kind: ClusterIssuer
name: ca-clusterissuer
path:
default: /
healthcheck: /healthcheck
scheme:
default: http
service: http
port:
api:
default: 9311
public: 80
service: 9311
oslo_db:
auth:
admin:
username: root
password: password
secret:
tls:
internal: mariadb-tls-direct
barbican:
username: barbican
password: password
hosts:
default: mariadb
host_fqdn_override:
default: null
path: /barbican
scheme: mysql+pymysql
port:
mysql:
default: 3306
oslo_messaging:
auth:
admin:
username: rabbitmq
password: password
secret:
tls:
internal: rabbitmq-tls-direct
barbican:
username: barbican
password: password
statefulset:
replicas: 2
name: rabbitmq-rabbitmq
hosts:
default: rabbitmq
host_fqdn_override:
default: null
path: /barbican
scheme: rabbit
port:
amqp:
default: 5672
http:
default: 15672
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
fluentd:
namespace: null
name: fluentd
hosts:
default: fluentd-logging
host_fqdn_override:
default: null
path:
default: null
scheme: 'http'
port:
service:
default: 24224
metrics:
default: 24220
# NOTE(tp6510): these endpoints allow for things like DNS lookups and ingress
# They are using to enable the Egress K8s network policy.
kube_dns:
namespace: kube-system
name: kubernetes-dns
hosts:
default: kube-dns
host_fqdn_override:
default: null
path:
default: null
scheme: http
port:
dns:
default: 53
protocol: UDP
ingress:
namespace: null
name: ingress
hosts:
default: ingress
port:
ingress:
default: 80
tls:
identity: false
oslo_messaging: false
oslo_db: false
manifests:
certificates: false
configmap_bin: true
configmap_etc: true
deployment_api: true
ingress_api: true
job_bootstrap: true
job_db_init: true
job_db_sync: true
job_db_drop: false
job_image_repo_sync: true
job_rabbit_init: true
job_ks_endpoints: true
job_ks_service: true
job_ks_user: true
pdb_api: true
pod_test: true
secret_db: true
network_policy: false
secret_ingress_tls: true
secret_keystone: true
secret_rabbitmq: true
secret_registry: true
service_ingress_api: true
service_api: true
# -- Array of extra K8s manifests to deploy
## Note: Supports use of custom Helm templates
extraObjects: []
# - apiVersion: secrets-store.csi.x-k8s.io/v1
# kind: SecretProviderClass
# metadata:
# name: osh-secrets-store
# spec:
# provider: aws
# parameters:
# objects: |
# - objectName: "osh"
# objectType: "secretsmanager"
# jmesPath:
# - path: "client_id"
# objectAlias: "client_id"
# - path: "client_secret"
# objectAlias: "client_secret"
# secretObjects:
# - data:
# - key: client_id
# objectName: client_id
# - key: client_secret
# objectName: client_secret
# secretName: osh-secrets-store
# type: Opaque
# labels:
# app.kubernetes.io/part-of: osh
...
================================================
FILE: bindep.txt
================================================
# This file facilitates OpenStack-CI package installation
# before the execution of any tests.
# Required to build language docs
gettext
================================================
FILE: blazar/Chart.yaml
================================================
# 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.
---
apiVersion: v2
appVersion: v1.0.0
description: OpenStack Resource Reservation Service
name: blazar
type: application
version: 2025.2.0
home: https://docs.openstack.org/blazar/
icon: https://openmetal.io/wp-content/uploads/2024/10/OpenStack_Project_Blazar-300x300.jpg
sources:
- https://opendev.org/openstack/blazar
keywords:
- openstack
- reservation
- helm
maintainers:
- name: OpenStack Helm Team
email: openstack-helm@lists.openstack.org
dependencies:
- name: helm-toolkit
repository: file://../helm-toolkit
version: ">= 0.1.0"
...
================================================
FILE: blazar/templates/bin/_blazar_api.sh.tpl
================================================
#!/bin/bash
{{/*
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 -ex
COMMAND="${@:-start}"
function start () {
exec blazar-api \
--config-file /etc/blazar/blazar.conf
}
function stop () {
kill -TERM 1
}
$COMMAND
================================================
FILE: blazar/templates/bin/_blazar_manager.sh.tpl
================================================
#!/bin/bash
{{/*
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 -ex
exec blazar-manager \
--config-file /etc/blazar/blazar.conf
================================================
FILE: blazar/templates/bin/_db-sync.sh.tpl
================================================
#!/bin/bash
{{/*
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 -ex
blazar-db-manage \
--config-file /etc/blazar/blazar.conf \
upgrade head
================================================
FILE: blazar/templates/configmap-bin.yaml
================================================
{{/*
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.
*/}}
{{- if .Values.manifests.configmap_bin }}
{{- $envAll := . }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: blazar-bin
data:
{{- if .Values.images.local_registry.active }}
image-repo-sync.sh: |
{{- include "helm-toolkit.scripts.image_repo_sync" . | indent 4 }}
{{- end }}
rally-test.sh: |
{{ tuple .Values.conf.rally_tests | include "helm-toolkit.scripts.rally_test" | indent 4 }}
db-init.py: |
{{- include "helm-toolkit.scripts.db_init" . | indent 4 }}
db-sync.sh: |
{{ tuple "bin/_db-sync.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
db-drop.py: |
{{- include "helm-toolkit.scripts.db_drop" . | indent 4 }}
blazar-api.sh: |
{{ tuple "bin/_blazar_api.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
blazar-manager.sh: |
{{ tuple "bin/_blazar_manager.sh.tpl" . | include "helm-toolkit.utils.template" | 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 }}
{{- if .Values.manifests.job_rabbit_init }}
rabbit-init.sh: |
{{- include "helm-toolkit.scripts.rabbit_init" . | indent 4 }}
{{- end }}
{{- end }}
...
================================================
FILE: blazar/templates/configmap-etc.yaml
================================================
{{/*
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.
*/}}
{{- if (.Values.global).subchart_release_name }}
{{- $_ := set . "deployment_name" .Chart.Name }}
{{- else }}
{{- $_ := set . "deployment_name" .Release.Name }}
{{- end }}
{{- define "blazar.configmap.etc" }}
{{- $configMapName := index . 0 }}
{{- $envAll := index . 1 }}
{{- with $envAll }}
{{- if empty .Values.conf.blazar.keystone_authtoken.auth_uri -}}
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set .Values.conf.blazar.keystone_authtoken "auth_uri" -}}
{{- end -}}
{{- if empty .Values.conf.blazar.keystone_authtoken.auth_url -}}
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set .Values.conf.blazar.keystone_authtoken "auth_url" -}}
{{- end -}}
{{- if empty .Values.conf.blazar.keystone_authtoken.memcached_servers -}}
{{- $_ := tuple "oslo_cache" "internal" "memcache" . | include "helm-toolkit.endpoints.host_and_port_endpoint_uri_lookup" | set .Values.conf.blazar.keystone_authtoken "memcached_servers" -}}
{{- end -}}
{{- if empty .Values.conf.blazar.keystone_authtoken.memcache_secret_key -}}
{{- $_ := set .Values.conf.blazar.keystone_authtoken "memcache_secret_key" ( default ( randAlphaNum 64 ) .Values.endpoints.oslo_cache.auth.memcache_secret_key ) -}}
{{- end -}}
{{- if and (not (kindIs "invalid" .Values.conf.blazar.database.connection)) (empty .Values.conf.blazar.database.connection) -}}
{{- $_ := tuple "oslo_db" "internal" "blazar" "mysql" . | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup"| set .Values.conf.blazar.database "connection" -}}
{{- end -}}
{{- if empty .Values.conf.blazar.DEFAULT.transport_url -}}
{{- $_ := tuple "oslo_messaging" "internal" "blazar" "amqp" . | include "helm-toolkit.endpoints.authenticated_transport_endpoint_uri_lookup" | set .Values.conf.blazar.DEFAULT "transport_url" -}}
{{- end -}}
{{- if and (empty .Values.conf.logging.handler_fluent) (has "fluent" .Values.conf.logging.handlers.keys) -}}
{{- $fluentd_host := tuple "fluentd" "internal" $envAll | include "helm-toolkit.endpoints.hostname_namespaced_endpoint_lookup" }}
{{- $fluentd_port := tuple "fluentd" "internal" "service" $envAll | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
{{- $fluent_args := printf "('%s.%s', '%s', %s)" .Release.Namespace .Release.Name $fluentd_host $fluentd_port }}
{{- $handler_fluent := dict "class" "fluent.handler.FluentHandler" "formatter" "fluent" "args" $fluent_args -}}
{{- $_ := set .Values.conf.logging "handler_fluent" $handler_fluent -}}
{{- end -}}
{{- if and (empty .Values.conf.logging.formatter_fluent) (has "fluent" .Values.conf.logging.formatters.keys) -}}
{{- $formatter_fluent := dict "class" "oslo_log.formatters.FluentFormatter" -}}
{{- $_ := set .Values.conf.logging "formatter_fluent" $formatter_fluent -}}
{{- end -}}
{{- if empty .Values.conf.blazar.oslo_messaging_notifications.transport_url -}}
{{- $_ := tuple "oslo_messaging" "internal" "blazar" "amqp" . | include "helm-toolkit.endpoints.authenticated_transport_endpoint_uri_lookup" | set .Values.conf.blazar.oslo_messaging_notifications "transport_url" -}}
{{- end -}}
{{/*
Openstack auth
*/}}
{{- if empty .Values.conf.blazar.DEFAULT.os_auth_host -}}
{{- $_ := tuple "identity" "internal" . | include "helm-toolkit.endpoints.endpoint_host_lookup" | set .Values.conf.blazar.DEFAULT "os_auth_host" -}}
{{- end -}}
{{- if empty .Values.conf.blazar.DEFAULT.os_auth_port -}}
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" | set .Values.conf.blazar.DEFAULT "os_auth_port" -}}
{{- end -}}
{{- if empty .Values.conf.blazar.DEFAULT.os_auth_protocol -}}
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_scheme_lookup" | set .Values.conf.blazar.DEFAULT "os_auth_protocol" -}}
{{- end -}}
{{- if empty .Values.conf.blazar.DEFAULT.os_region_name -}}
{{- $_ := set .Values.conf.blazar.DEFAULT "os_region_name" .Values.endpoints.identity.auth.admin.region
gitextract_9pqhdo10/
├── .gitignore
├── .gitreview
├── .pre-commit-config.yaml
├── CONTRIBUTING.rst
├── LICENSE
├── Makefile
├── README.rst
├── aodh/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _aodh-alarms-cleaner.sh.tpl
│ │ │ ├── _aodh-api.sh.tpl
│ │ │ ├── _aodh-evaluator.sh.tpl
│ │ │ ├── _aodh-listener.sh.tpl
│ │ │ ├── _aodh-notifier.sh.tpl
│ │ │ ├── _aodh-test.sh.tpl
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ └── _db-sync.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-alarms-cleaner.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-evaluator.yaml
│ │ ├── deployment-listener.yaml
│ │ ├── deployment-notifier.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-aodh-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── barbican/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _barbican-test.sh.tpl
│ │ │ ├── _barbican.sh.tpl
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ └── _simple_crypto_kek_rewrap.py.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── bindep.txt
├── blazar/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _blazar_api.sh.tpl
│ │ │ ├── _blazar_manager.sh.tpl
│ │ │ └── _db-sync.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-manager.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pdb-manager.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── ca-clusterissuer/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── clusterissuer-ca.yaml
│ │ ├── extra-manifests.yaml
│ │ └── secret-ca.yaml
│ └── values.yaml
├── ca-issuer/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── extra-manifests.yaml
│ │ ├── issuer-ca.yaml
│ │ └── secret-ca.yaml
│ └── values.yaml
├── ceilometer/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceilometer-central.sh.tpl
│ │ │ ├── _ceilometer-compute.sh.tpl
│ │ │ ├── _ceilometer-ipmi.sh.tpl
│ │ │ ├── _ceilometer-notification.sh.tpl
│ │ │ └── _db-sync.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-compute.yaml
│ │ ├── daemonset-ipmi.yaml
│ │ ├── deployment-central.yaml
│ │ ├── deployment-notification.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── ceph-adapter-rook/
│ ├── Chart.yaml
│ ├── README.md
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _config-manager.sh.tpl
│ │ │ └── _key-manager.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc-client.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-namespace-client-ceph-config.yaml
│ │ └── job-namespace-client-key.yaml
│ └── values.yaml
├── ceph-client/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ ├── _init-dirs.sh.tpl
│ │ │ ├── mds/
│ │ │ │ └── _start.sh.tpl
│ │ │ ├── pool/
│ │ │ │ ├── _calc.py.tpl
│ │ │ │ └── _init.sh.tpl
│ │ │ └── utils/
│ │ │ ├── _checkDNS.sh.tpl
│ │ │ ├── _checkDNS_start.sh.tpl
│ │ │ ├── _checkPGs.sh.tpl
│ │ │ └── _defragOSDs.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc-client.yaml
│ │ ├── cronjob-checkPGs.yaml
│ │ ├── cronjob-defragosds.yaml
│ │ ├── deployment-checkdns.yaml
│ │ ├── deployment-mds.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-rbd-pool.yaml
│ │ ├── pod-helm-tests.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── ceph-mon/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _init-dirs.sh.tpl
│ │ │ ├── _post-apply.sh.tpl
│ │ │ ├── keys/
│ │ │ │ ├── _bootstrap-keyring-generator.py.tpl
│ │ │ │ ├── _bootstrap-keyring-manager.sh.tpl
│ │ │ │ └── _storage-keyring-manager.sh.tpl
│ │ │ ├── mgr/
│ │ │ │ ├── _check.sh.tpl
│ │ │ │ └── _start.sh.tpl
│ │ │ ├── mon/
│ │ │ │ ├── _check.sh.tpl
│ │ │ │ ├── _start.sh.tpl
│ │ │ │ └── _stop.sh.tpl
│ │ │ ├── moncheck/
│ │ │ │ ├── _reap-zombies.py.tpl
│ │ │ │ └── _start.sh.tpl
│ │ │ └── utils/
│ │ │ ├── _checkDNS.sh.tpl
│ │ │ ├── _checkObjectReplication.py.tpl
│ │ │ └── _checkPGs.py.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── configmap-templates.yaml
│ │ ├── daemonset-mon.yaml
│ │ ├── deployment-mgr.yaml
│ │ ├── deployment-moncheck.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-keyring.yaml
│ │ ├── job-post-apply.yaml
│ │ ├── job-storage-admin-keys.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-mgr.yaml
│ │ ├── service-mon-discovery.yaml
│ │ ├── service-mon.yaml
│ │ ├── snippets/
│ │ │ └── _mon_host_from_k8s_ep.sh.tpl
│ │ └── utils/
│ │ └── _mon_daemonset_overrides.tpl
│ └── values.yaml
├── ceph-osd/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ ├── _init-dirs.sh.tpl
│ │ │ ├── _post-apply.sh.tpl
│ │ │ ├── osd/
│ │ │ │ ├── _check.sh.tpl
│ │ │ │ ├── _config.sh.tpl
│ │ │ │ ├── _directory.sh.tpl
│ │ │ │ ├── _init.sh.tpl
│ │ │ │ ├── _log-runner-stop.sh.tpl
│ │ │ │ ├── _log-tail.sh.tpl
│ │ │ │ ├── _start.sh.tpl
│ │ │ │ ├── _stop.sh.tpl
│ │ │ │ └── ceph-volume/
│ │ │ │ ├── _block.sh.tpl
│ │ │ │ ├── _bluestore.sh.tpl
│ │ │ │ ├── _common.sh.tpl
│ │ │ │ ├── _init-ceph-volume-helper-block-logical.sh.tpl
│ │ │ │ ├── _init-ceph-volume-helper-bluestore.sh.tpl
│ │ │ │ ├── _init-ceph-volume-helper-directory.sh.tpl
│ │ │ │ └── _init-with-ceph-volume.sh.tpl
│ │ │ └── utils/
│ │ │ ├── _checkDNS.sh.tpl
│ │ │ ├── _defragOSDs.sh.tpl
│ │ │ └── _resolveLocations.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-osd.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-post-apply.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-registry.yaml
│ │ └── utils/
│ │ └── _osd_daemonset_overrides.tpl
│ └── values.yaml
├── ceph-provisioners/
│ ├── Chart.yaml
│ ├── crds/
│ │ ├── snapshot.storage.k8s.io_volumesnapshotclasses.yaml
│ │ ├── snapshot.storage.k8s.io_volumesnapshotcontents.yaml
│ │ └── snapshot.storage.k8s.io_volumesnapshots.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ └── provisioner/
│ │ │ ├── cephfs/
│ │ │ │ ├── _client-key-manager.sh.tpl
│ │ │ │ └── _start.sh.tpl
│ │ │ └── rbd/
│ │ │ ├── _namespace-client-ceph-config-manager.sh.tpl
│ │ │ ├── _namespace-client-key-cleaner.sh.tpl
│ │ │ ├── _namespace-client-key-manager.sh.tpl
│ │ │ └── _start.sh.tpl
│ │ ├── configmap-bin-provisioner.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc-client.yaml
│ │ ├── configmap-etc-csi.yaml
│ │ ├── daemonset-csi-rbd-plugin.yaml
│ │ ├── deployment-csi-rbd-provisioner.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-cephfs-client-key.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-namespace-client-ceph-config.yaml
│ │ ├── job-namespace-client-key-cleaner.yaml
│ │ ├── job-namespace-client-key.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-registry.yaml
│ │ └── storageclass.yaml
│ └── values.yaml
├── ceph-rgw/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-rgw-storage-init.sh.tpl
│ │ │ ├── _create-rgw-placement-targets.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ ├── _init-dirs.sh.tpl
│ │ │ ├── _rgw-restart.sh.tpl
│ │ │ ├── rgw/
│ │ │ │ ├── _init.sh.tpl
│ │ │ │ ├── _rerun-pool-job.sh.tpl
│ │ │ │ └── _start.sh.tpl
│ │ │ └── utils/
│ │ │ └── _checkDNS.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin-ks.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-ceph-rgw-templates.yaml
│ │ ├── configmap-etc-client.yaml
│ │ ├── deployment-rgw.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-rgw.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rgw-placement-targets.yaml
│ │ ├── job-rgw-pool.yaml
│ │ ├── job-rgw-restart.yaml
│ │ ├── job-rgw-storage-init.yaml
│ │ ├── job-s3-admin.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone-rgw.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-s3-rgw.yaml
│ │ ├── service-ingress-rgw.yaml
│ │ └── service-rgw.yaml
│ └── values.yaml
├── cert-rotation/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _rotate-certs.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── cron-job-cert-rotate.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-cert-rotate.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── cinder/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _backup-storage-init.sh.tpl
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ ├── _cinder-api.sh.tpl
│ │ │ ├── _cinder-backup.sh.tpl
│ │ │ ├── _cinder-scheduler.sh.tpl
│ │ │ ├── _cinder-volume.sh.tpl
│ │ │ ├── _clean-secrets.sh.tpl
│ │ │ ├── _create-internal-tenant-id.sh.tpl
│ │ │ ├── _db-purge.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _external-ceph-rbd-admin-keyring.sh.tpl
│ │ │ ├── _iscsiadm.tpl
│ │ │ ├── _multipath.tpl
│ │ │ ├── _multipathd.tpl
│ │ │ ├── _retrieve-internal-tenant-id.sh.tpl
│ │ │ ├── _storage-init.sh.tpl
│ │ │ └── _volume-usage-audit.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-cinder-db-purge.yaml
│ │ ├── cron-job-cinder-volume-usage-audit.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-backup.yaml
│ │ ├── deployment-scheduler.yaml
│ │ ├── deployment-volume.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-backup-storage-init.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-clean.yaml
│ │ ├── job-create-internal-tenant.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── job-storage-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── pvc-backup.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-external-ceph-keyring.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── utils/
│ │ ├── _ceph_backend_list.tpl
│ │ ├── _has_ceph_backend.tpl
│ │ └── _is_ceph_backend.tpl
│ └── values.yaml
├── cloudkitty/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _cloudkitty-api.sh.tpl
│ │ │ ├── _cloudkitty-processor.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ └── _storage-init.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-processor.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbitmq-init.yaml
│ │ ├── job-storage-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pbd-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ └── service-api.yaml
│ └── values.yaml
├── cyborg/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _cyborg-agent.sh.tpl
│ │ │ ├── _cyborg-api.sh.tpl
│ │ │ ├── _cyborg-conductor.sh.tpl
│ │ │ └── _db-sync.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-agent.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-conductor.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── designate/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _designate-api.sh.tpl
│ │ │ ├── _designate-central.sh.tpl
│ │ │ ├── _designate-mdns.sh.tpl
│ │ │ ├── _designate-producer.sh.tpl
│ │ │ ├── _designate-service-cleaner.sh.tpl
│ │ │ ├── _designate-sink.sh.tpl
│ │ │ └── _designate-worker.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-service.cleaner.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-central.yaml
│ │ ├── deployment-mdns.yaml
│ │ ├── deployment-producer.yaml
│ │ ├── deployment-sink.yaml
│ │ ├── deployment-worker.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pdb-central.yaml
│ │ ├── pdb-mdns.yaml
│ │ ├── pdb-producer.yaml
│ │ ├── pdb-sink.yaml
│ │ ├── pdb-worker.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── service-mdns.yaml
│ └── values.yaml
├── doc/
│ ├── helm-docs.rst.gotmpl
│ ├── requirements.txt
│ └── source/
│ ├── _exts/
│ │ └── helm_docs.py
│ ├── _static/
│ │ └── .placeholder
│ ├── chart/
│ │ ├── index.rst
│ │ ├── infra_charts.rst
│ │ └── openstack_charts.rst
│ ├── conf.py
│ ├── devref/
│ │ ├── endpoints.rst
│ │ ├── fluent-logging.rst
│ │ ├── images.rst
│ │ ├── index.rst
│ │ ├── networking.rst
│ │ ├── node-and-label-specific-configurations.rst
│ │ ├── oslo-config.rst
│ │ ├── pod-disruption-budgets.rst
│ │ └── upgrades.rst
│ ├── index.rst
│ ├── install/
│ │ ├── before_starting.rst
│ │ ├── index.rst
│ │ ├── kubernetes.rst
│ │ ├── openstack.rst
│ │ └── prerequisites.rst
│ ├── logging/
│ │ ├── elasticsearch.rst
│ │ ├── fluent-logging.rst
│ │ ├── index.rst
│ │ └── kibana.rst
│ ├── monitoring/
│ │ ├── grafana.rst
│ │ ├── index.rst
│ │ ├── nagios.rst
│ │ └── prometheus.rst
│ ├── readme.rst
│ ├── specs/
│ │ ├── 2025.1/
│ │ │ └── chart_versioning.rst
│ │ ├── 2025.2/
│ │ │ └── own_service_accounts.rst
│ │ ├── COPYME
│ │ ├── developer-environment.rst
│ │ ├── fluentbit-fluentd-architecture.rst
│ │ ├── index.rst
│ │ ├── multi-os.rst
│ │ ├── neutron-multiple-sdns.rst
│ │ ├── nginx-sidecar.rst
│ │ ├── osh-1.0-requirements.rst
│ │ ├── osh-lma-stack.rst
│ │ ├── support-OCI-image-registry-with-authentication-turned-on.rst
│ │ ├── support-linux-bridge-on-neutron.rst
│ │ ├── tenant-ceph.rst
│ │ └── values-ordering.rst
│ ├── testing/
│ │ ├── ceph-node-resiliency.rst
│ │ ├── ceph-resiliency/
│ │ │ ├── README.rst
│ │ │ ├── disk-failure.rst
│ │ │ ├── failure-domain.rst
│ │ │ ├── host-failure.rst
│ │ │ ├── index.rst
│ │ │ ├── monitor-failure.rst
│ │ │ ├── namespace-deletion.rst
│ │ │ ├── osd-failure.rst
│ │ │ └── validate-object-replication.rst
│ │ ├── ceph-upgrade.rst
│ │ ├── helm-tests.rst
│ │ └── index.rst
│ ├── troubleshooting/
│ │ ├── ceph.rst
│ │ ├── database.rst
│ │ ├── index.rst
│ │ ├── migrate-ceph-to-rook.rst
│ │ ├── persistent-storage.rst
│ │ └── ubuntu-hwe-kernel.rst
│ └── upgrade/
│ ├── index.rst
│ └── multiple-osd-releases.rst
├── elastic-apm-server/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── elastic-filebeat/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── elastic-metricbeat/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-node-metrics.yaml
│ │ ├── deployment-modules.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── elastic-packetbeat/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── elasticsearch/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _apache.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _create_s3_buckets.sh.tpl
│ │ │ ├── _create_s3_users.sh.tpl
│ │ │ ├── _create_template.sh.tpl
│ │ │ ├── _curator.sh.tpl
│ │ │ ├── _elasticsearch.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ └── _verify-repositories.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin-curator.yaml
│ │ ├── configmap-bin-elasticsearch.yaml
│ │ ├── configmap-etc-curator.yaml
│ │ ├── configmap-etc-elasticsearch.yaml
│ │ ├── cron-job-curator.yaml
│ │ ├── cron-job-verify-repositories.yaml
│ │ ├── deployment-client.yaml
│ │ ├── deployment-gateway.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-elasticsearch.yaml
│ │ ├── job-elasticsearch-template.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-s3-bucket.yaml
│ │ ├── job-s3-user.yaml
│ │ ├── monitoring/
│ │ │ └── prometheus/
│ │ │ ├── exporter-deployment.yaml
│ │ │ ├── exporter-network-policy.yaml
│ │ │ └── exporter-service.yaml
│ │ ├── network-policy.yaml
│ │ ├── object-bucket-claim.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-elasticsearch.yaml
│ │ ├── secret-environment.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-s3-user.yaml
│ │ ├── service-data.yaml
│ │ ├── service-discovery.yaml
│ │ ├── service-gateway.yaml
│ │ ├── service-ingress-elasticsearch.yaml
│ │ ├── service-logging.yaml
│ │ ├── statefulset-data.yaml
│ │ └── statefulset-master.yaml
│ └── values.yaml
├── etcd/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _etcd-db-compact.sh.tpl
│ │ │ ├── _etcd-healthcheck.sh.tpl
│ │ │ └── _etcd.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── cron-job-db-compact.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-discovery.yaml
│ │ ├── service.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── fluentbit/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _fluent-bit.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-fluent-bit.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── fluentd/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _fluentd.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ ├── secret-fluentd.yaml
│ │ ├── secret-kafka-creds.yaml
│ │ ├── secret-registry.yaml
│ │ └── service-fluentd.yaml
│ └── values.yaml
├── freezer/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ └── _freezer-api.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── pdb-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── glance/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ ├── _clean-image.sh.tpl
│ │ │ ├── _clean-secrets.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _glance-api.sh.tpl
│ │ │ ├── _iscsiadm.tpl
│ │ │ ├── _metadefs-load.sh.tpl
│ │ │ ├── _multipath.tpl
│ │ │ ├── _multipathd.tpl
│ │ │ ├── _nginx.sh.tpl
│ │ │ └── _storage-init.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-clean.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-metadefs-load.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── job-storage-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── pvc-images.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── gnocchi/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ ├── _clean-secrets.sh.tpl
│ │ │ ├── _db-init.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _gnocchi-api.sh.tpl
│ │ │ ├── _gnocchi-metricd.sh.tpl
│ │ │ ├── _gnocchi-resources-cleaner.sh.tpl
│ │ │ ├── _gnocchi-statsd.sh.tpl
│ │ │ ├── _gnocchi-test.sh.tpl
│ │ │ └── _storage-init.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-resources-cleaner.yaml
│ │ ├── daemonset-metricd.yaml
│ │ ├── daemonset-statsd.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-clean.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init-indexer.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-storage-init.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-gnocchi-test.yaml
│ │ ├── secret-db-indexer.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── service-statsd.yaml
│ └── values.yaml
├── grafana/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-session-sync.py.tpl
│ │ │ ├── _grafana.sh.tpl
│ │ │ ├── _selenium-tests.py.tpl
│ │ │ └── _set-admin-password.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-dashboards.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-grafana.yaml
│ │ ├── job-db-init-session.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-session-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-run-migrator.yaml
│ │ ├── job-set-admin-user.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-admin-creds.yaml
│ │ ├── secret-db-session.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-prom-creds.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secrets/
│ │ │ └── _my.cnf.tpl
│ │ ├── service-ingress.yaml
│ │ └── service.yaml
│ └── values.yaml
├── heat/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _heat-api.sh.tpl
│ │ │ ├── _heat-cfn.sh.tpl
│ │ │ ├── _heat-engine-cleaner.sh.tpl
│ │ │ ├── _heat-engine.sh.tpl
│ │ │ ├── _heat-purge-deleted-active.sh.tpl
│ │ │ └── _trusts.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-engine-cleaner.yaml
│ │ ├── cron-job-purge-deleted.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-cfn.yaml
│ │ ├── deployment-engine.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── ingress-cfn.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user-domain.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── job-trusts.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pdb-cfn.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-cfn.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── service-ingress-cfn.yaml
│ └── values.yaml
├── helm-toolkit/
│ ├── Chart.yaml
│ └── templates/
│ ├── endpoints/
│ │ ├── _authenticated_endpoint_uri_lookup.tpl
│ │ ├── _authenticated_transport_endpoint_uri_lookup.tpl
│ │ ├── _endpoint_host_lookup.tpl
│ │ ├── _endpoint_port_lookup.tpl
│ │ ├── _endpoint_token_lookup.tpl
│ │ ├── _host_and_port_endpoint_uri_lookup.tpl
│ │ ├── _hostname_fqdn_endpoint_lookup.tpl
│ │ ├── _hostname_namespaced_endpoint_lookup.tpl
│ │ ├── _hostname_namespaced_endpoint_namespace_lookup.tpl
│ │ ├── _hostname_short_endpoint_lookup.tpl
│ │ ├── _keystone_endpoint_name_lookup.tpl
│ │ ├── _keystone_endpoint_path_lookup.tpl
│ │ ├── _keystone_endpoint_scheme_lookup.tpl
│ │ ├── _keystone_endpoint_uri_lookup.tpl
│ │ └── _service_name_endpoint_with_namespace_lookup.tpl
│ ├── manifests/
│ │ ├── _ceph-storageclass.tpl
│ │ ├── _certificates.tpl
│ │ ├── _configmap-oslo-policy.tpl
│ │ ├── _ingress.tpl
│ │ ├── _job-bootstrap.tpl
│ │ ├── _job-db-drop-mysql.tpl
│ │ ├── _job-db-init-mysql.tpl
│ │ ├── _job-db-sync.tpl
│ │ ├── _job-ks-endpoints.tpl
│ │ ├── _job-ks-service.tpl
│ │ ├── _job-ks-user.yaml.tpl
│ │ ├── _job-rabbit-init.yaml.tpl
│ │ ├── _job-s3-bucket.yaml.tpl
│ │ ├── _job-s3-user.yaml.tpl
│ │ ├── _job_image_repo_sync.tpl
│ │ ├── _network_policy.tpl
│ │ ├── _secret-ks-etc.yaml.tpl
│ │ ├── _secret-registry.yaml.tpl
│ │ ├── _secret-tls.yaml.tpl
│ │ └── _service-ingress.tpl
│ ├── scripts/
│ │ ├── _create-s3-user.sh.tpl
│ │ ├── _db-drop.py.tpl
│ │ ├── _db-init.py.tpl
│ │ ├── _db-pg-init.sh.tpl
│ │ ├── _image-repo-sync.sh.tpl
│ │ ├── _ks-domain-user.sh.tpl
│ │ ├── _ks-endpoints.sh.tpl
│ │ ├── _ks-service.sh.tpl
│ │ ├── _ks-user.sh.tpl
│ │ ├── _rabbit-init.sh.tpl
│ │ ├── _rally_test.sh.tpl
│ │ └── db-backup-restore/
│ │ ├── _backup_main.sh.tpl
│ │ └── _restore_main.sh.tpl
│ ├── snippets/
│ │ ├── _custom_job_annotations.tpl
│ │ ├── _custom_pod_annotations.tpl
│ │ ├── _custom_secret_annotations.tpl
│ │ ├── _image.tpl
│ │ ├── _keystone_openrc_env_vars.tpl
│ │ ├── _keystone_openrc_failover_env_vars.tpl
│ │ ├── _keystone_secret_openrc.tpl
│ │ ├── _keystone_user_create_env_vars.tpl
│ │ ├── _kubernetes_apparmor_configmap.tpl
│ │ ├── _kubernetes_apparmor_loader_init_container.tpl
│ │ ├── _kubernetes_apparmor_volumes.tpl
│ │ ├── _kubernetes_container_security_context.tpl
│ │ ├── _kubernetes_entrypoint_init_container.tpl
│ │ ├── _kubernetes_kubectl_params.tpl
│ │ ├── _kubernetes_mandatory_access_control_annotation.tpl
│ │ ├── _kubernetes_metadata_labels.tpl
│ │ ├── _kubernetes_pod_anti_affinity.tpl
│ │ ├── _kubernetes_pod_image_pull_secret.tpl
│ │ ├── _kubernetes_pod_priority_class.tpl
│ │ ├── _kubernetes_pod_rbac_roles.tpl
│ │ ├── _kubernetes_pod_rbac_serviceaccount.tpl
│ │ ├── _kubernetes_pod_runtime_class.tpl
│ │ ├── _kubernetes_pod_security_context.tpl
│ │ ├── _kubernetes_probes.tpl
│ │ ├── _kubernetes_resources.tpl
│ │ ├── _kubernetes_seccomp_annotation.tpl
│ │ ├── _kubernetes_tolerations.tpl
│ │ ├── _kubernetes_upgrades_daemonset.tpl
│ │ ├── _kubernetes_upgrades_deployment.tpl
│ │ ├── _kubernetes_upgrades_statefulset.tpl
│ │ ├── _mon_host_from_k8s_ep.sh.tpl
│ │ ├── _prometheus_pod_annotations.tpl
│ │ ├── _prometheus_service_annotations.tpl
│ │ ├── _release_uuid.tpl
│ │ ├── _rgw_s3_admin_env_vars.tpl
│ │ ├── _rgw_s3_bucket_user_env_vars_rook.tpl
│ │ ├── _rgw_s3_secret_creds.tpl
│ │ ├── _rgw_s3_user_env_vars.tpl
│ │ ├── _service_params.tpl
│ │ ├── _tls_volume.tpl
│ │ ├── _tls_volume_mount.tpl
│ │ └── _values_template_renderer.tpl
│ ├── tls/
│ │ └── _tls_generate_certs.tpl
│ └── utils/
│ ├── _comma_joined_service_list.tpl
│ ├── _configmap_templater.tpl
│ ├── _daemonset_overrides.tpl
│ ├── _daemonset_overrides_root.tpl
│ ├── _dependency_jobs.tpl
│ ├── _dependency_resolver.tpl
│ ├── _hash.tpl
│ ├── _hash2.tpl
│ ├── _host_list.tpl
│ ├── _image_sync_list.tpl
│ ├── _joinListWithComma.tpl
│ ├── _joinListWithCommaAndSingleQuotes.tpl
│ ├── _joinListWithPrefix.tpl
│ ├── _joinListWithSpace.tpl
│ ├── _merge.tpl
│ ├── _template.tpl
│ ├── _to_ini.tpl
│ ├── _to_k8s_env_secret_vars.tpl
│ ├── _to_k8s_env_vars.tpl
│ ├── _to_kv_list.tpl
│ └── _to_oslo_conf.tpl
├── horizon/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── releasenotes/
│ │ └── notes/
│ │ ├── horizon-023da44e7958de05.yaml
│ │ └── horizon-4c5d5e3b58c700a0.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _django.wsgi.tpl
│ │ │ ├── _horizon.sh.tpl
│ │ │ ├── _manage.py.tpl
│ │ │ └── _selenium-test.py.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── configmap-logo.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress.yaml
│ │ └── service.yaml
│ └── values.yaml
├── ironic/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _ironic-api.sh.tpl
│ │ │ ├── _ironic-conductor-init.sh.tpl
│ │ │ ├── _ironic-conductor.sh.tpl
│ │ │ ├── _manage-cleaning-network.sh.tpl
│ │ │ └── _retreive-swift-config.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-manage-cleaning-network.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── statefulset-conductor.yaml
│ └── values.yaml
├── keystone/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _cred-clean.py.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _domain-manage-init.sh.tpl
│ │ │ ├── _domain-manage.py.tpl
│ │ │ ├── _domain-manage.sh.tpl
│ │ │ ├── _fernet-manage.py.tpl
│ │ │ └── _keystone-api.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-credential-rotate.yaml
│ │ ├── cron-job-fernet-rotate.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-credential-cleanup.yaml
│ │ ├── job-credential-setup.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-domain-manage.yaml
│ │ ├── job-fernet-setup.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-credential-keys.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-fernet-keys.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ldap-tls.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── kibana/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _apache.sh.tpl
│ │ │ ├── _create_kibana_index_patterns.sh.tpl
│ │ │ ├── _flush_kibana_metadata.sh.tpl
│ │ │ └── _kibana.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-kibana.yaml
│ │ ├── job-flush-kibana-metadata.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-register-kibana-indexes.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-elasticsearch-creds.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress-kibana.yaml
│ │ └── service.yaml
│ └── values.yaml
├── kube-dns/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-kube-dns.yaml
│ │ ├── deployment-kube-dns.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-kube-dns.yaml
│ │ └── serviceaccount-kube-dns.yaml
│ └── values.yaml
├── kubernetes-keystone-webhook/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _kubernetes-keystone-webhook-test.sh.tpl
│ │ │ └── _start.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-certificates.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── service.yaml
│ └── values.yaml
├── kubernetes-node-problem-detector/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _node-problem-detector.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── ldap/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── _helpers.tpl
│ │ ├── bin/
│ │ │ └── _bootstrap.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── libvirt/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── releasenotes/
│ │ └── notes/
│ │ └── libvirt-339936ca478fbf50.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ └── _libvirt.sh.tpl
│ │ ├── configmap-apparmor.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-libvirt.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network-policy.yaml
│ │ ├── pod-monitor.yaml
│ │ ├── role-cert-manager.yaml
│ │ ├── secret-registry.yaml
│ │ └── utils/
│ │ └── _to_libvirt_conf.tpl
│ └── values.yaml
├── local-storage/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── extra-manifests.yaml
│ │ ├── persistent-volumes.yaml
│ │ └── storage-class.yaml
│ └── values.yaml
├── local-volume-provisioner/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _fakemount.py.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-lvp.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ └── storageclasses.yaml
│ └── values.yaml
├── magnum/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _magnum-api.sh.tpl
│ │ │ ├── _magnum-conductor-init.sh.tpl
│ │ │ └── _magnum-conductor.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user-domain.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── kubeconfig.tpl
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── statefulset-conductor.yaml
│ └── values.yaml
├── manila/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _manila-api.sh.tpl
│ │ │ ├── _manila-data.sh.tpl
│ │ │ ├── _manila-scheduler.sh.tpl
│ │ │ ├── _manila-share-init.sh.tpl
│ │ │ └── _manila-share.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-data.yaml
│ │ ├── deployment-scheduler.yaml
│ │ ├── deployment-share.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── mariadb/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── README.rst
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _backup_mariadb.sh.tpl
│ │ │ ├── _health.sh.tpl
│ │ │ ├── _mariadb-wait-for-cluster.py.tpl
│ │ │ ├── _mariadb_controller.py.tpl
│ │ │ ├── _prometheus-create-mysql-user.sh.tpl
│ │ │ ├── _prometheus-mysqld-exporter.sh.tpl
│ │ │ ├── _restore_mariadb.sh.tpl
│ │ │ ├── _start.py.tpl
│ │ │ ├── _start_mariadb_verify_server.sh.tpl
│ │ │ └── _test.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── configmap-services-tcp.yaml
│ │ ├── cron-job-backup-mariadb.yaml
│ │ ├── deployment-controller.yaml
│ │ ├── exporter-configmap-bin.yaml
│ │ ├── exporter-job-create-user.yaml
│ │ ├── exporter-secrets-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-cluster-wait.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── mariadb-backup-pvc.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-mariadb.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-backup-restore.yaml
│ │ ├── secret-dbadmin-password.yaml
│ │ ├── secret-dbaudit-password.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-rgw.yaml
│ │ ├── secret-sst-password.yaml
│ │ ├── secrets/
│ │ │ ├── _admin_user.cnf.tpl
│ │ │ ├── _admin_user_internal.cnf.tpl
│ │ │ └── _prometheus-exporter_user.cnf.tpl
│ │ ├── secrets-etc.yaml
│ │ ├── service-discovery.yaml
│ │ ├── service-master.yaml
│ │ ├── service.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── mariadb-backup/
│ ├── Chart.yaml
│ ├── README.rst
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _backup_mariadb.sh.tpl
│ │ │ ├── _restore_mariadb.sh.tpl
│ │ │ └── _start_mariadb_verify_server.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-backup-mariadb.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── mariadb-backup-pvc.yaml
│ │ ├── secret-backup-restore.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-rgw.yaml
│ │ ├── secrets/
│ │ │ ├── _admin_user.cnf.tpl
│ │ │ └── _admin_user_internal.cnf.tpl
│ │ └── secrets-etc.yaml
│ └── values.yaml
├── mariadb-cluster/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── README.rst
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _liveness.sh.tpl
│ │ │ ├── _readiness.sh.tpl
│ │ │ └── _test.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-refresh-statefulset.yaml
│ │ ├── mariadb.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-dbadmin-password.yaml
│ │ ├── secret-dbaudit-password.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-sst-password.yaml
│ │ ├── secrets/
│ │ │ ├── _admin_user.cnf.tpl
│ │ │ ├── _admin_user_internal.cnf.tpl
│ │ │ └── _privileges.sql.tpl
│ │ └── secrets-etc.yaml
│ └── values.yaml
├── masakari/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _manage-db.sh.tpl
│ │ │ ├── _masakari-api.sh.tpl
│ │ │ ├── _masakari-engine.sh.tpl
│ │ │ ├── _masakari-host-monitor.sh.tpl
│ │ │ ├── _masakari-instance-monitor.sh.tpl
│ │ │ ├── _masakari-introspective-instance-monitor.sh.tpl
│ │ │ ├── _masakari-monitors-init.sh.tpl
│ │ │ └── _masakari-process-monitor.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-host-monitor.yaml
│ │ ├── daemonset-instance-monitor.yaml
│ │ ├── daemonset-introspective-instance-monitor.yaml
│ │ ├── daemonset-process-monitor.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-engine.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbitmq-init.yaml
│ │ ├── pbd-api.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ └── service-api.yaml
│ └── values.yaml
├── memcached/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _memcached.sh.tpl
│ │ ├── configmap-apparmor.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── mistral/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _mistral-api.sh.tpl
│ │ │ ├── _mistral-engine.sh.tpl
│ │ │ ├── _mistral-event-engine.sh.tpl
│ │ │ └── _mistral-executor.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-executor.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ ├── statefulset-engine.yaml
│ │ └── statefulset-event-engine.yaml
│ └── values.yaml
├── nagios/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _apache.sh.tpl
│ │ │ ├── _nagios-readiness.sh.tpl
│ │ │ └── _selenium-tests.py.tpl
│ │ ├── configmap-additional-plugins.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-nagios.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-nagios.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress-nagios.yaml
│ │ └── service.yaml
│ └── values.yaml
├── namespace-config/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── extra-manifests.yaml
│ │ └── limit-range.yaml
│ └── values.yaml
├── neutron/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _health-probe.py.tpl
│ │ │ ├── _neutron-bagpipe-bgp-init.sh.tpl
│ │ │ ├── _neutron-bagpipe-bgp.sh.tpl
│ │ │ ├── _neutron-bgp-dragent.sh.tpl
│ │ │ ├── _neutron-dhcp-agent-init.sh.tpl
│ │ │ ├── _neutron-dhcp-agent.sh.tpl
│ │ │ ├── _neutron-ironic-agent-init.sh.tpl
│ │ │ ├── _neutron-ironic-agent.sh.tpl
│ │ │ ├── _neutron-l2gw-agent.sh.tpl
│ │ │ ├── _neutron-l3-agent-init.sh.tpl
│ │ │ ├── _neutron-l3-agent.sh.tpl
│ │ │ ├── _neutron-linuxbridge-agent-init-modules.sh.tpl
│ │ │ ├── _neutron-linuxbridge-agent-init.sh.tpl
│ │ │ ├── _neutron-linuxbridge-agent.sh.tpl
│ │ │ ├── _neutron-metadata-agent-init.sh.tpl
│ │ │ ├── _neutron-metadata-agent.sh.tpl
│ │ │ ├── _neutron-netns-cleanup-cron.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent-init-modules.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent-init-netoffload.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent-init.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent-liveness.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent-readiness.sh.tpl
│ │ │ ├── _neutron-openvswitch-agent.sh.tpl
│ │ │ ├── _neutron-ovn-db-sync.sh.tpl
│ │ │ ├── _neutron-ovn-init.sh.tpl
│ │ │ ├── _neutron-ovn-metadata-agent.sh.tpl
│ │ │ ├── _neutron-ovn-vpn-agent-init.sh.tpl
│ │ │ ├── _neutron-ovn-vpn-agent.sh.tpl
│ │ │ ├── _neutron-rpc-server.sh.tpl
│ │ │ ├── _neutron-server.sh.tpl
│ │ │ ├── _neutron-sriov-agent-init.sh.tpl
│ │ │ ├── _neutron-sriov-agent.sh.tpl
│ │ │ ├── _neutron-test-force-cleanup.sh.tpl
│ │ │ └── _nginx.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-ovn-db-sync.yaml
│ │ ├── daemonset-bagpipe-bgp.yaml
│ │ ├── daemonset-bgp-dragent.yaml
│ │ ├── daemonset-dhcp-agent.yaml
│ │ ├── daemonset-l2gw-agent.yaml
│ │ ├── daemonset-l3-agent.yaml
│ │ ├── daemonset-lb-agent.yaml
│ │ ├── daemonset-metadata-agent.yaml
│ │ ├── daemonset-netns-cleanup-cron.yaml
│ │ ├── daemonset-neutron-ovn-vpn-agent.yaml
│ │ ├── daemonset-ovn-metadata-agent.yaml
│ │ ├── daemonset-ovs-agent.yaml
│ │ ├── daemonset-sriov-agent.yaml
│ │ ├── deployment-ironic-agent.yaml
│ │ ├── deployment-rpc_server.yaml
│ │ ├── deployment-server.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-server.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-server.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress-neutron.yaml
│ │ └── service-server.yaml
│ └── values.yaml
├── nfs-provisioner/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service.yaml
│ │ ├── storage_class.yaml
│ │ └── volume_claim.yaml
│ └── values.yaml
├── nova/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _cell-setup-init.sh.tpl
│ │ │ ├── _cell-setup.sh.tpl
│ │ │ ├── _ceph-admin-keyring.sh.tpl
│ │ │ ├── _ceph-keyring.sh.tpl
│ │ │ ├── _db-archive-deleted-row.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _fake-iptables.sh.tpl
│ │ │ ├── _health-probe.py.tpl
│ │ │ ├── _iscsiadm.tpl
│ │ │ ├── _multipath.tpl
│ │ │ ├── _multipathd.tpl
│ │ │ ├── _nova-api-metadata-init.sh.tpl
│ │ │ ├── _nova-api-metadata.sh.tpl
│ │ │ ├── _nova-api.sh.tpl
│ │ │ ├── _nova-compute-init.sh.tpl
│ │ │ ├── _nova-compute-ironic.sh.tpl
│ │ │ ├── _nova-compute.sh.tpl
│ │ │ ├── _nova-conductor.sh.tpl
│ │ │ ├── _nova-console-compute-init.sh.tpl
│ │ │ ├── _nova-console-proxy-init-assets.sh.tpl
│ │ │ ├── _nova-console-proxy-init.sh.tpl
│ │ │ ├── _nova-console-proxy.sh.tpl
│ │ │ ├── _nova-scheduler.sh.tpl
│ │ │ ├── _nova-service-cleaner.sh.tpl
│ │ │ ├── _ssh-init.sh.tpl
│ │ │ ├── _ssh-start.sh.tpl
│ │ │ ├── _storage-init.sh.tpl
│ │ │ └── _wait-for-computes-init.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-archive-deleted-rows.yaml
│ │ ├── cron-job-cell-setup.yaml
│ │ ├── cron-job-service-cleaner.yaml
│ │ ├── daemonset-compute.yaml
│ │ ├── deployment-api-metadata.yaml
│ │ ├── deployment-api-osapi.yaml
│ │ ├── deployment-conductor.yaml
│ │ ├── deployment-novncproxy.yaml
│ │ ├── deployment-scheduler.yaml
│ │ ├── deployment-serialproxy.yaml
│ │ ├── deployment-spiceproxy.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-metadata.yaml
│ │ ├── ingress-novncproxy.yaml
│ │ ├── ingress-osapi.yaml
│ │ ├── ingress-serialproxy.yaml
│ │ ├── ingress-spiceproxy.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-cell-setup.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-nova-storage-init.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── netpol-nova.yaml
│ │ ├── pdb-metadata.yaml
│ │ ├── pdb-osapi.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db-api.yaml
│ │ ├── secret-db-cell0.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-ssh.yaml
│ │ ├── service-ingress-metadata.yaml
│ │ ├── service-ingress-novncproxy.yaml
│ │ ├── service-ingress-osapi.yaml
│ │ ├── service-ingress-serialproxy.yaml
│ │ ├── service-ingress-spiceproxy.yaml
│ │ ├── service-metadata.yaml
│ │ ├── service-novncproxy.yaml
│ │ ├── service-osapi.yaml
│ │ ├── service-serialproxy.yaml
│ │ ├── service-spiceproxy.yaml
│ │ ├── statefulset-compute-ironic.yaml
│ │ ├── statefulset-conductor.yaml
│ │ └── statefulset-scheduler.yaml
│ └── values.yaml
├── octavia/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _octavia-api.sh.tpl
│ │ │ ├── _octavia-driver-agent.sh.tpl
│ │ │ ├── _octavia-health-manager-get-port.sh.tpl
│ │ │ ├── _octavia-health-manager-nic-init.sh.tpl
│ │ │ ├── _octavia-health-manager.sh.tpl
│ │ │ ├── _octavia-housekeeping.sh.tpl
│ │ │ ├── _octavia-worker-get-port.sh.tpl
│ │ │ ├── _octavia-worker-nic-init.sh.tpl
│ │ │ └── _octavia-worker.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-health-manager.yaml
│ │ ├── daemonset-worker.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-driver-agent.yaml
│ │ ├── deployment-housekeeping.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoint.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── secret-db-persistence.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── openvswitch/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _openvswitch-db-server.sh.tpl
│ │ │ ├── _openvswitch-vswitchd-init-modules.sh.tpl
│ │ │ └── _openvswitch-vswitchd.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network-policy.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── ovn/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _ovn-controller-init.sh.tpl
│ │ │ └── _ovn-network-logging-parser.sh.tpl
│ │ ├── clusterrole-controller.yaml
│ │ ├── clusterrolebinding-controller.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-controller.yaml
│ │ ├── deployment-northd.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── role-controller.yaml
│ │ ├── role-northd.yaml
│ │ ├── role-ovsdb.yaml
│ │ ├── rolebinding-controller.yaml
│ │ ├── rolebinding-northd.yaml
│ │ ├── rolebinding-ovsdb.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-vector.yaml
│ │ ├── service-ovsdb-nb.yaml
│ │ ├── service-ovsdb-sb.yaml
│ │ ├── statefulset-ovsdb-nb.yaml
│ │ └── statefulset-ovsdb-sb.yaml
│ └── values.yaml
├── placement/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-sync.sh.tpl
│ │ │ └── _placement-api.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress.yaml
│ │ └── service.yaml
│ └── values.yaml
├── playbooks/
│ ├── build-chart.yaml
│ ├── collect-logs.yaml
│ ├── deploy-env-kubespray.yaml
│ ├── deploy-env.yaml
│ ├── enable-hugepages.yaml
│ ├── inject-keys.yaml
│ ├── lint.yaml
│ ├── mount-volumes.yaml
│ ├── osh-bandit.yaml
│ ├── prepare-hosts.yaml
│ ├── publish/
│ │ ├── post.yaml
│ │ └── run.yaml
│ └── run-scripts.yaml
├── postgresql/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _backup_postgresql.sh.tpl
│ │ │ ├── _common_backup_restore.sh.tpl
│ │ │ ├── _db_test.sh.tpl
│ │ │ ├── _postgresql_archive_cleanup.sh.tpl
│ │ │ ├── _readiness.sh.tpl
│ │ │ ├── _remote_retrieve_postgresql.sh.tpl
│ │ │ ├── _remote_store_postgresql.sh.tpl
│ │ │ ├── _restore_postgresql.sh.tpl
│ │ │ └── _start.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-backup-postgres.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── monitoring/
│ │ │ └── prometheus/
│ │ │ ├── bin/
│ │ │ │ └── _create-postgresql-exporter-user.sh.tpl
│ │ │ ├── exporter-configmap-bin.yaml
│ │ │ ├── exporter-configmap-etc.yaml
│ │ │ ├── exporter-deployment.yaml
│ │ │ ├── exporter-job-create-user.yaml
│ │ │ ├── exporter-secrets-etc.yaml
│ │ │ └── exporter-service.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-test.yaml
│ │ ├── postgresql-backup-pvc.yaml
│ │ ├── secret-admin.yaml
│ │ ├── secret-audit.yaml
│ │ ├── secret-backup-restore.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-rgw.yaml
│ │ ├── secrets/
│ │ │ └── _admin_user.conf.tpl
│ │ ├── secrets-etc.yaml
│ │ ├── service-postgres.yaml
│ │ ├── service-restapi.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── powerdns/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _powerdns-mysql-sync.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── prometheus/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _apache.sh.tpl
│ │ │ ├── _helm-tests.sh.tpl
│ │ │ └── _prometheus.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-prometheus.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-helm-tests.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-prometheus.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret-tls-configs.yaml
│ │ ├── service-ingress-prometheus.yaml
│ │ ├── service.yaml
│ │ ├── statefulset.yaml
│ │ └── utils/
│ │ └── _command_line_flags.tpl
│ └── values.yaml
├── prometheus-alertmanager/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _alertmanager.sh.tpl
│ │ │ └── _apache.sh.tpl
│ │ ├── clusterrolebinding.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-alertmanager.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-admin-user.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-discovery.yaml
│ │ ├── service-ingress-alertmanager.yaml
│ │ ├── service.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── prometheus-blackbox-exporter/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── secret-registry.yaml
│ │ ├── secret.yaml
│ │ └── service.yaml
│ └── values.yaml
├── prometheus-kube-state-metrics/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-controller-manager.yaml
│ │ ├── service-kube-state-metrics.yaml
│ │ └── service-scheduler.yaml
│ └── values.yaml
├── prometheus-mysql-exporter/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── README.rst
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _create-mysql-user.sh.tpl
│ │ │ └── _mysqld-exporter.sh.tpl
│ │ ├── exporter-configmap-bin.yaml
│ │ ├── exporter-deployment.yaml
│ │ ├── exporter-job-create-user.yaml
│ │ ├── exporter-network-policy.yaml
│ │ ├── exporter-secrets-etc.yaml
│ │ ├── exporter-service.yaml
│ │ ├── extra-manifests.yaml
│ │ └── secrets/
│ │ └── _exporter_user.cnf.tpl
│ └── values.yaml
├── prometheus-node-exporter/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _node-exporter.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── prometheus-openstack-exporter/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ └── _prometheus-openstack-exporter.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── prometheus-process-exporter/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── daemonset.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── secret-registry.yaml
│ │ └── service.yaml
│ └── values.yaml
├── rabbitmq/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _rabbitmq-cookie.sh.tpl
│ │ │ ├── _rabbitmq-liveness.sh.tpl
│ │ │ ├── _rabbitmq-password-hash.py.tpl
│ │ │ ├── _rabbitmq-readiness.sh.tpl
│ │ │ ├── _rabbitmq-start.sh.tpl
│ │ │ ├── _rabbitmq-test.sh.tpl
│ │ │ └── _rabbitmq-wait-for-cluster.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── etc/
│ │ │ └── _enabled_plugins.tpl
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-management.yaml
│ │ ├── job-cluster-wait.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── network_policy.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-erlang-cookie.yaml
│ │ ├── secret-rabbit-admin.yaml
│ │ ├── secret-rabbitmq-users-credentials.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress-management.yaml
│ │ ├── service.yaml
│ │ ├── statefulset.yaml
│ │ └── utils/
│ │ └── _to_rabbit_config.tpl
│ └── values.yaml
├── rally/
│ ├── Chart.yaml
│ ├── README.rst
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _manage-db.sh.tpl
│ │ │ └── _run-task.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── configmap-tasks.yaml
│ │ ├── configmap-test-templates.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-manage-db.yaml
│ │ ├── job-run-task.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pvc-rally.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── redis/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── configmap-bin.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── pod_test.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service.yaml
│ │ └── test/
│ │ ├── _python_redis_tests.py.tpl
│ │ └── _redis_test.sh.tpl
│ └── values.yaml
├── registry/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _registry-proxy.sh.tpl
│ │ │ └── _registry.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-registry-proxy.yaml
│ │ ├── deployment-registry.yaml
│ │ ├── etc/
│ │ │ └── _default.conf.tpl
│ │ ├── extra-manifests.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── pvc-images.yaml
│ │ ├── secret-registry.yaml
│ │ └── service-registry.yaml
│ └── values.yaml
├── release.asc
├── releasenotes/
│ ├── config.yaml
│ ├── notes/
│ │ ├── added-nova-uid-parameter-to-ovs-chart-41d2b05b79300a31.yaml
│ │ ├── aodh-0fe345390dd08642.yaml
│ │ ├── aodh-1002dad350db1c60.yaml
│ │ ├── aodh-bb91c011b0c7d911.yaml
│ │ ├── aodh.yaml
│ │ ├── barbican-669168de73ab5847.yaml
│ │ ├── barbican-d291498fada9e601.yaml
│ │ ├── barbican-ead8061b2a6b1b1b.yaml
│ │ ├── barbican.yaml
│ │ ├── blazar-73cedded47699964.yaml
│ │ ├── blazar-a7b9b29ba15720c0.yaml
│ │ ├── blazar-b7fc5016b49c8f59.yaml
│ │ ├── ca-clusterissuer.yaml
│ │ ├── ca-issuer.yaml
│ │ ├── ceilometer-15768e1064d3339d.yaml
│ │ ├── ceilometer-8fc69d6664cdf101.yaml
│ │ ├── ceilometer-ab177a5c0aad98df.yaml
│ │ ├── ceilometer-b03ea218e1e61f90.yaml
│ │ ├── ceilometer-b86532145d088208.yaml
│ │ ├── ceilometer-c08f029ffa1e122f.yaml
│ │ ├── ceilometer.yaml
│ │ ├── ceph-adapter-rook-2fd83689f9bf78fb.yaml
│ │ ├── ceph-adapter-rook-f0855e8843fe615f.yaml
│ │ ├── ceph-adapter-rook.yaml
│ │ ├── ceph-client-055d675e86b2d0ea.yaml
│ │ ├── ceph-client-f4c8397a4313c53a.yaml
│ │ ├── ceph-client.yaml
│ │ ├── ceph-mon-1a1ecc38a96bfead.yaml
│ │ ├── ceph-mon-5ece5f0b0f571966.yaml
│ │ ├── ceph-mon-a1f450d714b90cfb.yaml
│ │ ├── ceph-mon-f029c2a86a0b7edd.yaml
│ │ ├── ceph-mon.yaml
│ │ ├── ceph-osd-294b73092b0b301b.yaml
│ │ ├── ceph-osd-c897b82dd8d0104b.yaml
│ │ ├── ceph-osd-e9bd9ab0cb036080.yaml
│ │ ├── ceph-osd.yaml
│ │ ├── ceph-provisioners-091a682dc01c219f.yaml
│ │ ├── ceph-provisioners-c4334743e1cadc04.yaml
│ │ ├── ceph-provisioners.yaml
│ │ ├── ceph-rgw-1dc7fd498ff7ed46.yaml
│ │ ├── ceph-rgw-9d99622a011584b0.yaml
│ │ ├── ceph-rgw.yaml
│ │ ├── cert-rotation-06fbf166bc55e372.yaml
│ │ ├── cert-rotation.yaml
│ │ ├── change-default-ovs-image-c1e24787f1b03170.yaml
│ │ ├── change-memcache-backend-2d85a3c75b32db39.yaml
│ │ ├── changed-ovs-dpdk-root-key-f8aaf3ad65189c8a.yaml
│ │ ├── cinder-1db248fbc00e56ff.yaml
│ │ ├── cinder-32aac095ffc09912.yaml
│ │ ├── cinder-48232b427a294d57.yaml
│ │ ├── cinder-4e17dd8ee84ca1a2.yaml
│ │ ├── cinder-8f8fd56d2c9a5d75.yaml
│ │ ├── cinder-92ee9aa061442690.yaml
│ │ ├── cinder-a25114bef0ed2f56.yaml
│ │ ├── cinder-a530fe90112c74d1.yaml
│ │ ├── cinder-aca94f2247bcddcd.yaml
│ │ ├── cinder-b605e2bc57b6d49f.yaml
│ │ ├── cinder-ddd3bb79dff72ba6.yaml
│ │ ├── cinder-ded5ec20ef58ac93.yaml
│ │ ├── cinder-f177532ecd78dcec.yaml
│ │ ├── cinder.yaml
│ │ ├── cloudkitty-a95de06fbfeac965.yaml
│ │ ├── cloudkitty-d61bea096f10b731.yaml
│ │ ├── cloudkitty.yaml
│ │ ├── common-695408be564c5d44.yaml
│ │ ├── common-76e452ae14eb3707.yaml
│ │ ├── common-8730c7058550f934.yaml
│ │ ├── common-d6d7b93fcc7296e9.yaml
│ │ ├── common-eb7338a63d83ad95.yaml
│ │ ├── common-f19dec4799b18756.yaml
│ │ ├── cyborg.yaml
│ │ ├── designate-9ed4257ab657b224.yaml
│ │ ├── designate-bc18055009645160.yaml
│ │ ├── designate.yaml
│ │ ├── elastic-apm-server.yaml
│ │ ├── elastic-filebeat.yaml
│ │ ├── elastic-metricbeat.yaml
│ │ ├── elastic-packetbeat.yaml
│ │ ├── elasticseach-625bc83028513f08.yaml
│ │ ├── elasticsearch-127e34013b70451d.yaml
│ │ ├── elasticsearch-1fb9cb9d0b6169a7.yaml
│ │ ├── elasticsearch-4a005ef3cec5f170.yaml
│ │ ├── elasticsearch-653d4b77cf26c277.yaml
│ │ ├── elasticsearch-ba314935c85c3b25.yaml
│ │ ├── elasticsearch-baf978b047efc111.yaml
│ │ ├── elasticsearch.yaml
│ │ ├── etcd.yaml
│ │ ├── fluentbit.yaml
│ │ ├── fluentd.yaml
│ │ ├── freezer-3272cc6ed891f5a3.yaml
│ │ ├── glance-1245a71c1694b79c.yaml
│ │ ├── glance-79dad0da1e27df42.yaml
│ │ ├── glance-9043d8c0a8119256.yaml
│ │ ├── glance-cb814fab2bccc95e.yaml
│ │ ├── glance-cbd61a1ae1e902b5.yaml
│ │ ├── glance-e528d9f2473763a1.yaml
│ │ ├── glance.yaml
│ │ ├── gnocchi-37ba93d527c7ba75.yaml
│ │ ├── gnocchi-71bec40a3416cb8a.yaml
│ │ ├── gnocchi.yaml
│ │ ├── grafana-b3fac6a311d115a6.yaml
│ │ ├── grafana-d1a2049e057fe878.yaml
│ │ ├── grafana.yaml
│ │ ├── heat-5e861ec1ee8e2784.yaml
│ │ ├── heat-7222563449ea848e.yaml
│ │ ├── heat-a584fab629e1c4fc.yaml
│ │ ├── heat.yaml
│ │ ├── helm-toolkit-04996581655d9952.yaml
│ │ ├── helm-toolkit-1ac16e62f779d907.yaml
│ │ ├── helm-toolkit-49593d58783c3a97.yaml
│ │ ├── helm-toolkit-5fa68b35be3378b3.yaml
│ │ ├── helm-toolkit-81cf091a301877ff.yaml
│ │ ├── helm-toolkit-9618f6c4379c13bc.yaml
│ │ ├── helm-toolkit-a2810391532bd64a.yaml
│ │ ├── helm-toolkit-acb954baa2fe7b2f.yaml
│ │ ├── helm-toolkit-e84e695df114929d.yaml
│ │ ├── helm-toolkit-fa49be61648b2d72.yaml
│ │ ├── helm-toolkit.yaml
│ │ ├── horizon-172a4ff3264fc495.yaml
│ │ ├── horizon.yaml
│ │ ├── increase-default-logging-31db0e9d3e51b429.yaml
│ │ ├── ingress.yaml
│ │ ├── ironic-0035b6286b1c6333.yaml
│ │ ├── ironic-022571f573f6c430.yaml
│ │ ├── ironic-2b9283c8924f8c63.yaml
│ │ ├── ironic-2fcd7c5ae98b55f4.yaml
│ │ ├── ironic-4963b8bfe3c212d0.yaml
│ │ ├── ironic-4a1d33f9e4147b79.yaml
│ │ ├── ironic-82bd78c64b57d2ce.yaml
│ │ ├── ironic-adbba9c6718cc0d6.yaml
│ │ ├── ironic-c0de8abe9970dca0.yaml
│ │ ├── ironic.yaml
│ │ ├── keystone-0e6674e1c443cd81.yaml
│ │ ├── keystone-12efe8927d1a0934.yaml
│ │ ├── keystone-17cdfeb53f6eb5dd.yaml
│ │ ├── keystone-1aaec51f0512e445.yaml
│ │ ├── keystone-56908951efdcc19e.yaml
│ │ ├── keystone-5dd1eca70f3382d8.yaml
│ │ ├── keystone-9bca09a40cc3dc68.yaml
│ │ ├── keystone-dab27a4eeaab96d1.yaml
│ │ ├── keystone-e2d6c0f6c85415ab.yaml
│ │ ├── keystone-fb00add9c87916a3.yaml
│ │ ├── keystone-healthcheck-1f72d266f886e735.yaml
│ │ ├── keystone.yaml
│ │ ├── kibana-053401293f7f508d.yaml
│ │ ├── kibana-add46185e9a8d6af.yaml
│ │ ├── kibana-c0b39f760a7c5b80.yaml
│ │ ├── kibana.yaml
│ │ ├── kube-dns.yaml
│ │ ├── kubernetes-keystone-webhook.yaml
│ │ ├── kubernetes-node-problem-detector.yaml
│ │ ├── ldap-4737a2ba0a8a499f.yaml
│ │ ├── ldap.yaml
│ │ ├── libvirt-5bf3185fc00a9938.yaml
│ │ ├── libvirt-85375c3ae369bc39.yaml
│ │ ├── libvirt-ac59444a6623ddb9.yaml
│ │ ├── libvirt-b5dc605552feb278.yaml
│ │ ├── libvirt-e8ba1d91a8ca4999.yaml
│ │ ├── libvirt-f81d6fc0b0094209.yaml
│ │ ├── libvirt.yaml
│ │ ├── local-storage.yaml
│ │ ├── local-volume-provisioner.yaml
│ │ ├── magnum.yaml
│ │ ├── manila-23590e37667d10a5.yaml
│ │ ├── manila-3a767553950629bd.yaml
│ │ ├── manila-7bf5ad7472dbf691.yaml
│ │ ├── manila-a5beeacdb577dd23.yaml
│ │ ├── manila-f7286f302a9372eb.yaml
│ │ ├── manila-f8ada2e675fcc308.yaml
│ │ ├── manila.yaml
│ │ ├── mariadb-0cb94bb0ae8cf38a.yaml
│ │ ├── mariadb-2d75f250c1fbcd73.yaml
│ │ ├── mariadb-7d8282a6eeb4d249.yaml
│ │ ├── mariadb-840fccbf8f0e9d39.yaml
│ │ ├── mariadb-b923ac9345734125.yaml
│ │ ├── mariadb-backup-58c8a77f9c03bae8.yaml
│ │ ├── mariadb-backup-af891fea0cfa3db5.yaml
│ │ ├── mariadb-backup-c27eb2dc0a56a7ed.yaml
│ │ ├── mariadb-backup.yaml
│ │ ├── mariadb-cluster-4672d16769afdb47.yaml
│ │ ├── mariadb-cluster.yaml
│ │ ├── mariadb-dcd35d40fcd4a749.yaml
│ │ ├── mariadb.yaml
│ │ ├── masakari-ea8acf2427bc9811.yaml
│ │ ├── masakari.yaml
│ │ ├── memcached-1ae10613b2e36813.yaml
│ │ ├── memcached.yaml
│ │ ├── mistral.yaml
│ │ ├── nagios-36a6b2cb6e9fc720.yaml
│ │ ├── nagios.yaml
│ │ ├── namespace-config.yaml
│ │ ├── neutron-00a56405067b123d.yaml
│ │ ├── neutron-013c9be46456b92c.yaml
│ │ ├── neutron-288ac8b37720832e.yaml
│ │ ├── neutron-2af36e49a0a377c3.yaml
│ │ ├── neutron-2bb975307f0d27f2.yaml
│ │ ├── neutron-2d4db97bc8900286.yaml
│ │ ├── neutron-315f825e54d3f34c.yaml
│ │ ├── neutron-32815761690bedf5.yaml
│ │ ├── neutron-3c11cf48f8c7c592.yaml
│ │ ├── neutron-3c33aea435f7ab8a.yaml
│ │ ├── neutron-42b77d74ce8fe287.yaml
│ │ ├── neutron-4f9263300df02c9b.yaml
│ │ ├── neutron-659f0c21af1feaa0.yaml
│ │ ├── neutron-670d4cd96f100dea.yaml
│ │ ├── neutron-96d95ffbdeaaf29a.yaml
│ │ ├── neutron-9dbb4250fd893743.yaml
│ │ ├── neutron-add-uwsgi-start-time-d73ba462e1157dd2.yaml
│ │ ├── neutron-b2247f89a5f258aa.yaml
│ │ ├── neutron-b225c11a5e1d522d.yaml
│ │ ├── neutron-c0c7ca4e49cbf03c.yaml
│ │ ├── neutron-c451a4129f97e891.yaml
│ │ ├── neutron-d39cc4643edac73c.yaml
│ │ ├── neutron-f0674e08d80fc203.yaml
│ │ ├── neutron-fca28403d7a0be3a.yaml
│ │ ├── neutron.yaml
│ │ ├── nfs-provisioner.yaml
│ │ ├── nova-1a7fb130b261f92d.yaml
│ │ ├── nova-29572c7b62b6ae0b.yaml
│ │ ├── nova-2c10ffbcf8d2f838.yaml
│ │ ├── nova-2e97a6de46b4c9b9.yaml
│ │ ├── nova-3493b35ba8c4479a.yaml
│ │ ├── nova-366b14dea33d416d.yaml
│ │ ├── nova-467e6c34e9fd1b05.yaml
│ │ ├── nova-476f40003a31bc77.yaml
│ │ ├── nova-495c648112a2b539.yaml
│ │ ├── nova-4b998ef222e57fd1.yaml
│ │ ├── nova-5bb93c130c2a280d.yaml
│ │ ├── nova-5d7903f3b97aa088.yaml
│ │ ├── nova-60c926ac61319ba1.yaml
│ │ ├── nova-69cb1a01b6f5c561.yaml
│ │ ├── nova-6b1d99fb5c67b2dd.yaml
│ │ ├── nova-7f3dbce1333752b8.yaml
│ │ ├── nova-9df2dfa1e3521305.yaml
│ │ ├── nova-b0749b6144e2b871.yaml
│ │ ├── nova-b2ce6bcc83029d1b.yaml
│ │ ├── nova-c59fc7469b3a8500.yaml
│ │ ├── nova-dd4188dbc489977c.yaml
│ │ ├── nova-e42deac3199480e6.yaml
│ │ ├── nova-e8350419e59bc440.yaml
│ │ ├── nova-fc00bda9bb69988e.yaml
│ │ ├── nova.yaml
│ │ ├── octavia-171c56de7891c86d.yaml
│ │ ├── octavia-3c13346818a743cc.yaml
│ │ ├── octavia-63cb483419410e3c.yaml
│ │ ├── octavia-73c0f7c8c13c00a1.yaml
│ │ ├── octavia-74938cd9ffae016b.yaml
│ │ ├── octavia-875ff6ae26e5586c.yaml
│ │ ├── octavia-a9a696fde141cd8b.yaml
│ │ ├── octavia-b40e89ec5e5b5568.yaml
│ │ ├── octavia-c0e8011e138832db.yaml
│ │ ├── octavia-c952d2266d5dbd62.yaml
│ │ ├── octavia-c9f2b0ece7ba8406.yaml
│ │ ├── octavia-d22c4az0a92b7d16.yaml
│ │ ├── octavia-f6afc93cf3ccc8f7.yaml
│ │ ├── octavia-health-manager-net-caps-49adc645e1d03456.yaml
│ │ ├── octavia.yaml
│ │ ├── openstack.yaml
│ │ ├── openvswitch-0b37403ffc75bb63.yaml
│ │ ├── openvswitch-3401ba2f0dc8e1f6.yaml
│ │ ├── openvswitch-3df8c5ca6034009f.yaml
│ │ ├── openvswitch-5c0d74ca4f420e56.yaml
│ │ ├── openvswitch-63f74f08815529dd.yaml
│ │ ├── openvswitch-c123b289b476575a.yaml
│ │ ├── openvswitch-e761d6733b84bdc7.yaml
│ │ ├── openvswitch-e888d02378d4d044.yaml
│ │ ├── openvswitch.yaml
│ │ ├── other-23a753cb53b10bb8.yaml
│ │ ├── ovn-3b9e82e5d469bc98.yaml
│ │ ├── ovn-3e576a7be97232fe.yaml
│ │ ├── ovn-50ba6d3611decff9.yaml
│ │ ├── ovn-53e7ddb42d51e7c9.yaml
│ │ ├── ovn-6c1c8afff28cf7f7.yaml
│ │ ├── ovn-73332b0bc5d647f2.yaml
│ │ ├── ovn-8b5cc103886f3b25.yaml
│ │ ├── ovn-a82eced671495a3d.yaml
│ │ ├── ovn-b172c29d8c0602b1.yaml
│ │ ├── ovn-d195851d81d68036.yaml
│ │ ├── ovn-ffd84bb8c9e73b64.yaml
│ │ ├── ovn.yaml
│ │ ├── panko.yaml
│ │ ├── placement-2b023904bc06028b.yaml
│ │ ├── placement-3115f3ce4c0801af.yaml
│ │ ├── placement-a180f4e88ed81d30.yaml
│ │ ├── placement.yaml
│ │ ├── podsecuritypolicy.yaml
│ │ ├── postgresql-4ee4e72706f17d8a.yaml
│ │ ├── postgresql-e1a02dbbe6601b0f.yaml
│ │ ├── postgresql.yaml
│ │ ├── powerdns.yaml
│ │ ├── prometeus-alertmanager-293616e8a47a12e8.yaml
│ │ ├── prometeus-e9a80f262470313c.yaml
│ │ ├── prometheus-alertmanager.yaml
│ │ ├── prometheus-blackbox-exporter.yaml
│ │ ├── prometheus-kube-state-metrics-b1fc3bf8e9109ae4.yaml
│ │ ├── prometheus-kube-state-metrics.yaml
│ │ ├── prometheus-mysql-exporter.yaml
│ │ ├── prometheus-node-exporter.yaml
│ │ ├── prometheus-openstack-exporter-39b2a7f52552033d.yaml
│ │ ├── prometheus-openstack-exporter-d95d286faa68ea98.yaml
│ │ ├── prometheus-openstack-exporter.yaml
│ │ ├── prometheus-process-exporter.yaml
│ │ ├── prometheus.yaml
│ │ ├── rabbitmq-04d68343d1f9dbec.yaml
│ │ ├── rabbitmq.yaml
│ │ ├── rally.yaml
│ │ ├── redis.yaml
│ │ ├── registry-daf63a0fbe9771cb.yaml
│ │ ├── registry.yaml
│ │ ├── remove-legacy-volume-apis-12d2d1abbb7fbe61.yaml
│ │ ├── remove-share-v1-api-d7b0b85e395bf131.yaml
│ │ ├── rename-ceph-rbd-pool-app-name.yaml
│ │ ├── skyline-0cc4caaea4f05714.yaml
│ │ ├── skyline-4763b3a9c14ace98.yaml
│ │ ├── skyline-794e9be9cc48f98d.yaml
│ │ ├── skyline-db-sync-image-b56ba0a4cad85c9c.yaml
│ │ ├── skyline-de744253bec9dfa3.yaml
│ │ ├── tacker.yaml
│ │ ├── tempest.yaml
│ │ ├── trove-a1b2c3d4e5f6g7h8.yaml
│ │ ├── trove.yaml
│ │ ├── watcher.yaml
│ │ └── zaqar-e43f9b2ace992d92.yaml
│ ├── requirements.txt
│ └── source/
│ ├── conf.py
│ ├── current.rst
│ ├── index.rst
│ └── locale/
│ └── en_GB/
│ └── LC_MESSAGES/
│ └── releasenotes.po
├── roles/
│ ├── build-helm-packages/
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ ├── tasks/
│ │ │ ├── main.yaml
│ │ │ └── setup-helm-serve.yaml
│ │ └── templates/
│ │ └── helm-serve.service.j2
│ ├── chart-testing/
│ │ ├── README.rst
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── clean-host/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── deploy-apparmor/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── deploy-docker/
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ ├── tasks/
│ │ │ ├── deploy-ansible-docker-support.yaml
│ │ │ └── main.yaml
│ │ └── templates/
│ │ ├── centos-docker.service.j2
│ │ ├── fedora-docker.service.j2
│ │ ├── http-proxy.conf.j2
│ │ └── ubuntu-docker.service.j2
│ ├── deploy-env/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── files/
│ │ │ ├── calico_patch.yaml
│ │ │ ├── cluster_resolv.conf
│ │ │ ├── containerd_config.toml
│ │ │ ├── daemon.json
│ │ │ ├── etc_default_kubelet.j2
│ │ │ ├── hosts
│ │ │ ├── hosts.toml
│ │ │ ├── kubeadm_config.yaml.j2
│ │ │ ├── loop-setup.service
│ │ │ ├── nginx_tcp_proxy.conf
│ │ │ ├── resolv.conf
│ │ │ └── ssh_config
│ │ ├── handlers/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ ├── buildset_registry_alias.yaml
│ │ ├── calico.yaml
│ │ ├── cilium.yaml
│ │ ├── client_cluster_ssh.yaml
│ │ ├── client_cluster_tunnel.yaml
│ │ ├── containerd.yaml
│ │ ├── coredns_resolver.yaml
│ │ ├── env_inventory.yaml
│ │ ├── flannel.yaml
│ │ ├── floating_network.yaml
│ │ ├── gatewayapi_envoy.yaml
│ │ ├── ingress_haproxy.yaml
│ │ ├── ingress_nginx.yaml
│ │ ├── k8s_client.yaml
│ │ ├── k8s_common.yaml
│ │ ├── k8s_control_plane.yaml
│ │ ├── loopback_devices.yaml
│ │ ├── loopback_devices_mount.yaml
│ │ ├── main.yaml
│ │ ├── metallb.yaml
│ │ ├── overlay.yaml
│ │ ├── prerequisites.yaml
│ │ └── public_endpoints.yaml
│ ├── deploy-jq/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── deploy-package/
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ └── tasks/
│ │ ├── dist.yaml
│ │ └── pip.yaml
│ ├── deploy-python/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── deploy-python-pip/
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── deploy-selenium/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── describe-kubernetes-objects/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── disable-local-nameserver/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── enable-hugepages/
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── ensure-chart-testing/
│ │ ├── README.rst
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── gather-host-logs/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── gather-pod-logs/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── gather-prom-metrics/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── gather-selenium-data/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── helm-release-status/
│ │ └── tasks/
│ │ └── main.yaml
│ ├── mount-extra-volume/
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── osh-bandit/
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── osh-run-script/
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── osh-run-script-set/
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── override-images/
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── setup-firewall/
│ │ └── tasks/
│ │ └── main.yaml
│ └── upgrade-host/
│ ├── defaults/
│ │ └── main.yml
│ └── tasks/
│ └── main.yaml
├── skyline/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _skyline-apiserver-init.sh.tpl
│ │ │ └── _skyline-apiserver.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-ingress.yaml
│ │ └── service.yaml
│ └── values.yaml
├── swift/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _account-start.sh.tpl
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _container-start.sh.tpl
│ │ │ ├── _ks-endpoints.sh.tpl
│ │ │ ├── _ks-service.sh.tpl
│ │ │ ├── _ks-user.sh.tpl
│ │ │ ├── _object-start.sh.tpl
│ │ │ ├── _proxy-start.sh.tpl
│ │ │ ├── _ring-builder.sh.tpl
│ │ │ ├── _ring-copy.sh.tpl
│ │ │ ├── _storage-init.sh.tpl
│ │ │ ├── _storage-start.sh.tpl
│ │ │ └── _swift-test.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── daemonset-storage.yaml
│ │ ├── deployment-proxy.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-proxy.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-ring-builder.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-proxy.yaml
│ │ ├── pdb-storage.yaml
│ │ ├── pod-test.yaml
│ │ ├── pvc.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── service-ingress-proxy.yaml
│ │ └── service-proxy.yaml
│ └── values.yaml
├── tacker/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _tacker-test.sh.tpl
│ │ │ ├── _tacker_conductor.sh.tpl
│ │ │ └── _tacker_server.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-conductor.yaml
│ │ ├── deployment-server.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── pod-test.yaml
│ │ ├── pvc.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── service-api.yaml
│ │ ├── service-conductor.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── tempest/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── _helpers.tpl
│ │ ├── bin/
│ │ │ └── _run-tests.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-run-tests.yaml
│ │ ├── pvc-tempest.yaml
│ │ ├── secret-keystone.yaml
│ │ └── secret-registry.yaml
│ └── values.yaml
├── tests/
│ ├── dns-test.yaml
│ └── pvc-test.yaml
├── tools/
│ ├── changelog.py
│ ├── chart_version.sh
│ ├── debug_sleep.sh
│ ├── deployment/
│ │ ├── baremetal/
│ │ │ ├── 005-setup-nodes.sh
│ │ │ ├── 010-setup-client.sh
│ │ │ ├── 110-compute-kit.sh
│ │ │ ├── 800-create-baremetal-host-aggregate.sh
│ │ │ ├── 810-register-baremetal-nodes.sh
│ │ │ ├── 820-create-baremetal-flavor.sh
│ │ │ ├── 900-use-it.sh
│ │ │ ├── fake-baremetal-1.xml
│ │ │ └── heat-basic-bm-deployment.yaml
│ │ ├── ceph/
│ │ │ ├── ceph-adapter-rook.sh
│ │ │ ├── ceph-ns-activate.sh
│ │ │ ├── ceph-radosgw.sh
│ │ │ ├── ceph-rook.sh
│ │ │ ├── ceph.sh
│ │ │ ├── ceph_legacy.sh
│ │ │ ├── migrate-after.sh
│ │ │ ├── migrate-before.sh
│ │ │ ├── migrate-to-rook-ceph.sh
│ │ │ └── migrate-values.sh
│ │ ├── common/
│ │ │ ├── cert-manager.sh
│ │ │ ├── clean-it.sh
│ │ │ ├── deploy-docker-registry.sh
│ │ │ ├── env-variables.sh
│ │ │ ├── force-cronjob-run.sh
│ │ │ ├── heat-basic-vm-deployment.yaml
│ │ │ ├── heat-public-net-deployment.yaml
│ │ │ ├── heat-subnet-pool-deployment.yaml
│ │ │ ├── heat-vm-volume-attach.yaml
│ │ │ ├── namespace-config.sh
│ │ │ ├── prepare-bashrc.sh
│ │ │ ├── prepare-charts.sh
│ │ │ ├── prepare-helm-repos-local.sh
│ │ │ ├── prepare-helm-repos-public.sh
│ │ │ ├── prepare-k8s.sh
│ │ │ ├── pull-images.sh
│ │ │ ├── rally-reports.yaml
│ │ │ ├── run-helm-tests.sh
│ │ │ ├── setup-certificates.sh
│ │ │ ├── setup-client.sh
│ │ │ ├── sleep.sh
│ │ │ ├── test-networkpolicy.sh
│ │ │ └── use-it.sh
│ │ ├── component/
│ │ │ ├── aodh/
│ │ │ │ └── aodh.sh
│ │ │ ├── barbican/
│ │ │ │ └── barbican.sh
│ │ │ ├── blazar/
│ │ │ │ ├── blazar.sh
│ │ │ │ └── blazar_smoke_test.sh
│ │ │ ├── ceilometer/
│ │ │ │ └── ceilometer.sh
│ │ │ ├── cinder/
│ │ │ │ └── cinder.sh
│ │ │ ├── cloudkitty/
│ │ │ │ └── cloudkitty.sh
│ │ │ ├── common/
│ │ │ │ ├── ldap.sh
│ │ │ │ ├── memcached.sh
│ │ │ │ ├── openstack.sh
│ │ │ │ └── rabbitmq.sh
│ │ │ ├── compute-kit/
│ │ │ │ ├── compute-kit-sr-iov.sh
│ │ │ │ ├── compute-kit.sh
│ │ │ │ ├── libvirt.sh
│ │ │ │ └── openvswitch.sh
│ │ │ ├── freezer/
│ │ │ │ ├── freezer.sh
│ │ │ │ └── freezer_smoke_test.sh
│ │ │ ├── glance/
│ │ │ │ └── glance.sh
│ │ │ ├── heat/
│ │ │ │ └── heat.sh
│ │ │ ├── horizon/
│ │ │ │ └── horizon.sh
│ │ │ ├── keystone/
│ │ │ │ └── keystone.sh
│ │ │ ├── magnum/
│ │ │ │ └── magnum.sh
│ │ │ ├── manila/
│ │ │ │ └── manila.sh
│ │ │ ├── mistral/
│ │ │ │ └── mistral.sh
│ │ │ ├── nfs-provisioner/
│ │ │ │ └── nfs-provisioner.sh
│ │ │ ├── octavia/
│ │ │ │ ├── create_dual_intermediate_CA.sh
│ │ │ │ ├── heat_octavia_env.yaml
│ │ │ │ ├── octavia.sh
│ │ │ │ ├── octavia_certs.sh
│ │ │ │ ├── octavia_resources.sh
│ │ │ │ ├── octavia_test.sh
│ │ │ │ └── openssl.cnf
│ │ │ ├── ovn/
│ │ │ │ └── ovn.sh
│ │ │ ├── redis/
│ │ │ │ └── redis.sh
│ │ │ ├── skyline/
│ │ │ │ └── skyline.sh
│ │ │ ├── swift/
│ │ │ │ └── swift.sh
│ │ │ ├── tacker/
│ │ │ │ └── tacker.sh
│ │ │ ├── trove/
│ │ │ │ └── trove.sh
│ │ │ ├── watcher/
│ │ │ │ └── watcher.sh
│ │ │ └── zaqar/
│ │ │ ├── zaqar.sh
│ │ │ └── zaqar_smoke_test.sh
│ │ ├── db/
│ │ │ ├── mariadb-backup.sh
│ │ │ ├── mariadb-operator-cluster.sh
│ │ │ ├── mariadb.sh
│ │ │ └── postgresql.sh
│ │ ├── logging/
│ │ │ ├── elasticsearch.sh
│ │ │ ├── fluentbit.sh
│ │ │ ├── fluentd.sh
│ │ │ └── kibana.sh
│ │ ├── monitoring/
│ │ │ ├── alertmanager.sh
│ │ │ ├── blackbox-exporter.sh
│ │ │ ├── grafana.sh
│ │ │ ├── kube-state-metrics.sh
│ │ │ ├── mysql-exporter.sh
│ │ │ ├── nagios.sh
│ │ │ ├── node-exporter.sh
│ │ │ ├── node-problem-detector.sh
│ │ │ ├── openstack-exporter.sh
│ │ │ ├── process-exporter.sh
│ │ │ └── prometheus.sh
│ │ └── openstack/
│ │ └── keystone.sh
│ └── gate/
│ └── selenium/
│ ├── grafana-selenium.sh
│ ├── grafanaSelenium.py
│ ├── kibana-selenium.sh
│ ├── kibanaSelenium.py
│ ├── nagios-selenium.sh
│ ├── nagiosSelenium.py
│ ├── prometheus-selenium.sh
│ ├── prometheusSelenium.py
│ ├── seleniumtester.py
│ ├── skyline-selenium.sh
│ └── skylineSelenium.py
├── tox.ini
├── trove/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _db-purge.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _trove-api.sh.tpl
│ │ │ ├── _trove-conductor.sh.tpl
│ │ │ └── _trove-taskmanager.sh.tpl
│ │ ├── certificates.yaml
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── cron-job-trove-db-purge.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-conductor.yaml
│ │ ├── deployment-taskmanager.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
├── values_overrides/
│ ├── aodh/
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── barbican/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── blazar/
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ ├── ceilometer/
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ └── annotations.yaml
│ ├── ceph-client/
│ │ └── apparmor.yaml
│ ├── ceph-mon/
│ │ └── apparmor.yaml
│ ├── ceph-osd/
│ │ └── apparmor.yaml
│ ├── ceph-provisioners/
│ │ └── apparmor.yaml
│ ├── ceph-rgw/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── netpol.yaml
│ │ └── tls.yaml
│ ├── cinder/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── backend_pure.yaml
│ │ ├── external-ceph-backend.yaml
│ │ ├── external-ceph-configmap.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── nfs-cinder-backup.yaml
│ │ ├── qos.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── cloudkitty/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ ├── cyborg/
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ ├── mariadb-operator.yaml
│ │ └── rabbitmq4.yaml
│ ├── designate/
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── elastic-apm-server/
│ │ └── apparmor.yaml
│ ├── elastic-filebeat/
│ │ └── apparmor.yaml
│ ├── elasticsearch/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── local-storage.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── remote-cluster.yaml
│ │ └── tls.yaml
│ ├── fluentd/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── tls.yaml
│ ├── freezer/
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ ├── glance/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── bootstrap-ubuntu-image.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── gnocchi/
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── grafana/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── calico.yaml
│ │ ├── ceph.yaml
│ │ ├── containers.yaml
│ │ ├── coredns.yaml
│ │ ├── elasticsearch.yaml
│ │ ├── gateway.yaml
│ │ ├── home_dashboard.yaml
│ │ ├── kubernetes.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── nginx.yaml
│ │ ├── nodes.yaml
│ │ ├── openstack.yaml
│ │ ├── persistentvolume.yaml
│ │ ├── prometheus.yaml
│ │ ├── sqlite3.yaml
│ │ └── tls.yaml
│ ├── heat/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── horizon/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── logo.yaml
│ │ ├── netpol.yaml
│ │ └── tls.yaml
│ ├── ironic/
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ ├── mariadb-operator.yaml
│ │ └── standalone.yaml
│ ├── keystone/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── internal-reverse-proxy.yaml
│ │ ├── ldap.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── tls-custom.yaml
│ │ └── tls.yaml
│ ├── kibana/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── tls.yaml
│ ├── kubernetes-keystone-webhook/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ └── loci-2025.2-ubuntu_noble.yaml
│ ├── kubernetes-node-problem-detector/
│ │ └── apparmor.yaml
│ ├── libvirt/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── cinder-external-ceph-backend.yaml
│ │ ├── inovex_exporter.yaml
│ │ ├── netpol.yaml
│ │ ├── node_overrides.yaml
│ │ ├── ovn.yaml
│ │ ├── ssl.yaml
│ │ └── vexxhost_exporter.yaml
│ ├── local-storage/
│ │ └── local-storage.yaml
│ ├── magnum/
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── manila/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── mariadb/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── backups.yaml
│ │ ├── local-storage.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── netpol.yaml
│ │ ├── remote_backups.yaml
│ │ ├── staggered-backups.yaml
│ │ ├── tls.yaml
│ │ └── wait-for-cluster.yaml
│ ├── mariadb-backup/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── backups.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── staggered-backups.yaml
│ │ └── tls.yaml
│ ├── mariadb-cluster/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── downscaled.yaml
│ │ ├── local-storage.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── netpol.yaml
│ │ ├── prometheus.yaml
│ │ ├── tls.yaml
│ │ └── upscaled.yaml
│ ├── masakari/
│ │ ├── annotations.yaml
│ │ └── mariadb-operator.yaml
│ ├── memcached/
│ │ ├── apparmor.yaml
│ │ ├── exporter.yaml
│ │ └── netpol.yaml
│ ├── mistral/
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── nagios/
│ │ ├── apparmor.yaml
│ │ ├── elasticsearch-objects.yaml
│ │ ├── gateway.yaml
│ │ ├── openstack-objects.yaml
│ │ ├── postgresql-objects.yaml
│ │ └── tls.yaml
│ ├── neutron/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── bagpipe_bgp.yaml
│ │ ├── dpdk-bond.yaml
│ │ ├── dpdk.yaml
│ │ ├── gate.yaml
│ │ ├── gateway.yaml
│ │ ├── l2gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── ovn.yaml
│ │ ├── ovn_vpn.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── shared-sriov-ovs-dpdk-bond.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── nova/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── cntt.yaml
│ │ ├── dpdk.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── opensuse_15.yaml
│ │ ├── ovn.yaml
│ │ ├── rabbitmq4.yaml
│ │ ├── ssh.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── octavia/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ ├── openvswitch/
│ │ ├── apparmor.yaml
│ │ ├── dpdk-ubuntu_jammy.yaml
│ │ ├── dpdk-ubuntu_noble.yaml
│ │ ├── exporter.yaml
│ │ ├── netpol.yaml
│ │ ├── ovn.yaml
│ │ ├── ubuntu_jammy.yaml
│ │ ├── ubuntu_noble.yaml
│ │ └── vswitchd-probes.yaml
│ ├── ovn/
│ │ ├── ubuntu_jammy.yaml
│ │ └── ubuntu_noble.yaml
│ ├── placement/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── apparmor.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── mariadb-operator.yaml
│ │ ├── netpol.yaml
│ │ ├── tls-offloading.yaml
│ │ └── tls.yaml
│ ├── postgresql/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── backups.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── netpol.yaml
│ │ ├── staggered-backups.yaml
│ │ └── tls.yaml
│ ├── powerdns/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ └── loci-2025.2-ubuntu_noble.yaml
│ ├── prometheus/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── alertmanager.yaml
│ │ ├── apparmor.yaml
│ │ ├── ceph.yaml
│ │ ├── elasticsearch.yaml
│ │ ├── gateway.yaml
│ │ ├── kubernetes.yaml
│ │ ├── local-storage.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── nodes.yaml
│ │ ├── openstack.yaml
│ │ ├── postgresql.yaml
│ │ └── tls.yaml
│ ├── prometheus-alertmanager/
│ │ ├── apparmor.yaml
│ │ └── gateway.yaml
│ ├── prometheus-blackbox-exporter/
│ │ └── apparmor.yaml
│ ├── prometheus-kube-state-metrics/
│ │ └── apparmor.yaml
│ ├── prometheus-mysql-exporter/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── prometheus.yaml
│ │ └── tls.yaml
│ ├── prometheus-node-exporter/
│ │ └── apparmor.yaml
│ ├── prometheus-openstack-exporter/
│ │ ├── apparmor.yaml
│ │ ├── netpol.yaml
│ │ └── tls.yaml
│ ├── prometheus-process-exporter/
│ │ └── apparmor.yaml
│ ├── rabbitmq/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── apparmor.yaml
│ │ ├── builtin-metrics.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ ├── netpol.yaml
│ │ ├── rabbitmq-exporter.yaml
│ │ └── tls.yaml
│ ├── rally/
│ │ ├── annotations.yaml
│ │ ├── mariadb-operator.yaml
│ │ └── tls-offloading.yaml
│ ├── skyline/
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ └── loci-2025.2-ubuntu_noble.yaml
│ ├── swift/
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ └── gateway.yaml
│ ├── tacker/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ ├── tempest/
│ │ └── annotations.yaml
│ ├── trove/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── annotations.yaml
│ │ ├── gateway.yaml
│ │ └── mariadb-operator.yaml
│ ├── watcher/
│ │ ├── 2024.2-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_jammy.yaml
│ │ ├── 2025.1-ubuntu_noble.yaml
│ │ ├── 2025.2-ubuntu_noble.yaml
│ │ ├── gateway.yaml
│ │ ├── loci-2025.1-ubuntu_noble.yaml
│ │ ├── loci-2025.2-ubuntu_noble.yaml
│ │ └── mariadb-operator.yaml
│ └── zaqar/
│ ├── 2025.1-ubuntu_jammy.yaml
│ ├── 2025.1-ubuntu_noble.yaml
│ ├── 2025.2-ubuntu_noble.yaml
│ ├── gateway.yaml
│ ├── loci-2025.1-ubuntu_noble.yaml
│ └── loci-2025.2-ubuntu_noble.yaml
├── watcher/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _watcher-api.sh.tpl
│ │ │ ├── _watcher-applier.sh.tpl
│ │ │ └── _watcher-decision-engine.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── deployment-applier.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── job-rabbit-init.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-rabbitmq.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ ├── service-ingress-api.yaml
│ │ └── statefulset-decision-engine.yaml
│ └── values.yaml
├── yamllint-templates.conf
├── yamllint.conf
├── zaqar/
│ ├── Chart.yaml
│ ├── templates/
│ │ ├── bin/
│ │ │ ├── _bootstrap.sh.tpl
│ │ │ ├── _db-sync.sh.tpl
│ │ │ ├── _zaqar-test.sh.tpl
│ │ │ └── _zaqar_api.sh.tpl
│ │ ├── configmap-bin.yaml
│ │ ├── configmap-etc.yaml
│ │ ├── deployment-api.yaml
│ │ ├── extra-manifests.yaml
│ │ ├── ingress-api.yaml
│ │ ├── job-bootstrap.yaml
│ │ ├── job-db-drop.yaml
│ │ ├── job-db-init.yaml
│ │ ├── job-db-sync.yaml
│ │ ├── job-image-repo-sync.yaml
│ │ ├── job-ks-endpoints.yaml
│ │ ├── job-ks-service.yaml
│ │ ├── job-ks-user.yaml
│ │ ├── network_policy.yaml
│ │ ├── pdb-api.yaml
│ │ ├── pod-rally-test.yaml
│ │ ├── pod-test.yaml
│ │ ├── secret-db.yaml
│ │ ├── secret-ingress-tls.yaml
│ │ ├── secret-keystone.yaml
│ │ ├── secret-ks-etc.yaml
│ │ ├── secret-registry.yaml
│ │ ├── service-api.yaml
│ │ └── service-ingress-api.yaml
│ └── values.yaml
└── zuul.d/
├── 2024.2.yaml
├── 2025.1.yaml
├── 2025.2-ubuntu_noble.yaml
├── base.yaml
├── infra_jobs.yaml
├── nodesets.yaml
└── project.yaml
SYMBOL INDEX (13 symbols across 3 files)
FILE: doc/source/_exts/helm_docs.py
function _run_helm_docs (line 32) | def _run_helm_docs(
function setup (line 53) | def setup(app: Sphinx) -> ExtensionMetadata:
FILE: tools/changelog.py
function _indent_for_list (line 13) | def _indent_for_list(text, prefix=' '):
function chart_reports (line 21) | def chart_reports(loader, config, versions_to_include, title=None, chart...
function main (line 108) | def main():
FILE: tools/gate/selenium/seleniumtester.py
class SeleniumTester (line 26) | class SeleniumTester():
method __init__ (line 27) | def __init__(self, name):
method get_logger (line 34) | def get_logger(self, name):
method get_variable (line 48) | def get_variable(self, env_var):
method get_browser (line 58) | def get_browser(self):
method initialize_artifiacts_dir (line 67) | def initialize_artifiacts_dir(self):
method click_link_by_name (line 74) | def click_link_by_name(self, link_name):
method take_screenshot (line 87) | def take_screenshot(self, page_name):
Condensed preview — 3167 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,104K chars).
[
{
"path": ".gitignore",
"chars": 998,
"preview": "*.py[cod]\n\n# C extensions\n*.so\n\n# Packages\n*.egg*\n*.egg-info\ndist\nbuild\neggs\nparts\nvar\nsdist\ndevelop-eggs\n.installed.cfg"
},
{
"path": ".gitreview",
"chars": 81,
"preview": "[gerrit]\nhost=review.opendev.org\nport=29418\nproject=openstack/openstack-helm.git\n"
},
{
"path": ".pre-commit-config.yaml",
"chars": 433,
"preview": "---\nrepos:\n - repo: https://github.com/pre-commit/pre-commit-hooks\n rev: v4.5.0\n hooks:\n - id: trailing-whit"
},
{
"path": "CONTRIBUTING.rst",
"chars": 468,
"preview": "The source repository for this project can be found at:\n\n https://opendev.org/openstack/openstack-helm.git\n\nPull reque"
},
{
"path": "LICENSE",
"chars": 11357,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "Makefile",
"chars": 2893,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "README.rst",
"chars": 3842,
"preview": "==============\nOpenStack-Helm\n==============\n\nMission\n-------\n\nThe goal of OpenStack-Helm is to provide a collection of "
},
{
"path": "aodh/Chart.yaml",
"chars": 983,
"preview": "# Copyright 2019 Wind River Systems, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
},
{
"path": "aodh/templates/bin/_aodh-alarms-cleaner.sh.tpl",
"chars": 657,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "aodh/templates/bin/_aodh-api.sh.tpl",
"chars": 1218,
"preview": "#!/bin/bash\n\n{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "aodh/templates/bin/_aodh-evaluator.sh.tpl",
"chars": 700,
"preview": "#!/bin/bash\n\n{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "aodh/templates/bin/_aodh-listener.sh.tpl",
"chars": 699,
"preview": "#!/bin/bash\n\n{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "aodh/templates/bin/_aodh-notifier.sh.tpl",
"chars": 699,
"preview": "#!/bin/bash\n\n{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "aodh/templates/bin/_aodh-test.sh.tpl",
"chars": 1391,
"preview": "#!/bin/bash\n\n{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "aodh/templates/bin/_bootstrap.sh.tpl",
"chars": 659,
"preview": "#!/bin/bash\n\n{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "aodh/templates/bin/_db-sync.sh.tpl",
"chars": 614,
"preview": "#!/bin/bash\n\n{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "aodh/templates/configmap-bin.yaml",
"chars": 2300,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/configmap-etc.yaml",
"chars": 6434,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/cron-job-alarms-cleaner.yaml",
"chars": 4534,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/deployment-api.yaml",
"chars": 6164,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/deployment-evaluator.yaml",
"chars": 5470,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/deployment-listener.yaml",
"chars": 5438,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/deployment-notifier.yaml",
"chars": 5438,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/extra-manifests.yaml",
"chars": 144,
"preview": "{{ range .Values.extraObjects }}\n---\n{{ if typeIs \"string\" . }}\n {{- tpl . $ }}\n{{- else }}\n {{- tpl (toYaml .) $ "
},
{
"path": "aodh/templates/ingress-api.yaml",
"chars": 821,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/job-bootstrap.yaml",
"chars": 948,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/job-db-drop.yaml",
"chars": 870,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/job-db-init.yaml",
"chars": 870,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/job-db-sync.yaml",
"chars": 1059,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/job-image-repo-sync.yaml",
"chars": 942,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/job-ks-endpoints.yaml",
"chars": 919,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/job-ks-service.yaml",
"chars": 915,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/job-ks-user.yaml",
"chars": 864,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/job-rabbit-init.yaml",
"chars": 875,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/network_policy.yaml",
"chars": 733,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "aodh/templates/pdb-api.yaml",
"chars": 941,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/pod-aodh-test.yaml",
"chars": 2980,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/secret-db.yaml",
"chars": 1150,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/secret-ingress-tls.yaml",
"chars": 744,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/secret-keystone.yaml",
"chars": 1114,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/secret-rabbitmq.yaml",
"chars": 1181,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/secret-registry.yaml",
"chars": 745,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "aodh/templates/service-api.yaml",
"chars": 1359,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/templates/service-ingress-api.yaml",
"chars": 829,
"preview": "{{/*\nCopyright 2019 Wind River Systems, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may no"
},
{
"path": "aodh/values.yaml",
"chars": 19846,
"preview": "# Copyright 2019 Wind River Systems, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may "
},
{
"path": "barbican/.helmignore",
"chars": 17,
"preview": "values_overrides\n"
},
{
"path": "barbican/Chart.yaml",
"chars": 1076,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "barbican/templates/bin/_barbican-test.sh.tpl",
"chars": 945,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "barbican/templates/bin/_barbican.sh.tpl",
"chars": 703,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "barbican/templates/bin/_bootstrap.sh.tpl",
"chars": 617,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "barbican/templates/bin/_db-sync.sh.tpl",
"chars": 993,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "barbican/templates/bin/_simple_crypto_kek_rewrap.py.tpl",
"chars": 6054,
"preview": "#!/usr/bin/env python\n\n# Licensed under the Apache License, Version 2.0 (the \"License\"); you may\n# not use this file exc"
},
{
"path": "barbican/templates/certificates.yaml",
"chars": 700,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/configmap-bin.yaml",
"chars": 1934,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/configmap-etc.yaml",
"chars": 6234,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/deployment-api.yaml",
"chars": 8664,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/extra-manifests.yaml",
"chars": 144,
"preview": "{{ range .Values.extraObjects }}\n---\n{{ if typeIs \"string\" . }}\n {{- tpl . $ }}\n{{- else }}\n {{- tpl (toYaml .) $ "
},
{
"path": "barbican/templates/ingress-api.yaml",
"chars": 783,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/job-bootstrap.yaml",
"chars": 1351,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/job-db-drop.yaml",
"chars": 996,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/job-db-init.yaml",
"chars": 1226,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/job-db-sync.yaml",
"chars": 1710,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/job-image-repo-sync.yaml",
"chars": 1089,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/job-ks-endpoints.yaml",
"chars": 1268,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/job-ks-service.yaml",
"chars": 1260,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/job-ks-user.yaml",
"chars": 1197,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/job-rabbit-init.yaml",
"chars": 1276,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/network_policy.yaml",
"chars": 761,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "barbican/templates/pdb-api.yaml",
"chars": 908,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/pod-test.yaml",
"chars": 3429,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/secret-db.yaml",
"chars": 1406,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/secret-ingress-tls.yaml",
"chars": 706,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/secret-keystone.yaml",
"chars": 1077,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/secret-rabbitmq.yaml",
"chars": 1144,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/secret-registry.yaml",
"chars": 745,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/service-api.yaml",
"chars": 1317,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/templates/service-ingress-api.yaml",
"chars": 791,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "barbican/values.yaml",
"chars": 21660,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "bindep.txt",
"chars": 138,
"preview": "# This file facilitates OpenStack-CI package installation\n# before the execution of any tests.\n\n# Required to build lang"
},
{
"path": "blazar/Chart.yaml",
"chars": 1108,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "blazar/templates/bin/_blazar_api.sh.tpl",
"chars": 713,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "blazar/templates/bin/_blazar_manager.sh.tpl",
"chars": 618,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "blazar/templates/bin/_db-sync.sh.tpl",
"chars": 632,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "blazar/templates/configmap-bin.yaml",
"chars": 1817,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/configmap-etc.yaml",
"chars": 6241,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/deployment-api.yaml",
"chars": 8277,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/deployment-manager.yaml",
"chars": 5079,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/extra-manifests.yaml",
"chars": 144,
"preview": "{{ range .Values.extraObjects }}\n---\n{{ if typeIs \"string\" . }}\n {{- tpl . $ }}\n{{- else }}\n {{- tpl (toYaml .) $ "
},
{
"path": "blazar/templates/ingress-api.yaml",
"chars": 1306,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/job-bootstrap.yaml",
"chars": 911,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/job-db-drop.yaml",
"chars": 992,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/job-db-init.yaml",
"chars": 1222,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/job-db-sync.yaml",
"chars": 1360,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/job-ks-endpoints.yaml",
"chars": 1305,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/job-ks-service.yaml",
"chars": 1287,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/job-ks-user.yaml",
"chars": 1222,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/job-rabbit-init.yaml",
"chars": 1237,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/pdb-api.yaml",
"chars": 1212,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/pdb-manager.yaml",
"chars": 1240,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/pod-rally-test.yaml",
"chars": 6300,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/secret-db.yaml",
"chars": 1408,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/secret-keystone.yaml",
"chars": 1096,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/secret-ks-etc.yaml",
"chars": 900,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/secret-rabbitmq.yaml",
"chars": 1361,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/service-api.yaml",
"chars": 1336,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/templates/service-ingress-api.yaml",
"chars": 791,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "blazar/values.yaml",
"chars": 20500,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ca-clusterissuer/Chart.yaml",
"chars": 804,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ca-clusterissuer/templates/clusterissuer-ca.yaml",
"chars": 913,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ca-clusterissuer/templates/extra-manifests.yaml",
"chars": 144,
"preview": "{{ range .Values.extraObjects }}\n---\n{{ if typeIs \"string\" . }}\n {{- tpl . $ }}\n{{- else }}\n {{- tpl (toYaml .) $ "
},
{
"path": "ca-clusterissuer/templates/secret-ca.yaml",
"chars": 861,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ca-clusterissuer/values.yaml",
"chars": 1683,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ca-issuer/Chart.yaml",
"chars": 797,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ca-issuer/templates/extra-manifests.yaml",
"chars": 144,
"preview": "{{ range .Values.extraObjects }}\n---\n{{ if typeIs \"string\" . }}\n {{- tpl . $ }}\n{{- else }}\n {{- tpl (toYaml .) $ "
},
{
"path": "ca-issuer/templates/issuer-ca.yaml",
"chars": 1054,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ca-issuer/templates/secret-ca.yaml",
"chars": 847,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ca-issuer/values.yaml",
"chars": 1835,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ceilometer/Chart.yaml",
"chars": 963,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ceilometer/templates/bin/_bootstrap.sh.tpl",
"chars": 617,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceilometer/templates/bin/_ceilometer-central.sh.tpl",
"chars": 714,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceilometer/templates/bin/_ceilometer-compute.sh.tpl",
"chars": 714,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl",
"chars": 711,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceilometer/templates/bin/_ceilometer-notification.sh.tpl",
"chars": 692,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceilometer/templates/bin/_db-sync.sh.tpl",
"chars": 580,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceilometer/templates/configmap-bin.yaml",
"chars": 1636,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/configmap-etc.yaml",
"chars": 4394,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/daemonset-compute.yaml",
"chars": 6649,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/daemonset-ipmi.yaml",
"chars": 6067,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/deployment-central.yaml",
"chars": 5852,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/deployment-notification.yaml",
"chars": 6162,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/extra-manifests.yaml",
"chars": 144,
"preview": "{{ range .Values.extraObjects }}\n---\n{{ if typeIs \"string\" . }}\n {{- tpl . $ }}\n{{- else }}\n {{- tpl (toYaml .) $ "
},
{
"path": "ceilometer/templates/job-bootstrap.yaml",
"chars": 919,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/job-db-sync.yaml",
"chars": 995,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/job-image-repo-sync.yaml",
"chars": 913,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/job-ks-user.yaml",
"chars": 835,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/job-rabbit-init.yaml",
"chars": 845,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/network_policy.yaml",
"chars": 763,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ceilometer/templates/secret-keystone.yaml",
"chars": 1086,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/secret-rabbitmq.yaml",
"chars": 1146,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/templates/secret-registry.yaml",
"chars": 745,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceilometer/values.yaml",
"chars": 51700,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ceph-adapter-rook/Chart.yaml",
"chars": 810,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ceph-adapter-rook/README.md",
"chars": 795,
"preview": "# Summary\nThis is the minimal set of templates necessary to make the rest\nof Openstack-Helm charts work with Ceph cluste"
},
{
"path": "ceph-adapter-rook/templates/bin/_config-manager.sh.tpl",
"chars": 932,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-adapter-rook/templates/bin/_key-manager.sh.tpl",
"chars": 1433,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-adapter-rook/templates/configmap-bin.yaml",
"chars": 950,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-adapter-rook/templates/configmap-etc-client.yaml",
"chars": 1542,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-adapter-rook/templates/extra-manifests.yaml",
"chars": 144,
"preview": "{{ range .Values.extraObjects }}\n---\n{{ if typeIs \"string\" . }}\n {{- tpl . $ }}\n{{- else }}\n {{- tpl (toYaml .) $ "
},
{
"path": "ceph-adapter-rook/templates/job-namespace-client-ceph-config.yaml",
"chars": 4802,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-adapter-rook/templates/job-namespace-client-key.yaml",
"chars": 4773,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-adapter-rook/values.yaml",
"chars": 2442,
"preview": "---\nimages:\n pull_policy: IfNotPresent\n tags:\n ceph_config_helper: 'quay.io/airshipit/ceph-config-helper:ubuntu_jam"
},
{
"path": "ceph-client/Chart.yaml",
"chars": 805,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ceph-client/templates/bin/_bootstrap.sh.tpl",
"chars": 617,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-client/templates/bin/_helm-tests.sh.tpl",
"chars": 16042,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-client/templates/bin/_init-dirs.sh.tpl",
"chars": 1340,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-client/templates/bin/mds/_start.sh.tpl",
"chars": 3329,
"preview": "#!/bin/bash\nset -ex\nexport LC_ALL=C\n: \"${HOSTNAME:=$(uname -n)}\"\n: \"${CEPHFS_CREATE:=0}\"\n: \"${CEPHFS_NAME:=cephfs}\"\n: \"$"
},
{
"path": "ceph-client/templates/bin/pool/_calc.py.tpl",
"chars": 1311,
"preview": "#!/usr/bin/python\n# -*- coding: utf-8 -*-\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may "
},
{
"path": "ceph-client/templates/bin/pool/_init.sh.tpl",
"chars": 18598,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-client/templates/bin/utils/_checkDNS.sh.tpl",
"chars": 1142,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-client/templates/bin/utils/_checkDNS_start.sh.tpl",
"chars": 2263,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-client/templates/bin/utils/_checkPGs.sh.tpl",
"chars": 841,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-client/templates/bin/utils/_defragOSDs.sh.tpl",
"chars": 910,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-client/templates/configmap-bin.yaml",
"chars": 2044,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/templates/configmap-etc-client.yaml",
"chars": 1565,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/templates/cronjob-checkPGs.yaml",
"chars": 5363,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/templates/cronjob-defragosds.yaml",
"chars": 3782,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/templates/deployment-checkdns.yaml",
"chars": 5233,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/templates/deployment-mds.yaml",
"chars": 7482,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/templates/extra-manifests.yaml",
"chars": 144,
"preview": "{{ range .Values.extraObjects }}\n---\n{{ if typeIs \"string\" . }}\n {{- tpl . $ }}\n{{- else }}\n {{- tpl (toYaml .) $ "
},
{
"path": "ceph-client/templates/job-bootstrap.yaml",
"chars": 3553,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/templates/job-image-repo-sync.yaml",
"chars": 786,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/templates/job-rbd-pool.yaml",
"chars": 4783,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/templates/pod-helm-tests.yaml",
"chars": 3825,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/templates/secret-registry.yaml",
"chars": 745,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-client/values.yaml",
"chars": 18454,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ceph-mon/Chart.yaml",
"chars": 792,
"preview": "# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with "
},
{
"path": "ceph-mon/templates/bin/_bootstrap.sh.tpl",
"chars": 617,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-mon/templates/bin/_init-dirs.sh.tpl",
"chars": 1357,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-mon/templates/bin/_post-apply.sh.tpl",
"chars": 4644,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-mon/templates/bin/keys/_bootstrap-keyring-generator.py.tpl",
"chars": 367,
"preview": "#!/bin/python\nimport os\nimport struct\nimport time\nimport base64\nkey = os.urandom(16)\nheader = struct.pack(\n '<hiih',\n"
},
{
"path": "ceph-mon/templates/bin/keys/_bootstrap-keyring-manager.sh.tpl",
"chars": 1788,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-mon/templates/bin/keys/_storage-keyring-manager.sh.tpl",
"chars": 3169,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-mon/templates/bin/mgr/_check.sh.tpl",
"chars": 1019,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-mon/templates/bin/mgr/_start.sh.tpl",
"chars": 2642,
"preview": "#!/bin/bash\nset -ex\n: \"${CEPH_GET_ADMIN_KEY:=0}\"\n: \"${MGR_NAME:=$(uname -n)}\"\n: \"${MGR_KEYRING:=/var/lib/ceph/mgr/${CLUS"
},
{
"path": "ceph-mon/templates/bin/mon/_check.sh.tpl",
"chars": 1758,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-mon/templates/bin/mon/_start.sh.tpl",
"chars": 4396,
"preview": "#!/bin/bash\nset -ex\nexport LC_ALL=C\n: \"${K8S_HOST_NETWORK:=0}\"\n: \"${MON_KEYRING:=/etc/ceph/${CLUSTER}.mon.keyring}\"\n: \"$"
},
{
"path": "ceph-mon/templates/bin/mon/_stop.sh.tpl",
"chars": 338,
"preview": "#!/bin/bash\n\nset -ex\n\nNUMBER_OF_MONS=$(ceph mon stat | awk '$3 == \"mons\" {print $2}')\nif [[ \"${NUMBER_OF_MONS}\" -gt \"3\" "
},
{
"path": "ceph-mon/templates/bin/moncheck/_reap-zombies.py.tpl",
"chars": 2491,
"preview": "#!/usr/bin/python\nimport re\nimport os\nimport subprocess # nosec\nimport json\n\nMON_REGEX = r\"^\\d: \\[((v\\d+:([0-9\\.]*):\\d+"
},
{
"path": "ceph-mon/templates/bin/moncheck/_start.sh.tpl",
"chars": 2574,
"preview": "#!/bin/bash\nset -ex\nexport LC_ALL=C\n: \"${CEPH_CONF:=\"/etc/ceph/${CLUSTER}.conf\"}\"\n\n{{ include \"helm-toolkit.snippets.mon"
},
{
"path": "ceph-mon/templates/bin/utils/_checkDNS.sh.tpl",
"chars": 1142,
"preview": "#!/bin/bash\n\n{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in co"
},
{
"path": "ceph-mon/templates/bin/utils/_checkObjectReplication.py.tpl",
"chars": 1137,
"preview": "#!/usr/bin/python3\n\nimport subprocess # nosec\nimport json\nimport sys\nimport collections\n\nif (int(len(sys.argv)) == 1):\n"
},
{
"path": "ceph-mon/templates/bin/utils/_checkPGs.py.tpl",
"chars": 10864,
"preview": "#!/usr/bin/python\n\nimport subprocess # nosec\nimport json\nimport sys\nfrom argparse import *\n\nclass cephCRUSH():\n \"\"\"\n"
},
{
"path": "ceph-mon/templates/configmap-bin.yaml",
"chars": 2885,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-mon/templates/configmap-etc.yaml",
"chars": 1709,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-mon/templates/configmap-templates.yaml",
"chars": 1182,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-mon/templates/daemonset-mon.yaml",
"chars": 11641,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-mon/templates/deployment-mgr.yaml",
"chars": 8866,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-mon/templates/deployment-moncheck.yaml",
"chars": 5552,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
},
{
"path": "ceph-mon/templates/extra-manifests.yaml",
"chars": 144,
"preview": "{{ range .Values.extraObjects }}\n---\n{{ if typeIs \"string\" . }}\n {{- tpl . $ }}\n{{- else }}\n {{- tpl (toYaml .) $ "
},
{
"path": "ceph-mon/templates/job-bootstrap.yaml",
"chars": 3659,
"preview": "{{/*\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with"
}
]
// ... and 2967 more files (download for full content)
About this extraction
This page contains the full source code of the openstack/openstack-helm GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3167 files (8.1 MB), approximately 2.3M tokens, and a symbol index with 13 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.