Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,361,324
Community Members
 
Community Events
168
Community Groups

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

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

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.

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.

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.

@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.

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
Community showcase
Published in Bamboo

Bamboo 9.0 is now available

Hey there, Data Center community! I'm Martyna Wojtas and I am the Product Manager for Bamboo Data Center. I’m excited to share that Bamboo 9.0 is now available. We purpose-built this platform to help...

313 views 0 7
Read article

Atlassian Community Events