Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
5d966ed
Add Jenkins pipeline for airgap infrastructure deployment and testing
floatingman Dec 17, 2025
f28da24
Add Dockerfile for Airgap Go testing and update Jenkinsfile to use it
floatingman Dec 17, 2025
2d510ce
Enhance Jenkinsfile for airgap tests: add cattle test config support …
floatingman Dec 17, 2025
623281e
Update Dockerfile for Airgap Go testing: upgrade Go version and strea…
floatingman Dec 17, 2025
b7f19e8
Refactor Jenkinsfile for airgap tests: streamline goTestPackage assig…
floatingman Dec 18, 2025
d707464
Enhance Jenkinsfile for airgap tests: integrate container step for Go…
floatingman Dec 18, 2025
747c637
Refactor Jenkinsfile for airgap tests: replace container step initial…
floatingman Dec 18, 2025
6526afa
Refactor Jenkinsfile for airgap tests: remove redundant qaConfig init…
floatingman Dec 18, 2025
4984130
Add verification stage for gotestsum in infra tools image
floatingman Jan 16, 2026
79414b8
Refactor Jenkinsfile for airgap tests: force remove existing Docker i…
floatingman Jan 16, 2026
dd6ad51
Add stage to inject admin token into cattle-config.yaml and implement…
floatingman Jan 16, 2026
64fc6dc
Add admin token injection stage with validation for RANCHER_BOOTSTRAP…
floatingman Jan 16, 2026
2a476d2
Add retry mechanism for Ansible playbook executions and update admin …
floatingman Jan 16, 2026
f67983b
Update admin token injection to use RANCHER_BOOTSTRAP_PASSWORD with d…
floatingman Jan 16, 2026
261497c
Update admin token injection to run directly via Go script
floatingman Jan 16, 2026
ccf943c
Refactor command execution in Jenkinsfile to remove unnecessary direc…
floatingman Jan 16, 2026
972fa39
Add diagnostic output for Go environment and build tags in Jenkinsfile
floatingman Jan 20, 2026
4e05a64
Refactor Jenkinsfile to simplify command execution and remove diagnos…
floatingman Jan 21, 2026
2d8b416
Add stage to create test config file and improve comments in admin to…
floatingman Jan 21, 2026
45b5ca6
Changed admin token generation to ansible
floatingman Jan 23, 2026
49d64b2
Enhance comments in Ansible playbook execution and update command to …
floatingman Jan 24, 2026
d535cb1
Verify cattle config is modified
floatingman Jan 24, 2026
82ff2c8
Remove inject-admin-token.go script to streamline admin token generat…
floatingman Jan 24, 2026
86e855f
Add Qase reporting stage to Jenkins pipeline for test results
floatingman Jan 24, 2026
8472447
Update token playbook path in Jenkinsfile for admin token generation
floatingman Feb 4, 2026
c0f653f
Update validation/pipeline/Jenkinsfile.airgap.go-tests
floatingman Feb 12, 2026
e111a47
Update validation/pipeline/Jenkinsfile.airgap.go-tests
floatingman Feb 12, 2026
17011ab
Update Dockerfile and Jenkinsfile for airgap Go tests to enhance vers…
floatingman Feb 13, 2026
7e81590
Update token playbook path in Jenkinsfile for admin token generation
floatingman Feb 13, 2026
34b57eb
Update GOTESTUM_VERSION to 1.12.3 for compatibility
floatingman Feb 18, 2026
4ed1772
Update Go and gotestsum versions in Dockerfile for airgap Go tests
floatingman Feb 18, 2026
8bbc86e
Fix gotestsum installation version in Dockerfile for airgap Go tests
floatingman Feb 18, 2026
9409383
Update Dockerfile for airgap Go tests to use latest gotestsum version…
floatingman Feb 18, 2026
5ebf75e
Update playbook paths in Jenkinsfile for SSH key setup and admin toke…
floatingman Feb 18, 2026
58c430c
Add ansible_ssh_private_key_file to inventory vars in Jenkinsfile
floatingman Feb 18, 2026
87428b1
Refactor SSH key setup in Jenkinsfile to use Docker for running ansib…
floatingman Feb 18, 2026
7abc837
Revert "Refactor SSH key setup in Jenkinsfile to use Docker for runni…
floatingman Feb 18, 2026
283619c
Comment out SSH key setup stage in Jenkinsfile for airgap Go tests
floatingman Feb 18, 2026
175d843
Update SSH key setup stage in Jenkinsfile to use the correct playbook…
floatingman Feb 19, 2026
1d3dc90
Add stage to configure private registry in Jenkinsfile for airgap Go …
floatingman Feb 19, 2026
4de9a7c
Wrap test execution in catchError to handle unstable results in Jenki…
floatingman Feb 19, 2026
5b6e745
Refactor Dockerfile and Jenkinsfile for airgap Go tests: update depen…
floatingman Feb 19, 2026
ac7005c
Switch images
floatingman Feb 20, 2026
bf4528c
Enhance Dockerfile and Jenkinsfile for airgap Go tests: add checksum …
floatingman Feb 20, 2026
c772c84
Fix environment variable name for Rancher admin password in Jenkinsfile
floatingman Feb 20, 2026
492fd40
Refactor shell test to improve helm operation verification: implement…
floatingman Feb 20, 2026
0557431
Refactor helm operation verification in shell tests: streamline pod s…
floatingman Feb 20, 2026
e05b903
Add Ansible.cfg environment variable
floatingman Feb 21, 2026
809cee1
Add Ansible.cfg environment variable to dockerfile
floatingman Feb 21, 2026
0a3d8eb
Remove redundant ansible.cfg variable
floatingman Feb 21, 2026
da025c2
Add checks to prevent duplicate ssh private key entries in ansibleVars
floatingman Feb 21, 2026
cb9c703
WIP - Comment out 'Resolve Outputs' stage in Jenkinsfile for airgap t…
floatingman Feb 21, 2026
45c9b08
Rename 'Create Test Config' stage to 'Create Test Config and Inject A…
floatingman Feb 21, 2026
3de1852
Rename 'Setup Infrastructure' and 'Configure RKE2 Cluster' stages for…
floatingman Feb 21, 2026
c2cfe4f
Pin Ansible and AWS CLI versions in Dockerfile for reproducible builds
floatingman Feb 23, 2026
01439a0
Update test result paths in Jenkinsfile for consistency
floatingman Feb 24, 2026
dcfb052
Enhance shell test to verify presence of helm pods and ensure non-emp…
floatingman Feb 24, 2026
7faacb4
Fix variable names for private registry credentials in Jenkinsfile
floatingman Feb 24, 2026
5699ffd
Fix variable names for private registry credentials in Jenkinsfile
floatingman Feb 24, 2026
3bd8fc4
Remove retry logic from Ansible playbook executions in Jenkinsfile fo…
floatingman Feb 24, 2026
0abf0d8
Add validation for private registry credentials in RKE2 deployment stage
floatingman Feb 24, 2026
ea46fb1
Add private registry credentials to property useWithProperties in Jen…
floatingman Feb 24, 2026
0aa3ce1
Fix variable name for AWS_ACCESS_KEY_ID in Terraform configuration
floatingman Feb 24, 2026
2bbe883
Fix cattle config handling and remove dead code in airgap go-tests pi…
floatingman Feb 26, 2026
7eeef81
Deduplicate infrastructure destroy logic into a shared closure
floatingman Feb 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions validation/pipeline/Dockerfile.airgap-go-tests
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You made Copilot very happy by including versions and checksum verification.

