Add support for nova vm migration
Adds ability to perform vm migrations Change-Id: Iba10582346379f624e6a409f4f3018eead3aa7f6
This commit is contained in:
parent
f3e16dae18
commit
ca0cb858a7
40
nova/templates/bin/_ssh-start.sh.tpl
Normal file
40
nova/templates/bin/_ssh-start.sh.tpl
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
IFS=','
|
||||||
|
for KEY_TYPE in $KEY_TYPES; do
|
||||||
|
KEY_PATH=/etc/ssh/ssh_host_${KEY_TYPE}_key
|
||||||
|
if [[ ! -f "${KEY_PATH}" ]]; then
|
||||||
|
ssh-keygen -q -t ${KEY_TYPE} -f ${KEY_PATH} -N ""
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS=''
|
||||||
|
|
||||||
|
mkdir -p ~nova/.ssh
|
||||||
|
|
||||||
|
if [[ $(stat -c %U:%G ~nova/.ssh) != "nova:nova" ]]; then
|
||||||
|
chown nova: ~nova/.ssh
|
||||||
|
fi
|
||||||
|
|
||||||
|
chmod 0600 ~root/.ssh/authorized_keys
|
||||||
|
chmod 0600 ~root/.ssh/id_rsa
|
||||||
|
chmod 0600 ~root/.ssh/id_rsa.pub
|
||||||
|
|
||||||
|
exec /usr/sbin/sshd -D -e -o Port=$SSH_PORT
|
@ -65,4 +65,6 @@ data:
|
|||||||
{{ tuple "bin/_nova-vnc-proxy-init-assets.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_nova-vnc-proxy-init-assets.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
nova-vnc-proxy-init.sh: |
|
nova-vnc-proxy-init.sh: |
|
||||||
{{ tuple "bin/_nova-vnc-proxy-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_nova-vnc-proxy-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
ssh-start.sh: |
|
||||||
|
{{ tuple "bin/_ssh-start.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -114,4 +114,6 @@ data:
|
|||||||
{{- tuple .Values.conf.rootwrap_filters.network "etc/rootwrap.d/_network.filters.tpl" . | include "helm-toolkit.utils.configmap_templater" }}
|
{{- tuple .Values.conf.rootwrap_filters.network "etc/rootwrap.d/_network.filters.tpl" . | include "helm-toolkit.utils.configmap_templater" }}
|
||||||
nova.conf: |+
|
nova.conf: |+
|
||||||
{{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.nova | indent 4 }}
|
{{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.nova | indent 4 }}
|
||||||
|
ssh-config.sh: |+
|
||||||
|
{{- tuple .Values.conf.ssh "etc/_ssh-config.tpl" . | include "helm-toolkit.utils.configmap_templater" }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -162,6 +162,10 @@ 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: nova-etc
|
||||||
|
mountPath: /root/.ssh/config
|
||||||
|
subPath: ssh-config
|
||||||
|
readOnly: true
|
||||||
{{- if .Values.ceph.enabled }}
|
{{- if .Values.ceph.enabled }}
|
||||||
- name: etcceph
|
- name: etcceph
|
||||||
mountPath: /etc/ceph
|
mountPath: /etc/ceph
|
||||||
@ -191,6 +195,39 @@ spec:
|
|||||||
mountPath: /etc/machine-id
|
mountPath: /etc/machine-id
|
||||||
readOnly: true
|
readOnly: true
|
||||||
{{ if $mounts_nova_compute.volumeMounts }}{{ toYaml $mounts_nova_compute.volumeMounts | indent 12 }}{{ end }}
|
{{ if $mounts_nova_compute.volumeMounts }}{{ toYaml $mounts_nova_compute.volumeMounts | indent 12 }}{{ end }}
|
||||||
|
- name: nova-compute-ssh
|
||||||
|
image: {{ .Values.images.compute_ssh }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
{{ tuple $envAll $envAll.Values.pod.resources.ssh | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
env:
|
||||||
|
- name: KEY_TYPES
|
||||||
|
value: {{ include "helm-toolkit.utils.joinListWithComma" .Values.ssh.key_types | quote }}
|
||||||
|
- name: SSH_PORT
|
||||||
|
value: {{ .Values.network.ssh.port | quote }}
|
||||||
|
ports:
|
||||||
|
- containerPort: {{ .Values.network.ssh.port }}
|
||||||
|
command:
|
||||||
|
- /tmp/ssh-start.sh
|
||||||
|
volumeMounts:
|
||||||
|
- name: varlibnova
|
||||||
|
mountPath: /var/lib/nova
|
||||||
|
- name: varliblibvirt
|
||||||
|
mountPath: /var/lib/libvirt
|
||||||
|
- name: nova-etc
|
||||||
|
mountPath: /root/.ssh/id_rsa
|
||||||
|
subPath: ssh-key-private
|
||||||
|
- name: nova-etc
|
||||||
|
mountPath: /root/.ssh/id_rsa.pub
|
||||||
|
subPath: ssh-key-public
|
||||||
|
- name: nova-etc
|
||||||
|
mountPath: /root/.ssh/authorized_keys
|
||||||
|
subPath: ssh-key-public
|
||||||
|
- name: nova-bin
|
||||||
|
mountPath: /tmp/ssh-start.sh
|
||||||
|
subPath: ssh-start.sh
|
||||||
|
readOnly: true
|
||||||
volumes:
|
volumes:
|
||||||
- name: nova-bin
|
- name: nova-bin
|
||||||
configMap:
|
configMap:
|
||||||
|
4
nova/templates/etc/_ssh-config.tpl
Normal file
4
nova/templates/etc/_ssh-config.tpl
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Host *
|
||||||
|
StrictHostKeyChecking no
|
||||||
|
UserKnownHostsFile /dev/null
|
||||||
|
Port {{ .Values.network.ssh.port }}
|
@ -60,6 +60,7 @@ images:
|
|||||||
novncproxy_assets: docker.io/kolla/ubuntu-source-nova-novncproxy:3.0.3
|
novncproxy_assets: docker.io/kolla/ubuntu-source-nova-novncproxy:3.0.3
|
||||||
consoleauth: docker.io/kolla/ubuntu-source-nova-consoleauth:3.0.3
|
consoleauth: docker.io/kolla/ubuntu-source-nova-consoleauth:3.0.3
|
||||||
compute: docker.io/kolla/ubuntu-source-nova-compute:3.0.3
|
compute: docker.io/kolla/ubuntu-source-nova-compute:3.0.3
|
||||||
|
compute_ssh: docker.io/kolla/ubuntu-source-nova-ssh:3.0.3
|
||||||
bootstrap: docker.io/kolla/ubuntu-source-heat-engine:3.0.3
|
bootstrap: docker.io/kolla/ubuntu-source-heat-engine:3.0.3
|
||||||
dep_check: docker.io/kolla/ubuntu-source-kubernetes-entrypoint:4.0.0
|
dep_check: docker.io/kolla/ubuntu-source-kubernetes-entrypoint:4.0.0
|
||||||
pull_policy: "IfNotPresent"
|
pull_policy: "IfNotPresent"
|
||||||
@ -124,6 +125,9 @@ network:
|
|||||||
port: 36080
|
port: 36080
|
||||||
port: 6080
|
port: 6080
|
||||||
targetPort: 6080
|
targetPort: 6080
|
||||||
|
ssh:
|
||||||
|
name: "nova-ssh"
|
||||||
|
port: 8022
|
||||||
|
|
||||||
ceph:
|
ceph:
|
||||||
enabled: true
|
enabled: true
|
||||||
@ -255,7 +259,17 @@ console:
|
|||||||
# IF blank, search default routing interface
|
# IF blank, search default routing interface
|
||||||
vncserver_proxyclient_interface:
|
vncserver_proxyclient_interface:
|
||||||
|
|
||||||
|
ssh:
|
||||||
|
key_types:
|
||||||
|
- rsa
|
||||||
|
- dsa
|
||||||
|
- ecdsa
|
||||||
|
- ed25519
|
||||||
|
|
||||||
conf:
|
conf:
|
||||||
|
ssh:
|
||||||
|
override:
|
||||||
|
append:
|
||||||
rally_tests:
|
rally_tests:
|
||||||
run_tempest: false
|
run_tempest: false
|
||||||
override:
|
override:
|
||||||
@ -940,6 +954,13 @@ pod:
|
|||||||
limits:
|
limits:
|
||||||
memory: "1024Mi"
|
memory: "1024Mi"
|
||||||
cpu: "2000m"
|
cpu: "2000m"
|
||||||
|
ssh:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
novncproxy:
|
novncproxy:
|
||||||
requests:
|
requests:
|
||||||
memory: "128Mi"
|
memory: "128Mi"
|
||||||
|
Loading…
Reference in New Issue
Block a user