docs(ex04): add Tekton Dashboard UI + ingress walkthrough

This commit is contained in:
Paul Harkink 2026-02-28 23:59:46 +01:00
parent 83d227a721
commit a2c15d6464

View file

@ -154,6 +154,12 @@ spec:
**`apps/ci/pipeline.yaml`** **`apps/ci/pipeline.yaml`**
Belangrijk:
- Dit bestand is alleen de ArgoCD `Application` wrapper.
- Daarom is het klein en zie je hier geen Tekton-steps.
- De echte pipeline-steps staan in `manifests/ci/pipeline/pipeline.yaml`
(clone, validate, bump-image-tag, git-commit-push).
```yaml ```yaml
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
@ -161,7 +167,7 @@ metadata:
name: workshop-pipeline name: workshop-pipeline
namespace: argocd namespace: argocd
annotations: annotations:
argocd.argoproj.io/sync-wave: "6" argocd.argoproj.io/sync-wave: "7"
spec: spec:
project: workshop project: workshop
source: source:
@ -187,9 +193,85 @@ git push
--- ---
### 3. Git-credentials instellen ### 3. Tekton Dashboard zichtbaar maken (UI)
De pipeline moet kunnen pushen naar jouw fork. Maak een GitHub PAT aan met `repo`-scope en voer dan uit: Maak een aparte Tekton Dashboard app, met Ingress zodat je PipelineRuns in de browser ziet.
**`manifests/ci/dashboard/kustomization.yaml`**
```yaml
resources:
- https://storage.googleapis.com/tekton-releases/dashboard/latest/release-full.yaml
- ingress.yaml
```
**`manifests/ci/dashboard/ingress.yaml`**
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tekton-dashboard
namespace: tekton-pipelines
spec:
ingressClassName: nginx
rules:
- host: tekton.192.168.56.200.nip.io
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: tekton-dashboard
port:
number: 9097
```
**`apps/ci/tekton-dashboard.yaml`**
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: tekton-dashboard
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "6"
spec:
project: workshop
source:
repoURL: JOUW_FORK_URL
targetRevision: HEAD
path: manifests/ci/dashboard
destination:
server: https://kubernetes.default.svc
namespace: tekton-pipelines
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
```
```bash
git add apps/ci/tekton-dashboard.yaml manifests/ci/dashboard/
git commit -m "feat: voeg Tekton Dashboard met ingress toe"
git push
```
Open daarna: **http://tekton.192.168.56.200.nip.io**
---
### 4. Git-credentials instellen
Dit is een verplichte stap vóór je de PipelineRun triggert.
Zonder `git-credentials` secret faalt de `clone` task direct.
De pipeline moet kunnen pushen naar jouw fork.
Maak een GitHub PAT aan met `repo`-scope en voer dan uit:
```bash ```bash
./scripts/vm/set-git-credentials.sh <jouw-github-gebruikersnaam> <jouw-pat> ./scripts/vm/set-git-credentials.sh <jouw-github-gebruikersnaam> <jouw-pat>
@ -199,7 +281,10 @@ Dit maakt een Kubernetes Secret aan in de cluster — **het PAT komt niet in Git
--- ---
### 4. Pipeline triggeren ### 5. Pipeline triggeren
Controleer eerst dat stap 3 gelukt is.
Pas daarna de PipelineRun starten:
```bash ```bash
kubectl apply -f manifests/ci/pipeline/pipelinerun.yaml kubectl apply -f manifests/ci/pipeline/pipelinerun.yaml
@ -221,7 +306,7 @@ De PipelineRun duurt ~23 minuten.
--- ---
### 5. Controleer de commit ### 6. Controleer de commit
```bash ```bash
git fetch origin git fetch origin
@ -231,7 +316,7 @@ git log origin/main --oneline -3
--- ---
### 6. ArgoCD laten synchroniseren ### 7. ArgoCD laten synchroniseren
Klik **Refresh** op de **podinfo** application in ArgoCD, of wacht op het automatische poll-interval. Klik **Refresh** op de **podinfo** application in ArgoCD, of wacht op het automatische poll-interval.
@ -241,7 +326,7 @@ kubectl rollout status deployment/podinfo -n podinfo
--- ---
### 7. Controleer in de browser ### 8. Controleer in de browser
Open **http://podinfo.192.168.56.200.nip.io** — je ziet nu versie **6.7.0**. Open **http://podinfo.192.168.56.200.nip.io** — je ziet nu versie **6.7.0**.
@ -266,12 +351,13 @@ kubectl apply -f manifests/ci/pipeline/pipelinerun.yaml
## Probleemoplossing ## Probleemoplossing
| Symptoom | Oplossing | | Symptoom | Oplossing |
|----------------------------------------|------------------------------------------------------------------------| |-----------------------------------------|--------------------------------------------------------------------------------------------------------|
| PipelineRun blijft "Running" | `kubectl describe pipelinerun -n tekton-pipelines bump-podinfo-to-670` | | PipelineRun blijft "Running" | `kubectl describe pipelinerun -n tekton-pipelines bump-podinfo-to-670` |
| Secret `git-credentials` niet gevonden | Voer `./scripts/vm/set-git-credentials.sh` uit | | Secret `git-credentials` niet gevonden | Voer `./scripts/vm/set-git-credentials.sh` uit |
| Push mislukt: 403 Forbidden | PAT heeft onvoldoende rechten — `repo`-scope vereist | | Push mislukt: 403 Forbidden | PAT heeft onvoldoende rechten — `repo`-scope vereist |
| ArgoCD synchroniseert niet | Klik **Refresh** in de UI | | ArgoCD synchroniseert niet | Klik **Refresh** in de UI |
| `root` blijft OutOfSync op app `tekton` | Verwijder de lege `kustomize: {}` uit `apps/ci/tekton.yaml` (Argo normaliseert deze weg in live state) | | `root` blijft OutOfSync op app `tekton` | Verwijder de lege `kustomize: {}` uit `apps/ci/tekton.yaml` (Argo normaliseert deze weg in live state) |
| Tekton Dashboard toont standaard Nginx/404 | Controleer `apps/ci/tekton-dashboard.yaml` en `manifests/ci/dashboard/ingress.yaml` host/service/poort |
--- ---