-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: updated to current state of extension development
- liveness/readiness probes - helm-chart - updated dependencies - linting / auditing in ci
- Loading branch information
Showing
25 changed files
with
810 additions
and
164 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,10 +11,49 @@ on: | |
- 'main' | ||
|
||
env: | ||
REGISTRY: ghcr.io | ||
IMAGE_NAME: ${{ github.repository }} | ||
|
||
jobs: | ||
build: | ||
audit: | ||
name: Audit | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- uses: actions/setup-go@v4 | ||
with: | ||
go-version: '^1.20.0' | ||
|
||
- name: Audit | ||
run: | | ||
go mod download | ||
make audit | ||
- name: Check Sonar Token | ||
id: check-sonar | ||
shell: bash | ||
run: | | ||
if [ "${{ secrets.SONAR_TOKEN }}" != '' ]; then | ||
echo "available=true" >> $GITHUB_OUTPUT; | ||
else | ||
echo "available=false" >> $GITHUB_OUTPUT; | ||
fi | ||
- name: SonarCloud Scan | ||
if: ${{ steps.check-sonar.outputs.available == 'true' }} | ||
uses: SonarSource/sonarcloud-github-action@master | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | ||
|
||
build-images: | ||
name: Build Docker Images | ||
needs: | ||
- audit | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
|
@@ -23,44 +62,128 @@ jobs: | |
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v2 | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
|
||
- uses: actions/setup-go@v3 | ||
with: | ||
go-version: '^1.18.0' | ||
|
||
- name: Execute go tests | ||
run: | | ||
go mod download | ||
go test ./... | ||
- name: Log in to the container registry | ||
if: github.event_name != 'pull_request' | ||
uses: docker/login-action@v2 | ||
with: | ||
username: ${{ secrets.DOCKER_USERNAME }} | ||
password: ${{ secrets.DOCKER_PASSWORD }} | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Extract metadata (tags, labels) for Docker | ||
id: meta | ||
uses: docker/metadata-action@v4 | ||
with: | ||
images: steadybit/extension-prometheus | ||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | ||
|
||
- name: Build and push Docker image | ||
uses: docker/build-push-action@v3 | ||
uses: docker/build-push-action@v4 | ||
with: | ||
context: ./ | ||
push: ${{ github.event_name != 'pull_request' }} | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} | ||
platforms: linux/amd64,linux/arm64 | ||
build-args: | | ||
NAME=${{ env.IMAGE_NAME }} | ||
NAME=${{ github.repository }} | ||
VERSION=${{ steps.meta.outputs.version }} | ||
REVISION=${{ github.sha }} | ||
test-helm-charts: | ||
name: "Test Helm Charts" | ||
runs-on: ubuntu-latest | ||
needs: | ||
- build-images | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set up Helm | ||
uses: azure/setup-helm@v3 | ||
with: | ||
version: v3.9.0 | ||
|
||
- name: Add dependency chart repos | ||
run: | | ||
helm repo add steadybit https://steadybit.github.io/helm-charts | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.10" | ||
|
||
- name: Add unit testing plugin | ||
run: | | ||
helm plugin install https://github.com/quintush/helm-unittest | ||
- name: Run unit tests | ||
run: make charttesting | ||
|
||
- name: Set up chart-testing | ||
uses: helm/[email protected] | ||
|
||
- name: Run chart-testing (lint) | ||
run: ct lint --config chartTesting.yaml | ||
|
||
- name: Run chart-testing (list-changed) | ||
id: list-changed | ||
run: | | ||
changed=$(ct list-changed --config chartTesting.yaml) | ||
if [[ -n "$changed" ]]; then | ||
echo "::set-output name=changed::true" | ||
fi | ||
- name: Create kind cluster | ||
uses: helm/[email protected] | ||
if: steps.list-changed.outputs.changed == 'true' | ||
|
||
- name: Run chart-testing (install) | ||
run: ct install --config chartTesting.yaml | ||
|
||
|
||
release-helm-chart: | ||
name: "Release Helm Chart" | ||
runs-on: ubuntu-latest | ||
needs: | ||
- test-helm-charts | ||
if: github.ref == 'refs/heads/main' | ||
|
||
permissions: | ||
contents: write | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Configure Git | ||
run: | | ||
git config user.name "$GITHUB_ACTOR" | ||
git config user.email "[email protected]" | ||
- name: Install Helm | ||
uses: azure/setup-helm@v3 | ||
with: | ||
version: v3.8.1 | ||
|
||
- name: Add dependency chart repos | ||
run: | | ||
helm repo add steadybit https://steadybit.github.io/helm-charts | ||
- name: Run chart-releaser | ||
uses: helm/[email protected] | ||
with: | ||
charts_dir: charts | ||
env: | ||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
/extension-prometheus | ||
extension-prometheus.iml | ||
/coverage.out |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# ==================================================================================== # | ||
# HELPERS | ||
# ==================================================================================== # | ||
|
||
## help: print this help message | ||
.PHONY: help | ||
help: | ||
@echo 'Usage:' | ||
@sed -n 's/^##//p' ${MAKEFILE_LIST} | column -t -s ':' | sed -e 's/^/ /' | ||
|
||
|
||
# ==================================================================================== # | ||
# QUALITY CONTROL | ||
# ==================================================================================== # | ||
|
||
## tidy: format code and tidy modfile | ||
.PHONY: tidy | ||
tidy: | ||
go fmt ./... | ||
go mod tidy -v | ||
|
||
## audit: run quality control checks | ||
.PHONY: audit | ||
audit: | ||
go vet ./... | ||
go run honnef.co/go/tools/cmd/staticcheck@latest -checks=all,-ST1000,-U1000,-ST1003 ./... | ||
go test -race -vet=off -coverprofile=coverage.out ./... | ||
go mod verify | ||
|
||
## charttesting: Run Helm chart unit tests | ||
.PHONY: charttesting | ||
charttesting: | ||
for dir in charts/steadybit-extension-*; do \ | ||
echo "Unit Testing $$dir"; \ | ||
helm unittest $$dir; \ | ||
done | ||
|
||
## chartlint: Lint charts | ||
.PHONY: chartlint | ||
chartlint: | ||
ct lint --config chartTesting.yaml | ||
|
||
# ==================================================================================== # | ||
# BUILD | ||
# ==================================================================================== # | ||
|
||
## build: build the extension | ||
.PHONY: build | ||
build: | ||
go mod verify | ||
go build -o=./extension | ||
|
||
## run: run the extension | ||
.PHONY: run | ||
run: tidy build | ||
./extension | ||
|
||
## container: build the container image | ||
.PHONY: container | ||
container: | ||
docker build -t extension-prometheus:latest . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# See https://github.com/helm/chart-testing#configuration | ||
remote: origin | ||
target-branch: main | ||
chart-dirs: | ||
- charts | ||
chart-repos: | ||
- steadybit=https://steadybit.github.io/helm-charts | ||
helm-extra-args: --timeout 600s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Patterns to ignore when building packages. | ||
# This supports shell glob matching, relative path matching, and | ||
# negation (prefixed with !). Only one pattern per line. | ||
.DS_Store | ||
# Common VCS dirs | ||
.git/ | ||
.gitignore | ||
.bzr/ | ||
.bzrignore | ||
.hg/ | ||
.hgignore | ||
.svn/ | ||
# Common backup files | ||
*.swp | ||
*.bak | ||
*.tmp | ||
*.orig | ||
*~ | ||
# Various IDEs | ||
.project | ||
.idea/ | ||
*.tmproj | ||
.vscode/ | ||
tests/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
dependencies: | ||
- name: extensionlib | ||
repository: https://steadybit.github.io/helm-charts | ||
version: 1.1.0 | ||
digest: sha256:50f7816a312812729400e1ead5cfe1a89de8aabcc66ff2cc6eac262d0952912b | ||
generated: "2023-04-20T15:56:47.192588+02:00" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
apiVersion: v2 | ||
name: steadybit-extension-prometheus | ||
description: Steadybit Prometheus extension Helm chart for Kubernetes. | ||
version: 1.4.3 | ||
appVersion: latest | ||
home: https://www.steadybit.com/ | ||
icon: https://steadybit-website-assets.s3.amazonaws.com/logo-symbol-transparent.png | ||
maintainers: | ||
- email: [email protected] | ||
name: bripkens | ||
sources: | ||
- https://github.com/steadybit/extension-prometheus | ||
annotations: | ||
artifacthub.io/images: | | ||
- name: logo | ||
image: https://steadybit-website-assets.s3.amazonaws.com/logo-symbol-transparent.png | ||
artifacthub.io/links: |- | ||
- name: Steadybit website | ||
url: https://www.steadybit.com | ||
- name: Steadybit reliability hub | ||
url: https://hub.steadybit.com | ||
dependencies: | ||
- name: extensionlib | ||
version: 1.1.0 | ||
repository: https://steadybit.github.io/helm-charts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
For documentation, please refer to the repository's [main documentation](../../README.md). |
Binary file not shown.
Oops, something went wrong.