Skip to content

Commit 800c6ac

Browse files
committed
merge main
2 parents e78aa7a + 7748286 commit 800c6ac

30 files changed

+391
-80
lines changed

.github/actions/e2e/action.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,18 @@ inputs:
3232
description: 'Disaster Recovery AWS Secret Access Key'
3333
required: true
3434
k0s-version:
35-
description: 'k0s version to expect after upgrades in e2e tests'
35+
description: 'k0s version to expect in e2e tests'
36+
required: true
37+
k0s-version-previous:
38+
description: 'k0s previous version to expect in e2e tests'
3639
required: true
3740

3841
runs:
3942
using: composite
4043
steps:
44+
- name: Git SHA
45+
id: git_sha
46+
uses: ./.github/actions/git-sha
4147
- name: Remove MS repo
4248
shell: bash
4349
run: |
@@ -92,7 +98,7 @@ runs:
9298
- name: E2E
9399
shell: bash
94100
run: |
95-
export SHORT_SHA=dev-${GITHUB_SHA::7}
101+
export SHORT_SHA=dev-${{ steps.git_sha.outputs.git_sha }}
96102
echo "${SHORT_SHA}"
97103
export LICENSE_ID=${{ inputs.license-id }}
98104
export AIRGAP_LICENSE_ID=${{ inputs.airgap-license-id }}
@@ -107,7 +113,8 @@ runs:
107113
export DR_AWS_S3_PREFIX_AIRGAP=${{ inputs.test-name }}-${{ github.run_id }}-${{ github.run_attempt }}-airgap
108114
export DR_AWS_ACCESS_KEY_ID=${{ inputs.dr-aws-access-key-id }}
109115
export DR_AWS_SECRET_ACCESS_KEY=${{ inputs.dr-aws-secret-access-key }}
110-
export K0S_VERSION=${{ inputs.k0s-version }}
116+
export EXPECT_K0S_VERSION=${{ inputs.k0s-version }}
117+
export EXPECT_K0S_VERSION_PREVIOUS=${{ inputs.k0s-version-previous }}
111118
make e2e-test TEST_NAME=${{ inputs.test-name }}
112119
- name: Upload Host Support Bundle
113120
uses: actions/upload-artifact@v4

.github/actions/git-sha/action.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Git SHA
2+
description: 'Get the Git SHA for the current workflow run'
3+
inputs:
4+
short:
5+
description: 'Return the short SHA (length 7)'
6+
default: 'true'
7+
outputs:
8+
git_sha:
9+
description: 'The Git SHA'
10+
value: ${{ steps.git_sha.outputs.git_sha }}
11+
12+
runs:
13+
using: composite
14+
steps:
15+
- shell: bash
16+
id: git_sha
17+
run: |
18+
git_sha=${{ github.event.pull_request.head.sha || github.sha }}
19+
if [[ "${{ inputs.short }}" == "true" ]]; then
20+
git_sha=$(echo $git_sha | cut -c1-7)
21+
fi
22+
echo "git_sha=$git_sha" >> $GITHUB_OUTPUT

.github/workflows/automated-prs-manager.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
3333
replicated_ci_prs=$(
3434
gh pr list \
35-
--author 'replicated-ci' \
35+
--author 'replicated-ci-ec' \
3636
--json url,createdAt,headRefName,headRepository,headRepositoryOwner \
3737
-q '.[] | select((.createdAt | fromdateiso8601 > now - 24*60*60) and .headRepositoryOwner.login == "replicatedhq" and .headRepository.name == "embedded-cluster")'
3838
)

.github/workflows/ci.yaml

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,16 @@ concurrency:
1010
permissions:
1111
contents: write
1212
jobs:
13+
git-sha:
14+
name: Git SHA
15+
runs-on: ubuntu-latest
16+
outputs:
17+
git_sha: ${{ steps.git_sha.outputs.git_sha }}
18+
steps:
19+
- uses: actions/checkout@v4
20+
- uses: ./.github/actions/git-sha
21+
id: git_sha
22+
1323
sanitize:
1424
name: Sanitize
1525
runs-on: ubuntu-latest
@@ -94,7 +104,10 @@ jobs:
94104
build:
95105
name: Build
96106
runs-on: ubuntu-latest
97-
needs: [build-images]
107+
needs: [git-sha, build-images]
108+
outputs:
109+
k0s_version: ${{ steps.export.outputs.k0s_version }}
110+
k0s_version_previous: ${{ steps.export.outputs.k0s_version_previous }}
98111
steps:
99112
- name: Checkout
100113
uses: actions/checkout@v4
@@ -107,8 +120,8 @@ jobs:
107120

