OpenStack Nova Helm Chart Initial Commit
This is an initial commit of a functional nova chart. It has been tested with the neutron chart using a flat network configuration.
This commit is contained in:
parent
584e820eca
commit
8afa729ffb
8
Makefile
8
Makefile
@ -1,12 +1,12 @@
|
||||
.PHONY: ceph bootstrap mariadb keystone memcached rabbitmq common openstack neutron maas all clean
|
||||
.PHONY: ceph bootstrap mariadb keystone memcached rabbitmq common openstack neutron nova maas all clean
|
||||
|
||||
B64_DIRS := common/secrets
|
||||
B64_EXCLUDE := $(wildcard common/secrets/*.b64)
|
||||
|
||||
CHARTS := ceph mariadb rabbitmq GLANCE memcached keystone glance horizon neutron maas openstack
|
||||
CHARTS := ceph mariadb rabbitmq GLANCE memcached keystone glance horizon neutron nova maas openstack
|
||||
COMMON_TPL := common/templates/_globals.tpl
|
||||
|
||||
all: common ceph bootstrap mariadb rabbitmq memcached keystone glance horizon neutron maas openstack
|
||||
all: common ceph bootstrap mariadb rabbitmq memcached keystone glance horizon neutron nova maas openstack
|
||||
|
||||
common: build-common
|
||||
|
||||
@ -27,6 +27,8 @@ glance: build-glance
|
||||
|
||||
neutron: build-neutron
|
||||
|
||||
nova: build-nova
|
||||
|
||||
maas: build-maas
|
||||
|
||||
memcached: build-memcached
|
||||
|
3
nova/Chart.yaml
Normal file
3
nova/Chart.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
description: A Helm chart for nova
|
||||
name: nova
|
||||
version: 0.1.0
|
4
nova/requirements.yaml
Normal file
4
nova/requirements.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: http://localhost:8879/charts
|
||||
version: 0.1.0
|
6
nova/templates/bin/_db-sync.sh.tpl
Normal file
6
nova/templates/bin/_db-sync.sh.tpl
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
nova-manage db sync
|
||||
nova-manage api_db sync
|
||||
nova-manage db online_data_migrations
|
36
nova/templates/bin/_init.sh.tpl
Normal file
36
nova/templates/bin/_init.sh.tpl
Normal file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Hello World"
|
||||
|
||||
set -ex
|
||||
export HOME=/tmp
|
||||
|
||||
ansible localhost -vvv -m mysql_db -a "login_host='{{ include "keystone_db_host" . }}' \
|
||||
login_port='{{ .Values.database.port }}' \
|
||||
login_user='{{ .Values.database.root_user }}' \
|
||||
login_password='{{ .Values.database.root_password }}' \
|
||||
name='{{ .Values.database.nova_database_name }}'"
|
||||
|
||||
ansible localhost -vvv -m mysql_user -a "login_host='{{ include "keystone_db_host" . }}' \
|
||||
login_port='{{ .Values.database.port }}' \
|
||||
login_user='{{ .Values.database.root_user }}' \
|
||||
login_password='{{ .Values.database.root_password }}' \
|
||||
name='{{ .Values.database.nova_user }}' \
|
||||
password='{{ .Values.database.nova_password }}' \
|
||||
host='%' \
|
||||
priv='{{ .Values.database.nova_database_name }}.*:ALL' append_privs='yes'"
|
||||
|
||||
ansible localhost -vvv -m mysql_db -a "login_host='{{ include "keystone_db_host" . }}' \
|
||||
login_port='{{ .Values.database.port }}' \
|
||||
login_user='{{ .Values.database.root_user }}' \
|
||||
login_password='{{ .Values.database.root_password }}' \
|
||||
name='{{ .Values.database.nova_api_database_name }}'"
|
||||
|
||||
ansible localhost -vvv -m mysql_user -a "login_host='{{ include "keystone_db_host" . }}' \
|
||||
login_port='{{ .Values.database.port }}' \
|
||||
login_user='{{ .Values.database.root_user }}' \
|
||||
login_password='{{ .Values.database.root_password }}' \
|
||||
name='{{ .Values.database.nova_user }}' \
|
||||
password='{{ .Values.database.nova_password }}' \
|
||||
host='%' \
|
||||
priv='{{ .Values.database.nova_api_database_name }}.*:ALL' append_privs='yes'"
|
35
nova/templates/bin/_libvirt.sh.tpl
Normal file
35
nova/templates/bin/_libvirt.sh.tpl
Normal file
@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
if [[ -f /var/run/libvirtd.pid ]]; then
|
||||
test -d /proc/$(< /var/run/libvirtd.pid) && \
|
||||
( echo "Libvirtd daemon is running" && exit 10 )
|
||||
fi
|
||||
|
||||
rm -f /var/run/libvirtd.pid
|
||||
|
||||
if [[ -c /dev/kvm ]]; then
|
||||
chmod 660 /dev/kvm
|
||||
chown root:kvm /dev/kvm
|
||||
fi
|
||||
|
||||
|
||||
sleep 30
|
||||
|
||||
{{- if .Values.ceph.enabled }}
|
||||
cat > /tmp/secret.xml <<EOF
|
||||
<secret ephemeral='no' private='no'>
|
||||
<uuid>{{ .Values.ceph.secret_uuid }}</uuid>
|
||||
<usage type='ceph'>
|
||||
<name>client.{{ .Values.ceph.cinder_user }} secret</name>
|
||||
</usage>
|
||||
</secret>
|
||||
EOF
|
||||
|
||||
virsh secret-define --file /tmp/secret.xml
|
||||
virsh secret-set-value --secret {{ .Values.ceph.secret_uuid }} --base64 {{ .Values.ceph.cinder_keyring }}
|
||||
rm /tmp/secret.xml
|
||||
{{- end }}
|
||||
|
||||
|
||||
exec libvirtd -v --listen
|
57
nova/templates/bin/_post.sh.tpl
Normal file
57
nova/templates/bin/_post.sh.tpl
Normal file
@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
set -ex
|
||||
export HOME=/tmp
|
||||
|
||||
ansible localhost -vvv -m kolla_keystone_service -a "service_name=nova \
|
||||
service_type=compute \
|
||||
description='Openstack Compute' \
|
||||
endpoint_region={{ .Values.keystone.nova_region_name }} \
|
||||
url='{{ include "endpoint_nova_api_internal" . }}' \
|
||||
interface=admin \
|
||||
region_name={{ .Values.keystone.admin_region_name }} \
|
||||
auth='{{ include "keystone_auth" .}}'" \
|
||||
-e "{'openstack_nova_auth':{{ include "keystone_auth" .}}}"
|
||||
|
||||
ansible localhost -vvv -m kolla_keystone_service -a "service_name=nova \
|
||||
service_type=compute \
|
||||
description='Openstack Compute' \
|
||||
endpoint_region={{ .Values.keystone.nova_region_name }} \
|
||||
url='{{ include "endpoint_nova_api_internal" . }}' \
|
||||
interface=internal \
|
||||
region_name={{ .Values.keystone.admin_region_name }} \
|
||||
auth='{{ include "keystone_auth" .}}'" \
|
||||
-e "{'openstack_nova_auth':{{ include "keystone_auth" .}}}"
|
||||
|
||||
ansible localhost -vvv -m kolla_keystone_service -a "service_name=nova \
|
||||
service_type=compute \
|
||||
description='Openstack Compute' \
|
||||
endpoint_region={{ .Values.keystone.nova_region_name }} \
|
||||
url='{{ include "endpoint_nova_api_internal" . }}' \
|
||||
interface=public \
|
||||
region_name={{ .Values.keystone.admin_region_name }} \
|
||||
auth='{{ include "keystone_auth" .}}'" \
|
||||
-e "{'openstack_nova_auth':{{ include "keystone_auth" .}}}"
|
||||
|
||||
ansible localhost -vvv -m kolla_keystone_user -a "project=service \
|
||||
user={{ .Values.keystone.nova_user }} \
|
||||
password={{ .Values.keystone.nova_password }} \
|
||||
role=admin \
|
||||
region_name={{ .Values.keystone.nova_region_name }} \
|
||||
auth='{{ include "keystone_auth" .}}'" \
|
||||
-e "{'openstack_nova_auth':{{ include "keystone_auth" .}}}"
|
||||
|
||||
cat <<EOF>/tmp/openrc
|
||||
export OS_USERNAME={{.Values.keystone.admin_user}}
|
||||
export OS_PASSWORD={{.Values.keystone.admin_password}}
|
||||
export OS_PROJECT_DOMAIN_NAME={{.Values.keystone.domain_name}}
|
||||
export OS_USER_DOMAIN_NAME={{.Values.keystone.domain_name}}
|
||||
export OS_PROJECT_NAME={{.Values.keystone.admin_project_name}}
|
||||
export OS_AUTH_URL={{include "endpoint_keystone_internal" .}}
|
||||
export OS_AUTH_STRATEGY=keystone
|
||||
export OS_REGION_NAME={{.Values.keystone.admin_region_name}}
|
||||
export OS_INSECURE=1
|
||||
EOF
|
||||
|
||||
. /tmp/openrc
|
||||
env
|
||||
openstack --debug role create _member_ --or-show
|
12
nova/templates/bin/_start.sh.tpl
Normal file
12
nova/templates/bin/_start.sh.tpl
Normal file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
# link our keystone wsgi to apaches running config
|
||||
ln -s /configmaps/wsgi-keystone.conf /etc/apache2/sites-enabled/wsgi-keystone.conf
|
||||
|
||||
# Loading Apache2 ENV variables
|
||||
source /etc/apache2/envvars
|
||||
rm -rf /var/run/apache2/*
|
||||
APACHE_DIR="apache2"
|
||||
|
||||
apache2 -DFOREGROUND
|
15
nova/templates/configmap-bin.yaml
Normal file
15
nova/templates/configmap-bin.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nova-bin
|
||||
data:
|
||||
db-sync.sh: |
|
||||
{{ tuple "bin/_db-sync.sh.tpl" . | include "template" | indent 4 }}
|
||||
init.sh: |
|
||||
{{ tuple "bin/_init.sh.tpl" . | include "template" | indent 4 }}
|
||||
start.sh: |
|
||||
{{ tuple "bin/_start.sh.tpl" . | include "template" | indent 4 }}
|
||||
post.sh: |
|
||||
{{ tuple "bin/_post.sh.tpl" . | include "template" | indent 4 }}
|
||||
libvirt.sh: |
|
||||
{{ tuple "bin/_libvirt.sh.tpl" . | include "template" | indent 4 }}
|
13
nova/templates/configmap-etc.yaml
Normal file
13
nova/templates/configmap-etc.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nova-etc
|
||||
data:
|
||||
nova.conf: |+
|
||||
{{ tuple "etc/_nova.conf.tpl" . | include "template" | indent 4 }}
|
||||
ceph.client.cinder.keyring.yaml: |+
|
||||
{{ tuple "etc/_ceph.client.cinder.keyring.yaml.tpl" . | include "template" | indent 4 }}
|
||||
resolv.conf: |+
|
||||
{{ tuple "etc/_resolv.conf.tpl" . | include "template" | indent 4 }}
|
||||
libvirtd.conf: |+
|
||||
{{ tuple "etc/_libvirtd.conf.tpl" . | include "template" | indent 4 }}
|
138
nova/templates/daemonset-compute.yaml
Normal file
138
nova/templates/daemonset-compute.yaml
Normal file
@ -0,0 +1,138 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: nova-compute
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nova-compute
|
||||
annotations:
|
||||
pod.beta.kubernetes.io/init-containers: '[
|
||||
{
|
||||
"name": "init",
|
||||
"image": "{{ .Values.image.entrypoint }}",
|
||||
"imagePullPolicy": "{{ .Values.image.pull_policy }}",
|
||||
"env": [
|
||||
{
|
||||
"name": "NAMESPACE",
|
||||
"value": "{{ .Release.Namespace }}"
|
||||
},
|
||||
{
|
||||
"name": "INTERFACE_NAME",
|
||||
"value": "eth0"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_SERVICE",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.compute.service }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_JOBS",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.compute.jobs }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_DAEMONSET",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.compute.daemonset }}"
|
||||
},
|
||||
{
|
||||
"name": "COMMAND",
|
||||
"value": "echo done"
|
||||
}
|
||||
]
|
||||
}
|
||||
]'
|
||||
spec:
|
||||
nodeSelector:
|
||||
{{ .Values.labels.compute_node_selector_key }}: {{ .Values.labels.compute_node_selector_value }}
|
||||
securityContext:
|
||||
runAsUser: 0
|
||||
hostNetwork: true
|
||||
hostPID: true
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- name: nova-compute
|
||||
image: {{ .Values.image.compute }}
|
||||
imagePullPolicy: Always
|
||||
securityContext:
|
||||
privileged: true
|
||||
command:
|
||||
- nova-compute
|
||||
- --config-file
|
||||
- /etc/nova/nova.conf
|
||||
env:
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
volumeMounts:
|
||||
- name: novaconf
|
||||
mountPath: /etc/nova/nova.conf
|
||||
subPath: nova.conf
|
||||
- mountPath: /lib/modules
|
||||
name: libmodules
|
||||
readOnly: true
|
||||
- mountPath: /var/lib/nova
|
||||
name: varlibnova
|
||||
- mountPath: /var/lib/libvirt
|
||||
name: varliblibvirt
|
||||
- mountPath: /run
|
||||
name: run
|
||||
- mountPath: /sys/fs/cgroup
|
||||
name: cgroup
|
||||
- mountPath: /etc/resolv.conf
|
||||
name: resolvconf
|
||||
subPath: resolv.conf
|
||||
{{- if .Values.ceph.enabled }}
|
||||
- name: cephconf
|
||||
mountPath: /etc/ceph/ceph.conf
|
||||
subPath: ceph.conf
|
||||
- name: cephclientcinderkeyring
|
||||
mountPath: /etc/ceph/ceph.client.{{ .Values.ceph.cinder_user }}.keyring
|
||||
subPath: ceph.client.{{ .Values.ceph.cinder_user }}.keyring
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: novaconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: nova.conf
|
||||
path: nova.conf
|
||||
- name: resolvconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: resolv.conf
|
||||
path: resolv.conf
|
||||
- name: libmodules
|
||||
hostPath:
|
||||
path: /lib/modules
|
||||
- name: varlibnova
|
||||
hostPath:
|
||||
path: /var/lib/nova
|
||||
- name: varliblibvirt
|
||||
hostPath:
|
||||
path: /var/lib/libvirt
|
||||
- name: run
|
||||
hostPath:
|
||||
path: /run
|
||||
- name: cgroup
|
||||
hostPath:
|
||||
path: /sys/fs/cgroup
|
||||
{{- if .Values.ceph.enabled }}
|
||||
- name: cephconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: ceph.conf
|
||||
path: ceph.conf
|
||||
- name: cephclientcinderkeyring
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: ceph.client.cinder.keyring.yaml
|
||||
path: ceph.client.cinder.keyring.yaml
|
||||
{{- end }}
|
132
nova/templates/daemonset-libvirt.yaml
Normal file
132
nova/templates/daemonset-libvirt.yaml
Normal file
@ -0,0 +1,132 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: nova-libvirt
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nova-libvirt
|
||||
annotations:
|
||||
pod.beta.kubernetes.io/init-containers: '[
|
||||
{
|
||||
"name": "init",
|
||||
"image": "{{ .Values.image.entrypoint }}",
|
||||
"imagePullPolicy": "{{ .Values.image.pull_policy }}",
|
||||
"env": [
|
||||
{
|
||||
"name": "NAMESPACE",
|
||||
"value": "{{ .Release.Namespace }}"
|
||||
},
|
||||
{
|
||||
"name": "INTERFACE_NAME",
|
||||
"value": "eth0"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_SERVICE",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.libvirt.service }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_JOBS",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.libvirt.jobs }}"
|
||||
},
|
||||
{
|
||||
"name": "COMMAND",
|
||||
"value": "echo done"
|
||||
}
|
||||
]
|
||||
}
|
||||
]'
|
||||
spec:
|
||||
nodeSelector:
|
||||
{{ .Values.labels.compute_node_selector_key }}: {{ .Values.labels.compute_node_selector_value }}
|
||||
securityContext:
|
||||
runAsUser: 0
|
||||
hostNetwork: true
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- name: nova-libvirt
|
||||
image: {{ .Values.image.libvirt }}
|
||||
imagePullPolicy: Always
|
||||
securityContext:
|
||||
privileged: true
|
||||
command:
|
||||
- bash
|
||||
- /tmp/libvirt.sh
|
||||
volumeMounts:
|
||||
- name: libvirtdconf
|
||||
mountPath: /etc/libvirt/libvirtd.conf
|
||||
subPath: libvirtd.conf
|
||||
- name: libvirtsh
|
||||
mountPath: /tmp/libvirt.sh
|
||||
subPath: libvirt.sh
|
||||
- mountPath: /lib/modules
|
||||
name: libmodules
|
||||
readOnly: true
|
||||
- mountPath: /var/lib/nova
|
||||
name: varlibnova
|
||||
- mountPath: /var/lib/libvirt
|
||||
name: varliblibvirt
|
||||
- mountPath: /run
|
||||
name: run
|
||||
- mountPath: /sys/fs/cgroup
|
||||
name: cgroup
|
||||
- mountPath: /etc/resolv.conf
|
||||
name: resolvconf
|
||||
subPath: resolv.conf
|
||||
{{- if .Values.ceph.enabled }}
|
||||
- name: cephconf
|
||||
mountPath: /etc/ceph/ceph.conf
|
||||
subPath: ceph.conf
|
||||
- name: cephclientcinderkeyring
|
||||
mountPath: /etc/ceph/ceph.client.{{ .Values.ceph.cinder_user }}.keyring
|
||||
subPath: ceph.client.{{ .Values.ceph.cinder_user }}.keyring
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: libvirtdconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: libvirtd.conf
|
||||
path: libvirtd.conf
|
||||
- name: libvirtsh
|
||||
configMap:
|
||||
name: nova-bin
|
||||
items:
|
||||
- key: libvirt.sh
|
||||
path: libvirt.sh
|
||||
- name: resolvconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: resolv.conf
|
||||
path: resolv.conf
|
||||
- name: libmodules
|
||||
hostPath:
|
||||
path: /lib/modules
|
||||
- name: varlibnova
|
||||
hostPath:
|
||||
path: /var/lib/nova
|
||||
- name: varliblibvirt
|
||||
hostPath:
|
||||
path: /var/lib/libvirt
|
||||
- name: run
|
||||
hostPath:
|
||||
path: /run
|
||||
- name: cgroup
|
||||
hostPath:
|
||||
path: /sys/fs/cgroup
|
||||
{{- if .Values.ceph.enabled }}
|
||||
- name: cephconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: ceph.conf
|
||||
path: ceph.conf
|
||||
- name: cephclientcinderkeyring
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: ceph.client.cinder.keyring.yaml
|
||||
path: ceph.client.cinder.keyring.yaml
|
||||
{{- end }}
|
70
nova/templates/deployment-api.yaml
Normal file
70
nova/templates/deployment-api.yaml
Normal file
@ -0,0 +1,70 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nova-api
|
||||
spec:
|
||||
replicas: {{ .Values.control_replicas }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nova-api
|
||||
annotations:
|
||||
pod.beta.kubernetes.io/init-containers: '[
|
||||
{
|
||||
"name": "init",
|
||||
"image": "{{ .Values.image.entrypoint }}",
|
||||
"imagePullPolicy": "{{ .Values.image.pull_policy }}",
|
||||
"env": [
|
||||
{
|
||||
"name": "NAMESPACE",
|
||||
"value": "{{ .Release.Namespace }}"
|
||||
},
|
||||
{
|
||||
"name": "INTERFACE_NAME",
|
||||
"value": "eth0"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_SERVICE",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.api.service }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_JOBS",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.api.jobs }}"
|
||||
},
|
||||
{
|
||||
"name": "COMMAND",
|
||||
"value": "echo done"
|
||||
}
|
||||
]
|
||||
}
|
||||
]'
|
||||
spec:
|
||||
nodeSelector:
|
||||
{{ .Values.labels.control_node_selector_key }}: {{ .Values.labels.control_node_selector_value }}
|
||||
containers:
|
||||
- name: nova-api
|
||||
image: {{ .Values.image.api }}
|
||||
# https://bugs.launchpad.net/kolla-mesos/+bug/1546007
|
||||
securityContext:
|
||||
privileged: true
|
||||
command:
|
||||
- nova-api
|
||||
- --config-file
|
||||
- /etc/nova/nova.conf
|
||||
ports:
|
||||
- containerPort: {{ .Values.network.port.api }}
|
||||
- containerPort: {{ .Values.network.port.metadata }}
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: {{ .Values.network.port.api }}
|
||||
volumeMounts:
|
||||
- name: novaconf
|
||||
mountPath: /etc/nova/nova.conf
|
||||
subPath: nova.conf
|
||||
volumes:
|
||||
- name: novaconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: nova.conf
|
||||
path: nova.conf
|
61
nova/templates/deployment-conductor.yaml
Normal file
61
nova/templates/deployment-conductor.yaml
Normal file
@ -0,0 +1,61 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nova-conductor
|
||||
spec:
|
||||
replicas: {{ .Values.control_replicas }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nova-conductor
|
||||
annotations:
|
||||
pod.beta.kubernetes.io/init-containers: '[
|
||||
{
|
||||
"name": "init",
|
||||
"image": "{{ .Values.image.entrypoint }}",
|
||||
"imagePullPolicy": "{{ .Values.image.pull_policy }}",
|
||||
"env": [
|
||||
{
|
||||
"name": "NAMESPACE",
|
||||
"value": "{{ .Release.Namespace }}"
|
||||
},
|
||||
{
|
||||
"name": "INTERFACE_NAME",
|
||||
"value": "eth0"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_SERVICE",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.conductor.service }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_JOBS",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.conductor.jobs }}"
|
||||
},
|
||||
{
|
||||
"name": "COMMAND",
|
||||
"value": "echo done"
|
||||
}
|
||||
]
|
||||
}
|
||||
]'
|
||||
spec:
|
||||
nodeSelector:
|
||||
{{ .Values.labels.control_node_selector_key }}: {{ .Values.labels.control_node_selector_value }}
|
||||
containers:
|
||||
- name: nova-conductor
|
||||
image: {{ .Values.image.conductor }}
|
||||
command:
|
||||
- nova-conductor
|
||||
- --config-file
|
||||
- /etc/nova/nova.conf
|
||||
volumeMounts:
|
||||
- name: novaconf
|
||||
mountPath: /etc/nova/nova.conf
|
||||
subPath: nova.conf
|
||||
volumes:
|
||||
- name: novaconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: nova.conf
|
||||
path: nova.conf
|
61
nova/templates/deployment-consoleauth.yaml
Normal file
61
nova/templates/deployment-consoleauth.yaml
Normal file
@ -0,0 +1,61 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nova-consoleauth
|
||||
spec:
|
||||
replicas: {{ .Values.control_replicas }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nova-consoleauth
|
||||
annotations:
|
||||
pod.beta.kubernetes.io/init-containers: '[
|
||||
{
|
||||
"name": "init",
|
||||
"image": "{{ .Values.image.entrypoint }}",
|
||||
"imagePullPolicy": "{{ .Values.image.pull_policy }}",
|
||||
"env": [
|
||||
{
|
||||
"name": "NAMESPACE",
|
||||
"value": "{{ .Release.Namespace }}"
|
||||
},
|
||||
{
|
||||
"name": "INTERFACE_NAME",
|
||||
"value": "eth0"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_SERVICE",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.consoleauth.service }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_JOBS",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.consoleauth.jobs }}"
|
||||
},
|
||||
{
|
||||
"name": "COMMAND",
|
||||
"value": "echo done"
|
||||
}
|
||||
]
|
||||
}
|
||||
]'
|
||||
spec:
|
||||
nodeSelector:
|
||||
{{ .Values.labels.control_node_selector_key }}: {{ .Values.labels.control_node_selector_value }}
|
||||
containers:
|
||||
- name: nova-consoleauth
|
||||
image: {{ .Values.image.consoleauth }}
|
||||
command:
|
||||
- nova-consoleauth
|
||||
- --config-file
|
||||
- /etc/nova/nova.conf
|
||||
volumeMounts:
|
||||
- name: novaconf
|
||||
mountPath: /etc/nova/nova.conf
|
||||
subPath: nova.conf
|
||||
volumes:
|
||||
- name: novaconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: nova.conf
|
||||
path: nova.conf
|
61
nova/templates/deployment-scheduler.yaml
Normal file
61
nova/templates/deployment-scheduler.yaml
Normal file
@ -0,0 +1,61 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nova-scheduler
|
||||
spec:
|
||||
replicas: {{ .Values.control_replicas }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nova-scheduler
|
||||
annotations:
|
||||
pod.beta.kubernetes.io/init-containers: '[
|
||||
{
|
||||
"name": "init",
|
||||
"image": "{{ .Values.image.entrypoint }}",
|
||||
"imagePullPolicy": "{{ .Values.image.pull_policy }}",
|
||||
"env": [
|
||||
{
|
||||
"name": "NAMESPACE",
|
||||
"value": "{{ .Release.Namespace }}"
|
||||
},
|
||||
{
|
||||
"name": "INTERFACE_NAME",
|
||||
"value": "eth0"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_SERVICE",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.scheduler.service }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_JOBS",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.scheduler.jobs }}"
|
||||
},
|
||||
{
|
||||
"name": "COMMAND",
|
||||
"value": "echo done"
|
||||
}
|
||||
]
|
||||
}
|
||||
]'
|
||||
spec:
|
||||
nodeSelector:
|
||||
{{ .Values.labels.control_node_selector_key }}: {{ .Values.labels.control_node_selector_value }}
|
||||
containers:
|
||||
- name: nova-scheduler
|
||||
image: {{ .Values.image.scheduler }}
|
||||
command:
|
||||
- nova-scheduler
|
||||
- --config-file
|
||||
- /etc/nova/nova.conf
|
||||
volumeMounts:
|
||||
- name: novaconf
|
||||
mountPath: /etc/nova/nova.conf
|
||||
subPath: nova.conf
|
||||
volumes:
|
||||
- name: novaconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
items:
|
||||
- key: nova.conf
|
||||
path: nova.conf
|
18
nova/templates/etc/_ceph.conf.tpl
Normal file
18
nova/templates/etc/_ceph.conf.tpl
Normal file
@ -0,0 +1,18 @@
|
||||
[global]
|
||||
rgw_thread_pool_size = 1024
|
||||
rgw_num_rados_handles = 100
|
||||
{{- if .Values.ceph.enabled }}
|
||||
[mon]
|
||||
{{- if .Values.ceph.monitors }}
|
||||
{{ range .Values.ceph.monitors }}
|
||||
[mon.{{ . }}]
|
||||
host = {{ . }}
|
||||
mon_addr = {{ . }}
|
||||
{{ end }}
|
||||
{{- else }}
|
||||
mon_host = ceph-mon.ceph
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
[client]
|
||||
rbd_cache_enabled = true
|
||||
rbd_cache_writethrough_until_flush = true
|
6
nova/templates/etc/_libvirtd.conf.tpl
Normal file
6
nova/templates/etc/_libvirtd.conf.tpl
Normal file
@ -0,0 +1,6 @@
|
||||
listen_tcp = 1
|
||||
auth_tcp = "none"
|
||||
ca_file = ""
|
||||
log_level = 2
|
||||
log_outputs = "2:stderr"
|
||||
listen_addr = "{{ .Values.network.ip_address }}"
|
108
nova/templates/etc/_nova.conf.tpl
Normal file
108
nova/templates/etc/_nova.conf.tpl
Normal file
@ -0,0 +1,108 @@
|
||||
[DEFAULT]
|
||||
debug = {{ .Values.nova.default.debug }}
|
||||
default_ephemeral_format = ext4
|
||||
host_subset_size = 30
|
||||
ram_allocation_ratio=1.0
|
||||
disk_allocation_ratio=1.0
|
||||
cpu_allocation_ratio=3.0
|
||||
force_config_drive = {{ .Values.nova.default.force_config_drive }}
|
||||
state_path = /var/lib/nova
|
||||
|
||||
osapi_compute_listen = {{ .Values.network.ip_address }}
|
||||
osapi_compute_listen_port = {{ .Values.network.port.api }}
|
||||
osapi_compute_workers = {{ .Values.nova.default.osapi_workers }}
|
||||
|
||||
workers = {{ .Values.nova.default.osapi_workers }}
|
||||
metadata_workers = {{ .Values.nova.default.metadata_workers }}
|
||||
|
||||
use_neutron = True
|
||||
firewall_driver = nova.virt.firewall.NoopFirewallDriver
|
||||
linuxnet_interface_driver = openvswitch
|
||||
|
||||
allow_resize_to_same_host = True
|
||||
|
||||
compute_driver = libvirt.LibvirtDriver
|
||||
|
||||
# Though my_ip is not used directly, lots of other variables use $my_ip
|
||||
my_ip = {{ .Values.network.ip_address }}
|
||||
|
||||
transport_url = rabbit://{{ .Values.rabbitmq.admin_user }}:{{ .Values.rabbitmq.admin_password }}@{{ .Values.rabbitmq.address }}:{{ .Values.rabbitmq.port }}
|
||||
|
||||
[vnc]
|
||||
novncproxy_host = {{ .Values.network.ip_address }}
|
||||
novncproxy_port = {{ .Values.network.port.novncproxy }}
|
||||
vncserver_listen = 0.0.0.0
|
||||
vncserver_proxyclient_address = {{ .Values.network.ip_address }}
|
||||
|
||||
novncproxy_base_url = http://{{ .Values.network.external_ips }}:{{ .Values.network.port.novncproxy }}/vnc_auto.html
|
||||
|
||||
[oslo_concurrency]
|
||||
lock_path = /var/lib/nova/tmp
|
||||
|
||||
[conductor]
|
||||
workers = {{ .Values.nova.default.conductor_workers }}
|
||||
|
||||
[glance]
|
||||
api_servers = {{ include "endpoint_glance_api_internal" . }}
|
||||
num_retries = 3
|
||||
|
||||
[cinder]
|
||||
catalog_info = volume:cinder:internalURL
|
||||
|
||||
[neutron]
|
||||
url = {{ include "endpoint_neutron_api_internal" . }}
|
||||
|
||||
metadata_proxy_shared_secret = {{ .Values.neutron.metadata_secret }}
|
||||
service_metadata_proxy = True
|
||||
|
||||
auth_url = {{ include "endpoint_keystone_admin" . }}
|
||||
auth_type = password
|
||||
project_domain_name = default
|
||||
user_domain_id = default
|
||||
project_name = service
|
||||
username = {{ .Values.keystone.neutron_user }}
|
||||
password = {{ .Values.keystone.neutron_password }}
|
||||
|
||||
[database]
|
||||
connection = mysql+pymysql://{{ .Values.database.nova_user }}:{{ .Values.database.nova_password }}@{{ .Values.database.address }}/{{ .Values.database.nova_database_name }}
|
||||
max_retries = -1
|
||||
|
||||
[api_database]
|
||||
connection = mysql+pymysql://{{ .Values.database.nova_user }}:{{ .Values.database.nova_password }}@{{ .Values.database.address }}/{{ .Values.database.nova_api_database_name }}
|
||||
max_retries = -1
|
||||
|
||||
[keystone_authtoken]
|
||||
auth_uri = {{ include "endpoint_keystone_internal" . }}
|
||||
auth_url = {{ include "endpoint_keystone_admin" . }}
|
||||
auth_type = password
|
||||
project_domain_id = default
|
||||
user_domain_id = default
|
||||
project_name = service
|
||||
username = {{ .Values.keystone.nova_user }}
|
||||
password = {{ .Values.keystone.nova_password }}
|
||||
|
||||
[libvirt]
|
||||
connection_uri = "qemu+tcp://127.0.0.1/system"
|
||||
images_type = qcow2
|
||||
# Enabling live-migration without hostname resolution
|
||||
# live_migration_inbound_addr = {{ .Values.network.ip_address }}
|
||||
|
||||
{{- if .Values.ceph.enabled }}
|
||||
images_rbd_pool = {{ .Values.ceph.nova_pool }}
|
||||
images_rbd_ceph_conf = /etc/ceph/ceph.conf
|
||||
rbd_user = {{ .Values.ceph.cinder_user }}
|
||||
rbd_secret_uuid = {{ .Values.ceph.secret_uuid }}
|
||||
{{- end }}
|
||||
disk_cachemodes="network=writeback"
|
||||
hw_disk_discard = unmap
|
||||
|
||||
[upgrade_levels]
|
||||
compute = auto
|
||||
|
||||
[cache]
|
||||
enabled = True
|
||||
backend = oslo_cache.memcache_pool
|
||||
memcache_servers = {{ .Values.memcached.address }}
|
||||
|
||||
[wsgi]
|
||||
api_paste_config = /etc/nova/api-paste.ini
|
5
nova/templates/etc/_resolv.conf.tpl
Normal file
5
nova/templates/etc/_resolv.conf.tpl
Normal file
@ -0,0 +1,5 @@
|
||||
search {{ .Release.Namespace }}.svc.{{ .Values.network.dns.kubernetes_domain }} svc.{{ .Values.network.dns.kubernetes_domain }} {{ .Values.network.dns.kubernetes_domain }}
|
||||
{{- range .Values.network.dns.servers }}
|
||||
nameserver {{ . | title }}
|
||||
{{- end }}
|
||||
options ndots:5
|
56
nova/templates/job-db-sync.yaml
Normal file
56
nova/templates/job-db-sync.yaml
Normal file
@ -0,0 +1,56 @@
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: nova-db-sync
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
pod.beta.kubernetes.io/init-containers: '[
|
||||
{
|
||||
"name": "init",
|
||||
"image": "{{ .Values.image.entrypoint }}",
|
||||
"imagePullPolicy": "{{ .Values.image.pull_policy }}",
|
||||
"env": [
|
||||
{
|
||||
"name": "NAMESPACE",
|
||||
"value": "{{ .Release.Namespace }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_SERVICE",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.db_sync.service }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_JOBS",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.db_sync.jobs }}"
|
||||
},
|
||||
{
|
||||
"name": "COMMAND",
|
||||
"value": "echo done"
|
||||
}
|
||||
]
|
||||
}
|
||||
]'
|
||||
spec:
|
||||
restartPolicy: OnFailure
|
||||
containers:
|
||||
- name: nova-db-sync
|
||||
image: {{ .Values.image.db_sync }}
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- bash
|
||||
- /tmp/db-sync.sh
|
||||
volumeMounts:
|
||||
- name: novaconf
|
||||
mountPath: /etc/nova/nova.conf
|
||||
subPath: nova.conf
|
||||
- name: nova-bin
|
||||
mountPath: /tmp/db-sync.sh
|
||||
subPath: db-sync.sh
|
||||
volumes:
|
||||
- name: novaconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
- name: nova-bin
|
||||
configMap:
|
||||
name: nova-bin
|
50
nova/templates/job-init.yaml
Normal file
50
nova/templates/job-init.yaml
Normal file
@ -0,0 +1,50 @@
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: nova-init
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
pod.beta.kubernetes.io/init-containers: '[
|
||||
{
|
||||
"name": "init",
|
||||
"image": "{{ .Values.image.entrypoint }}",
|
||||
"imagePullPolicy": "{{ .Values.image.pull_policy }}",
|
||||
"env": [
|
||||
{
|
||||
"name": "NAMESPACE",
|
||||
"value": "{{ .Release.Namespace }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_SERVICE",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.init.service }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_JOBS",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.init.jobs }}"
|
||||
},
|
||||
{
|
||||
"name": "COMMAND",
|
||||
"value": "echo done"
|
||||
}
|
||||
]
|
||||
}
|
||||
]'
|
||||
spec:
|
||||
restartPolicy: OnFailure
|
||||
containers:
|
||||
- name: nova-init
|
||||
image: {{ .Values.image.init }}
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- bash
|
||||
- /tmp/init.sh
|
||||
volumeMounts:
|
||||
- name: nova-bin
|
||||
mountPath: /tmp/init.sh
|
||||
subPath: init.sh
|
||||
volumes:
|
||||
- name: nova-bin
|
||||
configMap:
|
||||
name: nova-bin
|
59
nova/templates/job-post.yaml
Normal file
59
nova/templates/job-post.yaml
Normal file
@ -0,0 +1,59 @@
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: nova-post
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
pod.beta.kubernetes.io/init-containers: '[
|
||||
{
|
||||
"name": "init",
|
||||
"image": "{{ .Values.image.entrypoint }}",
|
||||
"imagePullPolicy": "{{ .Values.image.pull_policy }}",
|
||||
"env": [
|
||||
{
|
||||
"name": "NAMESPACE",
|
||||
"value": "{{ .Release.Namespace }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_SERVICE",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.post.service }}"
|
||||
},
|
||||
{
|
||||
"name": "DEPENDENCY_JOBS",
|
||||
"value": "{{ include "joinListWithColon" .Values.dependencies.post.jobs }}"
|
||||
},
|
||||
{
|
||||
"name": "COMMAND",
|
||||
"value": "echo done"
|
||||
}
|
||||
]
|
||||
}
|
||||
]'
|
||||
spec:
|
||||
restartPolicy: OnFailure
|
||||
containers:
|
||||
- name: nova-post
|
||||
image: {{ .Values.image.post }}
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- bash
|
||||
- /tmp/post.sh
|
||||
env:
|
||||
- name: ANSIBLE_LIBRARY
|
||||
value: /usr/share/ansible/
|
||||
volumeMounts:
|
||||
- name: novaconf
|
||||
mountPath: /etc/nova/nova.conf
|
||||
subPath: nova.conf
|
||||
- name: nova-bin
|
||||
mountPath: /tmp/post.sh
|
||||
subPath: post.sh
|
||||
volumes:
|
||||
- name: novaconf
|
||||
configMap:
|
||||
name: nova-etc
|
||||
- name: nova-bin
|
||||
configMap:
|
||||
name: nova-bin
|
12
nova/templates/service-api.yaml
Normal file
12
nova/templates/service-api.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nova-api
|
||||
spec:
|
||||
ports:
|
||||
- name: nova-api
|
||||
port: {{ .Values.network.port.api }}
|
||||
- name: nova-metadata
|
||||
port: {{ .Values.network.port.metadata }}
|
||||
selector:
|
||||
app: nova-api
|
213
nova/values.yaml
Normal file
213
nova/values.yaml
Normal file
@ -0,0 +1,213 @@
|
||||
# Default values for keystone.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare name/value pairs to be passed into your templates.
|
||||
# name: value
|
||||
|
||||
labels:
|
||||
control_node_selector_key: openstack-control-plane
|
||||
control_node_selector_value: enabled
|
||||
compute_node_selector_key: openstack-compute-node
|
||||
compute_node_selector_value: enabled
|
||||
|
||||
control_replicas: 1
|
||||
compute_replicas: 1
|
||||
|
||||
image:
|
||||
init: quay.io/stackanetes/stackanetes-kolla-toolbox:barcelona
|
||||
db_sync: quay.io/stackanetes/stackanetes-nova-api:barcelona
|
||||
api: quay.io/stackanetes/stackanetes-nova-api:barcelona
|
||||
conductor: quay.io/stackanetes/stackanetes-nova-conductor:barcelona
|
||||
scheduler: quay.io/stackanetes/stackanetes-nova-scheduler:barcelona
|
||||
novncproxy: quay.io/stackanetes/stackanetes-nova-novncproxy:barcelona
|
||||
consoleauth: quay.io/stackanetes/stackanetes-nova-consoleauth:barcelona
|
||||
compute: quay.io/stackanetes/stackanetes-nova-compute:barcelona
|
||||
libvirt: quay.io/stackanetes/stackanetes-nova-libvirt:barcelona
|
||||
post: quay.io/stackanetes/stackanetes-kolla-toolbox:barcelona
|
||||
entrypoint: quay.io/stackanetes/kubernetes-entrypoint:v0.1.0
|
||||
pull_policy: "IfNotPresent"
|
||||
|
||||
network:
|
||||
ip_address: "0.0.0.0"
|
||||
# TODO(DTadrzak): move external IPs to common, this variable should be shared with
|
||||
# horizon service
|
||||
external_ips: ""
|
||||
minion_interface_name: "eno1"
|
||||
dns:
|
||||
servers:
|
||||
- "10.96.0.10"
|
||||
- "8.8.8.8"
|
||||
kubernetes_domain: "cluster.local"
|
||||
other_domains: ""
|
||||
|
||||
port:
|
||||
api: 8774
|
||||
metadata: 8775
|
||||
novncproxy: 6080
|
||||
|
||||
nova:
|
||||
default:
|
||||
debug: false
|
||||
osapi_workers: 8
|
||||
metadata_workers: 8
|
||||
conductor_workers: 8
|
||||
force_config_drive: True
|
||||
drain_timeout: 60
|
||||
|
||||
database:
|
||||
address: "mariadb"
|
||||
port: 3306
|
||||
root_user: "root"
|
||||
root_password: "password"
|
||||
|
||||
nova_user: "nova"
|
||||
nova_password: "password"
|
||||
nova_database_name: "nova"
|
||||
nova_api_database_name: "nova_api"
|
||||
|
||||
keystone:
|
||||
admin_user: "admin"
|
||||
admin_password: "password"
|
||||
admin_project_name: "admin"
|
||||
admin_region_name: "RegionOne"
|
||||
domain_name: "default"
|
||||
tenant_name: "admin"
|
||||
|
||||
neutron_user: "neutron"
|
||||
neutron_password: "password"
|
||||
neutron_region_name: "RegionOne"
|
||||
|
||||
nova_user: "nova"
|
||||
nova_password: "password"
|
||||
nova_region_name: "RegionOne"
|
||||
|
||||
rabbitmq:
|
||||
address: "rabbitmq"
|
||||
admin_user: "rabbitmq"
|
||||
admin_password: "password"
|
||||
port: 5672
|
||||
|
||||
ceph:
|
||||
enabled: false
|
||||
monitors: []
|
||||
cinder_user: "cinder"
|
||||
cinder_keyring: null
|
||||
nova_pool: "vms"
|
||||
secret_uuid: ""
|
||||
|
||||
neutron:
|
||||
metadata_secret: "password"
|
||||
|
||||
memcached:
|
||||
address: "memcached:11211"
|
||||
|
||||
dependencies:
|
||||
api:
|
||||
jobs:
|
||||
- mariadb-seed
|
||||
- keystone-db-sync
|
||||
- nova-init
|
||||
- nova-db-sync
|
||||
service:
|
||||
- mariadb
|
||||
db_sync:
|
||||
jobs:
|
||||
- nova-init
|
||||
- keystone-init
|
||||
- mariadb-seed
|
||||
service:
|
||||
- mariadb
|
||||
db_sync:
|
||||
jobs:
|
||||
- nova-init
|
||||
- keystone-init
|
||||
- mariadb-seed
|
||||
service:
|
||||
- mariadb
|
||||
post:
|
||||
jobs:
|
||||
- nova-init
|
||||
- keystone-init
|
||||
- mariadb-seed
|
||||
service:
|
||||
- mariadb
|
||||
- nova-api
|
||||
init:
|
||||
jobs:
|
||||
- mariadb-seed
|
||||
service:
|
||||
- mariadb
|
||||
compute:
|
||||
jobs:
|
||||
- nova-init
|
||||
- nova-post
|
||||
- nova-db-sync
|
||||
service:
|
||||
- keystone-api
|
||||
- nova-api
|
||||
daemonset:
|
||||
- nova-libvirt
|
||||
libvirt:
|
||||
jobs:
|
||||
- nova-init
|
||||
- nova-post
|
||||
- nova-db-sync
|
||||
service:
|
||||
- keystone-api
|
||||
- nova-api
|
||||
consoleauth:
|
||||
jobs:
|
||||
- mariadb-seed
|
||||
- keystone-db-sync
|
||||
- nova-init
|
||||
- nova-db-sync
|
||||
service:
|
||||
- mariadb
|
||||
scheduler:
|
||||
jobs:
|
||||
- mariadb-seed
|
||||
- keystone-db-sync
|
||||
- nova-init
|
||||
- nova-db-sync
|
||||
service:
|
||||
- mariadb
|
||||
conductor:
|
||||
jobs:
|
||||
- mariadb-seed
|
||||
- keystone-db-sync
|
||||
- nova-init
|
||||
- nova-db-sync
|
||||
service:
|
||||
- mariadb
|
||||
|
||||
# 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
|
||||
nova:
|
||||
hosts:
|
||||
default: nova-api
|
||||
path: "/v2/%(tenant_id)s"
|
||||
type: compute
|
||||
scheme: 'http'
|
||||
port:
|
||||
api: 8774
|
||||
metadata: 8775
|
||||
novncproxy: 6080
|
||||
keystone:
|
||||
hosts:
|
||||
default: keystone-api
|
||||
path: /v3
|
||||
type: identity
|
||||
scheme: 'http'
|
||||
port:
|
||||
admin: 35357
|
||||
public: 5000
|
Loading…
Reference in New Issue
Block a user