Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@ jobs:
with:
fetch-depth: 0 # It is required for GoReleaser to work properly

- name: Install modules
run: go mod tidy

- name: check git status
run: git --no-pager diff --exit-code
# Set up BuildKit Docker container builder to be able to build
# multi-platform images and export cache
# https://github.com/docker/setup-buildx-action
Expand Down
60 changes: 45 additions & 15 deletions .github/workflows/helm.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Release Helm Chart and Carvel package
name: Release Helm Chart

on:
push:
Expand All @@ -9,28 +9,58 @@ on:
- main

jobs:
release:
chart-release:
runs-on: ubuntu-latest
env:
CHART_BASE_DIR: helm
GH_PAGES_BRANCH: gh-pages
permissions:
contents: write
pages: write
steps:
- name: Checkout
uses: actions/checkout@v3.1.0
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Configure Git
- name: Set ENVs
id: env-setup
run: |
echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"

- name: Install Helm
uses: azure/[email protected]
with:
version: v3.4.2
- name: Package Charts
run: |
# Package charts
mkdir -p charts/.ci-build
echo "Setting chart version to ${{ steps.env-setup.outputs.CHART_VERSION }}"

for DIR in $CHART_BASE_DIR/*; do
# Check if Chart.yaml exists in this directory
if [ -f "${DIR}/Chart.yaml" ]; then
echo "Packaging ${DIR}"
helm dependency update $DIR
helm lint $DIR
helm package $DIR --destination charts/.ci-build
fi
done
git fetch --all

- name: Run chart-releaser
uses: helm/[email protected]
- name: Upload chart artifacts
uses: actions/upload-artifact@v4
with:
charts_dir: helm
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
CR_RELEASE_NAME_TEMPLATE: "helm-v{{ .Version }}"
name: helm-charts-${{ github.ref_name }}
path: charts/.ci-build/*
retention-days: 30

- name: Publish to GH-Pages
id: ghpublish
run: |
git checkout $GH_PAGES_BRANCH --force
helm repo index charts/.ci-build/ --merge index.yaml --url ${{ github.server_url }}/${{github.repository}}/releases/download/${{ github.ref_name }}
cp charts/.ci-build/index.yaml index.yaml
echo "New index:" && cat index.yaml
git add index.yaml charts
git commit -a -m "bot: update pages index for helm charts"
git push origin $GH_PAGES_BRANCH
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,8 @@ docker-buildx: ## Build and push docker image for the manager for cross-platform

.PHONY: build-installer
build-installer: manifests ## Generate a consolidated YAML with CRDs and deployment.
mkdir -p dist
$(HELM) template --include-crds netbird-operator helm/netbird-operator > dist/install.yaml
mkdir -p manifests
$(HELM) template --include-crds netbird-operator helm/netbird-operator > manifests/install.yaml

##@ Deployment

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ This operator enables easily provisioning NetBird access on kubernetes clusters,

```sh
kubectl create namespace netbird
kubectl apply -n netbird -f https://github.com/netbirdio/kubernetes-operator/releases/latest/dist/install.yaml
kubectl apply -n netbird -f https://github.com/netbirdio/kubernetes-operator/releases/latest/manifests/install.yaml
```

**Using the Helm Chart**
Expand All @@ -38,7 +38,7 @@ helm show values netbirdio/netbird-operator
**Using install.yaml**

```sh
kubectl delete -n netbird -f https://github.com/netbirdio/kubernetes-operator/releases/latest/dist/install.yaml
kubectl delete -n netbird -f https://github.com/netbirdio/kubernetes-operator/releases/latest/manifests/install.yaml
kubectl delete namespace netbird
```

Expand Down
45 changes: 43 additions & 2 deletions dist/install.yaml → manifests/install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,41 @@ spec:
status:
description: NBSetupKeyStatus defines the observed state of NBSetupKey.
properties:
ready:
type: boolean
conditions:
items:
description: NBSetupKeyCondition defines a condition in NBSetupKey
status.
properties:
lastProbeTime:
description: Last time we probed the condition.
format: date-time
type: string
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: Human-readable message indicating details about
last transition.
type: string
reason:
description: Unique, one-word, CamelCase reason for the condition's
last transition.
type: string
status:
description: |-
Status is the status of the condition.
Can be True, False, Unknown.
type: string
type:
description: Type is the type of the condition.
type: string
required:
- status
- type
type: object
type: array
type: object
type: object
served: true
Expand Down Expand Up @@ -132,6 +165,14 @@ rules:
- get
- patch
- update
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
Expand Down
Loading