108121
- name: Build Linux AMD64 and Output Metadata
109122
run: |
110-
export SHORT_SHA=dev-${GITHUB_SHA::7}
111-
export LOCAL_ARTIFACT_MIRROR_IMAGE=${{ needs.build-images.outputs.local-artifact-mirror }}
123+
export SHORT_SHA=dev-${{ needs.git-sha.outputs.git_sha }}
124+
export LOCAL_ARTIFACT_MIRROR_IMAGE=proxy.replicated.com/anonymous/${{ needs.build-images.outputs.local-artifact-mirror }}
112125
make -B embedded-cluster-linux-amd64 K0S_VERSION=$(make print-PREVIOUS_K0S_VERSION) K0S_BINARY_SOURCE_OVERRIDE=$(make print-PREVIOUS_K0S_BINARY_SOURCE_OVERRIDE) VERSION="${SHORT_SHA}-previous-k0s"
113126
tar -C output/bin -czvf embedded-cluster-linux-amd64-previous-k0s.tgz embedded-cluster
114127
./output/bin/embedded-cluster version metadata > metadata-previous-k0s.json
@@ -137,8 +150,8 @@ jobs:
137150
metadata.json
138151
- name: Build CI binary
139152
run: |
140-
export SHORT_SHA=dev-${GITHUB_SHA::7}
141-
export LOCAL_ARTIFACT_MIRROR_IMAGE=${{ needs.build-images.outputs.local-artifact-mirror }}
153+
export SHORT_SHA=dev-${{ needs.git-sha.outputs.git_sha }}
154+
export LOCAL_ARTIFACT_MIRROR_IMAGE=proxy.replicated.com/anonymous/${{ needs.build-images.outputs.local-artifact-mirror }}
142155
echo "# channel release object" > e2e/kots-release-install/release.yaml
143156
echo 'channelID: "2cHXb1RCttzpR0xvnNWyaZCgDBP"' >> e2e/kots-release-install/release.yaml
144157
echo 'channelSlug: "ci"' >> e2e/kots-release-install/release.yaml
@@ -161,7 +174,7 @@ jobs:
161174
AWS_SECRET_ACCESS_KEY: ${{ secrets.STAGING_EMBEDDED_CLUSTER_UPLOAD_IAM_SECRET }}
162175
AWS_REGION: "us-east-1"
163176
run: |
164-
export SHORT_SHA=dev-${GITHUB_SHA::7}
177+
export SHORT_SHA=dev-${{ needs.git-sha.outputs.git_sha }}
165178
export EC_VERSION="v${SHORT_SHA}"
166179
./scripts/cache-files.sh
167180
./scripts/create-upgrade-release.sh
@@ -177,9 +190,14 @@ jobs:
177190
output/bin/embedded-cluster-previous-k0s
178191
output/bin/embedded-cluster-release-builder
179192
- name: Export K0s Version
193+
id: export
180194
run: |
181-
make print-K0S_VERSION
182-
echo "k0s_version=$(make print-K0S_VERSION)" >> "$GITHUB_OUTPUT"
195+
K0S_VERSION="$(make print-K0S_VERSION)"
196+
echo "K0S_VERSION=\"$K0S_VERSION\""
197+
echo "k0s_version=$K0S_VERSION" >> "$GITHUB_OUTPUT"
198+
PREVIOUS_K0S_VERSION="$(make print-PREVIOUS_K0S_VERSION)"
199+
echo "PREVIOUS_K0S_VERSION=\"$PREVIOUS_K0S_VERSION\""
200+
echo "k0s_version_previous=$PREVIOUS_K0S_VERSION" >> "$GITHUB_OUTPUT"
183201
184202
check-images:
185203
name: Check Images
@@ -222,6 +240,7 @@ jobs:
222240
permissions:
223241
pull-requests: write
224242
needs:
243+
- git-sha
225244
- build
226245
- build-images
227246
steps:
@@ -244,7 +263,7 @@ jobs:
244263
REPLICATED_API_TOKEN: ${{ secrets.STAGING_REPLICATED_API_TOKEN }}
245264
REPLICATED_API_ORIGIN: "https://api.staging.replicated.com/vendor"
246265
run: |
247-
export SHORT_SHA=dev-${GITHUB_SHA::7}
266+
export SHORT_SHA=dev-${{ needs.git-sha.outputs.git_sha }}
248267
echo "${SHORT_SHA}"
249268
sed -i "s/__version_string__/${SHORT_SHA}/g" e2e/kots-release-install/cluster-config.yaml
250269
sed -i "s/__version_string__/${SHORT_SHA}-upgrade/g" e2e/kots-release-upgrade/cluster-config.yaml
@@ -268,7 +287,7 @@ jobs:
268287
REPLICATED_API_TOKEN: ${{ secrets.STAGING_REPLICATED_API_TOKEN }}
269288
REPLICATED_API_ORIGIN: "https://api.staging.replicated.com/vendor"
270289
run: |
271-
export SHORT_SHA=dev-${GITHUB_SHA::7}
290+
export SHORT_SHA=dev-${{ needs.git-sha.outputs.git_sha }}
272291
echo "${SHORT_SHA}"
273292
274293
# airgap tests install the previous k0s version to ensure an upgrade occurs
@@ -283,7 +302,7 @@ jobs:
283302
- name: Create download link message text
284303
if: github.event_name == 'pull_request'
285304
run: |
286-
export SHORT_SHA=dev-${GITHUB_SHA::7}
305+
export SHORT_SHA=dev-${{ needs.git-sha.outputs.git_sha }}
287306
288307
echo "This PR has been released (on staging) and is available for download with a embedded-cluster-smoke-test-staging-app [license ID](https://vendor.staging.replicated.com/apps/embedded-cluster-smoke-test-staging-app/customers?sort=name-asc)." > download-link.txt
289308
echo "" >> download-link.txt
@@ -359,6 +378,8 @@ jobs:
359378
runner: embedded-cluster
360379
- test: TestMultiNodeAirgapHADisasterRecovery
361380
runner: embedded-cluster
381+
- test: TestFiveNodesAirgapUpgrade
382+
runner: embedded-cluster
362383
steps:
363384
- name: Checkout
364385
uses: actions/checkout@v4
@@ -380,7 +401,8 @@ jobs:
380401
license: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE }}
381402
dr-aws-access-key-id: ${{ secrets.TESTIM_AWS_ACCESS_KEY_ID }}
382403
dr-aws-secret-access-key: ${{ secrets.TESTIM_AWS_SECRET_ACCESS_KEY }}
383-
k0s-version: ${{ steps.build.outputs.k0s_version }}
404+
k0s-version: ${{ needs.build.outputs.k0s_version }}
405+
k0s-version-previous: ${{ needs.build.outputs.k0s_version_previous }}
384406

385407
# this job will validate that all the tests passed
386408
# it is used for the github branch protection rule

.github/workflows/dependencies.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- name: Create Pull Request
3737
uses: peter-evans/create-pull-request@v6
3838
with:
39-
token: ${{ secrets.AUTOMATED_PR_GH_PAT }}
39+
token: ${{ secrets.GH_PAT }}
4040
commit-message: Update Makefile versions
4141
title: 'Update Makefile versions'
4242
branch: automation/update-makefile

.github/workflows/image-deps-updater.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ jobs:
8787
uses: peter-evans/create-pull-request@v6
8888
id: cpr
8989
with:
90-
token: ${{ secrets.AUTOMATED_PR_GH_PAT }}
90+
token: ${{ secrets.GH_PAT }}
9191
commit-message: 'Update image versions'
9292
title: "chore: update ${{ matrix.addon }} images"
9393
branch: automation/${{ matrix.addon }}-image-dependencies
@@ -97,7 +97,7 @@ jobs:
9797
images
9898
type::security
9999
draft: false
100-
base: main
100+
base: ${{ github.ref_name }}
101101
body: "Automated changes by the [image-deps-updater](https://github.com/replicatedhq/embedded-cluster/blob/main/.github/workflows/image-deps-updater.yaml) GitHub action"
102102

103103
- name: Check outputs

.github/workflows/release-prod.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
USERNAME: ${{ secrets.DOCKERHUB_USER }}
5757
PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
5858
run: |
59-
make -C local-artifact-mirror apko build-and-push-local-artifact-mirror-image \
59+
make -C local-artifact-mirror apko apko-login build-and-push-local-artifact-mirror-image \
6060
PACKAGE_VERSION=${{ needs.get-tag.outputs.tag-name }}
6161
echo "image=$(cat local-artifact-mirror/build/image)" >> $GITHUB_OUTPUT
6262
@@ -79,7 +79,7 @@ jobs:
7979
run: |
8080
make embedded-cluster-linux-amd64 \
8181
VERSION=${{ needs.get-tag.outputs.tag-name }} \
82-
LOCAL_ARTIFACT_MIRROR_IMAGE=${{ needs.build-images.outputs.local-artifact-mirror }}
82+
LOCAL_ARTIFACT_MIRROR_IMAGE=proxy.replicated.com/anonymous/${{ needs.build-images.outputs.local-artifact-mirror }}
8383
tar -C output/bin -czvf embedded-cluster-linux-amd64.tgz embedded-cluster
8484
8585
- name: Output Metadata

