mirror of
https://github.com/optim-enterprises-bv/openstack-helm.git
synced 2026-01-10 17:41:35 +00:00
Scan templated python files with bandit
This change adds a zuul check job to export any templated python contained in the helm charts and scan it with bandit for any potential security flaws. This also adds two nosec comments on the instances of subprocess used as they currently do not appear to be malicious, as well as changing the endpoint_update python code to prevent sql injection, which satisfies bandit code B608. Change-Id: I2212d26514c3510353d16a4592893dd2e85cb369
This commit is contained in:
16
tools/gate/files/template-python.sh
Executable file
16
tools/gate/files/template-python.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
EXCLUDES="helm-toolkit doc tests tools logs tmp roles playbooks releasenotes zuul.d python-files"
|
||||
DIRS=`ls -d */ | cut -f1 -d'/'`
|
||||
|
||||
for EX in $EXCLUDES; do
|
||||
DIRS=`echo $DIRS | sed "s/\b$EX\b//g"`
|
||||
done
|
||||
|
||||
for DIR in $DIRS; do
|
||||
PYFILES=$(helm template $DIR | yq 'select(.data != null) | .data | to_entries | map(select(.key | test(".*\\.py"))) | select(length > 0) | values[] | {(.key) : (.value)}' | jq -s add)
|
||||
PYKEYS=$(echo "$PYFILES" | jq -r 'select(. != null) | keys[]')
|
||||
for KEY in $PYKEYS; do
|
||||
echo "$PYFILES" | jq -r --arg KEY "$KEY" '.[$KEY]' > ./python-files/"$DIR-$KEY"
|
||||
done
|
||||
done
|
||||
28
tools/gate/playbooks/osh-bandit.yaml
Normal file
28
tools/gate/playbooks/osh-bandit.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
- hosts: all
|
||||
name: openstack-helm-bandit
|
||||
tasks:
|
||||
|
||||
- name: Install Required Packages and Setup Host
|
||||
shell: |
|
||||
set -xe;
|
||||
./tools/deployment/common/install-packages.sh
|
||||
./tools/deployment/common/deploy-k8s.sh
|
||||
sudo -H pip install yq bandit
|
||||
environment:
|
||||
zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
|
||||
args:
|
||||
chdir: "{{ zuul.project.src_dir }}"
|
||||
|
||||
- name: Template out python files
|
||||
shell: |
|
||||
set -xe;
|
||||
make all
|
||||
mkdir -p python-files
|
||||
./tools/gate/files/template-python.sh
|
||||
args:
|
||||
chdir: "{{ zuul.project.src_dir }}"
|
||||
|
||||
- name: Run bandit against python files
|
||||
shell: bandit -r ./python-files
|
||||
args:
|
||||
chdir: "{{ zuul.project.src_dir }}"
|
||||
Reference in New Issue
Block a user