Skip to content

Commit 6ba6736

Browse files
committed
merge main
2 parents a215798 + a9e3459 commit 6ba6736

33 files changed

+1011
-190
lines changed

.github/actions/e2e/action.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ inputs:
77
airgap-license-id:
88
description: 'airgap-enabled license id to use for e2e tests'
99
required: true
10+
snapshot-license-id:
11+
description: 'snapshot-enabled license id to use for e2e tests'
12+
required: true
1013
license-id:
1114
description: 'license id to use for e2e tests'
1215
required: true
@@ -23,6 +26,12 @@ inputs:
2326
runs:
2427
using: composite
2528
steps:
29+
- name: Remove MS repo
30+
shell: bash
31+
run: |
32+
apt-add-repository --list
33+
sudo apt-add-repository -y -r deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/ubuntu/22.04/prod jammy main
34+
apt-add-repository --list
2635
- name: Move Docker aside
2736
shell: bash
2837
run: |
@@ -63,6 +72,7 @@ runs:
6372
export SHORT_SHA=dev-$(git rev-parse --short=7 HEAD)
6473
export LICENSE_ID=${{ inputs.license-id }}
6574
export AIRGAP_LICENSE_ID=${{ inputs.airgap-license-id }}
75+
export SNAPSHOT_LICENSE_ID=${{ inputs.snapshot-license-id }}
6676
echo "${{ inputs.license }}" | base64 --decode > e2e/license.yaml
6777
export TESTIM_ACCESS_TOKEN=${{ inputs.testim-access-token }}
6878
export TESTIM_BRANCH=${{ inputs.testim-branch }}

.github/workflows/dependencies.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,18 @@ jobs:
4747
run: |
4848
export VERSION=`curl https://api.github.com/repos/distribution/distribution/tags | jq -r '.[].name' | tr -d v | grep -v alpha | grep -v beta | head -n 1`
4949
sed -i "/^REGISTRY_IMAGE_VERSION/c\REGISTRY_IMAGE_VERSION = $VERSION" Makefile
50+
- name: Velero Chart
51+
run: |
52+
export VERSION=`curl https://api.github.com/repos/vmware-tanzu/helm-charts/tags | jq -r '.[].name' | grep velero | tr -d 'velero-' | head -n 1`
53+
sed -i "/^VELERO_CHART_VERSION/c\VELERO_CHART_VERSION = $VERSION" Makefile
54+
- name: Velero Image
55+
run: |
56+
export VERSION=`curl https://api.github.com/repos/vmware-tanzu/velero/tags | jq -r '.[].name' | grep -v 'rc' | head -n 1`
57+
sed -i "/^VELERO_IMAGE_VERSION/c\VELERO_IMAGE_VERSION = $VERSION" Makefile
58+
- name: Velero AWS Plugin Image
59+
run: |
60+
export VERSION=`curl https://api.github.com/repos/vmware-tanzu/velero-plugin-for-aws/tags | jq -r '.[].name' | grep -v 'rc' | head -n 1`
61+
sed -i "/^VELERO_AWS_PLUGIN_IMAGE_VERSION/c\VELERO_AWS_PLUGIN_IMAGE_VERSION = $VERSION" Makefile
5062
- name: Kubectl
5163
run: |
5264
export VERSION=`curl -L -s https://dl.k8s.io/release/stable.txt`

.github/workflows/pull-request.yaml

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,14 @@ jobs:
5050
uses: actions/setup-go@v5
5151
with:
5252
go-version: "1.21.0"
53-
- name: Build Linux AMD64
53+
- name: Build Linux AMD64 and Output Metadata
5454
run: |
5555
export SHORT_SHA=dev-$(git rev-parse --short=7 HEAD)
56-
make embedded-cluster-linux-amd64 VERSION="${SHORT_SHA}"
56+
make -B embedded-cluster-linux-amd64 K0S_VERSION=$(make print-PREVIOUS_K0S_VERSION) VERSION="${SHORT_SHA}-previous-k0s"
57+
tar -C output/bin -czvf embedded-cluster-linux-amd64-previous-k0s.tgz embedded-cluster
58+
./output/bin/embedded-cluster version metadata > metadata-previous-k0s.json
59+
make -B embedded-cluster-linux-amd64 VERSION="${SHORT_SHA}"
5760
tar -C output/bin -czvf embedded-cluster-linux-amd64.tgz embedded-cluster
58-
- name: Output Metadata
59-
run: |
6061
./output/bin/embedded-cluster version metadata > metadata.json
6162
- name: Install Replicated CLI
6263
run: |
@@ -93,7 +94,9 @@ jobs:
9394
echo "versionLabel: \"appver-${SHORT_SHA}\"" >> e2e/kots-release-install/release.yaml
9495
cat e2e/kots-release-install/release.yaml
9596
cp output/bin/embedded-cluster output/bin/embedded-cluster-original
96-
make embedded-release VERSION="${SHORT_SHA}" # this is done after the metadata.json is generated so as to not include additional charts
97+
make -B embedded-release K0S_VERSION=$(make print-PREVIOUS_K0S_VERSION) VERSION="${SHORT_SHA}-previous-k0s"
98+
mv output/bin/embedded-cluster output/bin/embedded-cluster-previous-k0s
99+
make -B embedded-release VERSION="${SHORT_SHA}" # this is done after the metadata.json is generated so as to not include additional charts
97100
- name: Cache files for integration test
98101
env:
99102
S3_BUCKET: "tf-staging-embedded-cluster-bin"
@@ -105,6 +108,7 @@ jobs:
105108
export EC_VERSION="v${SHORT_SHA}"
106109
./scripts/cache-files.sh
107110
./scripts/create-upgrade-release.sh
111+
./scripts/create-previous-k0s-release.sh
108112
109113
- name: Create Airgap Release
110114
env:
@@ -114,11 +118,12 @@ jobs:
114118
run: |
115119
export SHORT_SHA=dev-$(git rev-parse --short=7 HEAD)
116120
echo "${SHORT_SHA}"
117-
sed -i "s/__version_string__/${SHORT_SHA}/g" e2e/kots-release-install/cluster-config.yaml
118-
sed -i "s/__version_string__/${SHORT_SHA}-upgrade/g" e2e/kots-release-upgrade/cluster-config.yaml
121+
# airgap tests install the previous k0s version to ensure an upgrade occurs
122+
sed -i "s/${SHORT_SHA}/${SHORT_SHA}-previous-k0s/g" e2e/kots-release-install/cluster-config.yaml
119123
120124
rm e2e/kots-release-install/release.yaml
121125
replicated release create --yaml-dir e2e/kots-release-install --promote CI-airgap --version "appver-${SHORT_SHA}"
126+
replicated release create --yaml-dir e2e/kots-release-upgrade --promote CI-airgap --version "appver-${SHORT_SHA}-upgrade"
122127
123128
- name: Create download link message text
124129
run: |
@@ -149,6 +154,7 @@ jobs:
149154
path: |
150155
output/bin/embedded-cluster
151156
output/bin/embedded-cluster-original
157+
output/bin/embedded-cluster-previous-k0s
152158
output/bin/embedded-cluster-release-builder
153159
154160
e2e:
@@ -177,7 +183,8 @@ jobs:
177183
- TestOldVersionUpgrade
178184
- TestMaterialize
179185
- TestLocalArtifactMirror
180-
- TestSingleNodeAirgapInstallationUbuntuJammy
186+
- TestSingleNodeAirgapUpgradeUbuntuJammy
187+
- TestInstallSnapshotFromReplicatedApp
181188
steps:
182189
- name: Checkout
183190
uses: actions/checkout@v4
@@ -186,10 +193,12 @@ jobs:
186193
with:
187194
name: embedded-release
188195
path: output/bin
196+
189197
- uses: ./.github/actions/e2e
190198
with:
191199
test-name: '${{ matrix.tests }}'
192200
airgap-license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_AIRGAP_LICENSE_ID }}
201+
snapshot-license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_SNAPSHOT_LICENSE_ID }}
193202
license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE_ID }}
194203
license: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE }}
195204
testim-access-token: ${{ secrets.TESTIM_ACCESS_TOKEN }}

.github/workflows/release-dev.yaml

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,14 @@ jobs:
1717
uses: actions/setup-go@v5
1818
with:
1919
go-version: "1.21"
20-
- name: Build Linux AMD64
20+
- name: Build Linux AMD64 and Output Metadata
2121
run: |
2222
export SHORT_SHA=dev-$(git rev-parse --short=7 HEAD)
23-
make embedded-cluster-linux-amd64 VERSION="${SHORT_SHA}"
23+
make -B embedded-cluster-linux-amd64 K0S_VERSION=$(make print-PREVIOUS_K0S_VERSION) VERSION="${SHORT_SHA}-previous-k0s"
24+
tar -C output/bin -czvf embedded-cluster-linux-amd64-previous-k0s.tgz embedded-cluster
25+
./output/bin/embedded-cluster version metadata > metadata-previous-k0s.json
26+
make -B embedded-cluster-linux-amd64 VERSION="${SHORT_SHA}"
2427
tar -C output/bin -czvf embedded-cluster-linux-amd64.tgz embedded-cluster
25-
- name: Output Metadata
26-
run: |
2728
./output/bin/embedded-cluster version metadata > metadata.json
2829
- name: Publish development release
2930
uses: marvinpinto/action-automatic-releases@latest
@@ -70,7 +71,9 @@ jobs:
7071
echo "versionLabel: \"appver-${SHORT_SHA}\"" >> e2e/kots-release-install/release.yaml
7172
cat e2e/kots-release-install/release.yaml
7273
cp output/bin/embedded-cluster output/bin/embedded-cluster-original
73-
make embedded-release VERSION="${SHORT_SHA}" # this is done after the metadata.json is generated so as to not include additional charts
74+
make -B embedded-release K0S_VERSION=$(make print-PREVIOUS_K0S_VERSION) VERSION="${SHORT_SHA}-previous-k0s"
75+
mv output/bin/embedded-cluster output/bin/embedded-cluster-previous-k0s
76+
make -B embedded-release VERSION="${SHORT_SHA}" # this is done after the metadata.json is generated so as to not include additional charts
7477
- name: Cache files for integration test
7578
env:
7679
S3_BUCKET: "tf-staging-embedded-cluster-bin"
@@ -82,6 +85,7 @@ jobs:
8285
export EC_VERSION="v${SHORT_SHA}"
8386
./scripts/cache-files.sh
8487
./scripts/create-upgrade-release.sh
88+
./scripts/create-previous-k0s-release.sh
8589
- name: Create Airgap Release
8690
env:
8791
REPLICATED_APP: "embedded-cluster-smoke-test-staging-app"
@@ -90,11 +94,12 @@ jobs:
9094
run: |
9195
export SHORT_SHA=dev-$(git rev-parse --short=7 HEAD)
9296
echo "${SHORT_SHA}"
93-
sed -i "s/__version_string__/${SHORT_SHA}/g" e2e/kots-release-install/cluster-config.yaml
94-
sed -i "s/__version_string__/${SHORT_SHA}-upgrade/g" e2e/kots-release-upgrade/cluster-config.yaml
97+
# airgap tests install the previous k0s version to ensure an upgrade occurs
98+
sed -i "s/${SHORT_SHA}/${SHORT_SHA}-previous-k0s/g" e2e/kots-release-install/cluster-config.yaml
9599
96100
rm e2e/kots-release-install/release.yaml
97101
replicated release create --yaml-dir e2e/kots-release-install --promote CI-airgap --version "appver-${SHORT_SHA}"
102+
replicated release create --yaml-dir e2e/kots-release-upgrade --promote CI-airgap --version "appver-${SHORT_SHA}-upgrade"
98103
99104
- name: upload binary
100105
uses: actions/upload-artifact@v4
@@ -103,6 +108,7 @@ jobs:
103108
path: |
104109
output/bin/embedded-cluster
105110
output/bin/embedded-cluster-original
111+
output/bin/embedded-cluster-previous-k0s
106112
output/bin/embedded-cluster-release-builder
107113
e2e:
108114
runs-on: ubuntu-latest
@@ -130,7 +136,8 @@ jobs:
130136
- TestOldVersionUpgrade
131137
- TestMaterialize
132138
- TestLocalArtifactMirror
133-
- TestSingleNodeAirgapInstallationUbuntuJammy
139+
- TestSingleNodeAirgapUpgradeUbuntuJammy
140+
- TestInstallSnapshotFromReplicatedApp
134141
steps:
135142
- name: Checkout
136143
uses: actions/checkout@v4
@@ -143,6 +150,7 @@ jobs:
143150
with:
144151
test-name: '${{ matrix.tests }}'
145152
airgap-license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_AIRGAP_LICENSE_ID }}
153+
snapshot-license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_SNAPSHOT_LICENSE_ID }}
146154
license-id: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE_ID }}
147155
license: ${{ secrets.STAGING_EMBEDDED_CLUSTER_LICENSE }}
148156
testim-access-token: ${{ secrets.TESTIM_ACCESS_TOKEN }}

Makefile

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ ARCH := $(shell uname -m)
44
APP_NAME = embedded-cluster
55
ADMIN_CONSOLE_CHART_URL = oci://registry.replicated.com/library
66
ADMIN_CONSOLE_CHART_NAME = admin-console
7-
ADMIN_CONSOLE_CHART_VERSION = 1.108.8
7+
ADMIN_CONSOLE_CHART_VERSION = 1.108.9-build.1
88
ADMIN_CONSOLE_IMAGE_OVERRIDE =
99
ADMIN_CONSOLE_MIGRATIONS_IMAGE_OVERRIDE =
1010
EMBEDDED_OPERATOR_CHART_URL = oci://registry.replicated.com/library
1111
EMBEDDED_OPERATOR_CHART_NAME = embedded-cluster-operator
12-
EMBEDDED_OPERATOR_CHART_VERSION = 0.28.1
12+
EMBEDDED_OPERATOR_CHART_VERSION = 0.28.2
1313
EMBEDDED_OPERATOR_UTILS_IMAGE = busybox:1.36.1
1414
EMBEDDED_CLUSTER_OPERATOR_IMAGE_OVERRIDE =
1515
OPENEBS_CHART_URL = https://openebs.github.io/charts
@@ -20,10 +20,16 @@ REGISTRY_CHART_URL = https://helm.twun.io
2020
REGISTRY_CHART_NAME = twuni/docker-registry
2121
REGISTRY_CHART_VERSION = 2.2.3
2222
REGISTRY_IMAGE_VERSION = 2.8.3
23+
VELERO_CHART_URL = https://vmware-tanzu.github.io/helm-charts
24+
VELERO_CHART_NAME = vmware-tanzu/velero
25+
VELERO_CHART_VERSION = 6.0.0
26+
VELERO_IMAGE_VERSION = v1.13.2
27+
VELERO_AWS_PLUGIN_IMAGE_VERSION = v1.9.2
2328
KUBECTL_VERSION = v1.28.9
2429
K0S_VERSION = v1.28.9+k0s.0
30+
PREVIOUS_K0S_VERSION ?= v1.28.8+k0s.0
2531
K0S_BINARY_SOURCE_OVERRIDE =
26-
TROUBLESHOOT_VERSION = v0.87.0
32+
TROUBLESHOOT_VERSION = v0.88.1
2733
KOTS_VERSION = v$(shell echo $(ADMIN_CONSOLE_CHART_VERSION) | sed 's/\([0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/')
2834
LD_FLAGS = -X github.com/replicatedhq/embedded-cluster/pkg/defaults.K0sVersion=$(K0S_VERSION) \
2935
-X github.com/replicatedhq/embedded-cluster/pkg/defaults.Version=$(VERSION) \
@@ -47,7 +53,12 @@ LD_FLAGS = -X github.com/replicatedhq/embedded-cluster/pkg/defaults.K0sVersion=$
4753
-X github.com/replicatedhq/embedded-cluster/pkg/addons/registry.ChartURL=$(REGISTRY_CHART_URL) \
4854
-X github.com/replicatedhq/embedded-cluster/pkg/addons/registry.ChartName=$(REGISTRY_CHART_NAME) \
4955
-X github.com/replicatedhq/embedded-cluster/pkg/addons/registry.Version=$(REGISTRY_CHART_VERSION) \
50-
-X github.com/replicatedhq/embedded-cluster/pkg/addons/registry.ImageVersion=$(REGISTRY_IMAGE_VERSION)
56+
-X github.com/replicatedhq/embedded-cluster/pkg/addons/registry.ImageVersion=$(REGISTRY_IMAGE_VERSION) \
57+
-X github.com/replicatedhq/embedded-cluster/pkg/addons/velero.ChartURL=$(VELERO_CHART_URL) \
58+
-X github.com/replicatedhq/embedded-cluster/pkg/addons/velero.ChartName=$(VELERO_CHART_NAME) \
59+
-X github.com/replicatedhq/embedded-cluster/pkg/addons/velero.Version=$(VELERO_CHART_VERSION) \
60+
-X github.com/replicatedhq/embedded-cluster/pkg/addons/velero.VeleroTag=$(VELERO_IMAGE_VERSION) \
61+
-X github.com/replicatedhq/embedded-cluster/pkg/addons/velero.AwsPluginTag=$(VELERO_AWS_PLUGIN_IMAGE_VERSION)
5162

5263
.DEFAULT_GOAL := default
5364
default: embedded-cluster-linux-amd64
@@ -167,3 +178,6 @@ scan:
167178
--severity="HIGH,CRITICAL" \
168179
--ignore-unfixed \
169180
./
181+
182+
print-%:
183+
@echo -n $($*)

cmd/embedded-cluster/uninstall.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,12 @@ var resetCommand = &cli.Command{
434434
}
435435
}
436436

437+
if _, err := os.Stat("/usr/local/bin/k0s"); err == nil {
438+
if err := os.RemoveAll("/usr/local/bin/k0s"); err != nil {
439+
return fmt.Errorf("failed to remove k0s binary: %w", err)
440+
}
441+
}
442+
437443
if c.Bool("reboot") {
438444
if _, err := exec.Command("reboot").Output(); err != nil {
439445
return err

cmd/embedded-cluster/version.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,13 @@ func gatherVersionMetadata() (*types.ReleaseMetadata, error) {
144144
return nil, fmt.Errorf("unable to get airgap images: %w", err)
145145
}
146146

147+
// Additional builtin addons
148+
builtinCharts, err := applier.GetBuiltinCharts()
149+
if err != nil {
150+
return nil, fmt.Errorf("unable to get builtin charts: %w", err)
151+
}
152+
meta.BuiltinConfigs = builtinCharts
153+
147154
// Render k0s config to get the images contained within
148155
k0sConfig := config.RenderK0sConfig()
149156
meta.K0sImages = airgap.GetImageURIs(k0sConfig.Spec, true)

0 commit comments

Comments
 (0)