blob: ee69a9386e02980474d5187391aeef709f8f40d5 [file] [log] [blame] [view]
# Kubernetes config and applications
Scripts, YAML files, and utility apps to run our kubernetes cluster(s). Each
cluster will have its own subdirectory that matches the name of the GCE project.
## Ingress
The ingress configs presume that the IP address and certs have already been
created and named, both of which can be done via command line.
Upload certs:
gcloud compute ssl-certificates create skia-org --certificate=skia.pem --private-key=skia.key
Take care when copying the certs around, for example, download them onto a
ramdrive and unmount the ramdrive after they have been uploaded. See
'create-sa.sh' in this directory.
Reserving a named global IP address:
gcloud compute addresses create skia-org --global
## pushk and kube/clusters/config.json
The definitive list of clusters and how to talk to each one is stored in
`kube/clusters/config.json`.
This config file also defines the git repo where YAML files are stored and where
to checkout that repo when pushing. The location of the checkout can be set by
setting the PUSHK_GITDIR environment variable.
The k8s YAML files are checked into https://skia.googlesource.com/k8s-config/,
with one sub-directory for each cluster.
See http://go/corp-ssh-helper for details on setting up SSH.
When you run pushk it will update the images for all the clusters and then run
`kubectl apply` for each file and for each cluster.
## Standing up a new cluster in a different project
1. Add a new `__skia_NNN` function to `clusters.sh`.
2. Create the `config-NNN.sh` file.
3. Copy and modify the `create-cluster-corp.sh` script.
4. Add a node pool if necessary using the web UI.
5. Update `kube/clusters/config.json` with info on the new cluster.