An operator that manages Castware components.
- Generate an api key in console
- Set the environment variable
API_KEYwith the generated key - Set the
API_URLenvironment variable to the api url of the environment where you generated the api key - Run
make run-local
Sample custom resources for cluster and component are generated in local/samples.
- Run
make updeploy
Ignore the error about the missing castware-operator-controller-manager deployment.
How to run castware-operator in local kind cluster using local chart ./charts/castai-castware-operator
-
Create Kind cluster:
kind create cluster --name castware-operator
-
Set required environment variables:
export API_KEY="your-api-key-from-console" export API_URL="https://api.cast.ai" # or your environment URL export API_KEY_BASE64=$(echo -n "$API_KEY" | base64)
-
Install operator in Kind cluster:
./local/install-local.sh
This script will:
- Build the operator binary (
make build) - Build Docker image (
make docker-build) - Load image into Kind cluster
- Install Helm chart with local image
- Create default Cluster and Component resources
- Build the operator binary (
After making code changes, quickly reload the operator without full reinstall:
./local/reload-operator.shThis script will:
- Rebuild operator binary and Docker image
- Load new image into Kind cluster
- Restart the operator deployment
- Wait for rollout to complete
Benefits:
- ~30 seconds vs ~2 minutes for full reinstall
- Preserves existing CRs (Cluster and Components)
- No need to delete/recreate resources
# Watch pods
kubectl get pods -n castai-agent -w
# View operator logs
kubectl logs -n castai-agent -l app.kubernetes.io/name=castware-operator -f
# Check Cluster CR status
kubectl get cluster -n castai-agent -o yaml
# Check Helm release status
helm status castware-operator -n castai-agent# Uninstall Helm release
helm uninstall castware-operator -n castai-agent
# Delete Kind cluster
kind delete cluster --name castware-operator- cd to the chart directory
- Run
helm package ./castai-castware-operator - Run
helm repo add local http://localhost:5001/helm-charts - Run
curl --data-binary "@castware-operator-[myversion].tgz" http://localhost:5001/helm-charts/api/chartsreplacing[myversion]with the version of the chart (for example 0.0.7) - Run
helm repo update
- Push at least two versions to the local registry (change
versionandappVersioninChart.yamlbefore runninghelm package) - Install the operator from the local registry
- Change
helmRepoURLin cluster CR tohttp://chartmuseum.registry.svc.cluster.local:8080/helm-charts - Run self upgrade from a job manifest or an action