How to add additional capabilities in Bamboo DC, and remote agent deployed in Kubernetes platform using Helm chart

Still need help?

The Atlassian Community is here for you.

Ask the community

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

  1. Define additional volumes for application to all Bamboo pods.

    additional volume configuration
    volumes:
      additional:
        - name: executable-mount
  2. The above will not create the volume, so you must add it as a property to make the mount point.

    additionalVolumeMounts
    additionalVolumeMounts:
      - name: executable-mount     
        mountPath: /mnt/lib
  3. 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"]
  4. 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


Last modified on May 18, 2024

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.