This dockerfile looks like it will be a nice default to use with all of the qa-infra-automation stuff too to be honest.

Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Dockerfile for Airgap Go Testing
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: The file names is a little different from the standart, could you rename the file to Dockerfile.airgap.tests?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought a lot about the name of this file. I might replace airgap with Ansible because it really can be used for any Ansible/Tofu-based setup that wants to run tests. I will replace the other validation/Dockerfile.infra with this one, but I will do that in a separate PR in tests and jenkins-job-builder.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense to me! What do you think of updating Dockerfile.infra with what you need and use it here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created an issue, and I'll tackle this in another PR.

# Provides Go toolchain, gotestsum, OpenTofu, Ansible, and AWS CLI for test execution

ARG TOFU_VERSION=1.10.7
ARG GOTESTSUM_VERSION=v1.13.0
ARG ANSIBLE_VERSION=13.3.0
ARG AWSCLI_VERSION=1.44.44

FROM --platform=linux/amd64 golang:1.25-alpine3.22

ARG TOFU_VERSION
ARG GOTESTSUM_VERSION
ARG ANSIBLE_VERSION
ARG AWSCLI_VERSION

# Install runtime dependencies
RUN apk add --no-cache \
bash \
curl \
git \
openssh-client \
python3 \
py3-pip \
ca-certificates

# Install Ansible and AWS CLI (pinned versions for reproducible builds)
RUN pip3 install --no-cache-dir --break-system-packages \
ansible==${ANSIBLE_VERSION} \
awscli==${AWSCLI_VERSION}

# Install OpenTofu with checksum verification
RUN curl -Lo /tmp/tofu_${TOFU_VERSION}_linux_amd64.tar.gz "https://github.com/opentofu/opentofu/releases/download/v${TOFU_VERSION}/tofu_${TOFU_VERSION}_linux_amd64.tar.gz" \
&& curl -Lo /tmp/tofu_SHA256SUMS "https://github.com/opentofu/opentofu/releases/download/v${TOFU_VERSION}/tofu_${TOFU_VERSION}_SHA256SUMS" \
&& cd /tmp && grep "tofu_${TOFU_VERSION}_linux_amd64.tar.gz$" tofu_SHA256SUMS | sha256sum -c - \
&& tar -xzf /tmp/tofu_${TOFU_VERSION}_linux_amd64.tar.gz -C /usr/local/bin/ \
&& rm /tmp/tofu_${TOFU_VERSION}_linux_amd64.tar.gz /tmp/tofu_SHA256SUMS \
&& chmod +x /usr/local/bin/tofu

# Install gotestsum (pinned version for reproducible builds)
ENV GOBIN=/usr/local/bin
RUN go install gotest.tools/gotestsum@${GOTESTSUM_VERSION}
ENV GOBIN=
Comment thread
rancher-max marked this conversation as resolved.

# Set Ansible config to the consolidated ansible.cfg in qa-infra-automation
ENV ANSIBLE_CONFIG=/workspace/qa-infra-automation/ansible/ansible.cfg

# Create working directory
WORKDIR /workspace

# Verify installations
RUN tofu version && \
ansible --version && \
aws --version && \
go version && \
gotestsum --version

# Default to sh shell (compatible with docker run sh -c)
CMD ["/bin/sh"]
Loading