Skip to content

pipelines-as-code/startpaac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

120 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

startpaac

Set up Pipelines-as-Code on a local Kind cluster for development.

ShellCheck

Quick start

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
EOF

Create 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
done

Run the interactive installer:

./startpaac

What gets installed

Core (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

Common usage

./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 cluster

Configure PAC on an existing cluster (e.g. OpenShift):

./startpaac --configure-pac-target $KUBECONFIG $TARGET_NAMESPACE $SECRET_FOLDER

Options

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

Configuration

Minimal config in ~/.config/startpaac/config:

TARGET_HOST=local
PAC_DIR=~/path/to/pipelines-as-code
PAC_SECRET_FOLDER=~/secrets

See docs/configuration.md for the full reference (remote VM setup, secrets management, hooks, PostgreSQL, preferences).

Prerequisites

docker, kind, helm, kubectl, jq, minica

Optional:

  • ko - only needed when deploying PAC from source (-p, -a, -c flags)
  • gum - enhances interactive menus (falls back to plain bash prompts)
  • pass - for secrets management

macOS users: install coreutils and gnu-sed from Homebrew.

More

License

About

๐Ÿš€ StartPAAC - All in one setup for Pipelines as Code on Kind

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors