Getting Started with Project Syn: Working with Commodore
If you haven’t yet, please execute the steps in the "Getting Started with Project Syn" tutorial before attempting the instructions in this document.
This tutorial assumes that you have the "k3d-lieutenant" and "k3d-steward" clusters up and running and that you have installed all required tools.
In addition, create the following environment variable with the path of your private key:
Commodore requires this variable to be able to push changes to the GitLab repositories on your behalf.
Commodore is the third component of the Project Syn suite of tools. It’s a command-line tool that compiles the state of your clusters and pushes the changes to the GitLab projects. Steward watches those projects continuously and immediately applies the changes to your clusters, following the GitOps philosophy.
Compile the information of your
k3d-steward cluster using Commodore by running the command below, which will create a few environment variables in your shell.
source <(curl -fsL https://try.syn.tools/commodore)
After the command above, you should be able to see a few variables and functions in your shell, for example, the Project Syn ID of your "k3d-steward" cluster:
Another thing you should see in your shell is a
commodore command. Commodore is written in Python and requires quite a few external dependencies. To simplify this guide, we run Commodore as a container inside the "k3d-lieutenant" cluster, but you can install Commodore on its own in your system. Please refer to the "Running Commodore" page in this documentation for details.
The output of this command should be a string similar to "c-floral-wood-9134."
Let’s now execute Commodore and compile the cluster.
commodore catalog compile $CLUSTER_ID
Let’s this time compile and push the cluster to GitLab.
commodore catalog compile $CLUSTER_ID --push
At this point, a GitLab project should be under your profile called
project-syn-cluster with all of the Kubernetes resources for your current cluster. And Argo CD automatically starts to synchronize them from the GitLab repository to the managed "k3d-steward" cluster.
If you have kept your Argo CD browser window open at localhost:35778 as explained in the "Accessing Argo CD" section of the first part of this tutorial, you would now see quite a bit of activity, with many applications deployed and featuring "Healthy" and "Synced" statuses.
You can also see the activity in your cluster using the
kubectl top nodes command:
kubectl --context k3d-steward top nodes
The same with the
kubectl top pods -A command:
kubectl --context k3d-steward top pods -A