Développement local pour tekton-pruner

VérifiéPrudence

Guide pour configurer un environnement de développement local pour tekton-pruner, incluant kind, ko, Tekton Pipelines et la stack d'observabilité.

Spar Skills Guide Bot
DeveloppementIntermédiaire
24/07/2026
Claude Code
#kubernetes#tekton#kind#local-dev#controller-development

Recommandé pour

Synthèse automatique

Guide pour monter un environnement de développement local du contrôleur Kubernetes tekton-pruner : cluster kind, registre local, déploiement via ko, itérations sur le contrôleur et le webhook, plus une pile d'observabilité optionnelle.

Points forts

  • Fournit un script de démarrage clé en main (hack/dev/kind/install.sh) qui crée le registre, le cluster kind, installe Tekton Pipelines et déploie le pruner
  • Indique des commandes de redéploiement ciblées (ko apply sur config/controller.yaml ou config/webhook.yaml) pour itérer rapidement après une modification de code
  • Décrit la pile d'observabilité avec les URL concrètes de Prometheus, Jaeger et des métriques du pruner
  • Inclut une table des variables d'environnement (KO_DOCKER_REPO, KIND_CLUSTER_NAME, CONTAINER_RUNTIME) et une section de dépannage des erreurs fréquentes

Limites

  • Suppose que go, kind, ko, kubectl et docker/podman sont déjà installés sur la machine
  • Les chemins et commandes sont spécifiques au dépôt tekton-pruner et ne se transposent pas directement à un autre projet
  • Ne couvre que l'environnement kind local : pas de conseils pour un cluster distant, un CI ou la publication d'images
Quand l'utiliser

À utiliser lorsqu'on démarre sur tekton-pruner ou qu'on veut tester localement des changements de contrôleur, de webhook ou de configuration de purge.

Quand l'éviter

À éviter si l'on cherche des instructions de déploiement en production ou si l'on travaille sur un autre projet que tekton-pruner.

Analyse de sécurité

Prudence
Score qualité84/100

No destructive, exfiltration, or obfuscation patterns (no rm -rf /, curl|sh, or secret exfiltration) appear; the instructions are standard local-dev docs operating on a local kind cluster. Risk is moderate because it relies on opaque repo scripts and cluster-mutating tooling, so it falls under caution rather than safe.

Points d'attention
  • •Delegates execution to repo-provided scripts (./hack/dev/kind/install.sh, ./hack/setup-observability-dev.sh) whose contents are not shown, so their behavior can't be verified from this file alone.
  • •Includes resource-destroying commands (`ko delete -f config/`, `kind delete cluster --name kind`) that, while scoped to local dev, can remove the local cluster and deployed resources.
  • •Uses powerful tools (kind, ko, kubectl, docker, make) that build/push images and mutate a Kubernetes cluster; a mistargeted KO_DOCKER_REPO or KUBECONFIG could affect the wrong registry/cluster.
Comment cette analyse est faite

Exemples

First-time setup
I just cloned tekton-pruner. Walk me through standing up a local kind cluster with the registry, Tekton Pipelines and the pruner controller, then verify the pods are running.
Iterate on the webhook
I changed the admission webhook code in tekton-pruner. Run the unit tests, format the code, redeploy just the webhook with ko, and tail its logs in the tekton-pipelines namespace.
Debug a broken setup
My pruner controller can't pull images and the webhook reports TLS errors in my local kind setup. Help me check the kind-registry container, KO_DOCKER_REPO, and recover the webhook certificate.

name: local-development description: >- Set up a local development environment for tekton-pruner. Use when onboarding, bootstrapping a kind cluster, deploying the operator locally, or iterating on controller and webhook changes. Covers kind, ko, Tekton Pipelines, and the observability stack (Prometheus + Jaeger). license: Apache-2.0 compatibility: Requires go, kind, ko, kubectl, docker (or podman) metadata: project: tekton-pruner maintainers: tektoncd allowed-tools: Bash(kind:) Bash(ko:) Bash(kubectl:) Bash(docker:) Bash(make:*) Read

Local Development

tekton-pruner is a Kubernetes controller and admission webhook that prunes Tekton PipelineRun and TaskRun resources based on TTL or history limits configured via a ConfigMap or per-namespace annotations.

