Kernel Modules: Load via chroot into host
This PS moves the loading of kernel modules required by services to being perfromed via a chroot on the host, this ensures that the correct module is found and provides compatibility across distros. Change-Id: I889fdd047a24bf4b123dadf9f6d6e6e8079d69d1
This commit is contained in:
parent
bc2bea5ee2
commit
35267bffe4
@ -0,0 +1,21 @@
|
|||||||
|
#!/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
|
||||||
|
chroot /mnt/host-rootfs modprobe ip6_tables
|
||||||
|
chroot /mnt/host-rootfs modprobe ebtables
|
@ -18,8 +18,6 @@ limitations under the License.
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
modprobe ebtables
|
|
||||||
|
|
||||||
# configure external bridge
|
# configure external bridge
|
||||||
external_bridge="{{- .Values.network.external_bridge -}}"
|
external_bridge="{{- .Values.network.external_bridge -}}"
|
||||||
external_interface="{{- .Values.network.interface.external -}}"
|
external_interface="{{- .Values.network.interface.external -}}"
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
#!/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
|
||||||
|
chroot /mnt/host-rootfs modprobe ip6_tables
|
@ -49,6 +49,8 @@ data:
|
|||||||
{{ tuple "bin/_neutron-linuxbridge-agent.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_neutron-linuxbridge-agent.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
neutron-linuxbridge-agent-init.sh: |+
|
neutron-linuxbridge-agent-init.sh: |+
|
||||||
{{ 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-linuxbridge-agent-init-modules.sh: |+
|
||||||
|
{{ tuple "bin/_neutron-linuxbridge-agent-init-modules.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: |+
|
neutron-metadata-agent-init.sh: |+
|
||||||
@ -57,6 +59,8 @@ data:
|
|||||||
{{ 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: |+
|
||||||
{{ tuple "bin/_neutron-openvswitch-agent-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_neutron-openvswitch-agent-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
neutron-openvswitch-agent-init-modules.sh: |+
|
||||||
|
{{ tuple "bin/_neutron-openvswitch-agent-init-modules.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
neutron-server.sh: |+
|
neutron-server.sh: |+
|
||||||
{{ tuple "bin/_neutron-server.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_neutron-server.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -40,6 +40,24 @@ spec:
|
|||||||
hostNetwork: true
|
hostNetwork: true
|
||||||
initContainers:
|
initContainers:
|
||||||
{{ tuple $envAll $dependencies $mounts_neutron_lb_agent_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
{{ tuple $envAll $dependencies $mounts_neutron_lb_agent_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||||
|
- name: neutron-lb-agent-kernel-modules
|
||||||
|
image: {{ .Values.images.tags.neutron_linuxbridge_agent }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- SYS_MODULE
|
||||||
|
runAsUser: 0
|
||||||
|
command:
|
||||||
|
- /tmp/neutron-linuxbridge-agent-init-modules.sh
|
||||||
|
volumeMounts:
|
||||||
|
- name: neutron-bin
|
||||||
|
mountPath: /tmp/neutron-linuxbridge-agent-init-modules.sh
|
||||||
|
subPath: neutron-linuxbridge-agent-init-modules.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: host-rootfs
|
||||||
|
mountPath: /mnt/host-rootfs
|
||||||
|
readOnly: true
|
||||||
- name: neutron-lb-agent-init
|
- name: neutron-lb-agent-init
|
||||||
image: {{ .Values.images.tags.neutron_linuxbridge_agent }}
|
image: {{ .Values.images.tags.neutron_linuxbridge_agent }}
|
||||||
imagePullPolicy: {{ .Values.images.pull_policy }}
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
@ -119,9 +137,6 @@ spec:
|
|||||||
mountPath: /etc/neutron/rootwrap.d/openvswitch-plugin.filters
|
mountPath: /etc/neutron/rootwrap.d/openvswitch-plugin.filters
|
||||||
subPath: openvswitch-plugin.filters
|
subPath: openvswitch-plugin.filters
|
||||||
readOnly: true
|
readOnly: true
|
||||||
- name: libmodules
|
|
||||||
mountPath: /lib/modules
|
|
||||||
readOnly: true
|
|
||||||
- name: run
|
- name: run
|
||||||
mountPath: /run
|
mountPath: /run
|
||||||
{{ if $mounts_neutron_lb_agent.volumeMounts }}{{ toYaml $mounts_neutron_lb_agent.volumeMounts | indent 12 }}{{ end }}
|
{{ if $mounts_neutron_lb_agent.volumeMounts }}{{ toYaml $mounts_neutron_lb_agent.volumeMounts | indent 12 }}{{ end }}
|
||||||
@ -211,9 +226,6 @@ spec:
|
|||||||
mountPath: /etc/neutron/rootwrap.d/openvswitch-plugin.filters
|
mountPath: /etc/neutron/rootwrap.d/openvswitch-plugin.filters
|
||||||
subPath: openvswitch-plugin.filters
|
subPath: openvswitch-plugin.filters
|
||||||
readOnly: true
|
readOnly: true
|
||||||
- name: libmodules
|
|
||||||
mountPath: /lib/modules
|
|
||||||
readOnly: true
|
|
||||||
- name: run
|
- name: run
|
||||||
mountPath: /run
|
mountPath: /run
|
||||||
{{ if $mounts_neutron_lb_agent.volumeMounts }}{{ toYaml $mounts_neutron_lb_agent.volumeMounts | indent 12 }}{{ end }}
|
{{ if $mounts_neutron_lb_agent.volumeMounts }}{{ toYaml $mounts_neutron_lb_agent.volumeMounts | indent 12 }}{{ end }}
|
||||||
@ -228,11 +240,11 @@ spec:
|
|||||||
configMap:
|
configMap:
|
||||||
name: neutron-etc
|
name: neutron-etc
|
||||||
defaultMode: 0444
|
defaultMode: 0444
|
||||||
- name: libmodules
|
|
||||||
hostPath:
|
|
||||||
path: /lib/modules
|
|
||||||
- name: run
|
- name: run
|
||||||
hostPath:
|
hostPath:
|
||||||
path: /run
|
path: /run
|
||||||
|
- name: host-rootfs
|
||||||
|
hostPath:
|
||||||
|
path: /
|
||||||
{{ if $mounts_neutron_lb_agent.volumes }}{{ toYaml $mounts_neutron_lb_agent.volumes | indent 8 }}{{ end }}
|
{{ if $mounts_neutron_lb_agent.volumes }}{{ toYaml $mounts_neutron_lb_agent.volumes | indent 8 }}{{ end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -40,6 +40,24 @@ spec:
|
|||||||
hostNetwork: true
|
hostNetwork: true
|
||||||
initContainers:
|
initContainers:
|
||||||
{{ tuple $envAll $dependencies $mounts_neutron_ovs_agent_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
{{ tuple $envAll $dependencies $mounts_neutron_ovs_agent_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||||
|
- name: neutron-openvswitch-agent-kernel-modules
|
||||||
|
image: {{ .Values.images.tags.neutron_openvswitch_agent }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- SYS_MODULE
|
||||||
|
runAsUser: 0
|
||||||
|
command:
|
||||||
|
- /tmp/neutron-openvswitch-agent-init-modules.sh
|
||||||
|
volumeMounts:
|
||||||
|
- name: neutron-bin
|
||||||
|
mountPath: /tmp/neutron-openvswitch-agent-init-modules.sh
|
||||||
|
subPath: neutron-openvswitch-agent-init-modules.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: host-rootfs
|
||||||
|
mountPath: /mnt/host-rootfs
|
||||||
|
readOnly: true
|
||||||
- name: neutron-ovs-agent-init
|
- name: neutron-ovs-agent-init
|
||||||
image: {{ .Values.images.tags.neutron_openvswitch_agent }}
|
image: {{ .Values.images.tags.neutron_openvswitch_agent }}
|
||||||
imagePullPolicy: {{ .Values.images.pull_policy }}
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
@ -119,9 +137,6 @@ spec:
|
|||||||
mountPath: /etc/neutron/rootwrap.d/openvswitch-plugin.filters
|
mountPath: /etc/neutron/rootwrap.d/openvswitch-plugin.filters
|
||||||
subPath: openvswitch-plugin.filters
|
subPath: openvswitch-plugin.filters
|
||||||
readOnly: true
|
readOnly: true
|
||||||
- name: libmodules
|
|
||||||
mountPath: /lib/modules
|
|
||||||
readOnly: true
|
|
||||||
- name: run
|
- name: run
|
||||||
mountPath: /run
|
mountPath: /run
|
||||||
{{ if $mounts_neutron_ovs_agent.volumeMounts }}{{ toYaml $mounts_neutron_ovs_agent.volumeMounts | indent 12 }}{{ end }}
|
{{ if $mounts_neutron_ovs_agent.volumeMounts }}{{ toYaml $mounts_neutron_ovs_agent.volumeMounts | indent 12 }}{{ end }}
|
||||||
@ -213,9 +228,6 @@ spec:
|
|||||||
mountPath: /etc/neutron/rootwrap.d/openvswitch-plugin.filters
|
mountPath: /etc/neutron/rootwrap.d/openvswitch-plugin.filters
|
||||||
subPath: openvswitch-plugin.filters
|
subPath: openvswitch-plugin.filters
|
||||||
readOnly: true
|
readOnly: true
|
||||||
- name: libmodules
|
|
||||||
mountPath: /lib/modules
|
|
||||||
readOnly: true
|
|
||||||
- name: run
|
- name: run
|
||||||
mountPath: /run
|
mountPath: /run
|
||||||
{{ if $mounts_neutron_ovs_agent.volumeMounts }}{{ toYaml $mounts_neutron_ovs_agent.volumeMounts | indent 12 }}{{ end }}
|
{{ if $mounts_neutron_ovs_agent.volumeMounts }}{{ toYaml $mounts_neutron_ovs_agent.volumeMounts | indent 12 }}{{ end }}
|
||||||
@ -232,11 +244,11 @@ spec:
|
|||||||
configMap:
|
configMap:
|
||||||
name: neutron-etc
|
name: neutron-etc
|
||||||
defaultMode: 0444
|
defaultMode: 0444
|
||||||
- name: libmodules
|
|
||||||
hostPath:
|
|
||||||
path: /lib/modules
|
|
||||||
- name: run
|
- name: run
|
||||||
hostPath:
|
hostPath:
|
||||||
path: /run
|
path: /run
|
||||||
|
- name: host-rootfs
|
||||||
|
hostPath:
|
||||||
|
path: /
|
||||||
{{ if $mounts_neutron_ovs_agent.volumes }}{{ toYaml $mounts_neutron_ovs_agent.volumes | indent 8 }}{{ end }}
|
{{ if $mounts_neutron_ovs_agent.volumes }}{{ toYaml $mounts_neutron_ovs_agent.volumes | indent 8 }}{{ end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -0,0 +1,22 @@
|
|||||||
|
#!/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
|
||||||
|
chroot /mnt/host-rootfs modprobe openvswitch
|
||||||
|
chroot /mnt/host-rootfs modprobe gre
|
||||||
|
chroot /mnt/host-rootfs modprobe vxlan
|
@ -18,12 +18,6 @@ limitations under the License.
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
# load tunnel kernel modules we may use and gre/vxlan
|
|
||||||
modprobe openvswitch
|
|
||||||
|
|
||||||
modprobe gre
|
|
||||||
modprobe vxlan
|
|
||||||
|
|
||||||
sock="/var/run/openvswitch/db.sock"
|
sock="/var/run/openvswitch/db.sock"
|
||||||
t=0
|
t=0
|
||||||
while [ ! -e "${sock}" ] ; do
|
while [ ! -e "${sock}" ] ; do
|
||||||
|
@ -26,4 +26,6 @@ data:
|
|||||||
{{ tuple "bin/_openvswitch-db-server.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_openvswitch-db-server.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
openvswitch-vswitchd.sh: |+
|
openvswitch-vswitchd.sh: |+
|
||||||
{{ tuple "bin/_openvswitch-vswitchd.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_openvswitch-vswitchd.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
openvswitch-vswitchd-init-modules.sh: |+
|
||||||
|
{{ tuple "bin/_openvswitch-vswitchd-init-modules.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -34,6 +34,25 @@ spec:
|
|||||||
{{ .Values.labels.ovs.node_selector_key }}: {{ .Values.labels.ovs.node_selector_value }}
|
{{ .Values.labels.ovs.node_selector_key }}: {{ .Values.labels.ovs.node_selector_value }}
|
||||||
dnsPolicy: ClusterFirstWithHostNet
|
dnsPolicy: ClusterFirstWithHostNet
|
||||||
hostNetwork: true
|
hostNetwork: true
|
||||||
|
initContainers:
|
||||||
|
- name: openvswitch-vswitchd-modules
|
||||||
|
image: {{ .Values.images.tags.openvswitch_vswitchd }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- SYS_MODULE
|
||||||
|
runAsUser: 0
|
||||||
|
command:
|
||||||
|
- /tmp/openvswitch-vswitchd-init-modules.sh
|
||||||
|
volumeMounts:
|
||||||
|
- name: openvswitch-bin
|
||||||
|
mountPath: /tmp/openvswitch-vswitchd-init-modules.sh
|
||||||
|
subPath: openvswitch-vswitchd-init-modules.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: host-rootfs
|
||||||
|
mountPath: /mnt/host-rootfs
|
||||||
|
readOnly: true
|
||||||
containers:
|
containers:
|
||||||
- name: openvswitch-vswitchd
|
- name: openvswitch-vswitchd
|
||||||
image: {{ .Values.images.tags.openvswitch_vswitchd }}
|
image: {{ .Values.images.tags.openvswitch_vswitchd }}
|
||||||
@ -56,9 +75,6 @@ spec:
|
|||||||
mountPath: /tmp/openvswitch-vswitchd.sh
|
mountPath: /tmp/openvswitch-vswitchd.sh
|
||||||
subPath: openvswitch-vswitchd.sh
|
subPath: openvswitch-vswitchd.sh
|
||||||
readOnly: true
|
readOnly: true
|
||||||
- name: libmodules
|
|
||||||
mountPath: /lib/modules
|
|
||||||
readOnly: true
|
|
||||||
- name: run
|
- name: run
|
||||||
mountPath: /run
|
mountPath: /run
|
||||||
volumes:
|
volumes:
|
||||||
@ -66,10 +82,10 @@ spec:
|
|||||||
configMap:
|
configMap:
|
||||||
name: openvswitch-bin
|
name: openvswitch-bin
|
||||||
defaultMode: 0555
|
defaultMode: 0555
|
||||||
- name: libmodules
|
|
||||||
hostPath:
|
|
||||||
path: /lib/modules
|
|
||||||
- name: run
|
- name: run
|
||||||
hostPath:
|
hostPath:
|
||||||
path: /run
|
path: /run
|
||||||
|
- name: host-rootfs
|
||||||
|
hostPath:
|
||||||
|
path: /
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -70,15 +70,6 @@ function base_install {
|
|||||||
sdn_lb_support_install
|
sdn_lb_support_install
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# NOTE(portdirect): Temp workaround until module loading is supported by
|
|
||||||
# OpenStack-Helm in Fedora
|
|
||||||
if [ "x$HOST_OS" == "xfedora" ]; then
|
|
||||||
sudo modprobe openvswitch
|
|
||||||
sudo modprobe ebtables
|
|
||||||
sudo modprobe gre
|
|
||||||
sudo modprobe vxlan
|
|
||||||
sudo modprobe ip6_tables
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function json_to_yaml {
|
function json_to_yaml {
|
||||||
|
Loading…
Reference in New Issue
Block a user