Skip to main content
Version: 5.7.1

Project Creator Guide

This guide shows you how to create projects using the CLC `project create` command.

Introduction​

Hazelcast CLC provides a solution that simplifies the creation of Hazelcast projects. The created projects do not require further configuration.

You can find the templates in the Hazelcast Templates GitHub Account.

Create a Cloud Cluster​

For this guide, let's create a Hazelcast Cloud Cluster. First, sign in to the Cloud console, and follow the Get Started with the Hazelcast CLC tutorial.

Create Your First Project with Default Hazelcast Templates​

Before creating a project, list the available templates using the following command:

bash
clc template list

When you create a project, the template is stored in $CLC_HOME/templates directory. To list only the templates stored in your local environment, add the --local flag to the template list command.

To fetch the latest updates from repositories, add the --refresh flag to the command.

note

These flags are mutually exclusive, which means that you can only use one of them in a command.

Let's create our first project by using go-client-getting-startedˆ template. This template includes the following extension files:

go-client-getting-started
├── README.md.keep
├── config.go.template
└── ...

The .template extension specifies that the file is a Go template that includes placeholders and actions. The .keep extension identifies files to keep as they are required for the project. For example, a file named README.md in the template is replaced by a file named README.md.keep when the project is created.

Let's look a bit deeper to config.go.template to see what placeholders are included:

  • config
  • cluster_name
  • cluster_discovery_token
  • cluster_address
  • ssl_key_path
  • ssl_cert_path
  • ssl_key_password
  • cluster_api_base

that are used in this template. You can find a full list of placeholders in the clc project topic.

To create a project, run the following command:

bash
clc -c <your-config> project create go-client-getting-started

This project is created in the current working directory. To create the project in a different directory, add the --output-dir flag to the command. Once created, the project can be run immediately as the placeholders are already configured.

Create and Use User-created Templates​

If preferred, you can use templates that you have created. When creating your templates, keep the following points in mind:

  • Use the format used in the Go template.

  • To add default values, create a template.yaml file, add a defaults node, and save it in the template root directory.

  • Template files must have the .template extension.

  • File names that start with a period (.) or underscore (_) are ignored, unless they also have a .keep extensions.

  • Any files with a .keep extension are copied to the project with the .keep extension removed. All other files are copied without changes. *Properties are read from the following resources in order:

    1. The defaults node of the templates.yaml file.

      note

      The keys must not contain any punctuation characters.

    2. config.yaml

    3. User passed key-values in the "KEY=VALUE" format.

      note

      The keys must contain only lowercase, numerical, and underscore characters.

After creating your template, push it to a GitHub repository that resides in a separate organization. Hazelcast recommends creating an account/organization specifically for your templates.1

To list your templates, use the template list command with --source flag:

bash
clc template list --source=<your-organization-name>

To create a project from your template, run the following command:

bash
clc -c <your-config> project create <your-template> --source=<your-organization-name>

You can also use placeholders in your template, which can be passed using the create command as follows:

bash
clc -c <your-config> project create <your-template> foo=bar --source=<your-organization-name>

In the example above, the foo placeholder will be replaced with bar on project creation.

Conclusion​

In this guide you saw how to use default Hazelcast templates, and how to create and use your own templates, when creating projects.

The project creator provides a straightforward way to create ready-to-use projects using a single command.

For full details of the usage and parameters of the clc template and clc project commands, see the clc template and clc project documentation.