deploy.sh reference
June 1, 2026 · View on GitHub
deploy.sh installs, upgrades, or uninstalls KubeStellar Console on a Kubernetes cluster with Helm.
Usage
bash deploy.sh [flags]
Default behavior:
- Uses the current
kubectlcontext - Installs into namespace
kubestellar-console - Uses Helm release name
kc - Pulls the latest chart version from
https://kubestellar.github.io/console - Exposes the console with
kubectl port-forwardinstructions unless you enable OpenShift or Ingress
Prerequisites
Required:
helmkubectl- A reachable Kubernetes context (either your current context or one passed with
--context)
Optional:
- GitHub OAuth credentials if you want GitHub sign-in
CLAUDE_API_KEYif you want Claude-backed AI features
Flags
| Flag | Short | Required | Default | Notes |
|---|---|---|---|---|
--context <name> | -c | Only if no current context is configured | current kubectl context | Passed to Helm as --kube-context and to kubectl as --context |
--namespace <name> | -n | No | kubestellar-console | Target namespace |
--release <name> | -r | No | kc | Helm release name |
--version <version> | -v | No | latest chart version | If omitted, Helm resolves the latest chart from the repo |
--set <key=value> | — | No | none | Repeatable; forwarded to Helm unchanged |
--openshift | — | No | false | Enables route.enabled=true and prints the OpenShift Route URL when available |
--ingress <host> | — | No | disabled | Enables ingress and sets ingress.hosts[0] to the supplied hostname |
--github-oauth | — | No | false | Prompts for GitHub OAuth credentials if they are not already in the environment |
--uninstall | — | No | false | Removes the Helm release and namespace, then exits |
Environment variable overrides
| Variable | Required | Used when | Effect |
|---|---|---|---|
GITHUB_CLIENT_ID | Required only for GitHub OAuth | --github-oauth is set or you want OAuth configured non-interactively | Sets github.clientId |
GITHUB_CLIENT_SECRET | Required only for GitHub OAuth | --github-oauth is set or you want OAuth configured non-interactively | Sets github.clientSecret |
CLAUDE_API_KEY | No | You want Claude AI features enabled | Sets claude.apiKey |
Required vs optional inputs
- No flags are required for a basic install if your current
kubectlcontext is valid. --contextbecomes required when you do not already have a current Kubernetes context.- GitHub OAuth requires both
GITHUB_CLIENT_IDandGITHUB_CLIENT_SECRET.- If both variables are already exported,
--github-oauthuses them. - If either is missing and
--github-oauthis set, the script prompts for both values.
- If both variables are already exported,
--ingressrequires a hostname value.--setrequires akey=valuepair and can be repeated.
Exit codes and error conditions
| Exit code | Meaning | Typical cause |
|---|---|---|
0 | Success | Install, upgrade, or uninstall completed |
1 | Script-level validation failure | Missing helm/kubectl, no current context, or selected context is unreachable |
| Other non-zero codes | Propagated tool failure | A helm or kubectl command failed during install, upgrade, or uninstall |
Known error conditions:
helmis not installedkubectlis not installed- No Kubernetes context is configured and
--contextwas not provided - The named context cannot reach a cluster
- Helm repo update, install, or upgrade fails
- Namespace deletion, route lookup, or other
kubectloperations fail
Notes:
--uninstallexits successfully even when the release or namespace is already absent.- Unknown flags are currently ignored by the argument parser instead of causing an immediate error.
Helm values set by the script
The script may append these Helm values automatically:
github.clientIdgithub.clientSecretclaude.apiKeyroute.enabled=trueingress.enabled=trueingress.hosts[0].host=<host>ingress.hosts[0].paths[0].path=/ingress.hosts[0].paths[0].pathType=Prefix
Additional --set key=value pairs are appended after the built-in values.
Example invocations
Basic install
bash deploy.sh
Install to a specific context, namespace, and release name
bash deploy.sh --context my-cluster --namespace kubestellar-console --release kc
Install a pinned chart version
bash deploy.sh --version 0.3.7
Expose with an OpenShift Route
bash deploy.sh --openshift
Expose with Ingress
bash deploy.sh --ingress console.example.com
Configure GitHub OAuth from environment variables
export GITHUB_CLIENT_ID=your-client-id
export GITHUB_CLIENT_SECRET=your-client-secret
bash deploy.sh --github-oauth
Enable Claude AI and pass extra Helm values
export CLAUDE_API_KEY=your-claude-key
bash deploy.sh --set image.tag=latest --set service.type=ClusterIP
Uninstall
bash deploy.sh --uninstall