Light Dark Auto

Creating A Project

Greymatter Version

  • v1.8.0

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.

Initializing A Project

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
├── 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.

What comes in a greymatter project?

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 k8s/sync.yaml.

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.

Next Steps