Add init container to load apparmor profile
This patch place in a sample for an init container, generated by helm toolkit, to load an apparmor profile included in the chart. Change-Id: I309e3b550fd1d683745c319aa39bcfb96b77ea14 Signed-off-by: Tin Lam <tin@irrational.io>
This commit is contained in:
parent
d992de6245
commit
d9af8205c0
@ -0,0 +1,70 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2017-2018 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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
abstract: |
|
||||||
|
Renders a configmap used for loading custom AppArmor profiles.
|
||||||
|
values: |
|
||||||
|
pod:
|
||||||
|
mandatory_access_control:
|
||||||
|
type: apparmor
|
||||||
|
configmap_apparmor: true
|
||||||
|
apparmor_profiles: |-
|
||||||
|
my_apparmor-v1.profile: |-
|
||||||
|
#include <tunables/global>
|
||||||
|
profile my-apparmor-v1 flags=(attach_disconnected,mediate_deleted) {
|
||||||
|
<profile_data>
|
||||||
|
}
|
||||||
|
usage: |
|
||||||
|
{{ dict "envAll" . "component" "myComponent" | include "helm-toolkit.snippets.kubernetes_apparmor_configmap" }}
|
||||||
|
return: |
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: releaseName-myComponent-apparmor
|
||||||
|
namespace: myNamespace
|
||||||
|
data:
|
||||||
|
my_apparmor-v1.profile: |-
|
||||||
|
#include <tunables/global>
|
||||||
|
profile my-apparmor-v1 flags=(attach_disconnected,mediate_deleted) {
|
||||||
|
<profile_data>
|
||||||
|
}
|
||||||
|
*/}}
|
||||||
|
{{- define "helm-toolkit.snippets.kubernetes_apparmor_configmap" -}}
|
||||||
|
{{- $envAll := index . "envAll" -}}
|
||||||
|
{{- $component := index . "component" -}}
|
||||||
|
{{- if hasKey $envAll.Values.pod "mandatory_access_control" -}}
|
||||||
|
{{- if hasKey $envAll.Values.pod.mandatory_access_control "type" -}}
|
||||||
|
{{- if eq $envAll.Values.pod.mandatory_access_control.type "apparmor" -}}
|
||||||
|
{{- if hasKey $envAll.Values.pod.mandatory_access_control "configmap_apparmor" -}}
|
||||||
|
{{- if $envAll.Values.pod.mandatory_access_control.configmap_apparmor }}
|
||||||
|
{{- $mapName := printf "%s-%s-%s" $envAll.Release.Name $component "apparmor" -}}
|
||||||
|
{{- if $envAll.Values.conf.apparmor_profiles }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ $mapName }}
|
||||||
|
namespace: {{ $envAll.Release.Namespace }}
|
||||||
|
data:
|
||||||
|
{{ $envAll.Values.conf.apparmor_profiles | toYaml | indent 2 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
@ -0,0 +1,77 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2017-2018 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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
abstract: |
|
||||||
|
Renders the init container used for apparmor loading.
|
||||||
|
values: |
|
||||||
|
images:
|
||||||
|
tags:
|
||||||
|
apparmor_loader: my-repo.io/apparmor-loader:1.0.0
|
||||||
|
pod:
|
||||||
|
mandatory_access_control:
|
||||||
|
type: apparmor
|
||||||
|
configmap_apparmor: true
|
||||||
|
apparmor-loader: unconfined
|
||||||
|
usage: |
|
||||||
|
{{ dict "envAll" . | include "helm-toolkit.snippets.kubernetes_apparmor_loader_init_container" }}
|
||||||
|
return: |
|
||||||
|
- name: apparmor-loader
|
||||||
|
image: my-repo.io/apparmor-loader:1.0.0
|
||||||
|
args:
|
||||||
|
- /profiles
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
volumeMounts:
|
||||||
|
- name: sys
|
||||||
|
mountPath: /sys
|
||||||
|
readOnly: true
|
||||||
|
- name: includes
|
||||||
|
mountPath: /etc/apparmor.d
|
||||||
|
readOnly: true
|
||||||
|
- name: profiles
|
||||||
|
mountPath: /profiles
|
||||||
|
readOnly: true
|
||||||
|
*/}}
|
||||||
|
{{- define "helm-toolkit.snippets.kubernetes_apparmor_loader_init_container" -}}
|
||||||
|
{{- $envAll := index . "envAll" -}}
|
||||||
|
{{- if hasKey $envAll.Values.pod "mandatory_access_control" -}}
|
||||||
|
{{- if hasKey $envAll.Values.pod.mandatory_access_control "type" -}}
|
||||||
|
{{- if hasKey $envAll.Values.pod.mandatory_access_control "configmap_apparmor" -}}
|
||||||
|
{{- if eq $envAll.Values.pod.mandatory_access_control.type "apparmor" -}}
|
||||||
|
{{- if $envAll.Values.pod.mandatory_access_control.configmap_apparmor }}
|
||||||
|
- name: apparmor-loader
|
||||||
|
image: {{ $envAll.Values.images.tags.apparmor_loader }}
|
||||||
|
args:
|
||||||
|
- /profiles
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
volumeMounts:
|
||||||
|
- name: sys
|
||||||
|
mountPath: /sys
|
||||||
|
readOnly: true
|
||||||
|
- name: includes
|
||||||
|
mountPath: /etc/apparmor.d
|
||||||
|
readOnly: true
|
||||||
|
- name: profiles
|
||||||
|
mountPath: /profiles
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
@ -0,0 +1,70 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2017-2018 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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
abstract: |
|
||||||
|
Renders the volumes used by the apparmor loader.
|
||||||
|
values: |
|
||||||
|
pod:
|
||||||
|
mandatory_access_control:
|
||||||
|
type: apparmor
|
||||||
|
configmap_apparmor: true
|
||||||
|
inputs: |
|
||||||
|
envAll: "Environment or Context."
|
||||||
|
component: "Name of the component used for the name of configMap."
|
||||||
|
requireSys: "Boolean. True if it needs the hostpath /sys in volumes."
|
||||||
|
usage: |
|
||||||
|
{{ dict "envAll" . "component" "keystone" "requireSys" true | include "helm-toolkit.snippets.kubernetes_apparmor_volumes" }}
|
||||||
|
return: |
|
||||||
|
- name: sys
|
||||||
|
hostPath:
|
||||||
|
path: /sys
|
||||||
|
- name: includes
|
||||||
|
hostPath:
|
||||||
|
path: /etc/apparmor.d
|
||||||
|
- name: profiles
|
||||||
|
configMap:
|
||||||
|
name: RELEASENAME-keystone-apparmor
|
||||||
|
defaultMode: 0555
|
||||||
|
*/}}
|
||||||
|
{{- define "helm-toolkit.snippets.kubernetes_apparmor_volumes" -}}
|
||||||
|
{{- $envAll := index . "envAll" -}}
|
||||||
|
{{- $component := index . "component" -}}
|
||||||
|
{{- $requireSys := index . "requireSys" | default false -}}
|
||||||
|
{{- $configName := printf "%s-%s-%s" $envAll.Release.Name $component "apparmor" -}}
|
||||||
|
{{- if hasKey $envAll.Values.pod "mandatory_access_control" -}}
|
||||||
|
{{- if hasKey $envAll.Values.pod.mandatory_access_control "type" -}}
|
||||||
|
{{- if hasKey $envAll.Values.pod.mandatory_access_control "configmap_apparmor" -}}
|
||||||
|
{{- if eq $envAll.Values.pod.mandatory_access_control.type "apparmor" -}}
|
||||||
|
{{- if $envAll.Values.pod.mandatory_access_control.configmap_apparmor }}
|
||||||
|
{{- if $requireSys }}
|
||||||
|
- name: sys
|
||||||
|
hostPath:
|
||||||
|
path: /sys
|
||||||
|
{{- end }}
|
||||||
|
- name: includes
|
||||||
|
hostPath:
|
||||||
|
path: /etc/apparmor.d
|
||||||
|
- name: profiles
|
||||||
|
configMap:
|
||||||
|
name: {{ $configName | quote }}
|
||||||
|
defaultMode: 0555
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
17
memcached/templates/configmap-apparmor.yaml
Normal file
17
memcached/templates/configmap-apparmor.yaml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2017-2018 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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- dict "envAll" . "component" "memcached" | include "helm-toolkit.snippets.kubernetes_apparmor_configmap" }}
|
@ -39,6 +39,7 @@ spec:
|
|||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
|
{{- dict "envAll" $envAll "podName" "memcached" "containerNames" (list "apparmor-loader" "memcached") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
|
||||||
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
|
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
labels:
|
labels:
|
||||||
{{ tuple $envAll "memcached" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
|
{{ tuple $envAll "memcached" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
|
||||||
@ -53,6 +54,7 @@ spec:
|
|||||||
terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.memcached.timeout | default "30" }}
|
terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.memcached.timeout | default "30" }}
|
||||||
initContainers:
|
initContainers:
|
||||||
{{ tuple $envAll "memcached" list | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
{{ tuple $envAll "memcached" list | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||||
|
{{ dict "envAll" $envAll | include "helm-toolkit.snippets.kubernetes_apparmor_loader_init_container" | indent 8 }}
|
||||||
containers:
|
containers:
|
||||||
- name: memcached
|
- name: memcached
|
||||||
{{ tuple $envAll "memcached" | include "helm-toolkit.snippets.image" | indent 10 }}
|
{{ tuple $envAll "memcached" | include "helm-toolkit.snippets.image" | indent 10 }}
|
||||||
@ -81,4 +83,5 @@ spec:
|
|||||||
configMap:
|
configMap:
|
||||||
name: {{ $configMapBinName | quote }}
|
name: {{ $configMapBinName | quote }}
|
||||||
defaultMode: 0555
|
defaultMode: 0555
|
||||||
|
{{ dict "envAll" $envAll "component" "memcached" "requireSys" true | include "helm-toolkit.snippets.kubernetes_apparmor_volumes" | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
1
tools/deployment/apparmor/000-install-packages.sh
Symbolic link
1
tools/deployment/apparmor/000-install-packages.sh
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../common/000-install-packages.sh
|
1
tools/deployment/apparmor/001-setup-apparmor-profiles.sh
Symbolic link
1
tools/deployment/apparmor/001-setup-apparmor-profiles.sh
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../common/001-setup-apparmor-profiles.sh
|
1
tools/deployment/apparmor/005-deploy-k8s.sh
Symbolic link
1
tools/deployment/apparmor/005-deploy-k8s.sh
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../common/005-deploy-k8s.sh
|
140
tools/deployment/apparmor/040-memcached.sh
Executable file
140
tools/deployment/apparmor/040-memcached.sh
Executable file
@ -0,0 +1,140 @@
|
|||||||
|
#!/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 -xe
|
||||||
|
|
||||||
|
namespace="osh-infra"
|
||||||
|
|
||||||
|
# NOTE: Lint and package chart
|
||||||
|
make memcached
|
||||||
|
|
||||||
|
tee /tmp/memcached.yaml <<EOF
|
||||||
|
images:
|
||||||
|
tags:
|
||||||
|
apparmor_loader: google/apparmor-loader:latest
|
||||||
|
pod:
|
||||||
|
mandatory_access_control:
|
||||||
|
type: apparmor
|
||||||
|
configmap_apparmor: true
|
||||||
|
memcached:
|
||||||
|
memcached: localhost/my-apparmor-v1
|
||||||
|
apparmor-loader: unconfined
|
||||||
|
conf:
|
||||||
|
apparmor_profiles:
|
||||||
|
my-apparmor-v1.profile: |-
|
||||||
|
#include <tunables/global>
|
||||||
|
profile my-apparmor-v1 flags=(attach_disconnected,mediate_deleted) {
|
||||||
|
#include <abstractions/base>
|
||||||
|
network inet tcp,
|
||||||
|
network inet udp,
|
||||||
|
network inet icmp,
|
||||||
|
deny network raw,
|
||||||
|
deny network packet,
|
||||||
|
file,
|
||||||
|
umount,
|
||||||
|
deny /bin/** wl,
|
||||||
|
deny /boot/** wl,
|
||||||
|
deny /dev/** wl,
|
||||||
|
deny /etc/** wl,
|
||||||
|
deny /home/** wl,
|
||||||
|
deny /lib/** wl,
|
||||||
|
deny /lib64/** wl,
|
||||||
|
deny /media/** wl,
|
||||||
|
deny /mnt/** wl,
|
||||||
|
deny /opt/** wl,
|
||||||
|
deny /proc/** wl,
|
||||||
|
deny /root/** wl,
|
||||||
|
deny /sbin/** wl,
|
||||||
|
deny /srv/** wl,
|
||||||
|
deny /tmp/** wl,
|
||||||
|
deny /sys/** wl,
|
||||||
|
deny /usr/** wl,
|
||||||
|
audit /** w,
|
||||||
|
/var/run/nginx.pid w,
|
||||||
|
/usr/sbin/nginx ix,
|
||||||
|
deny /bin/dash mrwklx,
|
||||||
|
deny /bin/sh mrwklx,
|
||||||
|
deny /usr/bin/top mrwklx,
|
||||||
|
capability chown,
|
||||||
|
capability dac_override,
|
||||||
|
capability setuid,
|
||||||
|
capability setgid,
|
||||||
|
capability net_bind_service,
|
||||||
|
deny @{PROC}/{*,**^[0-9*],sys/kernel/shm*} wkx,
|
||||||
|
deny @{PROC}/sysrq-trigger rwklx,
|
||||||
|
deny @{PROC}/mem rwklx,
|
||||||
|
deny @{PROC}/kmem rwklx,
|
||||||
|
deny @{PROC}/kcore rwklx,
|
||||||
|
deny mount,
|
||||||
|
deny /sys/[^f]*/** wklx,
|
||||||
|
deny /sys/f[^s]*/** wklx,
|
||||||
|
deny /sys/fs/[^c]*/** wklx,
|
||||||
|
deny /sys/fs/c[^g]*/** wklx,
|
||||||
|
deny /sys/fs/cg[^r]*/** wklx,
|
||||||
|
deny /sys/firmware/efi/efivars/** rwklx,
|
||||||
|
deny /sys/kernel/security/** rwklx,
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# NOTE: Deploy command
|
||||||
|
: ${OSH_INFRA_EXTRA_HELM_ARGS:=""}
|
||||||
|
helm upgrade --install memcached ./memcached \
|
||||||
|
--namespace=$namespace \
|
||||||
|
--set pod.replicas.server=1 \
|
||||||
|
--values=/tmp/memcached.yaml \
|
||||||
|
${OSH_INFRA_EXTRA_HELM_ARGS} \
|
||||||
|
${OSH_INFRA_EXTRA_HELM_ARGS_MEMCACHED}
|
||||||
|
|
||||||
|
# NOTE: Wait for deploy
|
||||||
|
./tools/deployment/common/wait-for-pods.sh $namespace
|
||||||
|
|
||||||
|
# NOTE: Validate Deployment info
|
||||||
|
helm status memcached
|
||||||
|
|
||||||
|
# Run a test. Note: the simple "cat /proc/1/attr/current" verification method
|
||||||
|
# will not work, as memcached has multiple processes running, so we have to
|
||||||
|
# find out which one is the memcached application process.
|
||||||
|
pod=$(kubectl -n $namespace get pod | grep memcached | awk '{print $1}')
|
||||||
|
unsorted_process_file="/tmp/unsorted_proc_list"
|
||||||
|
sorted_process_file="/tmp/proc_list"
|
||||||
|
expected_profile="my-apparmor-v1 (enforce)"
|
||||||
|
|
||||||
|
# Grab the processes (numbered directories) from the /proc directory,
|
||||||
|
# and then sort them. Highest proc number indicates most recent process.
|
||||||
|
kubectl -n $namespace exec $pod -- ls -1 /proc | grep -e "^[0-9]*$" > $unsorted_process_file
|
||||||
|
sort --numeric-sort $unsorted_process_file > $sorted_process_file
|
||||||
|
|
||||||
|
# The last/latest process in the list will actually be the "ls" command above,
|
||||||
|
# which isn't running any more, so remove it.
|
||||||
|
sed -i '$ d' $sorted_process_file
|
||||||
|
|
||||||
|
while IFS='' read -r process || [[ -n "$process" ]]; do
|
||||||
|
echo "Process ID: $process"
|
||||||
|
proc_name=`kubectl -n $namespace exec $pod -- cat /proc/$process/status | grep "Name:" | awk -F' ' '{print $2}'`
|
||||||
|
echo "Process Name: $proc_name"
|
||||||
|
profile=`kubectl -n $namespace exec $pod -- cat /proc/$process/attr/current`
|
||||||
|
echo "Profile running: $profile"
|
||||||
|
if test "$profile" != "$expected_profile"
|
||||||
|
then
|
||||||
|
if test "$proc_name" == "pause"
|
||||||
|
then
|
||||||
|
echo "Root process (pause) can run docker-default, it's ok."
|
||||||
|
else
|
||||||
|
echo "$profile is the WRONG PROFILE!!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done < $sorted_process_file
|
22
tools/deployment/common/001-setup-apparmor-profiles.sh
Executable file
22
tools/deployment/common/001-setup-apparmor-profiles.sh
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017-2018 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 -xe
|
||||||
|
|
||||||
|
# Ensure that apparmor is installed and enabled
|
||||||
|
sudo -H -E apt-get install -y apparmor
|
||||||
|
sudo systemctl enable apparmor && sudo systemctl start apparmor
|
||||||
|
sudo systemctl status apparmor.service
|
@ -194,6 +194,21 @@
|
|||||||
- ./tools/deployment/network-policy/901-test-networkpolicy.sh
|
- ./tools/deployment/network-policy/901-test-networkpolicy.sh
|
||||||
|
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: openstack-helm-infra-apparmor
|
||||||
|
parent: openstack-helm-infra-functional
|
||||||
|
timeout: 7200
|
||||||
|
pre-run: playbooks/osh-infra-upgrade-host.yaml
|
||||||
|
run: playbooks/osh-infra-gate-runner.yaml
|
||||||
|
post-run: playbooks/osh-infra-collect-logs.yaml
|
||||||
|
nodeset: openstack-helm-single-node
|
||||||
|
vars:
|
||||||
|
gate_scripts:
|
||||||
|
- ./tools/deployment/apparmor/000-install-packages.sh
|
||||||
|
- ./tools/deployment/apparmor/001-setup-apparmor-profiles.sh
|
||||||
|
- ./tools/deployment/apparmor/005-deploy-k8s.sh
|
||||||
|
- ./tools/deployment/apparmor/040-memcached.sh
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: openstack-helm-infra-openstack-support
|
name: openstack-helm-infra-openstack-support
|
||||||
parent: openstack-helm-infra-functional
|
parent: openstack-helm-infra-functional
|
||||||
|
@ -29,7 +29,8 @@
|
|||||||
# override functionality
|
# override functionality
|
||||||
- openstack-helm-infra-airship-divingbell:
|
- openstack-helm-infra-airship-divingbell:
|
||||||
voting: false
|
voting: false
|
||||||
- openstack-helm-infra-aio-podsecuritypolicy:
|
- openstack-helm-infra-aio-podsecuritypolicy
|
||||||
|
- openstack-helm-infra-apparmor:
|
||||||
voting: false
|
voting: false
|
||||||
gate:
|
gate:
|
||||||
jobs:
|
jobs:
|
||||||
@ -38,6 +39,7 @@
|
|||||||
- openstack-helm-infra-aio-monitoring
|
- openstack-helm-infra-aio-monitoring
|
||||||
- openstack-helm-infra-openstack-support
|
- openstack-helm-infra-openstack-support
|
||||||
- openstack-helm-infra-kubernetes-keystone-auth
|
- openstack-helm-infra-kubernetes-keystone-auth
|
||||||
|
- openstack-helm-infra-aio-podsecuritypolicy
|
||||||
periodic:
|
periodic:
|
||||||
jobs:
|
jobs:
|
||||||
- openstack-helm-infra-tenant-ceph
|
- openstack-helm-infra-tenant-ceph
|
||||||
|
Loading…
Reference in New Issue
Block a user