Skip to content

Commit 7d19557

Browse files
authored
[deprecated/cert-manager] Upgrade to GA (#272)
1 parent ae18af1 commit 7d19557

File tree

5 files changed

+90
-70
lines changed

5 files changed

+90
-70
lines changed

deprecated/cert-manager.yaml

Lines changed: 41 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ repositories:
44
url: "https://charts.jetstack.io"
55
# Kubernetes incubator repo of helm charts
66
- name: "kubernetes-incubator"
7-
url: "https://kubernetes-charts-incubator.storage.googleapis.com"
7+
url: "https://charts.helm.sh/incubator"
88

99
releases:
1010

@@ -16,9 +16,9 @@ releases:
1616

1717
#
1818
# References:
19-
# - https://github.com/jetstack/cert-manager/blob/v0.9.0/deploy/charts/cert-manager/values.yaml
19+
# - https://github.com/jetstack/cert-manager/blob/v1.0.4/deploy/charts/cert-manager/values.yaml
2020
# Instructions for installing and testing correct install are at
21-
# - https://docs.cert-manager.io/en/release-0.9/getting-started/install/kubernetes.html
21+
# - https://cert-manager.io/docs/installation/kubernetes/#installing-with-helm
2222
#
2323
- name: "cert-manager"
2424
namespace: "cert-manager"
@@ -30,31 +30,30 @@ releases:
3030
vendor: "jetstack"
3131
default: "false"
3232
chart: "jetstack/cert-manager"
33-
version: "v0.9.0"
33+
version: "{{ env "CERT_MANAGER_CHART_VERSION" | default "v1.0.4" }}"
3434
wait: true
3535
atomic: true
3636
cleanupOnFail: true
37+
createNamespace: true
3738
installed: {{ env "CERT_MANAGER_INSTALLED" | default "true" }}
3839
hooks:
39-
# This hoook adds the CRDs
40-
- events: ["presync"]
41-
showlogs: true
42-
command: "/bin/sh"
43-
args: ["-c", "kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.9/deploy/manifests/00-crds.yaml"]
44-
# This hook adds the annotation that keeps the webhook from preventing its own installation
45-
- events: ["presync"]
46-
showlogs: true
47-
command: "/bin/sh"
48-
args:
49-
- "-c"
50-
- >-
51-
kubectl get namespace "{{`{{ .Release.Namespace }}`}}" >/dev/null 2>&1 || kubectl create namespace "{{`{{ .Release.Namespace }}`}}";
52-
kubectl label --overwrite namespace "{{`{{ .Release.Namespace }}`}}" "certmanager.k8s.io/disable-validation=true" ;
53-
[[ "{{`{{ .Release.Namespace }}`}}" = "cert-manager" ]] && [[ -n "${CERT_MANAGER_IAM_ROLE}" ]]
54-
&& kubectl annotate namespace "{{`{{ .Release.Namespace }}`}}" "iam.amazonaws.com/permitted=${CERT_MANAGER_IAM_ROLE}"
55-
|| echo + Not annotating namespace "{{`{{ .Release.Namespace }}`}}" with "iam.amazonaws.com/permitted=${CERT_MANAGER_IAM_ROLE}"
40+
- events: ["presync"]
41+
showlogs: true
42+
command: "/bin/sh"
43+
args:
44+
- "-c"
45+
- >-
46+
[[ "{{`{{ .Release.Namespace }}`}}" = "cert-manager" ]] && [[ -n "${CERT_MANAGER_IAM_ROLE}" ]]
47+
&& kubectl annotate namespace "{{`{{ .Release.Namespace }}`}}" "iam.amazonaws.com/permitted=${CERT_MANAGER_IAM_ROLE}"
48+
|| echo + Not annotating namespace "{{`{{ .Release.Namespace }}`}}" with "iam.amazonaws.com/permitted=${CERT_MANAGER_IAM_ROLE}"
49+
- events: ["postsync"]
50+
# Give cert-manager time to initialize itself
51+
showlogs: true
52+
command: "/bin/sleep"
53+
args: ["15"]
5654
values:
5755
- fullnameOverride: cert-manager
56+
installCRDs: true
5857
rbac:
5958
### Optional: RBAC_ENABLED;
6059
create: {{ env "RBAC_ENABLED" | default "false" }}
@@ -67,20 +66,20 @@ releases:
6766
# defaultIssuerKind: ""
6867
# defaultACMEChallengeType: ""
6968
# defaultACMEDNS01ChallengeProvider: ""
70-
{{ if env "CERT_MANAGER_IAM_ROLE" | default "" }}
69+
{{- if env "CERT_MANAGER_IAM_ROLE" | default "" }}
7170
podAnnotations:
7271
### Required: EXTERNAL_DNS_IAM_ROLE; e.g. cp-staging-external-dns
7372
iam.amazonaws.com/role: '{{ env "CERT_MANAGER_IAM_ROLE" }}'
74-
{{ end }}
73+
{{- end }}
7574
serviceAccount:
7675
### Optional: RBAC_ENABLED;
7776
create: {{ env "RBAC_ENABLED" | default "false" }}
7877
### Optional: CERT_MANAGER_SERVICE_ACCOUNT_NAME;
7978
name: '{{ env "CERT_MANAGER_SERVICE_ACCOUNT_NAME" | default "" }}'
8079
prometheus:
81-
enabled: true
80+
enabled: {{ env "CERT_MANAGER_METRICS_ENABLED" | default (env "METRICS_ENABLED") | default "false" }}
8281
servicemonitor:
83-
enabled: true
82+
enabled: {{ env "CERT_MANAGER_METRICS_ENABLED" | default (env "METRICS_ENABLED") | default "false" }}
8483
prometheusInstance: default
8584
targetPort: 9402
8685
path: /metrics
@@ -98,20 +97,22 @@ releases:
9897
cpu: "50m"
9998
memory: "128Mi"
10099
- name: 'cert-manager-issuers'
100+
needs: ['cert-manager/cert-manager']
101101
chart: "kubernetes-incubator/raw"
102102
namespace: "cert-manager"
103103
labels:
104-
component: "iam"
104+
component: "cert-manager"
105105
namespace: "cert-manager"
106106
default: "true"
107107
version: "0.2.3"
108108
wait: true
109109
atomic: true
110110
cleanupOnFail: true
111111
installed: {{ env "CERT_MANAGER_INSTALLED" | default "true" }}
112+
disableValidation: true
112113
values:
113114
- resources:
114-
- apiVersion: certmanager.k8s.io/v1alpha1
115+
- apiVersion: cert-manager.io/v1
115116
kind: ClusterIssuer
116117
metadata:
117118
name: letsencrypt-staging
@@ -125,16 +126,19 @@ releases:
125126
privateKeySecretRef:
126127
name: letsencrypt-staging
127128
solvers:
129+
{{- if env "CERT_MANAGER_HTTP_SOLVER_ENABLED" | default "" }}
128130
# Enable the HTTP-01 challenge provider
129131
- http01:
130132
ingress:
131133
class: nginx
132-
{{- if env "CERT_MANAGER_IAM_ROLE" | default "" }}
134+
{{- end }}
135+
{{- if env "CERT_MANAGER_IAM_ROLE" | default "" }}
133136
# Enable the DNS-01 challenge provider
134137
- dns01:
135-
route53: {}
136-
{{- end }}
137-
- apiVersion: certmanager.k8s.io/v1alpha1
138+
route53:
139+
region: {{ env "AWS_REGION" | default (env "AWS_DEFAULT_REGION") }}
140+
{{- end }}
141+
- apiVersion: cert-manager.io/v1
138142
kind: ClusterIssuer
139143
metadata:
140144
name: letsencrypt-prod
@@ -148,14 +152,16 @@ releases:
148152
privateKeySecretRef:
149153
name: letsencrypt-prod
150154
solvers:
155+
{{- if env "CERT_MANAGER_HTTP_SOLVER_ENABLED" | default "" }}
151156
# Enable the HTTP-01 challenge provider
152157
- http01:
153158
ingress:
154159
class: nginx
155-
{{- if env "CERT_MANAGER_IAM_ROLE" | default "" }}
160+
{{- end }}
161+
{{- if env "CERT_MANAGER_IAM_ROLE" | default "" }}
156162
# Enable the DNS-01 challenge provider
157163
- dns01:
158-
route53: {}
159-
{{- end }}
160-
164+
route53:
165+
region: {{ env "AWS_REGION" | default (env "AWS_DEFAULT_REGION") }}
166+
{{- end }}
161167

deprecated/dashboard.yaml

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
repositories:
2-
# Stable repo of official helm charts
3-
- name: "stable"
4-
url: "https://kubernetes-charts.storage.googleapis.com"
2+
# Official Kubernetes Dashboard helm chart
3+
- name: "kubernetes-dashboard"
4+
url: "https://kubernetes.github.io/dashboard/"
55

66
releases:
77

@@ -13,7 +13,7 @@ releases:
1313
#
1414
# References:
1515
# - https://github.com/kubernetes/dashboard
16-
# - https://github.com/kubernetes/charts/tree/master/stable/kubernetes-dashboard
16+
# - https://github.com/kubernetes/dashboard/tree/master/aio/deploy/helm-chart/kubernetes-dashboard
1717
#
1818
- name: "kubernetes-dashboard"
1919
namespace: '{{- env "KUBERNETES_DASHBOARD_NAMESPACE" | default "kube-system" -}}'
@@ -24,26 +24,35 @@ releases:
2424
namespace: "kube-system"
2525
vendor: "kubernetes"
2626
default: "true"
27-
chart: "stable/kubernetes-dashboard"
28-
version: "0.10.0"
27+
chart: "kubernetes-dashboard/kubernetes-dashboard"
28+
version: '{{ env "KUBERNETES_DASHBOARD_CHART_VERSION" | default "v2.8.2" }}'
2929
wait: true
30+
atomic: true
31+
cleanupOnFail: true
3032
installed: {{ env "KUBERNETES_DASHBOARD_INSTALLED" | default "true" }}
3133
values:
3234
- image:
33-
repository: "k8s.gcr.io/kubernetes-dashboard-amd64"
34-
### Optional: KUBERNETES_DASHBOARD_IMAGE_TAG;
35-
tag: '{{ env "KUBERNETES_DASHBOARD_IMAGE_TAG" | default "v1.10.0" }}'
35+
repository: "kubernetesui/dashboard"
36+
### Optional: KUBERNETES_DASHBOARD_IMAGE_TAG; use chart default otherwise
37+
{{- if (env "KUBERNETES_DASHBOARD_IMAGE_TAG") }}
38+
tag: '{{ env "KUBERNETES_DASHBOARD_IMAGE_TAG" }}'
39+
{{- end }}
3640
pullPolicy: "IfNotPresent"
37-
enableInsecureLogin: {{ env "KUBERNETES_DASHBOARD_ENABLE_INSECURE_LOGIN" | default "false"}}
38-
{{- if eq (env "KUBERNETES_DASHBOARD_ENABLE_INSECURE_LOGIN" | default "false") "true" }}
41+
{{- if eq (env "KUBERNETES_DASHBOARD_ENABLE_INSECURE_LOGIN" | default "false") "true" }}
3942
service:
4043
externalPort: 80
41-
{{- end }}
42-
{{- if eq (env "KUBERNETES_DASHBOARD_SKIP_LOGIN" | default "false") "true" }}
44+
{{- end }}
4345
extraArgs:
46+
{{- if eq (env "KUBERNETES_DASHBOARD_ENABLE_INSECURE_LOGIN" | default "false") "true" }}
47+
- --enable-insecure-login
48+
{{- end }}
49+
{{- if eq (env "KUBERNETES_DASHBOARD_SKIP_LOGIN" | default "false") "true" }}
4450
- --enable-skip-login
45-
{{- end }}
51+
{{- end }}
4652
replicaCount: '{{ env "KUBERNETES_DASHBOARD_REPLICA_COUNT" | default 1 }}'
53+
podDisruptionBudget:
54+
enabled: true
55+
maxUnavailable: "60%"
4756
resources:
4857
limits:
4958
cpu: '{{ env "KUBERNETES_DASHBOARD_LIMIT_CPU" | default "100m" }}'
@@ -53,26 +62,26 @@ releases:
5362
memory: '{{ env "KUBERNETES_DASHBOARD_REQUEST_MEMORY" | default "50Mi" }}'
5463
rbac:
5564
### Optional: RBAC_ENABLED;
56-
create: {{ env "RBAC_ENABLED" | default "false" }}
65+
create: {{ env "RBAC_ENABLED" | default "true" }}
5766
serviceAccount:
5867
### Optional: RBAC_ENABLED;
59-
create: {{ env "RBAC_ENABLED" | default "false" }}
68+
create: {{ env "RBAC_ENABLED" | default "true" }}
6069
### Optional: KUBERNETES_DASHBOARD_SERVICE_ACCOUNT_NAME;
6170
name: '{{ env "KUBERNETES_DASHBOARD_SERVICE_ACCOUNT_NAME" | default "" }}'
6271

6372
ingress:
6473
enabled: {{ env "KUBERNETES_DASHBOARD_INGRESS_ENABLED" | default "false" }}
6574
annotations:
6675
kubernetes.io/ingress.class: {{ env "KUBERNETES_DASHBOARD_INGRESS_CLASS" | default "nginx" }}
67-
{{- if eq (env "KUBERNETES_DASHBOARD_ENABLE_INSECURE_LOGIN" | default "false") "false" }}
76+
{{- if eq (env "KUBERNETES_DASHBOARD_ENABLE_INSECURE_LOGIN" | default "false") "false" }}
6877
nginx.ingress.kubernetes.io/secure-backends: "true"
69-
{{- end }}
70-
kubernetes.io/tls-acme: '{{ env "KUBERNETES_DASHBOARD_INGRESS_USE_KUBE_LEGO" | default "false" }}'
78+
{{- end }}
79+
kubernetes.io/tls-acme: '{{ env "KUBERNETES_DASHBOARD_INGRESS_USE_TLS_ACME" | default (env "KUBERNETES_DASHBOARD_INGRESS_TLS_ENABLED" | default "false") }}'
7180
hosts:
7281
- {{ env "KUBERNETES_DASHBOARD_INGRESS_HOST" }}
73-
{{- if eq (env "KUBERNETES_DASHBOARD_INGRESS_TLS_ENABLED" | default "false") "true" }}
82+
{{- if eq (env "KUBERNETES_DASHBOARD_INGRESS_TLS_ENABLED" | default "false") "true" }}
7483
tls:
7584
- secretName: kubernetes-dashboard-tls
7685
hosts:
7786
- {{ env "KUBERNETES_DASHBOARD_INGRESS_HOST" }}
78-
{{- end }}
87+
{{- end }}

deprecated/keycloak-gatekeeper.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ releases:
4444
chart: "gabibbo97/keycloak-gatekeeper"
4545
version: "3.3.1"
4646
wait: false
47-
installed: true
47+
installed: {{ not (index $service "uninstall") }}
4848
values:
4949
- nameOverride: "key-gate-{{- $service.name }}"
5050
fullNameOverride: "key-gate-{{- $service.name }}"

deprecated/kiam.yaml

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ repositories:
44
url: "https://uswitch.github.io/kiam-helm-charts/charts/"
55
# Kubernetes incubator repo of helm charts
66
- name: "kubernetes-incubator"
7-
url: "https://kubernetes-charts-incubator.storage.googleapis.com"
7+
url: "https://charts.helm.sh/incubator"
88

99
# Cloud Posse incubator repo of helm charts
1010
- name: "cloudposse-incubator"
@@ -34,13 +34,9 @@ releases:
3434
# /bin/sh -c '/sbin/iptables -t nat -A PREROUTING -d 169.254.169.254/32 -i cali+ -p tcp -m tcp --dport 80 -j DNAT --to-destination $(curl -s http://169.254.169.254/latest/meta-data/local-ipv4):8181'
3535
#
3636
#
37-
# This release REQUIRES that cert-manager is installed and available, as it uses it to provision the
37+
# This release REQUIRES that cert-manager v1.x is installed and available, as it uses it to provision the
3838
# TLS certificates that secure the communication between the kiam agents and servers.
3939
#
40-
# WARNING: At this time, this release uses the outdated `certmanager.k8s.io/v1alpha1` cert-manager API
41-
# and not the v1 `cert-manager.io/v1` API. This is to provide a migration path for upgrading `kiam` before
42-
# upgrading `cert-manager`
43-
#
4440
# This release OPTIONALLY uses stakater/reloader, if installed,
4541
# to automatically restart kiam pods when the TLS certificates change
4642
#
@@ -60,14 +56,14 @@ releases:
6056
installed: {{ env "KIAM_INSTALLED" | default "true" }}
6157
values:
6258
- resources:
63-
- apiVersion: certmanager.k8s.io/v1alpha1
59+
- apiVersion: cert-manager.io/v1
6460
kind: Issuer
6561
metadata:
6662
name: kiam-selfsigning-issuer
6763
spec:
6864
selfSigned: {}
6965

70-
- apiVersion: certmanager.k8s.io/v1alpha1
66+
- apiVersion: cert-manager.io/v1
7167
kind: Certificate
7268
metadata:
7369
name: kiam-ca
@@ -78,30 +74,38 @@ releases:
7874
issuerRef:
7975
name: kiam-selfsigning-issuer
8076

81-
- apiVersion: certmanager.k8s.io/v1alpha1
77+
- apiVersion: cert-manager.io/v1
8278
kind: Issuer
8379
metadata:
8480
name: kiam-ca-issuer
8581
spec:
8682
ca:
8783
secretName: kiam-ca-tls
8884

89-
- apiVersion: certmanager.k8s.io/v1alpha1
85+
- apiVersion: cert-manager.io/v1
9086
kind: Certificate
9187
metadata:
9288
name: kiam-agent
9389
spec:
9490
secretName: kiam-agent-tls
9591
commonName: agent
92+
duration: 2160h # 90d
93+
renewBefore: 360h # 15d
94+
privateKey:
95+
rotationPolicy: Always
9696
issuerRef:
9797
name: kiam-ca-issuer
9898

99-
- apiVersion: certmanager.k8s.io/v1alpha1
99+
- apiVersion: cert-manager.io/v1
100100
kind: Certificate
101101
metadata:
102102
name: kiam-server
103103
spec:
104104
secretName: kiam-server-tls
105+
duration: 2160h # 90d
106+
renewBefore: 360h # 15d
107+
privateKey:
108+
rotationPolicy: Always
105109
issuerRef:
106110
name: kiam-ca-issuer
107111
dnsNames:
@@ -117,6 +121,7 @@ releases:
117121
# Here we deploy kiam itself
118122
# The release name must be "kiam" for chart to work properly with TLS/PKI certs
119123
- name: "kiam"
124+
needs: ["kube-system/kiam-tls"]
120125
namespace: "kube-system"
121126
labels:
122127
chart: "kiam"

deprecated/oidc-ingress.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
repositories:
22
# Repo of official, stable helm charts
33
- name: "stable"
4-
url: "https://kubernetes-charts.storage.googleapis.com"
4+
url: "https://charts.helm.sh/stable"
55
# keycloak-gatekeeper
66
# No official chart, this user's chart seems to be the best there is
77
- name: "gabibbo97"
88
url: "https://gabibbo97.github.io/charts/"
99
# Repo of new Kubernetes charts in development
1010
- name: "kubernetes-incubator"
11-
url: "https://kubernetes-charts-incubator.storage.googleapis.com"
11+
url: "https://charts.helm.sh/incubator"
1212
- name: "forecastle"
1313
# Cannot use release tags, see https://github.com/aslafy-z/helm-git/issues/9
1414
# url: "git+https://github.com/stakater/Forecastle@deployments/kubernetes/chart?ref=v1.0.25"

0 commit comments

Comments
 (0)