Skip to content

Commit

Permalink
V2 upgrades without manager
Browse files Browse the repository at this point in the history
  • Loading branch information
sgalsaleh committed Jan 30, 2025
1 parent f1e76f2 commit 2fcf916
Show file tree
Hide file tree
Showing 122 changed files with 2,419 additions and 3,944 deletions.
257 changes: 0 additions & 257 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ jobs:
runs-on: ubuntu-latest
needs:
- int-tests-kind
- int-tests-manager
steps:
- name: Succeed if all tests passed
run: echo "Integration tests succeeded"
Expand All @@ -89,21 +88,6 @@ jobs:
run: |
make -C tests/integration test-kind
int-tests-manager:
name: Integration tests (manager)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache-dependency-path: "**/*.sum"
- name: Run tests
run: |
make -C tests/integration test-manager
dryrun-tests:
name: Dryrun tests
runs-on: ubuntu-latest
Expand Down Expand Up @@ -885,243 +869,6 @@ jobs:
k0s-version-previous-stable: ${{ needs.find-previous-stable.outputs.k0s_version }}
version-specifier: ${{ needs.export-version-specifier.outputs.version_specifier }}


# e2e-docker-install2 runs the e2e tests inside a docker container rather than a full VM
e2e-docker-install2:
name: E2E Docker (install2)
runs-on: ubuntu-latest
needs:
- git-sha
- build-current
- build-legacydr
- build-previous-k0s
- build-upgrade
- find-previous-stable
- release-app
- export-version-specifier
strategy:
fail-fast: false
matrix:
test:
- TestSingleNodeInstall2UpgradeUbuntuJammy
- TestSingleNodeInstall2UpgradeAlmaLinux8
- TestSingleNodeInstall2UpgradeDebian11
- TestSingleNodeInstall2UpgradeDebian12
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download binary
uses: actions/download-artifact@v4
with:
name: current-release
path: output/bin
- name: Download new DR binary
uses: actions/download-artifact@v4
with:
name: legacydr-release
path: output/bin
- name: Setup go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache-dependency-path: "**/*.sum"
- name: Login to DockerHub to avoid rate limiting
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Free up runner disk space
uses: ./.github/actions/free-disk-space
- name: Write license files
run: |
echo "${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE }}" | base64 --decode > e2e/license.yaml
echo "${{ secrets.STAGING_EMBEDDED_CLUSTER_SNAPSHOT_LICENSE }}" | base64 --decode > e2e/snapshot-license.yaml
- name: Run test
env:
SHORT_SHA: dev-${{ needs.git-sha.outputs.git_sha }}
LICENSE_ID: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE_ID }}
AIRGAP_LICENSE_ID: ${{ secrets.STAGING_EMBEDDED_CLUSTER_AIRGAP_LICENSE_ID }}
SNAPSHOT_LICENSE_ID: ${{ secrets.STAGING_EMBEDDED_CLUSTER_SNAPSHOT_LICENSE_ID }}
AIRGAP_SNAPSHOT_LICENSE_ID: ${{ secrets.STAGING_EMBEDDED_CLUSTER_AIRGAP_SNAPSHOT_LICENSE_ID }}
DR_AWS_S3_ENDPOINT: https://s3.amazonaws.com
DR_AWS_S3_REGION: us-east-1
DR_AWS_S3_BUCKET: kots-testim-snapshots
DR_AWS_S3_PREFIX: ${{ matrix.test }}-${{ github.run_id }}-${{ github.run_attempt }}
DR_AWS_S3_PREFIX_AIRGAP: ${{ matrix.test }}-${{ github.run_id }}-${{ github.run_attempt }}-airgap
DR_AWS_ACCESS_KEY_ID: ${{ secrets.TESTIM_AWS_ACCESS_KEY_ID }}
DR_AWS_SECRET_ACCESS_KEY: ${{ secrets.TESTIM_AWS_SECRET_ACCESS_KEY }}
EXPECT_K0S_VERSION: ${{ needs.build-current.outputs.k0s_version }}
EXPECT_K0S_VERSION_PREVIOUS: ${{ needs.build-previous-k0s.outputs.k0s_version }}
EXPECT_K0S_VERSION_PREVIOUS_STABLE: ${{ needs.find-previous-stable.outputs.k0s_version }}
run: |
make e2e-test TEST_NAME=${{ matrix.test }}
- name: Troubleshoot
if: ${{ !cancelled() }}
uses: ./.github/actions/e2e-troubleshoot
with:
test-name: '${{ matrix.test }}'

# e2e-docker-install2-failing runs the e2e tests inside a docker container rather than a full VM
# the tests here are expected to fail and should be moved to e2e-docker-install2 once they are fixed
e2e-docker-install2-failing:
name: E2E Docker (install2, failing)
if: contains(github.event.pull_request.labels.*.name, 'run-failing-install2-tests')
runs-on: ubuntu-latest
needs:
- git-sha
- build-current
- build-legacydr
- build-previous-k0s
- build-upgrade
- find-previous-stable
- release-app
- export-version-specifier
strategy:
fail-fast: false
matrix:
test:
- TestAlwaysFail
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download binary
uses: actions/download-artifact@v4
with:
name: current-release
path: output/bin
- name: Download new DR binary
uses: actions/download-artifact@v4
with:
name: legacydr-release
path: output/bin
- name: Setup go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache-dependency-path: "**/*.sum"
- name: Login to DockerHub to avoid rate limiting
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Free up runner disk space
uses: ./.github/actions/free-disk-space
- name: Write license files
run: |
echo "${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE }}" | base64 --decode > e2e/license.yaml
echo "${{ secrets.STAGING_EMBEDDED_CLUSTER_SNAPSHOT_LICENSE }}" | base64 --decode > e2e/snapshot-license.yaml
- name: Run test
env:
SHORT_SHA: dev-${{ needs.git-sha.outputs.git_sha }}
LICENSE_ID: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE_ID }}
AIRGAP_LICENSE_ID: ${{ secrets.STAGING_EMBEDDED_CLUSTER_AIRGAP_LICENSE_ID }}
SNAPSHOT_LICENSE_ID: ${{ secrets.STAGING_EMBEDDED_CLUSTER_SNAPSHOT_LICENSE_ID }}
AIRGAP_SNAPSHOT_LICENSE_ID: ${{ secrets.STAGING_EMBEDDED_CLUSTER_AIRGAP_SNAPSHOT_LICENSE_ID }}
DR_AWS_S3_ENDPOINT: https://s3.amazonaws.com
DR_AWS_S3_REGION: us-east-1
DR_AWS_S3_BUCKET: kots-testim-snapshots
DR_AWS_S3_PREFIX: ${{ matrix.test }}-${{ github.run_id }}-${{ github.run_attempt }}
DR_AWS_S3_PREFIX_AIRGAP: ${{ matrix.test }}-${{ github.run_id }}-${{ github.run_attempt }}-airgap
DR_AWS_ACCESS_KEY_ID: ${{ secrets.TESTIM_AWS_ACCESS_KEY_ID }}
DR_AWS_SECRET_ACCESS_KEY: ${{ secrets.TESTIM_AWS_SECRET_ACCESS_KEY }}
EXPECT_K0S_VERSION: ${{ needs.build-current.outputs.k0s_version }}
EXPECT_K0S_VERSION_PREVIOUS: ${{ needs.build-previous-k0s.outputs.k0s_version }}
EXPECT_K0S_VERSION_PREVIOUS_STABLE: ${{ needs.find-previous-stable.outputs.k0s_version }}
run: |
make e2e-test TEST_NAME=${{ matrix.test }}
- name: Troubleshoot
if: ${{ !cancelled() }}
uses: ./.github/actions/e2e-troubleshoot
with:
test-name: '${{ matrix.test }}'

e2e-install2:
name: E2E Install2
runs-on: ${{ matrix.runner || 'ubuntu-22.04' }}
needs:
- build-current
- build-legacydr
- build-previous-k0s
- build-upgrade
- find-previous-stable
- release-app
- export-version-specifier
strategy:
fail-fast: false
matrix:
test:
- TestSingleNodeAirgapInstall2
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download current binary
uses: actions/download-artifact@v4
with:
name: current-release
path: output/bin

- uses: ./.github/actions/e2e
with:
test-name: '${{ matrix.test }}'
is-large-runner: ${{ matrix.runner == 'embedded-cluster' }}
airgap-license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_AIRGAP_LICENSE_ID }}
snapshot-license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_SNAPSHOT_LICENSE_ID }}
snapshot-license: ${{ secrets.STAGING_EMBEDDED_CLUSTER_SNAPSHOT_LICENSE }}
airgap-snapshot-license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_AIRGAP_SNAPSHOT_LICENSE_ID }}
license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE_ID }}
license: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE }}
dr-aws-access-key-id: ${{ secrets.TESTIM_AWS_ACCESS_KEY_ID }}
dr-aws-secret-access-key: ${{ secrets.TESTIM_AWS_SECRET_ACCESS_KEY }}
k0s-version: ${{ needs.build-current.outputs.k0s_version }}
k0s-version-previous: ${{ needs.build-previous-k0s.outputs.k0s_version }}
k0s-version-previous-stable: ${{ needs.find-previous-stable.outputs.k0s_version }}
version-specifier: ${{ needs.export-version-specifier.outputs.version_specifier }}

e2e-install2-failing:
name: E2E Install2 Failing
if: contains(github.event.pull_request.labels.*.name, 'run-failing-install2-tests')
runs-on: ${{ matrix.runner || 'ubuntu-22.04' }}
needs:
- build-current
- build-legacydr
- build-previous-k0s
- build-upgrade
- find-previous-stable
- release-app
- export-version-specifier
strategy:
fail-fast: false
matrix:
test:
- TestSingleNodeAirgapInstall2Upgrade
- TestAlwaysFail
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download current binary
uses: actions/download-artifact@v4
with:
name: current-release
path: output/bin

- uses: ./.github/actions/e2e
with:
test-name: '${{ matrix.test }}'
is-large-runner: ${{ matrix.runner == 'embedded-cluster' }}
airgap-license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_AIRGAP_LICENSE_ID }}
snapshot-license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_SNAPSHOT_LICENSE_ID }}
snapshot-license: ${{ secrets.STAGING_EMBEDDED_CLUSTER_SNAPSHOT_LICENSE }}
airgap-snapshot-license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_AIRGAP_SNAPSHOT_LICENSE_ID }}
license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE_ID }}
license: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE }}
dr-aws-access-key-id: ${{ secrets.TESTIM_AWS_ACCESS_KEY_ID }}
dr-aws-secret-access-key: ${{ secrets.TESTIM_AWS_SECRET_ACCESS_KEY }}
k0s-version: ${{ needs.build-current.outputs.k0s_version }}
k0s-version-previous: ${{ needs.build-previous-k0s.outputs.k0s_version }}
k0s-version-previous-stable: ${{ needs.find-previous-stable.outputs.k0s_version }}
version-specifier: ${{ needs.export-version-specifier.outputs.version_specifier }}


# this job will validate that all the tests passed
# it is used for the github branch protection rule
validate-success:
Expand All @@ -1137,10 +884,6 @@ jobs:
- dryrun-tests
- check-images
- check-operator-crds
- e2e-docker-install2
- e2e-docker-install2-failing
- e2e-install2
- e2e-install2-failing
if: always()
steps:
# https://docs.github.com/en/actions/learn-github-actions/contexts#needs-context
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/release-prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,6 @@ jobs:
VERSION=${{ needs.get-tag.outputs.tag-name }} \
LOCAL_ARTIFACT_MIRROR_IMAGE=proxy.replicated.com/anonymous/${{ needs.publish-images.outputs.local-artifact-mirror }}
tar -C output/bin -czvf build/embedded-cluster-linux-amd64.tgz embedded-cluster
tar -C output/bins -czvf build/manager-linux-amd64.tgz manager
- name: Output Metadata
run: |
Expand Down
31 changes: 8 additions & 23 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ PREVIOUS_K0S_GO_VERSION ?= v1.29.9+k0s.0
K0S_BINARY_SOURCE_OVERRIDE =
TROUBLESHOOT_VERSION = v0.112.1

KOTS_VERSION = v$(shell awk '/^version/{print $$2}' pkg/addons/adminconsole/static/metadata.yaml | sed -E 's/([0-9]+\.[0-9]+\.[0-9]+).*/\1/')
KOTS_VERSION = v$(shell awk '/^version/{print $$2}' pkg/addons2/adminconsole/static/metadata.yaml | sed -E 's/([0-9]+\.[0-9]+\.[0-9]+).*/\1/')
# When updating KOTS_BINARY_URL_OVERRIDE, also update the KOTS_VERSION above or
# scripts/ci-upload-binaries.sh may find the version in the cache and not upload the overridden binary.
KOTS_BINARY_URL_OVERRIDE =
Expand All @@ -28,7 +28,6 @@ LOCAL_ARTIFACT_MIRROR_IMAGE ?= proxy.replicated.com/anonymous/replicated/embedde
# These are used to override the binary urls in dev and e2e tests
METADATA_K0S_BINARY_URL_OVERRIDE =
METADATA_KOTS_BINARY_URL_OVERRIDE =
METADATA_MANAGER_BINARY_URL_OVERRIDE =
METADATA_OPERATOR_BINARY_URL_OVERRIDE =

