Skip to content

Commit 9b49a60

Browse files
authored
Add Support for Ingress pathType and ingressClassName. Bump Puppetserver and PuppetDB Versions to Latest. Allow KubeVersion To Be Overridden. (#97)
* add support for ingress pathtype. bump puppetserver and puppetdb versions. * Update CODEOWNERS * rm any leftover * add optional ingress class name * Update puppetboard-ingress.yaml * compilers: add optional ingress class name. fix api version used. * masters: add optional ingress class name. fix api version used. * further ingress tweaks. * further ingress tweaks. * further ingress tweaks. * Update CHANGELOG.md * fix release date * Update CODEOWNERS * Update puppetboard-ingress.yaml * Update puppetserver-ingress-compilers.yaml * Update puppetserver-ingress-masters.yaml * Update CHANGELOG.md
1 parent 4d4e332 commit 9b49a60

8 files changed

Lines changed: 95 additions & 15 deletions

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ numbering uses [semantic versioning](http://semver.org).
55

66
NOTE: The change log until version `v0.2.4` is auto-generated.
77

8+
## [v5.12.0](https://github.com/puppetlabs/puppetserver-helm-chart/tree/v5.12.0) (2021-09-21)
9+
10+
- feat: add support for Ingress `pathType` and `ingressClassName`.
11+
- feat: bump Puppetserver to `v7.3.0`.
12+
- feat: bump PuppetDB to `v7.5.2`.
13+
814
## [v5.11.0](https://github.com/puppetlabs/puppetserver-helm-chart/tree/v5.11.0) (2021-08-30)
915

1016
- fix: set securityContext for puppetboard container

CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# This repository is owned by Puppet's Platform Services team and community partners
22

3-
* @puppetlabs/platform-services @Xtigyro @raphink
3+
* @puppetlabs/platform-services @Xtigyro @slconley @raphink

Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: v1
22
name: puppetserver
3-
version: 5.11.0
4-
appVersion: 7.1.2
3+
version: 5.12.0
4+
appVersion: 7.3.0
55
description: Puppet automates the delivery and operation of software.
66
keywords: ["puppet", "puppetserver", "automation", "iac", "infrastructure", "cm", "ci", "cd"]
77
home: https://puppet.com/

templates/_helpers.tpl

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,33 @@ Puppet Compilers' port.
187187
{{- end -}}
188188
{{- end -}}
189189
190+
{{/* Allow KubeVersion to be overridden. */}}
191+
{{- define "puppetserver.kubeVersion" -}}
192+
{{- default .Capabilities.KubeVersion.Version .Values.kubeVersionOverride -}}
193+
{{- end -}}
194+
195+
{{/* Get Ingress API Version */}}
196+
{{- define "puppetserver.ingress.apiVersion" -}}
197+
{{- if and (.Capabilities.APIVersions.Has "networking.k8s.io/v1") (semverCompare ">= 1.19-0" (include "puppetserver.kubeVersion" .)) -}}
198+
{{- print "networking.k8s.io/v1" -}}
199+
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
200+
{{- print "networking.k8s.io/v1beta1" -}}
201+
{{- else -}}
202+
{{- print "extensions/v1beta1" -}}
203+
{{- end -}}
204+
{{- end -}}
205+
206+
{{/* Check Ingress stability */}}
207+
{{- define "puppetserver.ingress.isStable" -}}
208+
{{- eq (include "puppetserver.ingress.apiVersion" .) "networking.k8s.io/v1" -}}
209+
{{- end -}}
210+
211+
{{/* Check Ingress supports pathType */}}
212+
{{/* pathType was added to networking.k8s.io/v1beta1 in Kubernetes 1.18 */}}
213+
{{- define "puppetserver.ingress.supportsPathType" -}}
214+
{{- or (eq (include "puppetserver.ingress.isStable" .) "true") (and (eq (include "puppetserver.ingress.apiVersion" .) "networking.k8s.io/v1beta1") (semverCompare ">= 1.18-0" (include "puppetserver.kubeVersion" .))) -}}
215+
{{- end -}}
216+
190217
{{/*
191218
Set's the affinity for pod placement
192219
when running with multiple Puppet compilers.

templates/puppetboard-ingress.yaml

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
{{- if .Values.puppetboard.enabled }}
2-
{{- if .Values.puppetboard.ingress.enabled }}
1+
{{- if and .Values.puppetboard.enabled .Values.puppetboard.ingress.enabled }}
32
{{- $releaseName := .Release.Name -}}
43
{{- $serviceName := "puppetdb" }}
54
{{- $servicePort := .Values.puppetboard.port -}}
6-
apiVersion: networking.k8s.io/v1
5+
{{- $pathType := .Values.puppetboard.ingress.pathType | default "ImplementationSpecific" -}}
6+
{{- $apiIsStable := eq (include "puppetserver.ingress.isStable" .) "true" -}}
7+
{{- $ingressSupportsPathType := eq (include "puppetserver.ingress.supportsPathType" .) "true" -}}
8+
apiVersion: {{ include "puppetserver.ingress.apiVersion" . }}
79
kind: Ingress
810
metadata:
911
{{- if .Values.puppetboard.ingress.annotations }}
@@ -17,23 +19,34 @@ metadata:
1719
{{- end }}
1820
name: puppetboard
1921
spec:
22+
{{- if $apiIsStable }}
23+
{{- if .Values.puppetboard.ingress.ingressClassName }}
24+
ingressClassName: {{ .Values.puppetboard.ingress.ingressClassName }}
25+
{{- end }}
26+
{{- end }}
2027
rules:
2128
{{- range .Values.puppetboard.ingress.hosts }}
2229
{{- $url := splitList "/" . }}
2330
- host: {{ first $url }}
2431
http:
2532
paths:
2633
- path: /{{ rest $url | join "/" }}
27-
pathType: Prefix
34+
{{- if and $pathType $ingressSupportsPathType }}
35+
pathType: {{ $pathType }}
36+
{{- end }}
2837
backend:
38+
{{- if $apiIsStable }}
2939
service:
3040
name: {{ $serviceName }}
3141
port:
3242
number: {{ $servicePort }}
43+
{{- else }}
44+
serviceName: {{ $serviceName }}
45+
servicePort: {{ $servicePort }}
46+
{{- end }}
3347
{{- end -}}
3448
{{- if .Values.puppetboard.ingress.tls }}
3549
tls:
3650
{{ toYaml .Values.puppetboard.ingress.tls | nindent 4 }}
3751
{{- end -}}
3852
{{- end -}}
39-
{{- end -}}

templates/puppetserver-ingress-compilers.yaml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
{{- if .Values.puppetserver.compilers.enabled }}
2-
{{- if .Values.puppetserver.compilers.ingress.enabled -}}
1+
{{- if and .Values.puppetserver.compilers.enabled .Values.puppetserver.compilers.ingress.enabled -}}
32
{{- $releaseName := .Release.Name -}}
43
{{- $serviceName := include "puppetserver.puppetserver-compilers.serviceName" . }}
54
{{- $servicePort := .Values.puppetserver.compilers.service.ports.puppetserver.port -}}
6-
apiVersion: networking.k8s.io/v1
5+
{{- $pathType := .Values.puppetserver.compilers.ingress.pathType | default "ImplementationSpecific" -}}
6+
{{- $apiIsStable := eq (include "puppetserver.ingress.isStable" .) "true" -}}
7+
{{- $ingressSupportsPathType := eq (include "puppetserver.ingress.supportsPathType" .) "true" -}}
8+
apiVersion: {{ include "puppetserver.ingress.apiVersion" . }}
79
kind: Ingress
810
metadata:
911
{{- if .Values.puppetserver.compilers.ingress.annotations }}
@@ -17,22 +19,34 @@ metadata:
1719
{{- end }}
1820
name: {{ template "puppetserver.fullname" . }}-compilers
1921
spec:
22+
{{- if $apiIsStable }}
23+
{{- if .Values.puppetserver.compilers.ingress.ingressClassName }}
24+
ingressClassName: {{ .Values.puppetserver.compilers.ingress.ingressClassName }}
25+
{{- end }}
26+
{{- end }}
2027
rules:
2128
{{- range .Values.puppetserver.compilers.ingress.hosts }}
2229
{{- $url := splitList "/" . }}
2330
- host: {{ first $url }}
2431
http:
2532
paths:
2633
- path: /{{ rest $url | join "/" }}
34+
{{- if and $pathType $ingressSupportsPathType }}
35+
pathType: {{ $pathType }}
36+
{{- end }}
2737
backend:
38+
{{- if $apiIsStable }}
2839
service:
2940
name: {{ $serviceName }}
3041
port:
3142
number: {{ $servicePort }}
43+
{{- else }}
44+
serviceName: {{ $serviceName }}
45+
servicePort: {{ $servicePort }}
46+
{{- end }}
3247
{{- end -}}
3348
{{- if .Values.puppetserver.compilers.ingress.tls }}
3449
tls:
3550
{{ toYaml .Values.puppetserver.compilers.ingress.tls | nindent 4 }}
3651
{{- end -}}
3752
{{- end -}}
38-
{{- end -}}

templates/puppetserver-ingress-masters.yaml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22
{{- $releaseName := .Release.Name -}}
33
{{- $serviceName := include "puppetserver.puppetserver-masters.serviceName" . }}
44
{{- $servicePort := .Values.puppetserver.masters.service.ports.puppetserver.port -}}
5-
apiVersion: networking.k8s.io/v1
5+
{{- $pathType := .Values.puppetserver.masters.ingress.pathType | default "ImplementationSpecific" -}}
6+
{{- $apiIsStable := eq (include "puppetserver.ingress.isStable" .) "true" -}}
7+
{{- $ingressSupportsPathType := eq (include "puppetserver.ingress.supportsPathType" .) "true" -}}
8+
apiVersion: {{ include "puppetserver.ingress.apiVersion" . }}
69
kind: Ingress
710
metadata:
811
{{- if .Values.puppetserver.masters.ingress.annotations }}
@@ -16,18 +19,31 @@ metadata:
1619
{{- end }}
1720
name: {{ template "puppetserver.fullname" . }}-masters
1821
spec:
22+
{{- if $apiIsStable }}
23+
{{- if .Values.puppetserver.masters.ingress.ingressClassName }}
24+
ingressClassName: {{ .Values.puppetserver.masters.ingress.ingressClassName }}
25+
{{- end }}
26+
{{- end }}
1927
rules:
2028
{{- range .Values.puppetserver.masters.ingress.hosts }}
2129
{{- $url := splitList "/" . }}
2230
- host: {{ first $url }}
2331
http:
2432
paths:
2533
- path: /{{ rest $url | join "/" }}
34+
{{- if and $pathType $ingressSupportsPathType }}
35+
pathType: {{ $pathType }}
36+
{{- end }}
2637
backend:
38+
{{- if $apiIsStable }}
2739
service:
2840
name: {{ $serviceName }}
2941
port:
3042
number: {{ $servicePort }}
43+
{{- else }}
44+
serviceName: {{ $serviceName }}
45+
servicePort: {{ $servicePort }}
46+
{{- end }}
3147
{{- end -}}
3248
{{- if .Values.puppetserver.masters.ingress.tls }}
3349
tls:

values.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
puppetserver:
88
name: puppetserver
99
image: puppet/puppetserver
10-
tag: 7.1.2
10+
tag: 7.3.0
1111
pullPolicy: IfNotPresent
1212
## Mandatory Deployment of Puppet Server Master/s
1313
##
@@ -378,7 +378,7 @@ r10k:
378378
puppetdb:
379379
name: puppetdb
380380
image: puppet/puppetdb
381-
tag: 7.2.0
381+
tag: 7.5.2
382382
pullPolicy: IfNotPresent
383383
resources: {}
384384
# requests:
@@ -595,6 +595,10 @@ global:
595595
##
596596
nameOverride: ""
597597

598+
## Allow KubeVersion to be overridden.
599+
##
600+
kubeVersionOverride: ""
601+
598602
## Pod Configuration
599603
##
600604
## Node labels for pod assignment

0 commit comments

Comments
 (0)