Skip to content

Commit

Permalink
feat(provisioning): added a iteratable ingress config
Browse files Browse the repository at this point in the history
  • Loading branch information
Mario-F committed Oct 26, 2021
1 parent 2ceded7 commit 1641111
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 1 deletion.
10 changes: 10 additions & 0 deletions helmfile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,13 @@ releases:
namespace: ingress-system
chart: ingress-nginx/ingress-nginx
version: 4.0.6

{{- range $name, $ingress := .Values | get "ingress-multi" dict }}
- name: {{ $name }}
installed: {{ default "false" $ingress.installed }}
namespace: ingress-system
chart: ingress-nginx/ingress-nginx
version: 4.0.6
values:
- provisioning/values/ingress-multi.yaml.gotmpl
{{- end }}
18 changes: 17 additions & 1 deletion provisioning/clusters/testcloud.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,20 @@ ingress-default:
serviceAnnotations:
load-balancer.hetzner.cloud/location: nbg1
load-balancer.hetzner.cloud/use-private-ip: true
load-balancer.hetzner.cloud/disable-private-ingress: true
load-balancer.hetzner.cloud/disable-private-ingress: true

# ingress-multi is used to specifiy an infinite number of different ingress
ingress-multi:

# Key is used for naming ingress release and should be uniq and not change
ingress-special:
installed: true
class: nginx-special
additional:
config:
client-body-buffer-size: 512k
proxy-buffer-size: 16k
serviceAnnotations:
load-balancer.hetzner.cloud/location: nbg1
load-balancer.hetzner.cloud/use-private-ip: true
load-balancer.hetzner.cloud/disable-private-ingress: true
22 changes: 22 additions & 0 deletions provisioning/values/ingress-multi.yaml.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Values: https://github.com/kubernetes/ingress-nginx/tree/master/charts/ingress-nginx
---
{{- $ingInstance := .Values | get (printf "ingress-multi.%s" .Release.Name) }}
{{- $prometheusMonitoring := .Values | get "global-config.prometheus.enabled" false }}
{{- $addServiceAnnotations := $ingInstance | get "additional.serviceAnnotations" dict }}
{{- $addConfig := $ingInstance | get "additional.config" dict }}

controller:
ingressClassResource:
name: {{ $ingInstance.class }}
default: false
replicaCount: 2
service:
type: LoadBalancer
annotations: {{ $addServiceAnnotations | toYaml | nindent 6 }}

config: {{ $addConfig | toYaml | nindent 4 }}

metrics:
enabled: {{ $prometheusMonitoring }}
serviceMonitor:
enabled: {{ $prometheusMonitoring }}

0 comments on commit 1641111

Please sign in to comment.