I keep my templates for VCF Automation in a source control repository. (Specifically, it’s a GitLab repository hosted within my Homelab and replicated out to GitHub for good measure.) The repository is the source of truth for such templates. If I ever need to redeploy VCF Automation, or if I ever need to share a template, then they’re in a safe place. In terms of my template development process, I tend to work in the Assembler UI first until I have the bones of what I want to achieve and then I move the template code into GitLab and work from there.
It’s not the most efficient process but that’s because the source control integration for VCF Automation templates is uni-directional. It imports from source control but can’t make changes. Quite frustrating but I have learned to live with it!
Once my templates are in my GitLab repository, they show up in Assembler looking like the image below.

Notice the nice green ticks against each template. It gives you a warm, fuzzy feeling that everything is right with the world.
With the templates imported from GitLab, we can release them to Service Broker to be consumed by users. However, by default the templates don’t have a description so how is anyone supposed to know what they’re for? (Ok, in the image below you can take an informed guess but they are simple templates. Anything more complicated might not be adequately described by the item name alone.)

If you head back into Assembler, the description for the templates can be set by editing each one and typing (or pasting) in a description.

With a description added to the “Ubuntu” template, we’re starting to get a better looking and more useful catalog.

So far, so simple. But here is where the annoying little problem comes in. What if I want to make a change to my template in GitLab and have it updated in VCF Automation? To demonstrate what happens, I’m just going to increment the version of the template and commit the change.

If we check back in Assembler, the updated version is found and imported ok, but the warm fuzzy feeling that we had earlier with the raft of green ticks is gone!

By clicking on the orange exclamation mark you get to see the following text:
Draft not updated as content has diverged from latest version.
It’s important to note that this doesn’t affect your ability to release versions of the templates out to the Service Broker catalog. That still works. The description that was applied is persisted too. The only thing that’s wrong is that little orange exclamation symbol. It bugs me though so I had to find a way to get rid of it.
What’s actually happening is that adding the description has created a modified “current draft” version of the template. Assembler is just complaining about that. So how do we make it go away?
Ideally, Assembler would read the description of the template from the YAML file in source control, but it doesn’t. Instead we must work around the limitation using the following steps:
- In the assembler UI, create a new version of the template. In the the example my last version in GitLab was 0.1.2 so I’m going to create 0.1.3.

- Update the template version in GitLab to 0.1.4. Commit the change and let Assembler sync the template.
Voila! The template’s latest version is from GitLab. The template has a description associated with it. The template has a green tick again. Fans of warm fuzzy feelings can rejoice!