Skip to content

Commit 56a3beb

Browse files
committed
Retest tekton using mkcert and ingress
Signed-off-by: cmoulliard <cmoulliard@redhat.com>
1 parent bf2aaa1 commit 56a3beb

2 files changed

Lines changed: 236 additions & 119 deletions

File tree

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
apiVersion: halkyon.io/v1alpha1
2+
kind: Platform
3+
metadata:
4+
name: ingress-tekton
5+
namespace: platform
6+
spec:
7+
version: 0.1.0
8+
description: "A platform installing: nginx ingress, cert manager, tekton & tekton dashboard and exposing the ui at the address https://tekton.localtest.me:8443"
9+
packages:
10+
- name: nginx-ingress
11+
description: "nginx-ingress package"
12+
pipeline:
13+
steps:
14+
- name: install
15+
image: dtzar/helm-kubectl
16+
namespace:
17+
name: default
18+
helm:
19+
chart:
20+
repoUrl: https://kubernetes.github.io/ingress-nginx
21+
name: ingress-nginx
22+
version: 4.12.2
23+
values: |
24+
controller:
25+
hostPort:
26+
enabled: true
27+
service:
28+
type: NodePort
29+
ingress:
30+
enabled: true
31+
32+
- name: cert-manager
33+
description: "cert-manager package"
34+
pipeline:
35+
steps:
36+
# Due to this problem: https://github.com/cert-manager/cert-manager/issues/7502 with the acquisition of the leader election which is taking time and stops the process to create cert manager resources
37+
# we will switch to Helm
38+
#
39+
#- name: install
40+
# image: dtzar/helm-kubectl
41+
# manifest:
42+
# url: https://github.com/cert-manager/cert-manager/releases/download/v1.16.3/cert-manager.yaml
43+
44+
- name: install
45+
image: dtzar/helm-kubectl
46+
namespace:
47+
name: kube-system
48+
helm:
49+
chart:
50+
repoUrl: https://charts.jetstack.io
51+
name: cert-manager
52+
version: v1.17.3
53+
release:
54+
name: cert-manager
55+
values: |
56+
global:
57+
leaderElection:
58+
namespace: kube-system # see: https://github.com/cert-manager/cert-manager/issues/7502
59+
crds:
60+
enabled: true
61+
62+
- name: self-signed
63+
description: "Generate a self signed root CA and issuer"
64+
pipeline:
65+
steps:
66+
#- name: init
67+
# image: dtzar/helm-kubectl
68+
# namespace:
69+
# name: cert-manager
70+
# waitCondition:
71+
# type: service
72+
# endpoint:
73+
# name: cert-manager-webhook
74+
# port: 443
75+
# protocol: https
76+
# path: validate
77+
78+
- name: init
79+
image: dtzar/helm-kubectl
80+
namespace:
81+
name: kube-system
82+
waitCondition:
83+
resource: deployment
84+
name: cert-manager-webhook
85+
type: rollout # rollout is only applicable for resources of type: deployment, daemonset or statefulset
86+
timeout: 90s
87+
88+
- name: init
89+
image: dtzar/helm-kubectl
90+
namespace:
91+
name: kube-system
92+
waitCondition:
93+
resource: deployment
94+
name: cert-manager-cainjector
95+
type: rollout
96+
timeout: 90s
97+
98+
- name: init
99+
image: dtzar/helm-kubectl
100+
namespace:
101+
name: kube-system
102+
waitCondition:
103+
resource: deployment
104+
name: cert-manager
105+
type: rollout
106+
timeout: 90s
107+
108+
- name: install
109+
image: dtzar/helm-kubectl
110+
script: |
111+
cat <<EOF | kubectl apply -f -
112+
---
113+
apiVersion: cert-manager.io/v1
114+
kind: ClusterIssuer
115+
metadata:
116+
name: selfsigned
117+
spec:
118+
selfSigned: {}
119+
---
120+
apiVersion: cert-manager.io/v1
121+
kind: Certificate
122+
metadata:
123+
name: selfsigned-ca
124+
namespace: kube-system
125+
spec:
126+
isCA: true
127+
commonName: selfsigned-ca
128+
secretName: root-secret
129+
privateKey:
130+
algorithm: ECDSA
131+
size: 256
132+
duration: 8760h
133+
renewBefore: 720h
134+
issuerRef:
135+
name: selfsigned
136+
kind: ClusterIssuer
137+
group: cert-manager.io
138+
EOF
139+
140+
- name: uninstall
141+
image: dtzar/helm-kubectl
142+
script: |
143+
kubectl delete clusterissuer/selfsigned
144+
145+
- name: tekton
146+
description: "Tekton package"
147+
pipeline:
148+
steps:
149+
#- name: init
150+
# image: dtzar/helm-kubectl
151+
# namespace:
152+
# name: default
153+
# waitCondition:
154+
# type: service
155+
# endpoint:
156+
# name: ingress-nginx-controller-admission
157+
# port: 443
158+
# path: /healthz
159+
160+
- name: init
161+
image: dtzar/helm-kubectl
162+
namespace:
163+
name: default
164+
waitCondition:
165+
resource: deployment
166+
name: ingress-nginx-controller
167+
type: rollout # rollout is only applicable for resources of type: deployment, daemonset or statefulset
168+
timeout: 90s
169+
170+
- name: install
171+
image: dtzar/helm-kubectl
172+
manifest:
173+
url: https://storage.googleapis.com/tekton-releases/pipeline/previous/v1.1.0/release.yaml
174+
175+
- name: tekton-dashboard
176+
description: "Tekton dashboard package"
177+
pipeline:
178+
steps:
179+
- name: install
180+
image: dtzar/helm-kubectl
181+
manifest:
182+
url: https://storage.googleapis.com/tekton-releases/dashboard/previous/v0.58.0/release-full.yaml
183+
184+
- name: install
185+
image: dtzar/helm-kubectl
186+
script: |
187+
cat <<EOF | kubectl apply -f -
188+
apiVersion: networking.k8s.io/v1
189+
kind: Ingress
190+
metadata:
191+
annotations:
192+
cert-manager.io/cluster-issuer: selfsigned
193+
nginx.ingress.kubernetes.io/ssl-redirect: "true"
194+
name: tekton-ui
195+
namespace: tekton-pipelines
196+
spec:
197+
ingressClassName: nginx
198+
tls:
199+
- hosts:
200+
- tekton.localtest.me
201+
secretName: ingress-tekton-cert
202+
rules:
203+
- host: tekton.localtest.me
204+
http:
205+
paths:
206+
- backend:
207+
service:
208+
name: tekton-dashboard
209+
port:
210+
number: 9097
211+
path: /
212+
pathType: Prefix
213+
EOF
214+
215+
- name: uninstall
216+
image: dtzar/helm-kubectl
217+
script: |
218+
kubectl delete -n tekton-pipelines ingress/tekton-ui

0 commit comments

Comments
 (0)