Skip to content

Commit d9522a9

Browse files
authored
Merge pull request kubearmor#1764 from DelusionalOptimist/oci-artifacts
chore(CI): publish KubeArmor tars to dockerhub
2 parents ae5ff26 + 25655e8 commit d9522a9

6 files changed

+69
-16
lines changed

.github/workflows/ci-latest-helm-chart-release.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ permissions: read-all
1313
jobs:
1414
publish-chart:
1515
name: Update Stable Helm Chart With Latest Changes
16-
if: ${{ (github.repository == 'kubearmor/kubearmor') && (!contains(github.event.head_commit.message, '[skip ci]')) }}
16+
if: ${{ (github.repository == 'kubearmor/kubearmor') }}
1717
runs-on: ubuntu-20.04
1818
permissions:
1919
contents: write

.github/workflows/ci-latest-release.yml

+7-7
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
if: github.repository == 'kubearmor/kubearmor' && (needs.check.outputs.kubearmor == 'true' || ${{ github.ref }} != 'refs/heads/main')
4747
runs-on: ubuntu-latest-16-cores
4848
permissions:
49-
id-token: write
49+
id-token: write
5050
timeout-minutes: 120
5151
steps:
5252
- uses: actions/checkout@v3
@@ -81,7 +81,7 @@ jobs:
8181
run: |
8282
make docker-build TAG=${{ steps.vars.outputs.tag }}
8383
84-
- name: deploy pre existing pod
84+
- name: deploy pre existing pod
8585
run: |
8686
kubectl apply -f ./tests/k8s_env/ksp/pre-run-pod.yaml
8787
sleep 60
@@ -93,7 +93,7 @@ jobs:
9393
docker save kubearmor/kubearmor:${{ steps.vars.outputs.tag }} | sudo k3s ctr images import -
9494
docker save kubearmor/kubearmor-operator:${{ steps.vars.outputs.tag }} | sudo k3s ctr images import -
9595
docker save kubearmor/kubearmor-snitch:${{ steps.vars.outputs.tag }} | sudo k3s ctr images import -
96-
96+
9797
helm upgrade --install kubearmor-operator ./deployments/helm/KubeArmorOperator -n kubearmor --create-namespace --set kubearmorOperator.image.tag=${{ steps.vars.outputs.tag }}
9898
kubectl wait --for=condition=ready --timeout=5m -n kubearmor pod -l kubearmor-app=kubearmor-operator
9999
kubectl get pods -A
@@ -145,12 +145,12 @@ jobs:
145145
- name: Push KubeArmor images to Docker
146146
run: GITHUB_SHA=$GITHUB_SHA ./KubeArmor/build/push_kubearmor.sh ${{ steps.vars.outputs.tag }}
147147

148-
- name: Install Cosign
148+
- name: Install Cosign
149149
uses: sigstore/cosign-installer@main
150150

151151
- name: Get Image Digest
152152
id: digest
153-
run: |
153+
run: |
154154
echo "imagedigest=$(jq -r '.["containerimage.digest"]' kubearmor.json)" >> $GITHUB_OUTPUT
155155
echo "initdigest=$(jq -r '.["containerimage.digest"]' kubearmor-init.json)" >> $GITHUB_OUTPUT
156156
echo "ubidigest=$(jq -r '.["containerimage.digest"]' kubearmor-ubi.json)" >> $GITHUB_OUTPUT
@@ -207,7 +207,7 @@ jobs:
207207
regctl image copy kubearmor/kubearmor:$STABLE_VERSION kubearmor/kubearmor:stable --digest-tags
208208
regctl image copy kubearmor/kubearmor-ubi:$STABLE_VERSION kubearmor/kubearmor-ubi:stable --digest-tags
209209
regctl image copy kubearmor/kubearmor-controller:$STABLE_VERSION kubearmor/kubearmor-controller:stable --digest-tags
210-
210+
211211
kubearmor-controller-release:
212212
name: Build & Push KubeArmorController
213213
needs: check
@@ -223,7 +223,7 @@ jobs:
223223
- uses: actions/setup-go@v5
224224
with:
225225
go-version-file: 'KubeArmor/go.mod'
226-
226+
227227
- name: Set up QEMU
228228
uses: docker/setup-qemu-action@v2
229229

.github/workflows/ci-marketplace-release.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ on:
77
- "STABLE-RELEASE"
88
- ".github/workflows/ci-marketplace-release.yml"
99

10+
# Declare default permissions as read only.
11+
permissions: read-all
12+
1013
jobs:
1114
certify-images-on-redhat:
1215
runs-on: ubuntu-latest
@@ -249,4 +252,4 @@ jobs:
249252
250253
Assignees: @kubearmor/triagers
251254
252-
Refer the documentation [here](https://github.com/kubearmor/KubeArmor/wiki/Update-KubeArmor-Marketplace-Releases) for update listing instructions.
255+
Refer the documentation [here](https://github.com/kubearmor/KubeArmor/wiki/Update-KubeArmor-Marketplace-Releases) for update listing instructions.
+50-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
name: ci-systemd-release
22

33
on:
4+
workflow_dispatch:
5+
inputs:
6+
tag:
7+
description: "Release tag which has to be updated"
8+
type: "string"
9+
required: true
410
push:
511
tags:
612
- "*"
713

14+
# Declare default permissions as read only.
15+
permissions: read-all
16+
817
jobs:
918
goreleaser:
1019
runs-on: ubuntu-20.04
@@ -16,34 +25,70 @@ jobs:
1625
- uses: actions/checkout@v3
1726
with:
1827
submodules: true
28+
fetch-depth: 0
1929

2030
- uses: actions/setup-go@v5
2131
with:
2232
go-version-file: 'KubeArmor/go.mod'
23-
2433

2534
- name: Install the latest LLVM toolchain
2635
run: ./.github/workflows/install-llvm.sh
2736

2837
- name: Compile libbpf
2938
run: ./.github/workflows/install-libbpf.sh
39+
3040
- name: Install Cosign
3141
uses: sigstore/cosign-installer@main
3242

3343
- name: Install karmor
3444
run: curl -sfL https://raw.githubusercontent.com/kubearmor/kubearmor-client/main/install.sh | sudo sh -s -- -b .
3545
working-directory: KubeArmor
36-
46+
3747
- name: Build KubeArmor object files
38-
run: make
48+
run: make
3949
working-directory: KubeArmor/BPF
40-
50+
51+
- name: Log in to Docker Hub
52+
uses: docker/login-action@v2
53+
with:
54+
username: ${{ secrets.DOCKER_USERNAME }}
55+
password: ${{ secrets.DOCKER_AUTHTOK }}
56+
57+
- name: Get release tag
58+
id: vars
59+
run: |
60+
cp KubeArmor/.goreleaser.yaml /tmp/.goreleaser.yaml
61+
if [[ ${{ github.event_name }} == "workflow_dispatch" ]]; then
62+
# checkout branch but use goreleaser config from latest
63+
echo "Checking out tag: ${{ inputs.tag }}"
64+
git checkout ${{ inputs.tag }}
65+
echo "GORELEASER_CURRENT_TAG=${{ inputs.tag }}" >> $GITHUB_OUTPUT
66+
67+
REF=${{ inputs.tag }}
68+
echo "tag=${REF#v}" >> $GITHUB_OUTPUT
69+
else
70+
REF=${GITHUB_REF#refs/*/}
71+
echo "tag=${REF#v}" >> $GITHUB_OUTPUT
72+
fi
73+
4174
- name: Run GoReleaser
4275
uses: goreleaser/goreleaser-action@v5
4376
with:
4477
distribution: goreleaser
4578
version: v1.25.0
46-
args: release --clean
79+
args: release --config=/tmp/.goreleaser.yaml
4780
workdir: KubeArmor
4881
env:
4982
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
83+
GORELEASER_CURRENT_TAG: ${{ steps.vars.outputs.GORELEASER_CURRENT_TAG }}
84+
85+
- name: Setup ORAS
86+
uses: oras-project/setup-oras@v1
87+
with:
88+
version: 1.0.0
89+
90+
- name: Publish release artifacts to Dockerhub
91+
working-directory: KubeArmor/dist
92+
run: |
93+
oras push docker.io/kubearmor/kubearmor-systemd:${{ steps.vars.outputs.tag }}_linux-amd64 kubearmor_${{ steps.vars.outputs.tag }}_linux-amd64.tar.gz
94+
oras push docker.io/kubearmor/kubearmor-systemd:${{ steps.vars.outputs.tag }}_linux-arm64 kubearmor_${{ steps.vars.outputs.tag }}_linux-arm64.tar.gz

KubeArmor/.goreleaser.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ builds:
1111
env:
1212
- CGO_ENABLED=0
1313

14+
release:
15+
replace_existing_artifacts: true
16+
mode: replace
17+
make_latest: false
18+
1419
signs:
1520
- cmd: cosign
1621
certificate: '${artifact}.cert'
@@ -22,7 +27,7 @@ signs:
2227
- --yes
2328
artifacts: all
2429
output: true
25-
30+
2631
archives:
2732
- id: "kubearmor"
2833
builds:

KubeArmor/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ require (
4545
k8s.io/apimachinery v0.29.0
4646
k8s.io/client-go v0.29.0
4747
k8s.io/cri-api v0.29.0
48+
k8s.io/klog/v2 v2.120.0
4849
k8s.io/utils v0.0.0-20240310230437-4693a0247e57
4950
sigs.k8s.io/controller-runtime v0.15.3
5051
)
@@ -130,7 +131,6 @@ require (
130131
gotest.tools/v3 v3.4.0 // indirect
131132
k8s.io/apiextensions-apiserver v0.29.0 // indirect
132133
k8s.io/component-base v0.29.0 // indirect
133-
k8s.io/klog/v2 v2.120.0 // indirect
134134
k8s.io/kube-openapi v0.0.0-20240105020646-a37d4de58910 // indirect
135135
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
136136
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect

0 commit comments

Comments
 (0)