Big Bang contains and uses a continuous deployment tool to deploy packages using Helm charts sourced from Git. This document will cover how to integrate a Helm chart from a mission application or other package into the pattern Big Bang requires. Once complete, you will be able to deploy your package with Big Bang.
- Docker CLI
- Big Bang package project containing your Helm chart
You will need to have the Container Registry enabled.This can be requested from the Big Bang team.
Throughout this document, we will be setting up an application called
podinfoas a demonstration.
Each package will have a default branch of
main. Immutable tags will be used to identify releases and will follow a semver versioning scheme.
Pipelines provide rapid feedback to changes in our Helm chart as we develop and should be put in place as early as possible. Big Bang has a few different pipelines that can be used for packages.
The pipeline requires that all images are stored in either Iron Bank (
registry1.dso.mil) or Repo1 (
registry.dso.mil). In some cases, you may be able to substitute images already in Iron Bank for the ones in the Helm chart. For example, images for
jq can use
registry1.dso.mil/ironbank/big-bang/base. If you have not already submitted your containers to Iron Bank, start the process. While you are working your way to Iron Bank approval, you can temporarily put the images in
registry.dso.mil for development by doing the following:
Check if the Container Registry is on by navigating to
https://repo1.dso.mil/platform-one/big-bang/apps/sandbox/<your project>/container_registry. If you get a 404 error, you need to request a Maintainer turn this feature on in your project via Settings > General > Visibility > Container Registry.
# Image Info export IMGSRC_REPO=docker.io export IMGSRC_PROJ=stefanprodan export IMGDST_REPO=registry.dso.mil export IMGDST_PROJ=platform-one/big-bang/apps/sandbox/podinfo export IMGNAME=podinfo export IMGTAG=6.0.0 # Pull image locally docker pull $IMGSRC_REPO/$IMGSRC_PROJ/$IMGNAME:$IMGTAG # Retag image docker tag $IMGSRC_REPO/$IMGSRC_PROJ/$IMGNAME:$IMGTAG $IMGDST_REPO/$IMGDST_PROJ/$IMGNAME:$IMGTAG # Login in docker registry docker login $IMGDST_REPO # Push to registry docker push $IMGDST_REPO/$IMGDST_PROJ/$IMGNAME:$IMGTAG
chart/values.yamlwith either the
registry.dso.milfor images. For example:
image: repository: registry.dso.mil/platform-one/big-bang/apps/sandbox/podinfo/podinfo tag: 6.0.0
Update the repo’s CI/CD settings to call the pipeline (
Settings > CI/CD > General pipelines > Expand > CI/CD configuration file). For Bigbang
For Third party
Add overlay values for testing into
tests/test-values.yaml. This will be where you add values needed for running in the pipeline. For now it can be a blank, placeholder.
Commit the changes
git add -A git commit -m "feat: package pipeline" git push
Big Bang requires a Merge Request to run the pipeline. Open a MR to merge your branch into the main branch.
You will need to add
SKIP UPDATE CHECKand
SKIP UPGRADEinto the title of the first MR or it will fail. Until you have a baseline Helm chart and CHANGELOG in place, these stages need to be skipped.
The pipeline will install the package, run any Helm tests (
chart/tests), and run any custom tests (
Troubleshoot and fix any failures from the pipeline.
Big Bang Integration for Third-Party and Sandbox Packages📜
Third-party and sandbox pipelines both have an
integration stage that will deploy and test a package as a Big Bang compatible package.
Examples of components that contribute to a package being “Big Bang compatible”:
This stage also allows any Big Bang Core or Addon packages to be deployed alongside a third-party or sandbox package for testing compatibility/functionality.
To set this up in a package repo, see the guide here.