Endpoint lookup fixes for consistent keystone catalog endpoints
This introduces changes across several charts, for consistent endpoint lookup routines. Today, only the internal endpoints are defined (and copied to admin and public). This can later be expanded to handle unique public and admin endpoints. This ensures the catalog is populated with consistent URLs for all services.
This commit is contained in:
parent
a641c113cb
commit
bcf23c7399
@ -1,9 +1,94 @@
|
|||||||
#-----------------------------------------
|
#-----------------------------------------
|
||||||
# endpoints
|
# endpoints
|
||||||
#-----------------------------------------
|
#-----------------------------------------
|
||||||
|
|
||||||
|
# this should be a generic function leveraging a tuple
|
||||||
|
# for input, e.g. { endpoint keystone internal . }
|
||||||
|
# however, constructing this appears to be a
|
||||||
|
# herculean effort in gotpl
|
||||||
|
|
||||||
{{- define "endpoint_keystone_internal" -}}
|
{{- define "endpoint_keystone_internal" -}}
|
||||||
|
{{- $fqdn := .Release.Namespace -}}
|
||||||
|
{{- if .Values.endpoints.fqdn -}}
|
||||||
|
{{- $fqdn := .Values.endpoints.fqdn -}}
|
||||||
|
{{- end -}}
|
||||||
{{- with .Values.endpoints.keystone -}}
|
{{- with .Values.endpoints.keystone -}}
|
||||||
{{.scheme}}://{{.hosts.internal | default .hosts.default}}:{{.port.public}}{{.path}}
|
{{.scheme}}://{{.hosts.internal | default .hosts.default}}.{{ $fqdn }}:{{.port.public}}{{.path}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "endpoint_keystone_admin" -}}
|
||||||
|
{{- $fqdn := .Release.Namespace -}}
|
||||||
|
{{- if .Values.endpoints.fqdn -}}
|
||||||
|
{{- $fqdn := .Values.endpoints.fqdn -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with .Values.endpoints.keystone -}}
|
||||||
|
{{.scheme}}://{{.hosts.internal | default .hosts.default}}.{{ $fqdn }}:{{.port.admin}}{{.path}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "endpoint_nova_api_internal" -}}
|
||||||
|
{{- $fqdn := .Release.Namespace -}}
|
||||||
|
{{- if .Values.endpoints.fqdn -}}
|
||||||
|
{{- $fqdn := .Values.endpoints.fqdn -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with .Values.endpoints.nova -}}
|
||||||
|
{{.scheme}}://{{.hosts.internal | default .hosts.default}}.{{ $fqdn }}:{{.port.api}}{{.path}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "endpoint_nova_metadata_internal" -}}
|
||||||
|
{{- $fqdn := .Release.Namespace -}}
|
||||||
|
{{- if .Values.endpoints.fqdn -}}
|
||||||
|
{{- $fqdn := .Values.endpoints.fqdn -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with .Values.endpoints.nova -}}
|
||||||
|
{{.scheme}}://{{.hosts.internal | default .hosts.default}}.{{ $fqdn }}:{{.port.metadata}}{{.path}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "endpoint_nova_novncproxy_internal" -}}
|
||||||
|
{{- $fqdn := .Release.Namespace -}}
|
||||||
|
{{- if .Values.endpoints.fqdn -}}
|
||||||
|
{{- $fqdn := .Values.endpoints.fqdn -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with .Values.endpoints.nova -}}
|
||||||
|
{{.scheme}}://{{.hosts.internal | default .hosts.default}}.{{ $fqdn }}:{{.port.novncproxy}}{{.path}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "endpoint_glance_api_internal" -}}
|
||||||
|
{{- $fqdn := .Release.Namespace -}}
|
||||||
|
{{- if .Values.endpoints.fqdn -}}
|
||||||
|
{{- $fqdn := .Values.endpoints.fqdn -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with .Values.endpoints.glance -}}
|
||||||
|
{{.scheme}}://{{.hosts.internal | default .hosts.default}}.{{ $fqdn }}:{{.port.api}}{{.path}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "endpoint_glance_registry_internal" -}}
|
||||||
|
{{- $fqdn := .Release.Namespace -}}
|
||||||
|
{{- if .Values.endpoints.fqdn -}}
|
||||||
|
{{- $fqdn := .Values.endpoints.fqdn -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with .Values.endpoints.glance -}}
|
||||||
|
{{.scheme}}://{{.hosts.internal | default .hosts.default}}.{{ $fqdn }}:{{.port.registry}}{{.path}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "endpoint_neutron_api_internal" -}}
|
||||||
|
{{- $fqdn := .Release.Namespace -}}
|
||||||
|
{{- if .Values.endpoints.fqdn -}}
|
||||||
|
{{- $fqdn := .Values.endpoints.fqdn -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with .Values.endpoints.neutron -}}
|
||||||
|
{{.scheme}}://{{.hosts.internal | default .hosts.default}}.{{ $fqdn }}:{{.port.api}}{{.path}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
#-------------------------------
|
||||||
|
# kolla helpers
|
||||||
|
#-------------------------------
|
||||||
|
{{ define "keystone_auth" }}{'auth_url':'{{ include "endpoint_keystone_internal" . }}', 'username':'{{ .Values.keystone.admin_user }}','password':'{{ .Values.keystone.admin_password }}','project_name':'{{ .Values.keystone.admin_project_name }}','domain_name':'default'}{{end}}
|
||||||
|
|
||||||
|
@ -2,6 +2,14 @@
|
|||||||
{{- define "region"}}cluster{{- end}}
|
{{- define "region"}}cluster{{- end}}
|
||||||
{{- define "tld"}}local{{- end}}
|
{{- define "tld"}}local{{- end}}
|
||||||
|
|
||||||
|
{{- define "fqdn" -}}
|
||||||
|
{{- $fqdn := .Release.Namespace -}}
|
||||||
|
{{- if .Values.endpoints.fqdn -}}
|
||||||
|
{{- $fqdn := .Values.endpoints.fqdn -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $fqdn -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
#-----------------------------------------
|
#-----------------------------------------
|
||||||
# hosts
|
# hosts
|
||||||
#-----------------------------------------
|
#-----------------------------------------
|
||||||
@ -17,3 +25,14 @@
|
|||||||
{{- define "keystone_api_endpoint_host_internal"}}keystone-api.{{.Release.Namespace}}.svc.{{ include "region" . }}.{{ include "tld" . }}{{- end}}
|
{{- define "keystone_api_endpoint_host_internal"}}keystone-api.{{.Release.Namespace}}.svc.{{ include "region" . }}.{{ include "tld" . }}{{- end}}
|
||||||
{{- define "keystone_api_endpoint_host_public"}}keystone-api.{{ include "region" . }}.{{ include "tld" . }}{{- end}}
|
{{- define "keystone_api_endpoint_host_public"}}keystone-api.{{ include "region" . }}.{{ include "tld" . }}{{- end}}
|
||||||
{{- define "keystone_api_endpoint_host_admin_ext"}}keystone-api.{{ include "region" . }}.{{ include "tld" . }}{{- end}}
|
{{- define "keystone_api_endpoint_host_admin_ext"}}keystone-api.{{ include "region" . }}.{{ include "tld" . }}{{- end}}
|
||||||
|
|
||||||
|
# glance defaults
|
||||||
|
{{- define "glance_registry_host"}}glance-registry.{{ include "fqdn" . }}{{- end}}
|
||||||
|
|
||||||
|
# nova defaults
|
||||||
|
{{- define "nova_metadata_host"}}nova-api.{{ include "fqdn" . }}{{- end}}
|
||||||
|
|
||||||
|
# neutron defaults
|
||||||
|
{{- define "neutron_db_host"}}{{ include "mariadb_host" . }}{{- end}}
|
||||||
|
{{- define "neutron_rabbit_host"}}{{- include "rabbitmq_host" .}}{{- end}}
|
||||||
|
|
||||||
|
@ -7,3 +7,6 @@ global:
|
|||||||
region: cluster
|
region: cluster
|
||||||
tld: local
|
tld: local
|
||||||
|
|
||||||
|
endpoints:
|
||||||
|
fqdn: null
|
||||||
|
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
{{- define "joinListWithColon" -}}
|
|
||||||
{{ range $k, $v := . }}{{ if $k }},{{ end }}{{ $v }}{{ end }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{ define "keystone_auth" }}{'auth_url':'{{ .Values.keystone.auth_url }}', 'username':'{{ .Values.keystone.admin_user }}','password':'{{ .Values.keystone.admin_password }}','project_name':'{{ .Values.keystone.admin_project_name }}','domain_name':'default'}{{end}}
|
|
@ -5,5 +5,9 @@ metadata:
|
|||||||
data:
|
data:
|
||||||
ceph.client.{{ .Values.ceph.glance_user }}.keyring: |+
|
ceph.client.{{ .Values.ceph.glance_user }}.keyring: |+
|
||||||
[client.{{ .Values.ceph.glance_user }}]
|
[client.{{ .Values.ceph.glance_user }}]
|
||||||
|
{{- if .Values.ceph.glance_keyring }}
|
||||||
key = {{ .Values.ceph.glance_keyring }}
|
key = {{ .Values.ceph.glance_keyring }}
|
||||||
|
{{- else }}
|
||||||
|
key = {{- include "secrets/ceph-client-key" . -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
@ -7,12 +7,17 @@ data:
|
|||||||
[global]
|
[global]
|
||||||
rgw_thread_pool_size = 1024
|
rgw_thread_pool_size = 1024
|
||||||
rgw_num_rados_handles = 100
|
rgw_num_rados_handles = 100
|
||||||
|
{{- if .Values.ceph.monitors }}
|
||||||
[mon]
|
[mon]
|
||||||
{{ range .Values.ceph.monitors }}
|
{{ range .Values.ceph.monitors }}
|
||||||
[mon.{{ . }}]
|
[mon.{{ . }}]
|
||||||
host = {{ . }}
|
host = {{ . }}
|
||||||
mon_addr = {{ . }}
|
mon_addr = {{ . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{- else }}
|
||||||
|
mon_host = ceph-mon.ceph
|
||||||
|
{{- end }}
|
||||||
[client]
|
[client]
|
||||||
rbd_cache_enabled = true
|
rbd_cache_enabled = true
|
||||||
rbd_cache_writethrough_until_flush = true
|
rbd_cache_writethrough_until_flush = true
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ data:
|
|||||||
bind_port = {{ .Values.network.port.api }}
|
bind_port = {{ .Values.network.port.api }}
|
||||||
|
|
||||||
workers = {{ .Values.misc.workers }}
|
workers = {{ .Values.misc.workers }}
|
||||||
registry_host = glance-registry
|
registry_host = {{ include "glance_registry_host" . }}
|
||||||
|
|
||||||
# Enable Copy-on-Write
|
# Enable Copy-on-Write
|
||||||
show_image_direct_url = True
|
show_image_direct_url = True
|
||||||
@ -45,3 +45,4 @@ data:
|
|||||||
rbd_store_user = {{ .Values.ceph.glance_user }}
|
rbd_store_user = {{ .Values.ceph.glance_user }}
|
||||||
rbd_store_ceph_conf = /etc/ceph/ceph.conf
|
rbd_store_ceph_conf = /etc/ceph/ceph.conf
|
||||||
rbd_store_chunk_size = 8
|
rbd_store_chunk_size = 8
|
||||||
|
|
||||||
|
@ -6,12 +6,13 @@ data:
|
|||||||
post.sh: |+
|
post.sh: |+
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -ex
|
set -ex
|
||||||
|
export HOME=/tmp
|
||||||
|
|
||||||
ansible localhost -vvv -m kolla_keystone_service -a "service_name=glance \
|
ansible localhost -vvv -m kolla_keystone_service -a "service_name=glance \
|
||||||
service_type=image \
|
service_type=image \
|
||||||
description='Openstack Image' \
|
description='Openstack Image' \
|
||||||
endpoint_region='{{ .Values.keystone.glance_region_name }}' \
|
endpoint_region='{{ .Values.keystone.glance_region_name }}' \
|
||||||
url='http://glance-api:{{ .Values.network.port.api }}' \
|
url='{{ include "endpoint_glance_api_internal" . }}' \
|
||||||
interface=admin \
|
interface=admin \
|
||||||
region_name='{{ .Values.keystone.admin_region_name }}' \
|
region_name='{{ .Values.keystone.admin_region_name }}' \
|
||||||
auth='{{ include "keystone_auth" . }}'" \
|
auth='{{ include "keystone_auth" . }}'" \
|
||||||
@ -21,7 +22,7 @@ data:
|
|||||||
service_type=image \
|
service_type=image \
|
||||||
description='Openstack Image' \
|
description='Openstack Image' \
|
||||||
endpoint_region='{{ .Values.keystone.glance_region_name }}' \
|
endpoint_region='{{ .Values.keystone.glance_region_name }}' \
|
||||||
url='http://glance-api:{{ .Values.network.port.api }}' \
|
url='{{ include "endpoint_glance_api_internal" . }}' \
|
||||||
interface=internal \
|
interface=internal \
|
||||||
region_name='{{ .Values.keystone.admin_region_name }}' \
|
region_name='{{ .Values.keystone.admin_region_name }}' \
|
||||||
auth='{{ include "keystone_auth" . }}'" \
|
auth='{{ include "keystone_auth" . }}'" \
|
||||||
@ -31,7 +32,7 @@ data:
|
|||||||
service_type=image \
|
service_type=image \
|
||||||
description='Openstack Image' \
|
description='Openstack Image' \
|
||||||
endpoint_region='{{ .Values.keystone.glance_region_name }}' \
|
endpoint_region='{{ .Values.keystone.glance_region_name }}' \
|
||||||
url='http://glance-api:{{ .Values.network.port.api }}' \
|
url='{{ include "endpoint_glance_api_internal" . }}' \
|
||||||
interface=public \
|
interface=public \
|
||||||
region_name='{{ .Values.keystone.admin_region_name }}' \
|
region_name='{{ .Values.keystone.admin_region_name }}' \
|
||||||
auth='{{ include "keystone_auth" . }}'" \
|
auth='{{ include "keystone_auth" . }}'" \
|
||||||
@ -44,3 +45,4 @@ data:
|
|||||||
region_name={{ .Values.keystone.admin_region_name }} \
|
region_name={{ .Values.keystone.admin_region_name }} \
|
||||||
auth='{{ include "keystone_auth" . }}'" \
|
auth='{{ include "keystone_auth" . }}'" \
|
||||||
-e "{ 'openstack_glance_auth': {{ include "keystone_auth" . }} }"
|
-e "{ 'openstack_glance_auth': {{ include "keystone_auth" . }} }"
|
||||||
|
|
||||||
|
@ -32,6 +32,8 @@ spec:
|
|||||||
}
|
}
|
||||||
]'
|
]'
|
||||||
spec:
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.node_selector_key }}: {{ .Values.labels.node_selector_value }}
|
||||||
restartPolicy: OnFailure
|
restartPolicy: OnFailure
|
||||||
containers:
|
containers:
|
||||||
- name: glance-post
|
- name: glance-post
|
||||||
@ -51,3 +53,4 @@ spec:
|
|||||||
- name: postsh
|
- name: postsh
|
||||||
configMap:
|
configMap:
|
||||||
name: glance-postsh
|
name: glance-postsh
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ network:
|
|||||||
port:
|
port:
|
||||||
api: 9292
|
api: 9292
|
||||||
registry: 9191
|
registry: 9191
|
||||||
ip_address: "{{ .IP }}"
|
ip_address: "0.0.0.0"
|
||||||
|
|
||||||
database:
|
database:
|
||||||
address: mariadb
|
address: mariadb
|
||||||
@ -47,9 +47,12 @@ database:
|
|||||||
ceph:
|
ceph:
|
||||||
enabled: true
|
enabled: true
|
||||||
monitors: []
|
monitors: []
|
||||||
glance_user: "glance"
|
glance_user: "admin"
|
||||||
glance_pool: "images"
|
glance_pool: "images"
|
||||||
glance_keyring: ""
|
# a null value for the keyring will
|
||||||
|
# attempt to use the key from
|
||||||
|
# common/secrets/ceph-client-key
|
||||||
|
glance_keyring: null
|
||||||
|
|
||||||
misc:
|
misc:
|
||||||
workers: 8
|
workers: 8
|
||||||
@ -98,3 +101,27 @@ dependencies:
|
|||||||
- keystone-api
|
- keystone-api
|
||||||
- glance-api
|
- glance-api
|
||||||
- glance-registry
|
- glance-registry
|
||||||
|
|
||||||
|
# typically overriden by environmental
|
||||||
|
# values, but should include all endpoints
|
||||||
|
# required by this chart
|
||||||
|
endpoints:
|
||||||
|
glance:
|
||||||
|
hosts:
|
||||||
|
default: glance-api
|
||||||
|
type: image
|
||||||
|
path: null
|
||||||
|
scheme: 'http'
|
||||||
|
port:
|
||||||
|
api: 9292
|
||||||
|
registry: 9191
|
||||||
|
keystone:
|
||||||
|
hosts:
|
||||||
|
default: keystone-api
|
||||||
|
path: /v3
|
||||||
|
type: identity
|
||||||
|
scheme: 'http'
|
||||||
|
port:
|
||||||
|
admin: 35357
|
||||||
|
public: 5000
|
||||||
|
|
||||||
|
@ -38,6 +38,6 @@ endpoints:
|
|||||||
type: identity
|
type: identity
|
||||||
scheme: 'http'
|
scheme: 'http'
|
||||||
port:
|
port:
|
||||||
admin: 35356
|
admin: 35357
|
||||||
public: 5000
|
public: 5000
|
||||||
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
{{- define "joinListWithColon" -}}
|
|
||||||
{{ range $k, $v := . }}{{ if $k }},{{ end }}{{ $v }}{{ end }}
|
|
||||||
{{- end -}}
|
|
@ -15,7 +15,8 @@ set -ex
|
|||||||
keystone-manage db_sync
|
keystone-manage db_sync
|
||||||
kolla_keystone_bootstrap {{ .Values.keystone.admin_user }} {{ .Values.keystone.admin_password }} \
|
kolla_keystone_bootstrap {{ .Values.keystone.admin_user }} {{ .Values.keystone.admin_password }} \
|
||||||
{{ .Values.keystone.admin_project_name }} admin \
|
{{ .Values.keystone.admin_project_name }} admin \
|
||||||
{{ .Values.keystone.scheme }}://{{ include "keystone_api_endpoint_host_admin" . }}:{{ .Values.network.port.admin }}/{{ .Values.keystone.version }} \
|
{{ include "endpoint_keystone_admin" . }} \
|
||||||
{{ .Values.keystone.scheme }}://{{ include "keystone_api_endpoint_host_internal" . }}:{{ .Values.network.port.public }}/{{ .Values.keystone.version }} \
|
{{ include "endpoint_keystone_internal" . }} \
|
||||||
{{ .Values.keystone.scheme }}://{{ include "keystone_api_endpoint_host_public" . }}:{{ .Values.network.port.public }}/{{ .Values.keystone.version }} \
|
{{ include "endpoint_keystone_internal" . }} \
|
||||||
{{ .Values.keystone.admin_region_name }}
|
{{ .Values.keystone.admin_region_name }}
|
||||||
|
|
||||||
|
@ -9,11 +9,11 @@ connection = mysql+pymysql://{{ .Values.database.keystone_user }}:{{ .Values.dat
|
|||||||
max_retries = -1
|
max_retries = -1
|
||||||
|
|
||||||
[memcache]
|
[memcache]
|
||||||
servers = {{ include "memcached_host" . }}
|
servers = {{ include "memcached_host" . }}:11211
|
||||||
|
|
||||||
[cache]
|
[cache]
|
||||||
backend = dogpile.cache.memcached
|
backend = dogpile.cache.memcached
|
||||||
memcache_servers = {{ include "memcached_host" . }}
|
memcache_servers = {{ include "memcached_host" . }}:11211
|
||||||
config_prefix = cache.keystone
|
config_prefix = cache.keystone
|
||||||
distributed_lock = True
|
|
||||||
enabled = True
|
enabled = True
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ images:
|
|||||||
pull_policy: "IfNotPresent"
|
pull_policy: "IfNotPresent"
|
||||||
|
|
||||||
keystone:
|
keystone:
|
||||||
version: v2.0
|
version: v3
|
||||||
scheme: http
|
scheme: http
|
||||||
admin_region_name: RegionOne
|
admin_region_name: RegionOne
|
||||||
admin_user: admin
|
admin_user: admin
|
||||||
@ -67,3 +67,18 @@ dependencies:
|
|||||||
- mariadb-seed
|
- mariadb-seed
|
||||||
service:
|
service:
|
||||||
- mariadb
|
- mariadb
|
||||||
|
|
||||||
|
# typically overriden by environmental
|
||||||
|
# values, but should include all endpoints
|
||||||
|
# required by this chart
|
||||||
|
endpoints:
|
||||||
|
keystone:
|
||||||
|
hosts:
|
||||||
|
default: keystone-api
|
||||||
|
path: /v3
|
||||||
|
type: identity
|
||||||
|
scheme: 'http'
|
||||||
|
port:
|
||||||
|
admin: 35357
|
||||||
|
public: 5000
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user