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
À 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.
À é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é
PrudenceNo 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.
- •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.
Exemples
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.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.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:
- Starts a local container registry on port
5000(kind-registry) - Creates a
kindcluster namedkind(override withKIND_CLUSTER_NAME) - Wires the cluster to the registry
- Sets
KUBECONFIGto~/.kube/config.kind - 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
- Edit Go source under
pkg/orcmd/. - Run unit tests to verify:
make test-unit - Format code:
make fmt - Rebuild and redeploy (ensure
KO_DOCKER_REPOis set — see "Deploy Only the Pruner" above):ko apply -f config/controller.yaml - 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
konot found: Runmake apply— it auto-installskointo.bin/.- Registry not reachable: Ensure
kind-registrycontainer is running:docker ps | grep kind-registry - Webhook TLS errors: The webhook cert is managed by the operator. If
invalid, delete the
Secretand 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 annexesCe 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.mdDepuis 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:
| 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) |
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’OpenSkillsopenskills 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 syncMode 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.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.