The greymatter CLI provides a helpful project initialization engine enabling you to easily get your services into a mesh. We call this
greymatter init and it'll serve as your helpful guide for deploying your services.
To check out how to use greymatter init and all its available configuration, run the help command.
greymatter init help
greymatter init instantiates a new greymatter project with bundled resources such as a starter application edge node, an initial greymatter sync.yaml file (which must be edited), and the latest of the GSL (greymatter Specification Language) CUE.
To create a project in your current working directory, provide init with a project name and execute.
greymatter init $PROJECT_NAME
Init will run and initialize your target directory with a directory structure that conforms to the following tree below:
├── .greymatter ├── README.md ├── TUTORIAL.md ├── cue.mod ├── greymatter │ ├── policies │ ├── core │ │ └── edge.cue │ ├── globals.cue │ └── $MY_PROJECT └── k8s ├── manifests.yaml └── sync.yaml
Check out the README of your newly created scaffold to learn about what each component means and what can be done with them.
Here are some core features worth noting:
- You'll receive your own application edge node.
- Kubernetes manifests for the the application edge node as well as a StatefulSet for greymatter sync.
- A helpful CUE tutorial for beginners.
- A fully baked cue module with all necessary dependencies utilizing GSL.
If you haven't done so already, we recommend changing the namespaces for your projects deployment target in all generated Kubernetes manifests. This includes the
k8s/manifests.yaml file as well as
Now that you've got your project initialized, let's learn how to get your services into the mesh. Check out the next steps for further reading.