Updates to fix testing
- Don't use tmp, instead put in an /opt/devtools which is optionally
removed
- Idempotency fixes
- version bumps
Change-Id: Ica3d2371809692bc09780027f0bee49025ac1bee
diff --git a/defaults/main.yml b/defaults/main.yml
index b4daffc..0d6dfe8 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -4,7 +4,10 @@
# SPDX-FileCopyrightText: 2022 Open Networking Foundation <support@opennetworking.org>
# SPDX-License-Identifier: Apache-2.0
-devtools_extras: []
+devtools_install: []
+
+# delete the distribution files
+devtools_delete_dist: false
# code review and lint tools
devtools_python_piptools:
@@ -12,7 +15,7 @@
- reuse~=0.14.0
- yamllint~=1.26.3
-devtools_repo_version: "2.25"
+devtools_repo_version: "2.26"
devtools_repo_url: >-
https://gerrit.googlesource.com/git-repo/+/refs/tags/v{{
devtools_repo_version }}/repo?format=TEXT
@@ -80,13 +83,13 @@
devtools_fleet_checksum: "sha256:9e337fe898f0683c58d527c09df333e95403ea3c1fcc8ebf64a8b5d8e403275e"
# terraform
-devtools_terraform_version: "1.1.9"
+devtools_terraform_version: "1.2.2"
devtools_terraform_url: >-
https://releases.hashicorp.com/terraform/{{
devtools_terraform_version }}/terraform_{{
devtools_terraform_version }}_linux_amd64.zip
devtools_terraform_checksum: >-
- sha256:9d2d8a89f5cc8bc1c06cb6f34ce76ec4b99184b07eb776f8b39183b513d7798a
+ sha256:2934a0e8824925beb956b2edb5fef212a6141c089d29d8568150a43f95b3a626
devtools_tfmask_version: "0.7.0"
devtools_tfmask_url: >-
diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml
index 8a6323c..efcb9b8 100644
--- a/molecule/default/verify.yml
+++ b/molecule/default/verify.yml
@@ -12,21 +12,7 @@
# Can't be checked, will download bazel if run with --version
# chromium
- - name: Check chromium version
- command:
- cmd: "chromium --version"
- become: true
- register: chromium_version
- tags:
- - skip_ansible_lint # info gathering
-
- - debug:
- var: chromium_version
-
- - name: Assert chromium installed
- assert:
- that:
- - "'Chromium' in chromium_version.stdout"
+ # Can't be checked as has protections against being run as root
# java
- name: Check java version
@@ -37,7 +23,8 @@
tags:
- skip_ansible_lint # info gathering
- - debug:
+ - name: Print java version
+ debug:
var: java_version
- name: Assert java 11 installed
@@ -54,7 +41,8 @@
tags:
- skip_ansible_lint # info gathering
- - debug:
+ - name: Print kubectl version
+ debug:
var: kubectl_version
- name: Assert kubectl 1.22 installed
@@ -71,7 +59,8 @@
tags:
- skip_ansible_lint # info gathering
- - debug:
+ - name: Print kind version
+ debug:
var: kind_version
- name: Assert kind 0.13.x installed
@@ -88,7 +77,8 @@
tags:
- skip_ansible_lint # info gathering
- - debug:
+ - name: Print helm version
+ debug:
var: helm_version
- name: Assert helm 3.8.x installed
@@ -105,7 +95,8 @@
tags:
- skip_ansible_lint # info gathering
- - debug:
+ - name: Print kubeval version
+ debug:
var: kubeval_version
- name: Assert kubeval 0.16.x installed
@@ -122,7 +113,8 @@
tags:
- skip_ansible_lint # info gathering
- - debug:
+ - name: Print conftest version
+ debug:
var: conftest_version
- name: Assert conftest 0.32.x installed
@@ -139,7 +131,8 @@
tags:
- skip_ansible_lint # info gathering
- - debug:
+ - name: Print fleet version
+ debug:
var: fleet_version
- name: Assert fleet 0.3.x installed
@@ -159,13 +152,14 @@
tags:
- skip_ansible_lint # info gathering
- - debug:
+ - name: Print terraform version
+ debug:
var: terraform_version
- - name: Assert terraform 1.1.x installed
+ - name: Assert terraform 1.2.x installed
assert:
that:
- - "'Terraform v1.1' in terraform_version.stdout"
+ - "'Terraform v1.2' in terraform_version.stdout"
# tfmask
# no version/test command
@@ -179,11 +173,11 @@
tags:
- skip_ansible_lint # info gathering
- - debug:
+ - name: Print yq version
+ debug:
var: yq_version
- name: Assert yq 4.11.x installed
assert:
that:
- "'yq (https://github.com/mikefarah/yq/) version 4.11' in yq_version.stdout"
-
diff --git a/tasks/Debian.yml b/tasks/Debian.yml
index b61b40e..0e22f53 100644
--- a/tasks/Debian.yml
+++ b/tasks/Debian.yml
@@ -8,7 +8,9 @@
apt:
name:
- acl
+ - autoconf
- apt-transport-https
+ - bison
- build-essential
- ca-certificates
- curl
@@ -17,6 +19,7 @@
- git-crypt
- gnupg
- jq
+ - libbison-dev
- libenchant-2-dev
- libxml2-utils
- python-is-python3
diff --git a/tasks/k8s.yml b/tasks/k8s.yml
index d9e1cc5..36d1129 100644
--- a/tasks/k8s.yml
+++ b/tasks/k8s.yml
@@ -4,6 +4,13 @@
# SPDX-FileCopyrightText: 2022 Open Networking Foundation <support@opennetworking.org>
# SPDX-License-Identifier: Apache-2.0
+- name: create k8s sub dir in dist dir
+ file:
+ dest: "{{ devtools_dist_dir }}/k8s"
+ state: directory
+ owner: root
+ group: root
+ mode: 0755
# kubectl
- name: Download/install kubectl binary
@@ -26,17 +33,17 @@
get_url:
url: "{{ devtools_helm_url }}"
checksum: "{{ devtools_helm_checksum }}"
- dest: "/tmp/helm.tgz"
+ dest: "{{ devtools_dist_dir }}/helm.tgz"
- name: Unarchive helm
unarchive:
- src: "/tmp/helm.tgz"
- dest: "/tmp"
+ src: "{{ devtools_dist_dir }}/helm.tgz"
+ dest: "{{ devtools_dist_dir }}/k8s"
remote_src: true
- name: Install helm binary
copy:
- src: /tmp/linux-amd64/helm
+ src: "{{ devtools_dist_dir }}/k8s/linux-amd64/helm"
dest: /usr/local/bin/helm
mode: "0755"
remote_src: true
@@ -46,17 +53,18 @@
get_url:
url: "{{ devtools_kubeval_url }}"
checksum: "{{ devtools_kubeval_checksum }}"
- dest: "/tmp/kubeval.tgz"
+ dest: "{{ devtools_dist_dir }}/kubeval.tgz"
- name: Unarchive kubeval
unarchive:
- src: "/tmp/kubeval.tgz"
- dest: "/tmp"
+ src: "{{ devtools_dist_dir }}/kubeval.tgz"
+ dest: "{{ devtools_dist_dir }}/k8s"
remote_src: true
+ creates: "{{ devtools_dist_dir }}/k8s/kubeval"
- name: Install kubeval binary
copy:
- src: /tmp/kubeval
+ src: "{{ devtools_dist_dir }}/k8s/kubeval"
dest: /usr/local/bin/kubeval
mode: "0755"
remote_src: true
@@ -66,17 +74,18 @@
get_url:
url: "{{ devtools_conftest_url }}"
checksum: "{{ devtools_conftest_checksum }}"
- dest: "/tmp/conftest.tgz"
+ dest: "{{ devtools_dist_dir }}/conftest.tgz"
- name: Unarchive conftest
unarchive:
- src: "/tmp/conftest.tgz"
- dest: "/tmp"
+ src: "{{ devtools_dist_dir }}/conftest.tgz"
+ dest: "{{ devtools_dist_dir }}/k8s"
remote_src: true
+ creates: "{{ devtools_dist_dir }}/k8s/conftest"
- name: Install conftest binary
copy:
- src: /tmp/conftest
+ src: "{{ devtools_dist_dir }}/k8s/conftest"
dest: /usr/local/bin/conftest
mode: "0755"
remote_src: true
@@ -88,14 +97,3 @@
checksum: "{{ devtools_fleet_checksum }}"
dest: /usr/local/bin/fleet
mode: "0755"
-
-# cleanup
-- name: Cleanup k8s downloads in /tmp
- file:
- path: "/tmp/{{ item }}"
- state: absent
- with_items:
- - linux-amd64
- - helm.tgz
- - kubeval.tgz
- - conftest.tgz
diff --git a/tasks/main.yml b/tasks/main.yml
index f4fe901..46a2d7a 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -10,35 +10,43 @@
- name: include OS-specific tasks
include_tasks: "{{ ansible_os_family }}.yml"
+# create devtools dist dir
+- name: create devtools dist dir
+ file:
+ path: "{{ devtools_dist_dir }}"
+ state: directory
+ owner: root
+ group: root
+ mode: 0755
+
# repo
- name: Download repo launcher
get_url:
url: "{{ devtools_repo_url }}"
checksum: "{{ devtools_repo_checksum }}"
- dest: /tmp/repo.b64
+ dest: "{{ devtools_dist_dir }}/repo.b64"
- name: Decode, fix shebang, and make repo launcher executable
shell:
cmd: |
- base64 --decode /tmp/repo.b64 > /tmp/repo
+ base64 --decode "{{ devtools_dist_dir }}/repo.b64" > \
+ "{{ devtools_dist_dir }}/repo"
# force repo launcher to use python3 - not needed if python-is-python3 installed
- sed -i.bak 's"#!/usr/bin/env python"#!/usr/bin/env python3"' /tmp/repo
- cp /tmp/repo /usr/local/bin/repo
+ sed -i.bak 's"#!/usr/bin/env python"#!/usr/bin/env python3"' \
+ "{{ devtools_dist_dir }}/repo"
+ cp "{{ devtools_dist_dir }}/repo" /usr/local/bin/repo
chmod 755 /usr/local/bin/repo
creates: /usr/local/bin/repo
-# cleanup
-- name: Clean up downloads in /tmp
- file:
- path: "/tmp/{{ item }}"
- state: absent
- with_items:
- - repo.b64
- - repo.bak
- - repo
-
- name: Install additional devtools
include_tasks: "{{ dt_inst_item }}.yml"
loop: "{{ devtools_install | flatten(levels=1) }}"
loop_control:
loop_var: dt_inst_item
+
+# cleanup
+- name: Delete devtools dist dir
+ when: devtools_delete_dist
+ file:
+ path: "{{ devtools_dist_dir }}"
+ state: absent
diff --git a/tasks/shellcheck.yml b/tasks/shellcheck.yml
index deeb6d0..d163a5e 100644
--- a/tasks/shellcheck.yml
+++ b/tasks/shellcheck.yml
@@ -8,26 +8,19 @@
get_url:
url: "{{ devtools_shellcheck_url }}"
checksum: "{{ devtools_shellcheck_checksum }}"
- dest: "/tmp/shellcheck.tar.xz"
+ dest: "{{ devtools_dist_dir }}/shellcheck.tar.xz"
- name: Unarchive shellcheck
unarchive:
- src: "/tmp/shellcheck.tar.xz"
- dest: "/tmp"
+ src: "{{ devtools_dist_dir }}/shellcheck.tar.xz"
+ dest: "{{ devtools_dist_dir }}"
remote_src: true
- name: Install shellcheck binary
copy:
- src: "/tmp/shellcheck-v{{ devtools_shellcheck_version }}/shellcheck"
+ src: >-
+ {{ devtools_dist_dir }}/shellcheck-v{{
+ devtools_shellcheck_version }}/shellcheck
dest: /usr/local/bin/shellcheck
mode: "0755"
remote_src: true
-
-# cleanup
-- name: Cleanup shellcheck downloads in /tmp
- file:
- path: "/tmp/{{ item }}"
- state: absent
- with_items:
- - shellcheck.tar.xz
- - "shellcheck-v{{ devtools_shellcheck_version }}"
diff --git a/tasks/terraform.yml b/tasks/terraform.yml
index 11bb240..6fbf34a 100644
--- a/tasks/terraform.yml
+++ b/tasks/terraform.yml
@@ -9,17 +9,17 @@
get_url:
url: "{{ devtools_terraform_url }}"
checksum: "{{ devtools_terraform_checksum }}"
- dest: "/tmp/terraform.zip"
+ dest: "{{ devtools_dist_dir }}/terraform.zip"
- name: Unarchive terraform
unarchive:
- src: "/tmp/terraform.zip"
- dest: "/tmp"
+ src: "{{ devtools_dist_dir }}/terraform.zip"
+ dest: "{{ devtools_dist_dir }}"
remote_src: true
- name: Install terraform binary
copy:
- src: /tmp/terraform
+ src: "{{ devtools_dist_dir }}/terraform"
dest: /usr/local/bin/terraform
mode: "0755"
remote_src: true
@@ -31,11 +31,3 @@
checksum: "{{ devtools_tfmask_checksum }}"
dest: /usr/local/bin/tfmask
mode: "0755"
-
-# cleanup
-- name: Cleanup terraform downloads in /tmp
- file:
- path: "/tmp/{{ item }}"
- state: absent
- with_items:
- - terraform.zip
diff --git a/vars/Debian.yml b/vars/Debian.yml
index 7965c39..677c09e 100644
--- a/vars/Debian.yml
+++ b/vars/Debian.yml
@@ -9,3 +9,5 @@
devtools_chromium_apt:
- "chromium-shell"
+
+devtools_dist_dir: "/opt/devtools"