Add Makefile and make options configurable
Signed-off-by: James Munnelly <james@munnelly.eu>
This commit is contained in:
parent
8d973b09a6
commit
a598b0e126
20
Makefile
20
Makefile
@ -0,0 +1,20 @@
|
|||||||
|
IMAGE_NAME := "webhook"
|
||||||
|
IMAGE_TAG := "latest"
|
||||||
|
|
||||||
|
OUT := $(shell pwd)/_out
|
||||||
|
|
||||||
|
$(shell mkdir -p "$(OUT)")
|
||||||
|
|
||||||
|
verify:
|
||||||
|
go test -v .
|
||||||
|
|
||||||
|
build:
|
||||||
|
docker build -t "$(IMAGE_NAME):$(IMAGE_TAG)" .
|
||||||
|
|
||||||
|
.PHONY: rendered-manifest.yaml
|
||||||
|
rendered-manifest.yaml:
|
||||||
|
helm template \
|
||||||
|
--name example-webhook \
|
||||||
|
--set image.repository=$(IMAGE_NAME) \
|
||||||
|
--set image.tag=$(IMAGE_TAG) \
|
||||||
|
deploy/example-webhook > "$(OUT)/rendered-manifest.yaml"
|
@ -1,19 +0,0 @@
|
|||||||
1. Get the application URL by running these commands:
|
|
||||||
{{- if .Values.ingress.enabled }}
|
|
||||||
{{- range .Values.ingress.hosts }}
|
|
||||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }}
|
|
||||||
{{- end }}
|
|
||||||
{{- else if contains "NodePort" .Values.service.type }}
|
|
||||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "example-webhook.fullname" . }})
|
|
||||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
|
||||||
echo http://$NODE_IP:$NODE_PORT
|
|
||||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
|
||||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
|
||||||
You can watch the status of by running 'kubectl get svc -w {{ include "example-webhook.fullname" . }}'
|
|
||||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "example-webhook.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
|
||||||
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
|
||||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
|
||||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ include "example-webhook.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
|
||||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
|
||||||
kubectl port-forward $POD_NAME 8080:80
|
|
||||||
{{- end }}
|
|
@ -14,7 +14,7 @@ certManager:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
repository: mycompany/webhook-image
|
repository: mycompany/webhook-image
|
||||||
tag: stable
|
tag: latest
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
nameOverride: ""
|
nameOverride: ""
|
||||||
@ -24,19 +24,6 @@ service:
|
|||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
port: 443
|
port: 443
|
||||||
|
|
||||||
ingress:
|
|
||||||
enabled: false
|
|
||||||
annotations: {}
|
|
||||||
# kubernetes.io/ingress.class: nginx
|
|
||||||
# kubernetes.io/tls-acme: "true"
|
|
||||||
path: /
|
|
||||||
hosts:
|
|
||||||
- chart-example.local
|
|
||||||
tls: []
|
|
||||||
# - secretName: chart-example-tls
|
|
||||||
# hosts:
|
|
||||||
# - chart-example.local
|
|
||||||
|
|
||||||
resources: {}
|
resources: {}
|
||||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||||
# choice for the user. This also increases chances charts run on environments with little
|
# choice for the user. This also increases chances charts run on environments with little
|
||||||
|
7
main.go
7
main.go
@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
extapi "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
extapi "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||||
//"k8s.io/client-go/kubernetes"
|
//"k8s.io/client-go/kubernetes"
|
||||||
@ -12,9 +13,13 @@ import (
|
|||||||
"github.com/jetstack/cert-manager/pkg/acme/webhook/cmd"
|
"github.com/jetstack/cert-manager/pkg/acme/webhook/cmd"
|
||||||
)
|
)
|
||||||
|
|
||||||
const GroupName = "acme.mycompany.com"
|
var GroupName = os.Getenv("GROUP_NAME")
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
if GroupName == "" {
|
||||||
|
panic("GROUP_NAME must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
// This will register our custom DNS provider with the webhook serving
|
// This will register our custom DNS provider with the webhook serving
|
||||||
// library, making it available as an API under the provided GroupName.
|
// library, making it available as an API under the provided GroupName.
|
||||||
// You can register multiple DNS provider implementations with a single
|
// You can register multiple DNS provider implementations with a single
|
||||||
|
Loading…
Reference in New Issue
Block a user