Cloud Assembly supports integration with various flavors of Git repositories so that you can manage VMware cloud templates and action scripts under source control. This functionality facilitates auditing and accountability of processes around deployment.

Cloud Assembly supports different flavors of Git integration as described in the following list. Each of these options is a separate integration.

  • GitHub cloud, GitHub Enterprise on-premises
  • GitLab cloud GitLab Enterprise on-premises
  • BitBucket on-premises

You must have an appropriate local Git repository configured with access for all designated users in order to set up Git integration with Cloud Assembly. Also, you must save your cloud templates in a specific structure in order for them to be detected by Git. To create an integration with GitLab or GitHub, select Infrastructure > Connections > Integrations in Cloud Assembly and then make the appropriate selection. You will need the url and token for the target repository.

When Git integration is configured with an existing repository, all cloud templates associated with selected projects become available to qualified users. You can use these templates with an existing deployment or as the basis of a new deployment. When you add a project, you must select some properties regarding where and how it is stored in Git.

You can save actions to a Git repository directly from Cloud Assembly. You can version action scripts either directly to Git, or you can create versions in Cloud Assembly. If you create a version of an action in Cloud Assembly, then it is automatically saved to Git as a version. Cloud templates are a bit more complicated, because you cannot directly add them to a Git integration from Cloud Assembly. You must save them directly to a Git instance, and then you can retrieve them from Git when working with the cloud template management page in Cloud Assembly.

Before you Begin

You must create and save your cloud templates in a specific structure in order for them to be detected by GitLab or GitHub.

  • Configure and store cloud templates to be integrated with GitLab correctly. Only valid templates are imported into GitLab.
    • Create one or more designated folders for the cloud templates.
    • All cloud templates must be stored within blueprint.yaml files.
    • Ensure that the top of your templates include the name: and version: properties.
  • Extract an API key for the applicable repository. In your Git account, select your login in the upper right corner, and navigate to the Settings menu. Select Access Tokens, then name your token, set an expiration date. Then, select API and create the token. Copy the resulting value and save it.

The following guidelines must be observed for all cloud templates used with Git integration.

  • Each cloud template must reside in a separate folder.
  • All cloud templates must be named blueprint.yaml.
  • All cloud template YAML files must use name and version fields.
  • Only valid cloud templates are imported.
  • If you update a draft cloud template imported from Git, and its content differs from that in the top version, the draft will not be updated in subsequent syncs and a new version is created. If you want to update a template and also allow further sync's from Git, then you must create a new version after final changes.