ifeq ($(K0S_VERSION),v1.30.5+k0s.0-ec.1)
Expand All @@ -50,15 +49,14 @@ LD_FLAGS = \
-X github.com/replicatedhq/embedded-cluster/pkg/versions.LocalArtifactMirrorImage=$(LOCAL_ARTIFACT_MIRROR_IMAGE) \
-X github.com/replicatedhq/embedded-cluster/pkg/versions.K0sBinaryURLOverride=$(METADATA_K0S_BINARY_URL_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/versions.KOTSBinaryURLOverride=$(METADATA_KOTS_BINARY_URL_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/versions.ManagerBinaryURLOverride=$(METADATA_MANAGER_BINARY_URL_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/versions.OperatorBinaryURLOverride=$(METADATA_OPERATOR_BINARY_URL_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.ChartRepoOverride=$(ADMIN_CONSOLE_CHART_REPO_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.KurlProxyImageOverride=$(ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.KotsVersion=$(KOTS_VERSION) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.AdminConsoleChartRepoOverride=$(ADMIN_CONSOLE_CHART_REPO_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.AdminConsoleImageOverride=$(ADMIN_CONSOLE_IMAGE_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.AdminConsoleMigrationsImageOverride=$(ADMIN_CONSOLE_MIGRATIONS_IMAGE_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.AdminConsoleKurlProxyImageOverride=$(ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE)
-X github.com/replicatedhq/embedded-cluster/pkg/addons2/adminconsole.ChartRepoOverride=$(ADMIN_CONSOLE_CHART_REPO_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons2/adminconsole.KurlProxyImageOverride=$(ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons2/adminconsole.KotsVersion=$(KOTS_VERSION) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons2/adminconsole.AdminConsoleChartRepoOverride=$(ADMIN_CONSOLE_CHART_REPO_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons2/adminconsole.AdminConsoleImageOverride=$(ADMIN_CONSOLE_IMAGE_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons2/adminconsole.AdminConsoleMigrationsImageOverride=$(ADMIN_CONSOLE_MIGRATIONS_IMAGE_OVERRIDE) \
-X github.com/replicatedhq/embedded-cluster/pkg/addons2/adminconsole.AdminConsoleKurlProxyImageOverride=$(ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE)
DISABLE_FIO_BUILD ?= 0

export PATH := $(shell pwd)/bin:$(PATH)
Expand Down Expand Up @@ -142,13 +140,6 @@ ifneq ($(DISABLE_FIO_BUILD),1)
cp output/bins/fio-$(FIO_VERSION)-$(ARCH) $@
endif

.PHONY: cmd/installer/goods/bins/manager
cmd/installer/goods/bins/manager:
mkdir -p cmd/installer/goods/bins
CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -ldflags="-s -w $(LD_FLAGS) -extldflags=-static" -o output/bins/manager ./cmd/manager
cp output/bins/manager $@
touch $@

.PHONY: cmd/installer/goods/internal/bins/kubectl-kots
cmd/installer/goods/internal/bins/kubectl-kots:
mkdir -p cmd/installer/goods/internal/bins
Expand Down Expand Up @@ -223,7 +214,6 @@ static: cmd/installer/goods/bins/k0s \
cmd/installer/goods/bins/kubectl-support_bundle \
cmd/installer/goods/bins/local-artifact-mirror \
cmd/installer/goods/bins/fio \
cmd/installer/goods/bins/manager \
cmd/installer/goods/internal/bins/kubectl-kots

.PHONY: static-dryrun
Expand All @@ -234,7 +224,6 @@ static-dryrun:
cmd/installer/goods/bins/kubectl-support_bundle \
cmd/installer/goods/bins/local-artifact-mirror \
cmd/installer/goods/bins/fio \
cmd/installer/goods/bins/manager \
cmd/installer/goods/internal/bins/kubectl-kots

.PHONY: embedded-cluster-linux-amd64
Expand Down Expand Up @@ -381,10 +370,6 @@ bin/installer:
@mkdir -p bin
go build -o bin/installer ./cmd/installer

.PHONY: bin/manager
bin/manager:
go build -o bin/manager ./cmd/manager

# make test-embed channel=<channelid> app=<appslug>
.PHONY: test-embed
test-emded: export OS=linux
Expand Down
Loading

0 comments on commit 2fcf916

Please sign in to comment.