Prerequisites

Install the following tools before proceeding:

| Tool | Purpose | |------|---------| | go (≥ 1.26) | Build language | | kind | Local Kubernetes cluster | | ko | Build and push Go container images | | kubectl | Interact with the cluster | | docker or podman | Container runtime (podman sets CONTAINER_RUNTIME=podman) |

Quick-Start: Full Cluster Setup

The recommended path for a fresh local environment:

cd hack/dev/kind/
./install.sh

This script:

  1. Starts a local container registry on port 5000 (kind-registry)
  2. Creates a kind cluster named kind (override with KIND_CLUSTER_NAME)
  3. Wires the cluster to the registry
  4. Sets KUBECONFIG to ~/.kube/config.kind
  5. Deploys Tekton Pipelines and the pruner controller via ko apply

After it completes, verify:

export KUBECONFIG=~/.kube/config.kind
kubectl get pods -n tekton-pipelines

Deploy Only the Pruner

If you already have a cluster with Tekton Pipelines running:

export KO_DOCKER_REPO=<your-registry>   # e.g. ko.local or localhost:5000
ko apply -f config/

To redeploy individual components after code changes:

# Controller only
ko apply -f config/controller.yaml

# Webhook only
ko apply -f config/webhook.yaml

Observability Stack (Optional)

For metrics and tracing during development:

./hack/setup-observability-dev.sh

Endpoints after setup:

| Service | URL | |---------|-----| | Prometheus | http://localhost:9091 | | Jaeger (tracing) | http://localhost:16686 | | Pruner metrics | http://localhost:9090/metrics |

Iterating on Code

  1. Edit Go source under pkg/ or cmd/.
  2. Run unit tests to verify: make test-unit
  3. Format code: make fmt
  4. Rebuild and redeploy (ensure KO_DOCKER_REPO is set — see "Deploy Only the Pruner" above): ko apply -f config/controller.yaml
  5. Check controller logs:
kubectl -n tekton-pipelines logs deployment/tekton-pruner-controller -f

Tear Down

ko delete -f config/
# or to destroy the entire kind cluster:
kind delete cluster --name kind

Environment Variables

| Variable | Default | Purpose | |----------|---------|---------| | KO_DOCKER_REPO | (required) | Image registry for ko builds | | KIND_CLUSTER_NAME | kind | Name of the kind cluster | | CONTAINER_RUNTIME | docker | Set to podman for rootless builds |

Common Issues

  • ko not found: Run make apply — it auto-installs ko into .bin/.
  • Registry not reachable: Ensure kind-registry container is running: docker ps | grep kind-registry
  • Webhook TLS errors: The webhook cert is managed by the operator. If invalid, delete the Secret and restart the webhook pod.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/local-development-for-tekton-pruner-mryiqgmv/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/local-development-for-tekton-pruner-mryiqgmv' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/local-development-for-tekton-pruner-mryiqgmv/download' --output '.skill-downloads/local-development-for-tekton-pruner-mryiqgmv/SKILL.md.part' && mv '.skill-downloads/local-development-for-tekton-pruner-mryiqgmv/SKILL.md.part' '.skill-downloads/local-development-for-tekton-pruner-mryiqgmv/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Environnement déclaré par l’auteur : Requires go, kind, ko, kubectl, docker (or podman)

Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash(kind:*) Bash(ko:*) Bash(kubectl:*) Bash(docker:*) Bash(make:*) Read

Extrait original : Prerequisites

Install the following tools before proceeding:

ToolPurpose
go (≥ 1.26)Build language
kindLocal Kubernetes cluster
koBuild and push Go container images
kubectlInteract with the cluster
docker or podmanContainer runtime (podman sets CONTAINER_RUNTIME=podman)

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/local-development-for-tekton-pruner-mryiqgmv/SKILL.md' && test -s '.skill-downloads/local-development-for-tekton-pruner-mryiqgmv/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/local-development' && cp -R '.skill-downloads/local-development-for-tekton-pruner-mryiqgmv' '.claude/skills/local-development'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/local-development-for-tekton-pruner-mryiqgmv'

openskills read 'local-development-for-tekton-pruner-mryiqgmv'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/local-development-for-tekton-pruner-mryiqgmv/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires