1.9 KiB
Puppet Environments
An Puppet environment is a particular version of the Puppet code/configuration. In our infrastructure an Puppet environment always corresponds to a git branch in the main puppet codebase: https://git.psi.ch/linux-infra/puppet
To all time our Puppet server provides two environments, prod and preprod.
Development Environments
Beside the prod and preprod environments, development environments for feature branches of the puppet git repository are automatically put on and removed from the puppet server. To create a new feature branch and test environment simply:
ON YOUR COMPUTER!
- Clone the puppet repository https://git.psi.ch/linux-infra/puppet
- Create a new branch with a name that matches following regex:
^[a-z]+[a-z,0-9,_]+$(e.g. my_test_branch) - Do the necessary changes and commit your changes
- Push the new branch / changes to the git server
Whenever the git server receives a push a gitlab-runner gets triggered on the puppet server that does the automatic checkout of the branch and registers this as a new development environment.
Note: If branches are deleted on the git server the corresponding checkouts/environments on the puppet server will also be removed. (with some delay)
To use/test the code changes via the puppet test environment use
puppet agent -t --environment=issue_x
The following video shows all the necessary steps in detail. (The left terminal is a shell on my workstation, the right terminal is a shell on a test server)
Once you are done with the develoment and testing create a merge request for the branch to the preprod branch.
Development Environment Names
The name of an branch/environment must match the following regex expression: ^[a-z]+[a-z,0-9,_]+$
If the name is not compliant with this rule, a push of the branch to the git server will not be possible.