45b209ac79
The motivation is to reduce the code base and get rid of unnecessary duplications. This PR is moves bandit tasks from the osh-infra-bandit.yaml playbook to the osh-bandit role. Then we can use this role for the same job in OSH. Change-Id: I9489a8c414e6679186e6c399243a7c0838df812a
51 lines
1.8 KiB
YAML
51 lines
1.8 KiB
YAML
# 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.
|
|
|
|
---
|
|
- name: Install Helm
|
|
shell: |
|
|
TMP_DIR=$(mktemp -d)
|
|
curl -sSL https://get.helm.sh/helm-{{ helm_version }}-linux-amd64.tar.gz | tar -zxv --strip-components=1 -C ${TMP_DIR}
|
|
mv "${TMP_DIR}"/helm /usr/local/bin/helm
|
|
rm -rf "${TMP_DIR}"
|
|
sudo -H pip3 install --upgrade yq bandit=={{ bandit_version }} setuptools
|
|
args:
|
|
chdir: "{{ work_dir }}"
|
|
|
|
- name: Template out python files
|
|
shell: |
|
|
set -xe;
|
|
make all
|
|
mkdir -p python-files
|
|
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
|
|
args:
|
|
chdir: "{{ work_dir }}"
|
|
|
|
- name: Run bandit against python files
|
|
shell: bandit -r ./python-files
|
|
args:
|
|
chdir: "{{ work_dir }}"
|
|
...
|