Set up Pipelines-as-Code on a local Kind cluster for development.
This is meant for local development only.
Create a config file:
mkdir -p $HOME/.config/startpaac
cat <<EOF > $HOME/.config/startpaac/config
TARGET_HOST=local
PAC_DIR=~/go/src/github.com/tektoncd/pipelines-as-code
PAC_SECRET_FOLDER=~/secrets
EOFCreate your GitHub App and store the credentials:
mkdir -p ~/secrets
for i in github-application-id github-private-key smee webhook.secret; do
${EDITOR:-vi} ~/secrets/$i
doneRun the interactive installer:
./startpaacCore (always): Kind cluster, Nginx ingress, Docker registry, Tekton Pipelines
Optional (selected via menu): PAC (built from local source with ko), Tekton Dashboard, Tekton Triggers, Tekton Chains, Forgejo, PostgreSQL, GitHub second controller
./startpaac # interactive install (or uses saved preferences)
./startpaac -a # install everything non-interactively
./startpaac -p # redeploy PAC from source
./startpaac -c controller # redeploy a single component (controller/watcher/webhook)
./startpaac --menu # force the interactive menu
./startpaac --stop-kind # tear down the clusterConfigure PAC on an existing cluster (e.g. OpenShift):
./startpaac --configure-pac-target $KUBECONFIG $TARGET_NAMESPACE $SECRET_FOLDER| Flag | Description |
|---|---|
-a, --all |
Install everything |
-A, --all-but-kind |
Install everything but Kind |
-i, --menu, --interactive |
Force interactive component selection |
-R, --reset-preferences |
Reset saved component preferences |
-k, --kind |
(Re)install Kind |
-g, --install-forge |
Install Forgejo |
-c, --deploy-component |
Deploy a component (controller, watcher, webhook) |
-p, --install-paac |
Deploy and configure PAC |
-s, --sync-kubeconfig |
Sync kubeconfig from remote host |
-G, --start-user-gosmee |
Start gosmee locally |
-S, --github-second-ctrl |
Deploy second GitHub controller |
--install-nginx |
Install Nginx |
--install-dashboard |
Install Tekton Dashboard |
--install-tekton |
Install Tekton |
--install-triggers |
Install Tekton Triggers |
--install-chains |
Install Tekton Chains |
--redeploy-kind |
Redeploy Kind |
--scale-down |
Scale down a component |
--stop-kind |
Stop Kind |
--debug-image |
Use debug image for PAC controller |
--show-config |
Show PAC configuration |
--apply-non-root |
Apply non-root config to PAC controller |
-h, --help |
Show help |
Minimal config in ~/.config/startpaac/config:
TARGET_HOST=local
PAC_DIR=~/path/to/pipelines-as-code
PAC_SECRET_FOLDER=~/secretsSee docs/configuration.md for the full reference (remote VM setup, secrets management, hooks, PostgreSQL, preferences).
docker, kind, helm, kubectl, jq, minica
Optional:
- ko - only needed when deploying PAC from source (
-p,-a,-cflags) - gum - enhances interactive menus (falls back to plain bash prompts)
- pass - for secrets management