ozone is the cloud native platform for hosting workshops at google developer groups.
ozone.mp4
- Continous Integration with ArgoCD
- Fully self hosted Kubernetes on Microsoft Azure
- Built in Kubernetes client-go support for provisioning dynamic resources
Ozone utilizes openvscode-server as its primary way of serving instances to users. Upon a request to start a new instance, the dynamic kubernetes controller built into ozone will provision a new deployment and nodeport service. The current infrastructure depends on infra which utilizes haproxy as a load-balancer to forward any nodeport to the worker plane nodes on the cluster.
- Install cert-manager
- Install cass-operator
helm repo add k8ssandra https://helm.k8ssandra.io/stable
helm repo update
helm install cass-operator k8ssandra/cass-operator -n cass-operator --create-namespace
# deploy the Cassandra Datacenter
kubectl apply -f k8s/cassandra/manifest.yaml
# create the "main" keyspace
# connect to the cluster via cqlsh
kubectl run -n ozone -it --rm --restart=Never cqlsh --image=cassandra -- cqlsh -u $CASSANDRA_USERNAME -p $CASSANDRA_PASSWORD development-dc1-all-pods-service.cass-operator.svc.cluster.local
# exec into the cqlsh pod and pull the schema
kubectl exec -it -n ozone -c cqlsh cqlsh -- /bin/bash
wget https://raw.githubusercontent.com/GlennTatum/ozone/refs/heads/main/server/data/init.cql
# in cqlsh
development-superuser@cqlsh> SOURCE 'init.cql'- Deploy redis
helm install my-release oci://registry-1.docker.io/bitnamicharts/redis --values k8s/redis/values.yaml├── frontend
│ └── ui
│ ├── angular.json
│ ├── dev.sh
│ ├── dist
│ ├── Dockerfile.bootstrap
│ ├── Dockerfile.dev
│ ├── node_modules
│ ├── package.json
│ ├── package-lock.json
│ ├── public
│ ├── README.md
│ ├── src
│ ├── start.sh
│ ├── tsconfig.app.json
│ ├── tsconfig.json
│ └── tsconfig.spec.json
└── server
├── api
│ ├── api.go
│ ├── kubernetes.go
│ ├── manifests
│ ├── middleware.go
│ └── service.go
├── argocd.yml
├── data
│ └── init.cql
├── docker-compose.yml
├── Dockerfile
├── go.mod
├── go.sum
├── helm
│ ├── charts
│ ├── Chart.yaml
│ ├── envs
│ └── templates
├── main.go
├── models
│ ├── account.go
│ └── models.go
├── setup-secrets.sh
└── util
├── kubernetes.go
├── kubernetes_test.go
├── kustomization-ingress-patch.yml
├── kustomization.yaml
├── kustomize.go
├── template.go
└── template_test.go