Merge "Nova metadata : set clusterIP dynamically"
This commit is contained in:
commit
8273259416
30
neutron/templates/bin/_neutron-metadata-agent-init.sh.tpl
Normal file
30
neutron/templates/bin/_neutron-metadata-agent-init.sh.tpl
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
metadata_ip="{{- .Values.conf.metadata_agent.DEFAULT.nova_metadata_ip -}}"
|
||||||
|
if [ -z "${metadata_ip}" ] ; then
|
||||||
|
metadata_ip=$(getent hosts metadata | awk '{print $1}')
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<EOF>/tmp/pod-shared/neutron-metadata-agent.ini
|
||||||
|
[DEFAULT]
|
||||||
|
nova_metadata_ip=$metadata_ip
|
||||||
|
EOF
|
||||||
|
|
@ -20,7 +20,8 @@ set -x
|
|||||||
exec neutron-metadata-agent \
|
exec neutron-metadata-agent \
|
||||||
--config-file /etc/neutron/neutron.conf \
|
--config-file /etc/neutron/neutron.conf \
|
||||||
--config-file /etc/neutron/metadata_agent.ini \
|
--config-file /etc/neutron/metadata_agent.ini \
|
||||||
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini
|
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
|
||||||
|
--config-file /tmp/pod-shared/neutron-metadata-agent.ini
|
||||||
{{- if eq .Values.network.backend "ovs" }} \
|
{{- if eq .Values.network.backend "ovs" }} \
|
||||||
--config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini
|
--config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -51,6 +51,8 @@ data:
|
|||||||
{{ tuple "bin/_neutron-linuxbridge-agent-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_neutron-linuxbridge-agent-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
neutron-metadata-agent.sh: |+
|
neutron-metadata-agent.sh: |+
|
||||||
{{ tuple "bin/_neutron-metadata-agent.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_neutron-metadata-agent.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
neutron-metadata-agent-init.sh: |+
|
||||||
|
{{ tuple "bin/_neutron-metadata-agent-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
neutron-openvswitch-agent.sh: |+
|
neutron-openvswitch-agent.sh: |+
|
||||||
{{ tuple "bin/_neutron-openvswitch-agent.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_neutron-openvswitch-agent.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
neutron-openvswitch-agent-init.sh: |+
|
neutron-openvswitch-agent-init.sh: |+
|
||||||
|
@ -40,6 +40,25 @@ spec:
|
|||||||
hostNetwork: true
|
hostNetwork: true
|
||||||
initContainers:
|
initContainers:
|
||||||
{{ tuple $envAll $dependencies $mounts_neutron_metadata_agent_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
{{ tuple $envAll $dependencies $mounts_neutron_metadata_agent_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||||
|
- name: neutron-metadata-agent-init
|
||||||
|
image: {{ .Values.images.metadata }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
{{ tuple $envAll $envAll.Values.pod.resources.agent.metadata | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: {{ .Values.pod.user.neutron.uid }}
|
||||||
|
command:
|
||||||
|
- /tmp/neutron-metadata-agent-init.sh
|
||||||
|
volumeMounts:
|
||||||
|
- name: neutron-bin
|
||||||
|
mountPath: /tmp/neutron-metadata-agent-init.sh
|
||||||
|
subPath: neutron-metadata-agent-init.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: neutron-etc
|
||||||
|
mountPath: /etc/neutron/neutron.conf
|
||||||
|
subPath: neutron.conf
|
||||||
|
readOnly: true
|
||||||
|
- name: pod-shared
|
||||||
|
mountPath: /tmp/pod-shared
|
||||||
containers:
|
containers:
|
||||||
- name: neutron-metadata-agent
|
- name: neutron-metadata-agent
|
||||||
image: {{ .Values.images.metadata }}
|
image: {{ .Values.images.metadata }}
|
||||||
@ -130,6 +149,9 @@ spec:
|
|||||||
readOnly: true
|
readOnly: true
|
||||||
- name: socket
|
- name: socket
|
||||||
mountPath: /var/lib/neutron/stackanetes
|
mountPath: /var/lib/neutron/stackanetes
|
||||||
|
- name: pod-shared
|
||||||
|
mountPath: /tmp/pod-shared
|
||||||
|
readOnly: true
|
||||||
{{ if $mounts_neutron_metadata_agent.volumeMounts }}{{ toYaml $mounts_neutron_metadata_agent.volumeMounts | indent 12 }}{{ end }}
|
{{ if $mounts_neutron_metadata_agent.volumeMounts }}{{ toYaml $mounts_neutron_metadata_agent.volumeMounts | indent 12 }}{{ end }}
|
||||||
volumes:
|
volumes:
|
||||||
- name: neutron-bin
|
- name: neutron-bin
|
||||||
@ -148,5 +170,7 @@ spec:
|
|||||||
- name: socket
|
- name: socket
|
||||||
hostPath:
|
hostPath:
|
||||||
path: /var/lib/neutron/openstack-helm
|
path: /var/lib/neutron/openstack-helm
|
||||||
|
- name: pod-shared
|
||||||
|
emptyDir: {}
|
||||||
{{ if $mounts_neutron_metadata_agent.volumes }}{{ toYaml $mounts_neutron_metadata_agent.volumes | indent 8 }}{{ end }}
|
{{ if $mounts_neutron_metadata_agent.volumes }}{{ toYaml $mounts_neutron_metadata_agent.volumes | indent 8 }}{{ end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -163,6 +163,8 @@ dependencies:
|
|||||||
endpoint: internal
|
endpoint: internal
|
||||||
- service: compute
|
- service: compute
|
||||||
endpoint: internal
|
endpoint: internal
|
||||||
|
- service: compute_metadata
|
||||||
|
endpoint: public
|
||||||
daemonset:
|
daemonset:
|
||||||
# this should be set to corresponding neutron L2 agent
|
# this should be set to corresponding neutron L2 agent
|
||||||
- neutron-ovs-agent
|
- neutron-ovs-agent
|
||||||
@ -1040,7 +1042,8 @@ conf:
|
|||||||
metering_agent: null
|
metering_agent: null
|
||||||
metadata_agent:
|
metadata_agent:
|
||||||
DEFAULT:
|
DEFAULT:
|
||||||
nova_metadata_ip: 10.97.120.234
|
# IF blank, set dynamically from metadata hosts
|
||||||
|
nova_metadata_ip:
|
||||||
nova_metadata_port: 80
|
nova_metadata_port: 80
|
||||||
nova_metadata_protocol: http
|
nova_metadata_protocol: http
|
||||||
metadata_proxy_shared_secret: "password"
|
metadata_proxy_shared_secret: "password"
|
||||||
@ -1119,10 +1122,23 @@ endpoints:
|
|||||||
api:
|
api:
|
||||||
default: 8774
|
default: 8774
|
||||||
public: 80
|
public: 80
|
||||||
metadata:
|
|
||||||
default: 8775
|
|
||||||
novncproxy:
|
novncproxy:
|
||||||
default: 6080
|
default: 6080
|
||||||
|
compute_metadata:
|
||||||
|
name: nova
|
||||||
|
hosts:
|
||||||
|
default: nova-metadata
|
||||||
|
public: metadata
|
||||||
|
host_fqdn_override:
|
||||||
|
default: null
|
||||||
|
path:
|
||||||
|
default: /
|
||||||
|
scheme:
|
||||||
|
default: 'http'
|
||||||
|
port:
|
||||||
|
metadata:
|
||||||
|
default: 8775
|
||||||
|
public: 80
|
||||||
identity:
|
identity:
|
||||||
name: keystone
|
name: keystone
|
||||||
auth:
|
auth:
|
||||||
|
30
nova/templates/bin/_nova-api-metadata-init.sh.tpl
Normal file
30
nova/templates/bin/_nova-api-metadata-init.sh.tpl
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
metadata_ip="{{- .Values.network.metadata.ip -}}"
|
||||||
|
if [ -z "${metadata_ip}" ] ; then
|
||||||
|
metadata_ip=$(getent hosts metadata | awk '{print $1}')
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<EOF>/tmp/pod-shared/nova-api-metadata.ini
|
||||||
|
[DEFAULT]
|
||||||
|
metadata_host=$metadata_ip
|
||||||
|
EOF
|
||||||
|
|
@ -21,7 +21,8 @@ COMMAND="${@:-start}"
|
|||||||
|
|
||||||
function start () {
|
function start () {
|
||||||
exec nova-api-metadata \
|
exec nova-api-metadata \
|
||||||
--config-file /etc/nova/nova.conf
|
--config-file /etc/nova/nova.conf \
|
||||||
|
--config-file /tmp/pod-shared/nova-api-metadata.ini
|
||||||
}
|
}
|
||||||
|
|
||||||
function stop () {
|
function stop () {
|
||||||
|
@ -47,6 +47,8 @@ data:
|
|||||||
{{ tuple "bin/_nova-api.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_nova-api.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
nova-api-metadata.sh: |
|
nova-api-metadata.sh: |
|
||||||
{{ tuple "bin/_nova-api-metadata.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_nova-api-metadata.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
nova-api-metadata-init.sh: |
|
||||||
|
{{ tuple "bin/_nova-api-metadata-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
nova-compute.sh: |
|
nova-compute.sh: |
|
||||||
{{ tuple "bin/_nova-compute.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_nova-compute.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
nova-compute-init.sh: |
|
nova-compute-init.sh: |
|
||||||
|
@ -100,8 +100,10 @@ limitations under the License.
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if empty .Values.conf.nova.DEFAULT.metadata_host -}}
|
{{- if empty .Values.conf.nova.DEFAULT.metadata_host -}}
|
||||||
|
{{- if .Values.network.metadata.ip -}}
|
||||||
{{- set .Values.conf.nova.DEFAULT "metadata_host" .Values.network.metadata.ip | quote | trunc 0 -}}
|
{{- set .Values.conf.nova.DEFAULT "metadata_host" .Values.network.metadata.ip | quote | trunc 0 -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- if empty .Values.conf.nova.DEFAULT.metadata_port -}}
|
{{- if empty .Values.conf.nova.DEFAULT.metadata_port -}}
|
||||||
{{- tuple "compute_metadata" "public" "metadata" . | include "helm-toolkit.endpoints.endpoint_port_lookup" | set .Values.conf.nova.DEFAULT "metadata_port" | quote | trunc 0 -}}
|
{{- tuple "compute_metadata" "public" "metadata" . | include "helm-toolkit.endpoints.endpoint_port_lookup" | set .Values.conf.nova.DEFAULT "metadata_port" | quote | trunc 0 -}}
|
||||||
|
@ -42,6 +42,25 @@ spec:
|
|||||||
terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.metadata.timeout | default "30" }}
|
terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.metadata.timeout | default "30" }}
|
||||||
initContainers:
|
initContainers:
|
||||||
{{ tuple $envAll $dependencies $mounts_nova_api_metadata_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
{{ tuple $envAll $dependencies $mounts_nova_api_metadata_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||||
|
- name: nova-api-metadata-init
|
||||||
|
image: {{ .Values.images.api }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
{{ tuple $envAll $envAll.Values.pod.resources.api_metadata | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: {{ .Values.pod.user.nova.uid }}
|
||||||
|
command:
|
||||||
|
- /tmp/nova-api-metadata-init.sh
|
||||||
|
volumeMounts:
|
||||||
|
- name: nova-bin
|
||||||
|
mountPath: /tmp/nova-api-metadata-init.sh
|
||||||
|
subPath: nova-api-metadata-init.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: nova-etc
|
||||||
|
mountPath: /etc/nova/nova.conf
|
||||||
|
subPath: nova.conf
|
||||||
|
readOnly: true
|
||||||
|
- name: pod-shared
|
||||||
|
mountPath: /tmp/pod-shared
|
||||||
containers:
|
containers:
|
||||||
- name: nova-api
|
- name: nova-api
|
||||||
image: {{ .Values.images.api }}
|
image: {{ .Values.images.api }}
|
||||||
@ -115,6 +134,9 @@ spec:
|
|||||||
mountPath: /etc/nova/rootwrap.d/network.filters
|
mountPath: /etc/nova/rootwrap.d/network.filters
|
||||||
subPath: network.filters
|
subPath: network.filters
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
- name: pod-shared
|
||||||
|
mountPath: /tmp/pod-shared
|
||||||
|
readOnly: true
|
||||||
{{ if $mounts_nova_api_metadata.volumeMounts }}{{ toYaml $mounts_nova_api_metadata.volumeMounts | indent 12 }}{{ end }}
|
{{ if $mounts_nova_api_metadata.volumeMounts }}{{ toYaml $mounts_nova_api_metadata.volumeMounts | indent 12 }}{{ end }}
|
||||||
volumes:
|
volumes:
|
||||||
- name: nova-bin
|
- name: nova-bin
|
||||||
@ -125,5 +147,7 @@ spec:
|
|||||||
configMap:
|
configMap:
|
||||||
name: nova-etc
|
name: nova-etc
|
||||||
defaultMode: 0444
|
defaultMode: 0444
|
||||||
|
- name: pod-shared
|
||||||
|
emptyDir: {}
|
||||||
{{ if $mounts_nova_api_metadata.volumes }}{{ toYaml $mounts_nova_api_metadata.volumes | indent 8 }}{{ end }}
|
{{ if $mounts_nova_api_metadata.volumes }}{{ toYaml $mounts_nova_api_metadata.volumes | indent 8 }}{{ end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -26,7 +26,9 @@ spec:
|
|||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
|
{{- if .Values.network.metadata.ip }}
|
||||||
clusterIP: {{ .Values.network.metadata.ip }}
|
clusterIP: {{ .Values.network.metadata.ip }}
|
||||||
|
{{- end }}
|
||||||
selector:
|
selector:
|
||||||
app: ingress-api
|
app: ingress-api
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -112,7 +112,8 @@ network:
|
|||||||
enabled: false
|
enabled: false
|
||||||
port: 30774
|
port: 30774
|
||||||
metadata:
|
metadata:
|
||||||
ip: 10.97.120.234
|
# IF blank, set clusterIP and metadata_host dynamically
|
||||||
|
ip:
|
||||||
port: 8775
|
port: 8775
|
||||||
ingress:
|
ingress:
|
||||||
public: true
|
public: true
|
||||||
@ -149,6 +150,8 @@ dependencies:
|
|||||||
endpoint: internal
|
endpoint: internal
|
||||||
- service: identity
|
- service: identity
|
||||||
endpoint: internal
|
endpoint: internal
|
||||||
|
- service: compute_metadata
|
||||||
|
endpoint: public
|
||||||
db_init:
|
db_init:
|
||||||
services:
|
services:
|
||||||
- service: oslo_db
|
- service: oslo_db
|
||||||
|
Loading…
Reference in New Issue
Block a user