UNCLASSIFIED - NO CUI

Skip to content
Snippets Groups Projects
Commit 845bd377 authored by Micah Nagel's avatar Micah Nagel
Browse files

Merge branch 'update-package-integration-docs' into 'master'

Update Package Integration Docs for Pipelines

Closes #1144 and platform-one/big-bang/apps/developer-tools/sonarqube#41

See merge request platform-one/big-bang/bigbang!1697
parents 79bfe82b e3d5012a
No related branches found
No related tags found
1 merge request!1697Update Package Integration Docs for Pipelines
Pipeline #824074 failed
# Big Bang Package: Flux Integration
Following the steps in this guide will result in the `integration` job being run for Third Party and Sandbox pipelines.
If there's a need to disable this job, add `SKIP INTEGRATION` to the title of the Merge Request.
Big Bang uses a continuous deployment tool, [Flux](https://fluxcd.io/) to deploy packages using Helm charts sourced from Git ([GitOps](https://www.weave.works/technologies/gitops/)). This document will cover how to integrate a Helm chart, from a mission application or other package, into the Flux pattern required by Big Bang. Once complete, you will be able to deploy your package with Big Bang.
## Prerequisites
......@@ -266,7 +270,7 @@ Use the Big Bang default values to make sure our Helm templates don't have any s
To validate that the Helm chart is working, perform the following steps to deploy your package. This assumes you already have a Kubernetes cluster running.
1. Disable all default packages in Big Bang by adding the following to `bigbang/values.yaml`
1. Disable all packages that are enabled by default in Big Bang by adding the following to `bigbang/values.yaml`
```yaml
# Network Policies
......@@ -306,6 +310,25 @@ To validate that the Helm chart is working, perform the following steps to deplo
enabled: false
```
1. To enable Big Bang packages that are disabled by default, add the appropriate code block for the Big Bang package from the Big Bang helm chart [values file](https://repo1.dso.mil/platform-one/big-bang/bigbang/-/blob/master/chart/values.yaml).
- For example, if you want to test a package's functionality with MinIO, you would add this block from the Big Bang helm chart values file to the package repo's `bigbang/values.yaml` file
```yaml
addons:
minioOperator:
enabled: true
minio:
enabled: true
```
- This would deploy MinIO in the `integration` stage with default configurations
- Any values that are present in the Big Bang helm chart values file can be configured here also. The pipeline merges these two files into a single values file before deployment, so the package repo's `bigbang/values.yaml` provides a way to configure a Third Party or Sandbox package along with Big Bang package configurations in a single values file.
- A `tests/test-values.yaml` in a package repo can be used as override values for the pipeline. It allows pipeline-specific configurations so that the package's `chart/values.yaml` doesn't have to be changed.
1. Install flux using the [instructions from Big Bang](https://repo1.dso.mil/platform-one/big-bang/bigbang/-/blob/1.19.0/docs/guides/deployment_scenarios/quickstart.md#step-8-install-flux).
1. Install the package using the bigbang Helm chart
......
......@@ -13,7 +13,11 @@ Big Bang contains and uses a continuous deployment tool to deploy packages using
## Package Pipeline
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 [generic pipeline](https://repo1.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates/-/blob/master/templates/package-tests.yml) that we can reuse for packages.
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.
- [bigbang-package](https://repo1.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates/-/blob/master/pipelines/bigbang-package.yaml)
- [sandbox](https://repo1.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates/-/blob/master/pipelines/sandbox.yaml)
- [third-party](https://repo1.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates/-/blob/master/pipelines/third-party.yaml)
1. 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 `curl`, `kubectl` or `jq` can use `registry1.dso.mil/ironbank/big-bang/base`. If you have not already submitted your containers to Iron Bank, [start the process](https://repo1.dso.mil/dsop/dccscr/-/blob/master/README.md). 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:
......@@ -87,6 +91,18 @@ Pipelines provide rapid feedback to changes in our Helm chart as we develop and
1. Troubleshoot and fix any failures from the pipeline.
## Big Bang Pipeline
## Big Bang Integration for Third-Party and Sandbox Packages
Big Bang uses a continuous deployment tool, [Flux](https://fluxcd.io) to deploy packages using Helm charts sourced from Git ([GitOps](https://www.weave.works/technologies/gitops/)).
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":
- Configuring a package to be deployed via Flux custom resource definitions ([GitRepositories](https://fluxcd.io/docs/components/source/gitrepositories/) and [HelmReleases](https://fluxcd.io/docs/components/helm/helmreleases/))
- Service mesh components ([Automatic Istio sidecar injection](https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/#automatic-sidecar-injection) and [Istio VirtualService](https://istio.io/latest/docs/reference/config/networking/virtual-service/))
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.
TBD
To set this up in a package repo, see the guide [here](https://repo1.dso.mil/platform-one/big-bang/bigbang/-/blob/master/docs/developer/package-integration/package-integration-flux.md).
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment