Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 9dd5ca8

Browse files
committedAug 28, 2024·
chore: merge operator repository
1 parent 430c78d commit 9dd5ca8

File tree

31 files changed

+506
-1223
lines changed

31 files changed

+506
-1223
lines changed
 

‎.github/dependabot.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,21 @@ updates:
1616
update-types:
1717
- "patch"
1818

19+
- package-ecosystem: "gomod"
20+
directory: "/operator/"
21+
open-pull-requests-limit: 25
22+
schedule:
23+
interval: "weekly"
24+
day: "saturday"
25+
labels:
26+
- "dependencies"
27+
- "go"
28+
- "type::chore"
29+
groups:
30+
security:
31+
update-types:
32+
- "patch"
33+
1934
- package-ecosystem: "github-actions"
2035
directory: "/"
2136
labels:

‎.github/workflows/ci.yaml

Lines changed: 139 additions & 51 deletions
Large diffs are not rendered by default.

‎.github/workflows/image-scan.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ jobs:
3333
build/.melange-cache
3434
key: melange-cache
3535

36-
- name: Set up Docker Buildx
37-
uses: docker/setup-buildx-action@v3
38-
3936
- name: Setup Melange
4037
uses: chainguard-dev/actions/setup-melange@main
4138

‎.github/workflows/release-prod.yaml

Lines changed: 65 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ name: Release
22
on:
33
push:
44
tags:
5-
- "*.*.*"
5+
- '[0-9]+\.[0-9]+\.[0-9]+\+k8s-[0-9]+\.[0-9]+'
6+
- '[0-9]+\.[0-9]+\.[0-9]+\+k8s-[0-9]+\.[0-9]+-.+'
67
permissions:
78
contents: write
89
jobs:
@@ -21,17 +22,17 @@ jobs:
2122
id: get-tag
2223
run: |
2324
# remove the "refs/tags/" prefix to get the tag that was pushed
24-
export RAW_TAG=${GITHUB_REF#refs/tags/}
25+
export RAW_TAG=${{ github.ref_name }}
2526
# add a 'v' prefix to the tag if it doesn't already have one
2627
export V_TAG=$(echo "$RAW_TAG" | sed 's/^[^v]/v&/')
2728
# store the tag name in an output for later steps
2829
echo "tag-name=${V_TAG}" >> $GITHUB_OUTPUT
2930
30-
build-images:
31+
publish-operator-image:
3132
runs-on: ubuntu-latest
3233
needs: [get-tag]
3334
outputs:
34-
local-artifact-mirror: ${{ steps.local-artifact-mirror.outputs.image }}
35+
image: ${{ steps.operator-image.outputs.image }}
3536
steps:
3637
- name: Checkout
3738
uses: actions/checkout@v4
@@ -43,8 +44,56 @@ jobs:
4344
build/.melange-cache
4445
key: melange-cache
4546

46-
- name: Set up Docker Buildx
47-
uses: docker/setup-buildx-action@v3
47+
- name: Setup Melange
48+
uses: chainguard-dev/actions/setup-melange@main
49+
50+
- name: Build and push operator image
51+
id: operator-image
52+
env:
53+
REGISTRY: docker.io
54+
USERNAME: ${{ secrets.DOCKERHUB_USER }}
55+
PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
56+
run: |
57+
make -C operator apko apko-login build-and-push-operator-image \
58+
PACKAGE_VERSION=${{ needs.get-tag.outputs.tag-name }}
59+
echo "image=$(cat operator/build/image)" >> $GITHUB_OUTPUT
60+
61+
publish-operator-chart:
62+
runs-on: 'ubuntu-20.04'
63+
needs: [get-tag, publish-operator-image]
64+
outputs:
65+
chart: ${{ steps.operator-chart.outputs.chart }}
66+
steps:
67+
- name: Checkout
68+
uses: actions/checkout@v4
69+
70+
- name: Build and push operator chart
71+
id: operator-chart
72+
env:
73+
HELM_USER: ${{secrets.REPLICATED_LIBRARY_SERVICE_ACCOUNT}}
74+
HELM_PASS: ${{secrets.REPLICATED_LIBRARY_SERVICE_ACCOUNT}}
75+
HELM_REGISTRY: registry.replicated.com
76+
CHART_VERSION: ${{needs.get-tag.outputs.tag-name}}
77+
run: |
78+
make build-chart \
79+
PACKAGE_VERSION=${{ needs.get-tag.outputs.tag-name }}
80+
echo "chart=$(cat operator/build/chart)" >> $GITHUB_OUTPUT
81+
82+
publish-images:
83+
runs-on: ubuntu-latest
84+
needs: [get-tag]
85+
outputs:
86+
local-artifact-mirror: ${{ steps.local-artifact-mirror.outputs.image }}
87+
steps:
88+
- name: Checkout
89+
uses: actions/checkout@v4
90+
91+
- name: Cache Melange
92+
uses: actions/cache@v4
93+
with:
94+
path: |
95+
build/.melange-cache
96+
key: melange-cache
4897

4998
- name: Setup Melange
5099
uses: chainguard-dev/actions/setup-melange@main
@@ -62,7 +111,7 @@ jobs:
62111
63112
release:
64113
runs-on: ubuntu-latest
65-
needs: [get-tag, build-images]
114+
needs: [get-tag, publish-images, publish-operator-image, publish-operator-chart]
66115
steps:
67116
- name: Checkout
68117
uses: actions/checkout@v4
@@ -72,14 +121,19 @@ jobs:
72121
with:
73122
go-version-file: go.mod
74123

75-
- name: Set up Docker Buildx
76-
uses: docker/setup-buildx-action@v3
124+
- name: Update embedded-cluster-operator metadata.yaml
125+
env:
126+
IMAGES_REGISTRY_SERVER: ttl.sh
127+
OPERATOR_CHART: ${{ needs.publish-operator-chart.outputs.chart }}
128+
OPERATOR_IMAGE: ${{ needs.publish-operator-image.outputs.image }}
129+
run: |
130+
./scripts/ci-update-operator-metadata.sh
77131
78132
- name: Build linux-amd64
79133
run: |
80134
make embedded-cluster-linux-amd64 \
81135
VERSION=${{ needs.get-tag.outputs.tag-name }} \
82-
LOCAL_ARTIFACT_MIRROR_IMAGE=proxy.replicated.com/anonymous/${{ needs.build-images.outputs.local-artifact-mirror }}
136+
LOCAL_ARTIFACT_MIRROR_IMAGE=proxy.replicated.com/anonymous/${{ needs.publish-images.outputs.local-artifact-mirror }}
83137
tar -C output/bin -czvf embedded-cluster-linux-amd64.tgz embedded-cluster
84138
85139
- name: Output Metadata
@@ -109,7 +163,7 @@ jobs:
109163
uses: marvinpinto/action-automatic-releases@latest
110164
with:
111165
repo_token: ${{ secrets.GITHUB_TOKEN }}
112-
prerelease: false
166+
prerelease: true
113167
files: |
114168
*.tgz
115169
metadata.json

‎Makefile

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
SHELL := /bin/bash
22

3-
include chainguard.mk
3+
include common.mk
44

5-
VERSION ?= $(shell git describe --tags --dirty)
5+
VERSION ?= $(shell git describe --tags --dirty --match='[0-9]*.[0-9]*.[0-9]*')
66
CURRENT_USER := $(if $(GITHUB_USER),$(GITHUB_USER),$(shell id -u -n))
77
UNAME := $(shell uname)
88
ARCH := $(shell uname -m)
@@ -11,8 +11,6 @@ ADMIN_CONSOLE_CHART_REPO_OVERRIDE =
1111
ADMIN_CONSOLE_IMAGE_OVERRIDE =
1212
ADMIN_CONSOLE_MIGRATIONS_IMAGE_OVERRIDE =
1313
ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE =
14-
EMBEDDED_OPERATOR_IMAGE_OVERRIDE =
15-
EMBEDDED_OPERATOR_BINARY_URL_OVERRIDE =
1614
K0S_VERSION = v1.29.7+k0s.0
1715
K0S_GO_VERSION = v1.29.7+k0s.0
1816
PREVIOUS_K0S_VERSION ?= v1.28.10+k0s.0
@@ -34,8 +32,7 @@ LD_FLAGS = \
3432
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.AdminConsoleChartRepoOverride=$(ADMIN_CONSOLE_CHART_REPO_OVERRIDE) \
3533
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.AdminConsoleImageOverride=$(ADMIN_CONSOLE_IMAGE_OVERRIDE) \
3634
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.AdminConsoleMigrationsImageOverride=$(ADMIN_CONSOLE_MIGRATIONS_IMAGE_OVERRIDE) \
37-
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.AdminConsoleKurlProxyImageOverride=$(ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE) \
38-
-X github.com/replicatedhq/embedded-cluster/pkg/addons/embeddedclusteroperator.EmbeddedOperatorImageOverride=$(EMBEDDED_OPERATOR_IMAGE_OVERRIDE)
35+
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.AdminConsoleKurlProxyImageOverride=$(ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE)
3936

4037
export PATH := $(shell pwd)/bin:$(PATH)
4138

@@ -138,6 +135,7 @@ unit-tests:
138135
mkdir -p pkg/goods/bins pkg/goods/internal/bins
139136
touch pkg/goods/bins/BUILD pkg/goods/internal/bins/BUILD # compilation will fail if no files are present
140137
go test -v ./pkg/... ./cmd/...
138+
$(MAKE) -C operator test
141139

142140
.PHONY: vet
143141
vet: static
@@ -190,7 +188,6 @@ buildtools:
190188
go build -o ./output/bin/buildtools ./cmd/buildtools
191189

192190
.PHONY: cache-files
193-
cache-files: export EMBEDDED_OPERATOR_BINARY_URL_OVERRIDE
194191
cache-files:
195192
./scripts/cache-files.sh
196193

‎cmd/buildtools/embeddedclusteroperator.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,25 @@ var updateOperatorAddonCommand = &cli.Command{
4949
}
5050
nextChartVersion = strings.TrimPrefix(nextChartVersion, "v")
5151

52-
upstream := "registry.replicated.com/library/embedded-cluster-operator"
53-
withproto := fmt.Sprintf("oci://proxy.replicated.com/anonymous/%s", upstream)
52+
chartURL := os.Getenv("INPUT_OPERATOR_CHART_URL")
53+
if chartURL != "" {
54+
logrus.Infof("using input override from INPUT_OPERATOR_CHART_URL: %s", chartURL)
55+
} else {
56+
chartURL = "registry.replicated.com/library/embedded-cluster-operator"
57+
chartURL = fmt.Sprintf("oci://proxy.replicated.com/anonymous/%s", chartURL)
58+
}
5459

55-
logrus.Infof("updating embedded cluster operator images")
60+
imageOverride := os.Getenv("INPUT_OPERATOR_IMAGE")
61+
if imageOverride != "" {
62+
logrus.Infof("using input override from INPUT_OPERATOR_IMAGE: %s", imageOverride)
63+
64+
operatorImageComponents[imageOverride] = addonComponent{
65+
name: "embedded-cluster-operator",
66+
useUpstreamImage: true,
67+
}
68+
}
5669

57-
err := updateOperatorAddonImages(c.Context, withproto, nextChartVersion)
70+
err := updateOperatorAddonImages(c.Context, chartURL, nextChartVersion)
5871
if err != nil {
5972
return fmt.Errorf("failed to update embedded cluster operator images: %w", err)
6073
}

‎chainguard.mk renamed to ‎common.mk

File renamed without changes.

0 commit comments

Comments
 (0)
Please sign in to comment.