Is it possible to preserve environment variables on bamboo specs publish?

John Smith August 31, 2017

From my understanding would be logical to nullify variables/triggers/permissions for the environment if the one explicitly passed an empty list in specs. No empty list - nothing should be touched. How to combine UI and Specs now? I publish deployment environments. Users modify variables. I publish again and poof - all user settings are gone.

1 answer

0 votes
Marek Parfianowicz
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 10, 2017

I publish deployment environments. Users modify variables. I publish again and poof - all user settings are gone.

Could you please provide more details how your workflow looks like?

Why users do modify variables in environments using UI, instead of simply updating them in Bamboo Specs?

  • What do you gain by this?
  • What blocks you from keeping them in Specs?

By maintaining variables in Bamboo Specs and versioning specs in VCS, you gain significant benefits, which is tracking of environment changes, ability to rollback to previous version etc.

 

No empty list - nothing should be touched.

Bamboo Specs does not distinguish between "no empty list" and "empty list". Empty simply means no elements in the list. Which means that any existing settings shall be removed. No matter whether it's about variables or any other kind of entity.

Marek Parfianowicz
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 10, 2017

PS: there is only one exception. In Plan and Job you can use "noXyz()" methods:

  • com.atlassian.bamboo.specs.api.builders.plan.Plan#noDependencies
  • com.atlassian.bamboo.specs.api.builders.plan.Plan#noNotifications
  • com.atlassian.bamboo.specs.api.builders.plan.Job#noPluginConfigurations
  • com.atlassian.bamboo.specs.api.builders.plan.Plan#noPluginConfigurations

They are deprecated and provided only for backward compatibility with Bamboo 6.0. Support for dependencies, notifications and plugin configurations was introduced in Bamboo 6.1.

John Smith November 4, 2017

We've got different types of users that work with deploy environments: someone maintains it, someone deploys. The deploys are parametrized: which database to use, what to deploy, etc.

An average QA engineer won't use git, won't do commits but rather will use UI to configure some environment parameters for the deploy.

For maintenance it is easier to go for specs, because we can easily do bulk changes, or can easily add a new environment into a list of 100 environments, or can easily merge/split/copy environments across different projects. Doing it with UI is very inconvenient. So we want to use Specs and track it with git, but do not want to mess with parameters configured by other engineers.

kiranpatel11 May 20, 2020

@Marek Parfianowicz 

Bamboo specs secrets encryption is not useful if you have multiple teams using same Bamboo server. One team can steal encrypted secret and use it without the need of decrypting it. Worst is - it is recommended way in your official documentation.

It would be best if we have "Bamboo build plan as code" and manage the Project level variables ourside of plan specs. So that specs can be managed via code, but variables- particularly secrets- can be managed outside of code.

I suggest to check the usability of GitLab pipeline. It makes so much sense.

Marek Parfianowicz
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
May 21, 2020

See https://jira.atlassian.com/browse/BAM-7132

This will be available in Bamboo 7.1.0

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events