github.existingSecret. The credentials stay out of your Helm values and your deploy pipeline. If Tembo is already installed, the same steps apply, with an upgrade at the end.
You need:
- Your Tembo hostname, the
ingress.hostyou deploy with (e.g.tembo.example.com). kubectlaccess to the namespace you install Tembo in. The examples use releasetemboin namespacetembo.- To create the app under a GitHub organization: an owner or GitHub App manager of that organization.
Step 1: Create the GitHub App
Open New GitHub App:https://github.com/organizations/<your-org>/settings/apps/new for an organization, or GitHub > Settings > Developer settings > GitHub Apps > New GitHub App for your account. Fill in:
If GitHub can’t reach the webhook URL, for example behind an internal load balancer, uncheck Active under Webhook. Comments that mention Tembo, issue and pull request triggers, and pull request status updates then don’t work.
Then click Create GitHub App. Create a GitHub App describes each setting.
Step 2: Generate a client secret and a private key
On the app’s settings page:- Under Client secrets, click Generate a new client secret and copy it. GitHub shows it only once.
- Under Private keys, click Generate a private key. GitHub downloads a
.pemfile.
https://github.com/apps/<app slug>.
Step 3: Store the credentials in a Secret
Create the namespace if it doesn’t exist yet, then the Secret.clientUserEmail is your app’s bot noreply address, which uses the bot’s user ID from GitHub:
<...> with its value; in a shell, the angle brackets themselves would be read as redirects. Check that BOT_ID is a number: null means the slug is wrong.
The Secret can hold any of these keys:
Values in the Secret override the same keys under
github in your Helm values.
Step 4: Point the chart at the Secret
In yourvalues.yaml:
github.existingSecret: Secret tembo-github-app is missing.
If Tembo is already installed, upgrade instead. Use tembo-gcp.json instead of tembo-aws.json on GCP:
Step 5: Connect GitHub
Once Tembo is deployed, connect GitHub from Tembo, not from GitHub: Tembo only accepts an installation that starts in Tembo.- In Tembo, go to Settings > Integrations and connect GitHub.
- Choose the organization or account, and All repositories or specific ones, then click Install. GitHub then asks you to authorize the app.
- On the page Tembo opens next, enable the repositories Tembo should work on. You can change them later in Settings > Repositories.
Rotate credentials
- Generate a new client secret or private key on the app’s settings page.
- Update the Secret with the same
kubectl create secret ... | kubectl applycommand. - Run
helm upgradeagain. The platform restarts with the new values. - Replace the running agent hosts.
- Delete the old client secret or private key on GitHub.
GitOps and helm template
Argo CD, Flux and other tools that render the chart with helm template don’t give it access to your cluster, so it can’t read github.existingSecret. A generated webhook secret would also change on every render.
Set the app’s values under github instead, from a values file you keep encrypted, including the webhook secret you entered in GitHub: