/‘dʒɪəriən/
ge-re-on
noun
- A mythological Greek monster. Like the , it's not entirely clear how many legs Geryon had.
- A GitHub App for connecting orgs and repos to Kubernetes clusters. Run it on your cluster to let others in your organization connect their new or existing repos to that cluster by installing the app.
Geryon will create a Kubernetes namespace named after each GitHub Repository it is installed on.
- Setup imagePullCredentials? #1
- Setup a self-hosted runner? https://github.com/urcomputeringpal/actions-runner-kubernetes
- Configure actions?
- Create a new GitHub App with the following settings:
- Name: geryon-your-cluster-name-goes-here
- Homepage URL: https://example.com/
- Webhook URL: https://example.com/ (we'll come back in a minute to update if you choose to enable webhooks)
- Webhook Secret: Generate a unique secret with
openssl rand -base64 32
- Permissions:
- Repository metadata: Read-only
- Packages: Read-only
- Generate and download a new key for your app. Copy it to
private-key.pem
- Download
kustomization.example.yaml
and rename it tokustomization.yaml
- Create
.env
:
WEBHOOK_SECRET=asdf
APP_ID=30576
- Create an Ingress resource at
ingress.yaml
as required by your Kubernetes provider- See this GKE example for reference
- Create a
geryon
namespace on your Kubernetes cluster:kubectl create ns geryon
- Apply
geryon
to your cluster:kubectl apply -k .
- Update your GitHub app's Webhook URL to the URL of your Ingress resource followed by
/webhooks
- Fork this repo
. Create a branch and replace
urcomputeringpal` with your GCP project- Install
gcloud
,kustomize
, andskaffold
- Create a GitHub App and generate a private key
- Move the private key to
kustomize/bases/dev/private-key.pem
- Create
kustomize/bases/dev/.env
:
WEBHOOK_SECRET=asdf
APP_ID=30576
gcloud auth login
- Connect to your dev kubernetes cluster
- Run the thing:
skaffold-dev
- Obtain the service IP with
kubectl get svc -o wide
- Update the Webhook URL to be
http://$(IP):8080/webhooks
- Dev in a loop and watch the updates happen automatically