Managing CS-GKE Kubernetes Instance
Our Kubernetes(K8s) test instance is hosted on Google Kubernetes Engine (GKE) . The instance was setup following the instructions found on Sourcegraph.com. To manage cloud resources and networking you must have access to Sourcegraph Google Cloud.
You can access the instance by visiting https://cse-k8s.sgdev.org/ (note that the URL reflects the old title we used on the team)
To access the CS-GKE instance and run Kubernetes commands locally, you’ll need to do the following:
- Before you begin, please make sure you have gcloud command-line tool and kubectl command-line tool installed on your local machine.
- Make sure you are authenticated with the Google Cloud SDK. One option is in your terminal run
gcloud auth login. That should bring up a browser window to authenticate your work email.
- Generate a kubeconfig entry by running the following command:
gcloud container clusters get-credentials beatrix-test --zone us-central1-c --project beatrix-test-overlay
- Make sure you can access your cluster with kubectl by running the following command:
kubectl config view
- You should now have access to the CS-GKE instance and run Kubernetes commands locally via kubectl.
Upgrading CS-GKE Kubernetes Instance
We are currently deployed using this deploy-sourcegraph-cse-kustomize repository. To upgrade the instance:
- Clone the deploy-sourcegraph-cse-kustomize repository to your local machine.
cdinto the newly cloned directory.
- Make sure you are on the main branch:
git checkout main
- Get the latest version of Sourcegraph from the upstream by running
git fetch upstream
Note: you may need to set the upstream origin on your master branch
git remote add upstream https://github.com/sourcegraph/deploy-sourcegraph-k8s
- Merge the latest update from upstream to the release branch:
git checkout release
- Choose which version you want to deploy from the Sourcegraph release page then run:
git merge $NEW_VERSION.
- After merging, you’re likely to encounter some merge conflicts. Please resolve them(most of them require clicking on
Accept Incoming Change- if you’re using MS Studio as your code editor.
- You can then add and commit the changes by running
git add .followed by
git commit -m "$YOUR_COMMIT_MESSAGE"
- Build new manifests with Kustomize
Generate a new set of manifests locally using your current overlay instances/my-sourcegraph without applying to the cluster.
kubectl kustomize instances/my-sourcegraph -o cluster.yaml
Review the generated manifests to ensure they match your intended configuration and have the images for the $NEW_VERSION version.
- Deploy the generated manifests
Apply the new manifests from the ouput file cluster.yaml to your cluster:
kubectl -n ns-sourcegraph apply --prune -l deploy=sourcegraph -f cluster.yaml
- Monitor the status of the deployment to determine its success.
kubectl -n ns-sourcegraph get pods --watch.
- Confirm the new version here
- Please don’t forget to
git pushto our repo to give folks a head up that you made the upgrade!
Video on how upgrading the instance looks like: https://drive.google.com/file/d/1aWsXejG2qeFKGrY5BGzpSabwGuU1gLM3/view
- Basic functions and commands (e.g. how to view the names of services and get their logs) can be viewed here.