Skip to content

Commit

Permalink
Feat: release v0.30.0 (#553)
Browse files Browse the repository at this point in the history
* feat: EXPERIMENTAL add kapp support on furyctl

* fix: tests and linting

* fix: tests for kapp

* feat: add has feature kapp

* fix: wrong function name on download.go

* fix: missing feature gate on validator.go for kapp

* fix: validator test, bump mock version to 1.29.0

* test: add kapp tool dependency test

* feat: do not try to download kapp if not in kfd.yaml

* fix: support kapp only if defined in kfd.yaml

* Add support for upcoming distribution versions

* feat: add basic on-premises upgrade paths

* fix: update fields to reflect new schema

* feat: add upgrade path for ingress v3

* Add support for upcoming distribution versions

* fix: update fields to reflect new schema

* chore: pin version v1.30.0-rc.0 for fury-distribution

* test: fix compatibility checks off-by-ones

* test: fix compatibility checks off-by-ones

* chore: pin version v1.30.0-rc.0 for fury-distribution

* lint: use concatenation instead of fmt.Sprintf

* feat: support upgrades 1.28.4-1.28.5 and 1.29.4-1.29.5

* feat: add all missing upgrade paths

* deps: use fury-distribution v1.30.0-rc.4

* deps: fix go mod

* deps: use fury-distribution v1.30.0-rc.6

* deps: use fury-distribution v1.30.0

* deps: use kubernetes client 1.30.7

* deps: sync go sum

* docs: add 0.30.0 to matrix

* docs: update comp matrix and readme

* tests: add missing versions

* docs: update comp matrix

---------

Co-authored-by: Manuel Romei <[email protected]>
Co-authored-by: Samuele Chiocca <[email protected]>
Co-authored-by: Simone Bruzzese <[email protected]>
  • Loading branch information
4 people authored Nov 28, 2024
1 parent 7eeaf3e commit a5657cf
Show file tree
Hide file tree
Showing 66 changed files with 1,514 additions and 125 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<p>The Swiss Army Knife<br/>for the Kubernetes Fury Distribution</p>

[![Build Status](https://ci.sighup.io/api/badges/sighupio/furyctl/status.svg?ref=refs/heads/main)](https://ci.sighup.io/sighupio/furyctl)
![Release](https://img.shields.io/badge/furyctl-v0.29.10-blue)
![Release](https://img.shields.io/badge/furyctl-v0.30.0-blue)
![Slack](https://img.shields.io/badge/slack-@kubernetes/fury-yellow.svg?logo=slack)
![License](https://img.shields.io/github/license/sighupio/furyctl)
[![Go Report Card](https://goreportcard.com/badge/github.com/sighupio/furyctl)](https://goreportcard.com/report/github.com/sighupio/furyctl)
Expand Down Expand Up @@ -69,7 +69,7 @@ $ furyctl version
...
goVersion: go1.23
osArch: amd64
version: 0.29.10
version: 0.30.0
```

### Installing from source
Expand Down Expand Up @@ -117,7 +117,7 @@ Once you've ensured the above dependencies are installed, you can proceed with t
gitCommit: 217cdcc8bf075fccfdb11c41ccc6bb317ec704bc
goVersion: go1.23.2
osArch: arm64
version: 0.29.10
version: 0.30.0
```
5. (optional) move the binary to your `bin` folder, in macOS:
Expand Down Expand Up @@ -167,7 +167,7 @@ Additionally, the schema of the file is versioned with the `apiVersion` field, s
To scaffold a configuration file to use as a starter, you use the following command:
```bash
furyctl create config --version v1.29.4 --kind "EKSCluster"
furyctl create config --version v1.30.0 --kind "EKSCluster"
```
> 💡 **TIP**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ kubectlbin="{{ .paths.kubectl }}"
$kubectlbin delete --ignore-not-found=true validatingwebhookconfiguration gatekeeper-validating-webhook-configuration
{{- end }}


# Always remove cerebro, it was removed

$kubectlbin delete --ignore-not-found=true deployment cerebro -n logging
Expand Down
36 changes: 36 additions & 0 deletions configs/upgrades/ekscluster/1.27.9-1.28.5/post-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Delete old resources after Ingress migration to v3
{{- if eq .spec.distribution.modules.ingress.nginx.type "single" }}
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-metrics -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-selfsign -n ingress-nginx
$kubectlbin delete --ignore-not-found=true prometheusrule.monitoring.coreos.com ingress-nginx-k8s-rules -n ingress-nginx
$kubectlbin delete --ignore-not-found=true servicemonitor.monitoring.coreos.com ingress-nginx -n ingress-nginx
{{- end }}

{{- if eq .spec.distribution.modules.ingress.nginx.type "dual" }}
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-metrics -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-selfsign -n ingress-nginx
$kubectlbin delete --ignore-not-found=true prometheusrule.monitoring.coreos.com ingress-nginx-k8s-rules -n ingress-nginx
$kubectlbin delete --ignore-not-found=true servicemonitor.monitoring.coreos.com ingress-nginx -n ingress-nginx
{{- end }}
10 changes: 10 additions & 0 deletions configs/upgrades/ekscluster/1.27.9-1.28.5/pre-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Remove some validating webhooks during the upgrade
{{- if eq .spec.distribution.modules.policy.type "gatekeeper" }}
$kubectlbin delete --ignore-not-found=true validatingwebhookconfiguration gatekeeper-validating-webhook-configuration
{{- end }}
36 changes: 36 additions & 0 deletions configs/upgrades/ekscluster/1.28.4-1.28.5/post-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Delete old resources after Ingress migration to v3
{{- if eq .spec.distribution.modules.ingress.nginx.type "single" }}
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-metrics -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-selfsign -n ingress-nginx
$kubectlbin delete --ignore-not-found=true prometheusrule.monitoring.coreos.com ingress-nginx-k8s-rules -n ingress-nginx
$kubectlbin delete --ignore-not-found=true servicemonitor.monitoring.coreos.com ingress-nginx -n ingress-nginx
{{- end }}

{{- if eq .spec.distribution.modules.ingress.nginx.type "dual" }}
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-metrics -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-selfsign -n ingress-nginx
$kubectlbin delete --ignore-not-found=true prometheusrule.monitoring.coreos.com ingress-nginx-k8s-rules -n ingress-nginx
$kubectlbin delete --ignore-not-found=true servicemonitor.monitoring.coreos.com ingress-nginx -n ingress-nginx
{{- end }}
10 changes: 10 additions & 0 deletions configs/upgrades/ekscluster/1.28.4-1.28.5/pre-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Remove some validating webhooks during the upgrade
{{- if eq .spec.distribution.modules.policy.type "gatekeeper" }}
$kubectlbin delete --ignore-not-found=true validatingwebhookconfiguration gatekeeper-validating-webhook-configuration
{{- end }}
36 changes: 36 additions & 0 deletions configs/upgrades/ekscluster/1.28.4-1.29.5/post-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Delete old resources after Ingress migration to v3
{{- if eq .spec.distribution.modules.ingress.nginx.type "single" }}
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-metrics -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-selfsign -n ingress-nginx
$kubectlbin delete --ignore-not-found=true prometheusrule.monitoring.coreos.com ingress-nginx-k8s-rules -n ingress-nginx
$kubectlbin delete --ignore-not-found=true servicemonitor.monitoring.coreos.com ingress-nginx -n ingress-nginx
{{- end }}

{{- if eq .spec.distribution.modules.ingress.nginx.type "dual" }}
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-metrics -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-selfsign -n ingress-nginx
$kubectlbin delete --ignore-not-found=true prometheusrule.monitoring.coreos.com ingress-nginx-k8s-rules -n ingress-nginx
$kubectlbin delete --ignore-not-found=true servicemonitor.monitoring.coreos.com ingress-nginx -n ingress-nginx
{{- end }}
10 changes: 10 additions & 0 deletions configs/upgrades/ekscluster/1.28.4-1.29.5/pre-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Remove some validating webhooks during the upgrade
{{- if eq .spec.distribution.modules.policy.type "gatekeeper" }}
$kubectlbin delete --ignore-not-found=true validatingwebhookconfiguration gatekeeper-validating-webhook-configuration
{{- end }}
10 changes: 10 additions & 0 deletions configs/upgrades/ekscluster/1.28.5-1.29.5/pre-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Remove some validating webhooks during the upgrade
{{- if eq .spec.distribution.modules.policy.type "gatekeeper" }}
$kubectlbin delete --ignore-not-found=true validatingwebhookconfiguration gatekeeper-validating-webhook-configuration
{{- end }}
36 changes: 36 additions & 0 deletions configs/upgrades/ekscluster/1.29.4-1.29.5/post-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Delete old resources after Ingress migration to v3
{{- if eq .spec.distribution.modules.ingress.nginx.type "single" }}
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-metrics -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-selfsign -n ingress-nginx
$kubectlbin delete --ignore-not-found=true prometheusrule.monitoring.coreos.com ingress-nginx-k8s-rules -n ingress-nginx
$kubectlbin delete --ignore-not-found=true servicemonitor.monitoring.coreos.com ingress-nginx -n ingress-nginx
{{- end }}

{{- if eq .spec.distribution.modules.ingress.nginx.type "dual" }}
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-metrics -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-selfsign -n ingress-nginx
$kubectlbin delete --ignore-not-found=true prometheusrule.monitoring.coreos.com ingress-nginx-k8s-rules -n ingress-nginx
$kubectlbin delete --ignore-not-found=true servicemonitor.monitoring.coreos.com ingress-nginx -n ingress-nginx
{{- end }}
10 changes: 10 additions & 0 deletions configs/upgrades/ekscluster/1.29.4-1.29.5/pre-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Remove some validating webhooks during the upgrade
{{- if eq .spec.distribution.modules.policy.type "gatekeeper" }}
$kubectlbin delete --ignore-not-found=true validatingwebhookconfiguration gatekeeper-validating-webhook-configuration
{{- end }}
36 changes: 36 additions & 0 deletions configs/upgrades/ekscluster/1.29.4-1.30.0/post-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Delete old resources after Ingress migration to v3
{{- if eq .spec.distribution.modules.ingress.nginx.type "single" }}
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-metrics -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-selfsign -n ingress-nginx
$kubectlbin delete --ignore-not-found=true prometheusrule.monitoring.coreos.com ingress-nginx-k8s-rules -n ingress-nginx
$kubectlbin delete --ignore-not-found=true servicemonitor.monitoring.coreos.com ingress-nginx -n ingress-nginx
{{- end }}

{{- if eq .spec.distribution.modules.ingress.nginx.type "dual" }}
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true configmap nginx-configuration-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-admission-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true service ingress-nginx-metrics -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true daemonset.apps nginx-ingress-controller-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls-external -n ingress-nginx
$kubectlbin delete --ignore-not-found=true certificate.cert-manager.io ingress-nginx-tls-internal -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-ca -n ingress-nginx
$kubectlbin delete --ignore-not-found=true issuer.cert-manager.io ingress-nginx-selfsign -n ingress-nginx
$kubectlbin delete --ignore-not-found=true prometheusrule.monitoring.coreos.com ingress-nginx-k8s-rules -n ingress-nginx
$kubectlbin delete --ignore-not-found=true servicemonitor.monitoring.coreos.com ingress-nginx -n ingress-nginx
{{- end }}
10 changes: 10 additions & 0 deletions configs/upgrades/ekscluster/1.29.4-1.30.0/pre-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Remove some validating webhooks during the upgrade
{{- if eq .spec.distribution.modules.policy.type "gatekeeper" }}
$kubectlbin delete --ignore-not-found=true validatingwebhookconfiguration gatekeeper-validating-webhook-configuration
{{- end }}
10 changes: 10 additions & 0 deletions configs/upgrades/ekscluster/1.29.5-1.30.0/pre-distribution.sh.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env sh

set -e

kubectlbin="{{ .paths.kubectl }}"

# Remove some validating webhooks during the upgrade
{{- if eq .spec.distribution.modules.policy.type "gatekeeper" }}
$kubectlbin delete --ignore-not-found=true validatingwebhookconfiguration gatekeeper-validating-webhook-configuration
{{- end }}
Loading

0 comments on commit a5657cf

Please sign in to comment.