How to add additional capabilities in Bamboo DC, and remote agent deployed in Kubernetes platform using Helm chart
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
When installing Bamboo DC in the Kubernetes platform using Helm chart, some required executables are not installed by default. For example, the installation does not include the Kubernetes API client needed to communicate with the cluster. Also, you may want to add some executables to your clustered agents for Builds, etc. The purpose of this document is to provide an essential guide on how to add the required executables using the initContainer
in Bamboo DC and Remote agent Helm chart.
Environment
Bamboo DC
Solution
Define additional volumes for application to all Bamboo pods.
additional volume configurationvolumes: additional: - name: executable-mount
The above will not create the volume, so you must add it as a property to make the mount point.
additionalVolumeMountsadditionalVolumeMounts: - name: executable-mount mountPath: /mnt/lib
Define an additional init container that will be added to all Bamboo pods. Write the executables to the mount point created above; this also applies to other required executables for your build. In this example of an AWS EKS cluster,
kubectl
executable is added to the user binary directory of Bamboo or the agent pod.additionalInitContainers: - name: eksctl-home-container image: ubuntu volumeMounts: - name: executable-mount mountPath: /mnt/lib command: ["/bin/bash"] args: ["-c","set -e; apt update; apt upgrade -y; \ apt install curl tar wget -y; curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl; \ mv kubectl /mnt/lib; chmod +x /mnt/lib/kubectl; ln -s /mnt/lib/kubectl /usr/local/bin/kubectl"]
Install the chart if its a new setup OR Upgrade chart if its an already running instance to reflect the changes;
helm install bamboo atlassian-data-center/bamboo --version 1.19.0 --values values.yml OR helm upgrade bamboo atlassian-data-center/bamboo --values values.yml