-
Notifications
You must be signed in to change notification settings - Fork 597
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4092 from fluxcd/azure-e2e-refactor
Add new Azure and GCP e2e test setup
- Loading branch information
Showing
33 changed files
with
3,874 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
name: e2e-gcp | ||
|
||
on: | ||
workflow_dispatch: | ||
schedule: | ||
- cron: '0 6 * * *' | ||
push: | ||
branches: | ||
- main | ||
paths: | ||
- 'tests/**' | ||
- '.github/workflows/e2e-gcp.yaml' | ||
pull_request: | ||
branches: | ||
- main | ||
paths: | ||
- 'tests/**' | ||
- '.github/workflows/e2e-gcp.yaml' | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
e2e-gcp: | ||
runs-on: ubuntu-22.04 | ||
defaults: | ||
run: | ||
working-directory: ./tests/integration | ||
if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 | ||
- name: Setup Go | ||
uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 | ||
with: | ||
go-version: 1.20.x | ||
cache-dependency-path: tests/integration/go.sum | ||
- name: Setup Flux CLI | ||
run: make build | ||
working-directory: ./ | ||
- name: Setup SOPS | ||
run: | | ||
mkdir -p $HOME/.local/bin | ||
wget -O $HOME/.local/bin/sops https://github.com/mozilla/sops/releases/download/v$SOPS_VER/sops-v$SOPS_VER.linux | ||
chmod +x $HOME/.local/bin/sops | ||
env: | ||
SOPS_VER: 3.7.1 | ||
- name: Authenticate to Google Cloud | ||
uses: google-github-actions/auth@35b0e87d162680511bf346c299f71c9c5c379033 # v1.1.1 | ||
id: 'auth' | ||
with: | ||
credentials_json: '${{ secrets.FLUX2_E2E_GOOGLE_CREDENTIALS }}' | ||
token_format: 'access_token' | ||
- name: Setup gcloud | ||
uses: google-github-actions/setup-gcloud@e30db14379863a8c79331b04a9969f4c1e225e0b # v1.1.1 | ||
- name: Setup QEMU | ||
uses: docker/setup-qemu-action@2b82ce82d56a2a04d2637cd93a637ae1b359c0a7 # v2.2.0 | ||
- name: Setup Docker Buildx | ||
uses: docker/setup-buildx-action@4c0219f9ac95b02789c1075625400b2acbff50b1 # v2.9.1 | ||
- name: Log into us-central1-docker.pkg.dev | ||
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0 | ||
with: | ||
registry: us-central1-docker.pkg.dev | ||
username: oauth2accesstoken | ||
password: ${{ steps.auth.outputs.access_token }} | ||
- name: Set dynamic variables in .env | ||
run: | | ||
cat > .env <<EOF | ||
export TF_VAR_tags='{ "environment"="github", "ci"="true", "repo"="flux2", "createdat"="$(date -u +x%Y-%m-%d_%Hh%Mm%Ss)" }' | ||
EOF | ||
- name: Print .env for dynamic tag value reference | ||
run: cat .env | ||
- name: Run GCP e2e tests | ||
env: | ||
TF_VAR_gcp_project_id: ${{ vars.TF_VAR_gcp_project_id }} | ||
TF_VAR_gcp_region: ${{ vars.TF_VAR_gcp_region }} | ||
TF_VAR_gcp_zone: ${{ vars.TF_VAR_gcp_zone }} | ||
TF_VAR_gcp_email: ${{ secrets.TF_VAR_gcp_email }} | ||
TF_VAR_gcp_keyring: ${{ secrets.TF_VAR_gcp_keyring }} | ||
TF_VAR_gcp_crypto_key: ${{ secrets.TF_VAR_gcp_crypto_key }} | ||
GITREPO_SSH_CONTENTS: ${{ secrets.GCP_GITREPO_SSH_CONTENTS }} | ||
GITREPO_SSH_PUB_CONTENTS: ${{ secrets.GCP_GITREPO_SSH_PUB_CONTENTS }} | ||
run: | | ||
source .env | ||
mkdir -p ./build/ssh | ||
touch ./build/ssh/key | ||
echo $GITREPO_SSH_CONTENTS | base64 -d > build/ssh/key | ||
export GITREPO_SSH_PATH=build/ssh/key | ||
touch ./build/ssh/key.pub | ||
echo $GITREPO_SSH_PUB_CONTENTS | base64 -d > ./build/ssh/key.pub | ||
export GITREPO_SSH_PUB_PATH=build/ssh/key.pub | ||
make test-gcp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
## Azure | ||
# export TF_VAR_azuredevops_org= | ||
# export TF_VAR_azuredevops_pat= | ||
# export TF_VAR_azure_location= | ||
## Set the following only when authenticating using Service Principal (suited | ||
## for CI environment). | ||
# export ARM_CLIENT_ID= | ||
# export ARM_CLIENT_SECRET= | ||
# export ARM_SUBSCRIPTION_ID= | ||
# export ARM_TENANT_ID= | ||
|
||
## GCP | ||
# export TF_VAR_gcp_project_id= | ||
# export TF_VAR_gcp_zone= | ||
# export TF_VAR_gcp_region= | ||
# export TF_VAR_gcp_keyring= | ||
# export TF_VAR_gcp_crypto_key= | ||
## Email address of a GCP user used for git repository cloning over ssh. | ||
# export TF_VAR_gcp_email= | ||
## Set the following only when using service account. | ||
## Provide absolute path to the service account JSON key file. | ||
# export GOOGLE_APPLICATION_CREDENTIALS= | ||
|
||
## Common variables | ||
# export TF_VAR_tags='{"environment"="dev", "createdat"='"\"$(date -u +x%Y-%m-%d_%Hh%Mm%Ss)\""'}' | ||
## These are not terraform variables | ||
## but they are needed for the bootstrap tests | ||
# export GITREPO_SSH_PATH= | ||
# export GITREPO_SSH_PUB_PATH= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
GO_TEST_ARGS ?= | ||
PROVIDER_ARG ?= | ||
TEST_TIMEOUT ?= 60m | ||
FLUX_BINARY ?= ../../bin/flux | ||
|
||
test: sops-check | ||
mkdir -p build | ||
cp $(FLUX_BINARY) build/flux | ||
# These two versions of podinfo are pushed to the cloud registry and used in tests for ImageUpdateAutomation | ||
docker pull ghcr.io/stefanprodan/podinfo:6.0.0 | ||
docker pull ghcr.io/stefanprodan/podinfo:6.0.1 | ||
go test -timeout $(TEST_TIMEOUT) -v ./ $(GO_TEST_ARGS) $(PROVIDER_ARG) | ||
|
||
test-azure: | ||
$(MAKE) test PROVIDER_ARG="-provider azure" GO_TEST_ARGS="--tags azure $(GO_TEST_ARGS)" | ||
|
||
test-gcp: | ||
$(MAKE) test PROVIDER_ARG="-provider gcp" | ||
|
||
|
||
sops-check: | ||
ifeq ($(shell which sops),) | ||
$(error "no sops in PATH, consider installing") | ||
endif |
Oops, something went wrong.