.github/workflows/update-addons.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
- name: Create Pull Request
7575
uses: peter-evans/create-pull-request@v6
7676
with:
77-
token: ${{ secrets.AUTOMATED_PR_GH_PAT }}
77+
token: ${{ secrets.GH_PAT }}
7878
commit-message: updated ${{ matrix.addon }} version
7979
title: "feat: update ${{ matrix.addon }} version"
8080
branch: automation/update-makefile-${{ matrix.addon }}
@@ -83,6 +83,6 @@ jobs:
8383
automated-pr
8484
type::chore
8585
draft: false
86-
base: "main"
86+
base: ${{ github.ref_name }}
8787
body: |
8888
Automated changes by the [update-addons](https://github.com/replicatedhq/embedded-cluster/blob/main/.github/workflows/update-addons.yaml) GitHub action

Makefile

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ ADMIN_CONSOLE_MIGRATIONS_IMAGE_OVERRIDE =
1313
ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE =
1414
EMBEDDED_OPERATOR_IMAGE_OVERRIDE =
1515
EMBEDDED_OPERATOR_BINARY_URL_OVERRIDE =
16-
KUBECTL_VERSION = v1.28.11
1716
K0S_VERSION = v1.28.11+k0s.0
1817
K0S_GO_VERSION = v1.28.11+k0s.0
1918
PREVIOUS_K0S_VERSION ?= v1.28.10+k0s.0
@@ -28,7 +27,6 @@ LD_FLAGS = \
2827
-X github.com/replicatedhq/embedded-cluster/pkg/versions.K0sVersion=$(K0S_VERSION) \
2928
-X github.com/replicatedhq/embedded-cluster/pkg/versions.Version=$(VERSION) \
3029
-X github.com/replicatedhq/embedded-cluster/pkg/versions.TroubleshootVersion=$(TROUBLESHOOT_VERSION) \
31-
-X github.com/replicatedhq/embedded-cluster/pkg/versions.KubectlVersion=$(KUBECTL_VERSION) \
3230
-X github.com/replicatedhq/embedded-cluster/pkg/versions.LocalArtifactMirrorImage=$(LOCAL_ARTIFACT_MIRROR_IMAGE) \
3331
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.ChartRepoOverride=$(ADMIN_CONSOLE_CHART_REPO_OVERRIDE) \
3432
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.KurlProxyImageOverride=$(ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE) \
@@ -57,12 +55,6 @@ pkg/goods/bins/k0s: Makefile
5755
chmod +x pkg/goods/bins/k0s
5856
touch pkg/goods/bins/k0s
5957

60-
pkg/goods/bins/kubectl: Makefile
61-
mkdir -p pkg/goods/bins
62-
curl -fL -o pkg/goods/bins/kubectl "https://dl.k8s.io/release/$(KUBECTL_VERSION)/bin/linux/amd64/kubectl"
63-
chmod +x pkg/goods/bins/kubectl
64-
touch pkg/goods/bins/kubectl
65-
6658
pkg/goods/bins/kubectl-support_bundle: Makefile
6759
mkdir -p pkg/goods/bins
6860
mkdir -p output/tmp/support-bundle
@@ -116,7 +108,6 @@ go.mod: Makefile
116108
.PHONY: static
117109
static: pkg/goods/bins/k0s \
118110
pkg/goods/bins/kubectl-preflight \
119-
pkg/goods/bins/kubectl \
120111
pkg/goods/bins/kubectl-support_bundle \
121112
pkg/goods/bins/local-artifact-mirror \
122113
pkg/goods/internal/bins/kubectl-kots

chainguard.mk

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,7 @@ apko-build: check-env-IMAGE apko-template
5252
.PHONY: apko-build-and-publish
5353
apko-build-and-publish: ARCHS ?= amd64
5454
apko-build-and-publish: check-env-IMAGE apko-template
55-
cd build && ${APKO_CMD} \
56-
publish apko.yaml ${IMAGE} \
57-
--arch ${ARCHS} | tee digest
55+
@bash -c 'set -o pipefail && cd build && ${APKO_CMD} publish apko.yaml ${IMAGE} --arch ${ARCHS} | tee digest'
5856
$(MAKE) apko-output-image
5957

6058
.PHONY: apko-login
@@ -67,7 +65,12 @@ apko-login:
6765

6866
.PHONY: apko-output-image
6967
apko-output-image:
70-
printf "${IMAGE}@$(shell cat build/digest | awk -F'@' '{print $$2}')" > build/image
68+
@digest=$$(cut -s -d'@' -f2 build/digest); \
69+
if [ -z "$$digest" ]; then \
70+
echo "error: no image digest found" >&2; \
71+
exit 1; \
72+
fi ; \
73+
echo "$(IMAGE)@$$digest" > build/image
7174

7275
.PHONY: melange-build
7376
melange-build: ARCHS ?= amd64

0 commit comments

Comments
 (0)