cluster-controller

command module
v0.54.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

README

CAST AI cluster controller

The official CAST AI kubernetes cluster controller written in Go

Installation

Check our official helm charts repo https://github.com/castai/castai-helm-charts

Testing

Pull requests

Each pull request builds and publishes docker image for easier code review and testing. Check relevant GitHub actions.

On existing cluster enrolled to CAST AI

Deploy cluster-controller to already connected remote cluster.

NOTE: Make sure your kubectl context is pointing to your remote cluster.

Have a configured gcloud. Make sure to docker login with

gcloud auth configure-docker gcr.io

Clone https://github.com/castai/castai-helm-charts adjacent to repo root folder. It will be used by our scripts

cd <cluster-controller-parent-directory>
git clone https://github.com/castai/castai-helm-charts gh-helm-charts

Deploy.

API_KEY=your-api-key \
API_URL=your-api-url \
CLUSTER_ID=your-cluster-id \
./hack/remote/deploy.sh
Local
API_KEY=your-api-key \
API_URL=your-api-url \
CLUSTER_ID=your-cluster-id \
KUBECONFIG=path-to-kubeconfig \
go run .
Kind

The cluster-controller can be tested locally with a full e2e flow using kind: Kubernetes in Docker.

Setup a kind cluster with a local docker registry by running the ./hack/kind/run.sh script.

Option 1. Deploy controller in Kind cluster.

  • Build your local code and push it to the local registry with ./hack/kind/build.sh.
  • Deploy the chart to the kind cluster with
    helm repo add castai-helm https://castai.github.io/helm-charts
    helm repo update
    helm template cluster-controller castai-helm/castai-cluster-controller \
      -f hack/kind/values.yaml \
      --set apiKey="your-api-key" \
      --set apiURL="your-api-url" \
      --set clusterID="your-cluster-id" | kubectl apply -f - -n castai-agent
    

Community

Contributing

Please see the contribution guidelines.

License

Code is licensed under the Apache License 2.0. See NOTICE.md for complete details, including software and third-party licenses and permissions.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
e2e
client
Package client provides primitives to interact with the openapi HTTP API.
Package client provides primitives to interact with the openapi HTTP API.
internal
actions/mock
Package mock_actions is a generated GoMock package.
Package mock_actions is a generated GoMock package.
castai/mock
Package mock_castai is a generated GoMock package.
Package mock_castai is a generated GoMock package.
helm/mock
Package mock_helm is a generated GoMock package.
Package mock_helm is a generated GoMock package.
k8sversion/mock
Package mock_version is a generated GoMock package.
Package mock_version is a generated GoMock package.
waitext
Package waitext implements behavior similar to https://github.com/cenkalti/backoff on top of k8s.io/apimachinery/pkg/util/wait.
Package waitext implements behavior similar to https://github.com/cenkalti/backoff on top of k8s.io/apimachinery/pkg/util/wait.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL