Quickstart¶
In about 10 minutes you will run the Open Operator Platform on your own machine, in dev mode.
Dev mode means a local kind cluster with login turned off: you need no Keycloak users, tokens or passwords. You download the Helm charts, change a setting and run one script that deploys the platform.
For your own machine only
Dev mode is meant for trying the platform, for example for research. With login off, anyone who can reach the Portal or OEG can deploy workloads on your cluster. Never use this setup on a shared machine or on a network you don't trust.
Dev mode also leaves out what needs login: API clients, federation and the Data Lab. To use them, install with login as in Deploy with Helm.
Before you start¶
You need:
- A Linux machine with at least 4 CPU cores, 12 GiB of RAM and 20 GiB of free disk (see Hardware).
-
These tools, installed and on your
PATH:Tool Minimum version Check with Docker 20.x docker --versionkind 0.20 kind --versionkubectl 1.25 kubectl version --clientHelm v3 helm versionGit any git --version -
Free host ports
30082(Portal) and32263(OEG API), plus the other ports kind maps:30081,30083,30989,32004,32013and32415. Stop anything else listening on them. - No existing kind cluster called
oop-cluster. Check withkind get clusters.
1. Download the Helm charts¶
Clone the helm repository and move into it. Run every command in this guide from this directory.
The clone checks out the main branch, which holds the latest release.
2. Turn login off¶
Login for the whole platform is controlled by one chart value, global.auth.enabled, which is true by default. Open environments/kind/values.yaml, find the global: block, and add auth.enabled: false under it:
Keep publicHost: localhost. The chart refuses to install without login when publicHost is anything other than localhost or 127.0.0.1.
With login off:
- Keycloak is not deployed, since nothing needs to log in.
- Federation Manager is not deployed, since partner operators must authenticate.
- OEG accepts API calls without a token.
- The Portal treats every visitor as one local user,
dev, who has every role.
3. Deploy the stack¶
The script does everything in one go:
- It creates a one-node kind cluster called
oop-cluster, switcheskubectlto it (contextkind-oop-cluster) and creates the namespaceoop. - It installs the platform with Helm, using
environments/kind/values.yaml(including your change from step 2), and prints the access URLs. Keycloak and Federation Manager are not in the list, since they are not deployed.
The script prints WARNING: environments/kind/secrets.values.yaml not found. You can ignore it: the file holds only the Groq API key for AI². Without it, the AI² pods still start, but the AI assistant cannot answer. To use AI², see Deploy with Helm.
4. Wait until the platform is up¶
The first install downloads all container images, which takes a few minutes. Wait until every Deployment is available:
kubectl -n oop wait --for=condition=Available deployment --all --timeout=15m
kubectl -n oop get pods
When it is up, every pod is Running, except the setup Jobs, which show Completed. If a pod stays in Pending, ImagePullBackOff or CrashLoopBackOff, see Troubleshooting.
5. Tell SRM where your apps can be reached¶
SRM reports a host address in the endpoints of every app it deploys. In environments/kind/values.yaml, this address is a placeholder, endpoint_host: <IP>. Now that the cluster exists, replace it with the IP address of the kind node, and run the Helm part of the deployment again to apply it:
NODE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' oop-cluster-control-plane)
echo "$NODE_IP"
sed -i "s/endpoint_host: <IP>/endpoint_host: $NODE_IP/" environments/kind/values.yaml
./scripts/helm-deploy.sh
./scripts/helm-deploy.sh only updates the installed platform, so this takes a few seconds. You can skip this step if you don't plan to deploy apps, but the endpoints of your apps then show <IP> instead of an address.
6. Check that it works¶
Ask OEG for the edge cloud zones. In dev mode you need no token:
The answer lists one zone, kind local zone, with status active. That means OEG is running and reaches SRM. If you get 503 instead, SRM is still restarting after step 5: wait a few seconds and retry.
The platform is now reachable at:
| What | URL |
|---|---|
| Portal | http://localhost:30082 |
| OEG API (Swagger UI) | http://localhost:32263/docs |
Open the Portal: you are signed in straight away, with no login page.
Clean up¶
When you are done with the platform, delete the cluster. This also deletes everything that was installed in it:
To undo your changes to environments/kind/values.yaml, run git checkout environments/kind/values.yaml.
Next steps¶
- Deploy your first application: register an app, run it in a zone and reach it, from the Portal or the API. It works in dev mode too.
- Tour the Portal: find your way around every page.
- Deploy with Helm: install the platform with login, the Data Lab and AI², on kind or on an existing cluster.