5e8be5c339
This PS removes the pregenerated config templates producing using the hacked oslo-genconfig tool. This results in both a much smaller codebase and also more readable configuration by removing the requirement to specify settings via oslo namespaced references. This initial PS applies only to Keystone, A follow up will extend to all remaining services. Partially implements: blueprint remove-pregenerated-config-templates See: https://blueprints.launchpad.net/openstack-helm/+spec/remove-pregenerated-config-templates Change-Id: I3ced7ad02c703c767925a17b1a18f6158a878e83
100 lines
3.5 KiB
ReStructuredText
100 lines
3.5 KiB
ReStructuredText
OSLO-Config Values
|
|
------------------
|
|
|
|
OpenStack-Helm generates oslo-config compatible formatted configuration files for
|
|
services dynamically from values specified in a yaml tree. This allows operators to
|
|
control any and all aspects of an OpenStack services configuration. An example
|
|
snippet for an imaginary Keystone configuration is described here:
|
|
|
|
::
|
|
|
|
conf:
|
|
keystone:
|
|
DEFAULT: # Keys at this level are used for section headings
|
|
max_token_size: 255
|
|
token:
|
|
provider: fernet
|
|
fernet_tokens:
|
|
key_repository: /etc/keystone/fernet-keys/
|
|
credential:
|
|
key_repository: /etc/keystone/credential-keys/
|
|
database:
|
|
max_retries: -1
|
|
cache:
|
|
enabled: true
|
|
backend: dogpile.cache.memcached
|
|
oslo_messaging_notifications:
|
|
driver: # An example of a multistring option's syntax
|
|
type: multistring
|
|
values:
|
|
- messagingv2
|
|
- log
|
|
security_compliance:
|
|
password_expires_ignore_user_ids:
|
|
# Values in a list will be converted to a comma seperated key
|
|
- "123"
|
|
- "456"
|
|
|
|
This will be consumed by the templated ``configmap-etc.yaml`` manifest to
|
|
produce the following config file:
|
|
|
|
::
|
|
|
|
---
|
|
# Source: keystone/templates/configmap-etc.yaml
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: keystone-etc
|
|
data:
|
|
keystone.conf: |+
|
|
[DEFAULT]
|
|
max_token_size = 255
|
|
transport_url = rabbit://keystone:password@rabbitmq.default.svc.cluster.local:5672/openstack
|
|
[cache]
|
|
backend = dogpile.cache.memcached
|
|
enabled = true
|
|
memcache_servers = memcached.default.svc.cluster.local:11211
|
|
[credential]
|
|
key_repository = /etc/keystone/credential-keys/
|
|
[database]
|
|
connection = mysql+pymysql://keystone:password@mariadb.default.svc.cluster.local:3306/keystone
|
|
max_retries = -1
|
|
[fernet_tokens]
|
|
key_repository = /etc/keystone/fernet-keys/
|
|
[oslo_messaging_notifications]
|
|
driver = messagingv2
|
|
driver = log
|
|
[security_compliance]
|
|
password_expires_ignore_user_ids = 123,456
|
|
[token]
|
|
provider = fernet
|
|
|
|
Note that some additional values have been injected into the config file, this is
|
|
performed via statements in the configmap template, which also calls the
|
|
``helm-toolkit.utils.to_oslo_conf`` to convert the yaml to the required layout:
|
|
|
|
::
|
|
|
|
{{- if empty .Values.conf.keystone.database.connection -}}
|
|
{{- tuple "oslo_db" "internal" "user" "mysql" . | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup"| set .Values.conf.keystone.database "connection" | quote | trunc 0 -}}
|
|
{{- end -}}
|
|
|
|
{{- if empty .Values.conf.keystone.DEFAULT.transport_url -}}
|
|
{{- tuple "oslo_messaging" "internal" "user" "amqp" . | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | set .Values.conf.keystone.DEFAULT "transport_url" | quote | trunc 0 -}}
|
|
{{- end -}}
|
|
|
|
{{- if empty .Values.conf.keystone.cache.memcache_servers -}}
|
|
{{- tuple "oslo_cache" "internal" "memcache" . | include "helm-toolkit.endpoints.host_and_port_endpoint_uri_lookup" | set .Values.conf.keystone.cache "memcache_servers" | quote | trunc 0 -}}
|
|
{{- end -}}
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: keystone-etc
|
|
data:
|
|
keystone.conf: |+
|
|
{{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.keystone | indent 4 }}
|
|
{{- end }}
|