Skip to content

Commit

Permalink
V2 (#725)
Browse files Browse the repository at this point in the history
  • Loading branch information
EronWright authored Oct 18, 2024
2 parents d02ae39 + a6daecd commit edd9013
Show file tree
Hide file tree
Showing 257 changed files with 196,940 additions and 14,089 deletions.
17 changes: 17 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file
*.md
*.txt
*.out
*.yaml
*.yml
*_test.go
.dockerignore
.gitignore
.git
bin
config
examples
deploy
hack
Dockerfile
Makefile
10 changes: 3 additions & 7 deletions .github/workflows/chart-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,9 @@
name: chart-publish
on:
push:
branches:
- master
paths:
- "deploy/helm/**"
- "!deploy/helm/pulumi-operator/README.md"
- "!deploy/helm/pulumi-operator/README.md.gotmpl"

tags:
- v*.*.* # e.g. v2.0.0

env:
HELM_DOCS_VERSION: "1.11.0"

Expand Down
90 changes: 0 additions & 90 deletions .github/workflows/master.yaml

This file was deleted.

97 changes: 33 additions & 64 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,79 +3,48 @@ name: Pulumi Kubernetes Operator Release
on:
push:
tags:
- v*.*.*
- v*.*.* # e.g. v2.0.0
- v*.*-*.* # e.g. v2.0-beta.1
- v*.*.*-*.* # e.g. v2.0.0-beta.1
env:
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ github.ref_name }}
permissions:
contents: write
jobs:
operator-int-tests:
docker:
name: Build & Push Docker Images
runs-on: ubuntu-latest
name: Integration Testing
steps:
- name: Check out code
uses: actions/checkout@v2
with:
# The following are to allow tests to run against local commits.
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
# go-git doesn't like detached state.
- run: git switch -C "pull-request"
- name: Install Go
uses: actions/setup-go@v2
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
go-version: "1.21.x"
- name: Install Ginkgo testing framework
run: |
# Do the install from outside the code tree to avoid messing with go.sum
cd /tmp; go install github.com/onsi/ginkgo/v2/[email protected]
- name: Configure AWS credentials to use in AWS Stack tests
uses: aws-actions/configure-aws-credentials@v1
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-2
role-duration-seconds: 3600
role-external-id: "pulumi-kubernetes-operator"
role-session-name: "pulumi-kubernetes-operator@githubActions"
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Install Pulumi CLI
uses: pulumi/setup-pulumi@v2
- name: Set env variables and path
run: |
echo '$HOME/.pulumi/bin' >> $GITHUB_PATH
echo "STACK=ci-cluster-$(head /dev/urandom | LC_CTYPE=C tr -dc '[:lower:]' | head -c5)" >> $GITHUB_ENV
- name: Tests
run: |
# Create GKE test cluster to install CRDs and use with the test operator.
scripts/ci-infra-create.sh
# Source the env variables created in the script above
cat ~/.envfile
. ~/.envfile
# Run tests
make test
- name: Cleanup
if: ${{ always() }}
run: |
scripts/ci-infra-destroy.sh
push: true
platforms: linux/amd64,linux/arm64
tags: |
pulumi/pulumi-kubernetes-operator:${{ env.VERSION }}
build-args: |
VERSION=${{ env.VERSION }}
release:
needs: [operator-int-tests]
name: Create a GitHub Release
needs: docker
runs-on: ubuntu-latest
name: Tag Release
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: "1.21.x"
- name: Login to Docker Hub
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login docker.io -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
- name: GoReleaser
uses: goreleaser/goreleaser-action@v2
- name: Checkout
uses: actions/checkout@v4
- name: Create a GH release
uses: softprops/action-gh-release@v2
with:
version: v1.26.2
args: release --skip-sign
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: pulumi-kubernetes-operator-${{ env.VERSION }}
prerelease: ${{ contains(env.VERSION, '-') }}
token: ${{ secrets.GITHUB_TOKEN }}
131 changes: 61 additions & 70 deletions .github/workflows/run-acceptance-tests.yaml
Original file line number Diff line number Diff line change
@@ -1,98 +1,89 @@
---
name: Pulumi Kubernetes Operator PR Builds
on:
repository_dispatch:
types: [run-acceptance-tests-command]
push:
branches:
- master
pull_request:
branches:
- master
env:
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PULUMI_BOT_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
VERSION: v0.0-${{ github.sha }}
jobs:
comment-notification:
if: github.event_name == 'repository_dispatch'
runs-on: ubuntu-latest
steps:
- name: Create URL to the run output
id: vars
run: echo run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID >> "$GITHUB_OUTPUT"
- name: Update with Result
uses: peter-evans/create-or-update-comment@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
issue-number: ${{ github.event.client_payload.github.payload.issue.number }}
body: |
Please view the PR build - ${{ steps.vars.outputs.run-url }}
operator-build:
build:
runs-on: ubuntu-latest
name: Build
steps:
- name: Check out code
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Go
uses: actions/setup-go@v2
uses: actions/setup-go@v5
with:
go-version: 1.23.x
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
go-version: 1.21.x
- name: GoReleaser
uses: goreleaser/goreleaser-action@v2
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build
uses: docker/build-push-action@v6
with:
version: v1.26.2
args: release --snapshot --skip-publish --rm-dist --skip-sign
operator-int-tests:
push: false
load: true
platforms: linux/amd64
tags: |
pulumi/pulumi-kubernetes-operator:${{ env.VERSION }}
build-args: |
VERSION=${{ env.VERSION }}
unit-tests:
runs-on: ubuntu-latest
name: Integration Testing
if: github.event_name == 'repository_dispatch' || github.event.pull_request.head.repo.full_name == github.repository
name: Unit tests
steps:
- name: Check out code
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
# The following are to allow tests to run against local commits.
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
# go-git doesn't like detached state.
- run: git switch -C "pull-request"
- name: Install Go
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: 1.21.x
cache: true
- name: Install Ginkgo testing framework
run: |
# Do the install from outside the code tree to avoid messing with go.sum
cd /tmp; go install github.com/onsi/ginkgo/v2/[email protected]
- name: Configure AWS credentials to use in AWS Stack tests
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-2
role-duration-seconds: 3600
role-external-id: "pulumi-kubernetes-operator"
role-session-name: "pulumi-kubernetes-operator@githubActions"
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Install Pulumi CLI
uses: pulumi/setup-pulumi@v2
- name: Set env variables and path
run: |
echo '$HOME/.pulumi/bin' >> $GITHUB_PATH
echo "STACK=ci-cluster-$(head /dev/urandom | LC_CTYPE=C tr -dc '[:lower:]' | head -c5)" >> $GITHUB_ENV
- name: Tests
run: |
# Create GKE test cluster to install CRDs and use with the test operator.
scripts/ci-infra-create.sh
# Source the env variables created in the script above
cat ~/.envfile
. ~/.envfile
# Run tests
make test
go-version: 1.23.x
- name: Install Pulumi
uses: pulumi/actions@v5
- name: Run Tests (Agent)
run: make -C agent test
- name: Run Tests (Operator)
run: make -C operator test
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
files: agent/coverage.out,operator/coverage.out
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- name: Cleanup
if: ${{ always() }}
run: |
scripts/ci-infra-destroy.sh

e2e-tests:
runs-on: ubuntu-latest
name: E2E tests
steps:
- name: Setup cluster
uses: helm/kind-action@v1
with:
cluster_name: kind
node_image: kindest/node:v1.31.0
- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.23.x
- name: Run tests
run: make -C operator test-e2e
Loading

0 comments on commit edd9013

Please sign in to comment.