UNCLASSIFIED - NO CUI

Skip to content
Snippets Groups Projects
Commit 18c1c0e6 authored by Michael McLeroy's avatar Michael McLeroy
Browse files

docs: package integration outline and placeholders

parent 46b65f40
No related branches found
No related tags found
2 merge requests!1386Master,!971Resolve "Create outline and placeholders for dev/reseller package integration docs"
Showing
with 154 additions and 0 deletions
# Big Bang Package: Database Integration
If the package you are integrating connects to a database or cache server, you will need to follow the instructions below to integrate this feature into Big Bang
## Prerequisites
TBD
## Integration
## Validation
# Big Bang Package: Documentation
Big Bang requires some additional documentation for supported packages to help user's understand how it interacts with other components. The following are documents that should be created or updated for integration into Big Bang:
- TBD
# Big Bang Package: Flux Integration
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
TBD
## Integration
## Validation
# Big Bang Package: Monitoring
Monitoring packages requires a way to scrape metrics, provide those to data storage, and analyzing the results. Big Bang uses Prometheus and Grafana as the service for monitoring. Most packages offer built-in Prometheus metrics scraping or an add-on that will scrape the metrics. This document will show you how to integrate metrics scraping with Big Bang.
## Prerequisites
TBD
## Integration
## Validation
# Big Bang Package: Network Policies
To help harden the Big Bang, network policies are put in place to only allow ingress and egress from package namespaces to other needed services. A deny by default policy is put in place to deny all traffic that is not explicitly allowed. The following is how to implement the network policies per Big Bang standards.
## Prerequisites
TBD
## Integration
## Validation
# Big Bang Integration: Overview
The following documents should be followed, in order, to fully integrate a new package into Big Bang:
1. [Upstream Helm Chart](./package-integration-upstream.md): Initialize package workspace using an upstream Helm chart
1. [CICD Pipeline](./package-integration-pipeline.md): Establish a baseline package pipeline for testing changes
1. [Flux Helm Chart](./package-integration-flux.md): Create Flux compatible GitOps Helm chart required by Big Bang
1. [Service mesh](./package-integration-service-mesh.md): Integrate with service mesh for ingress/egress
1. [Monitoring](./package-integration-monitoring.md): Enable metrics scraping on product
1. [Database](./package-integration-database.md): If required, add internal and external database support using Big Bang values
1. [Object Storage](./package-integration-storage.md): If required, add internal or external object storage support using Big Bang values
1. [Single-sign On](./package-integration-sso.md): If available, add single-sign on (SSO) through internal or external identify provider.
1. [Additional Tests](./package-integration-testing.md): Add testing to validate basic functionality
1. [Network Policies](./package-integration-network-policies.md): Add ingress/egress policies to restrict network traffic for security
1. [Policy Enforcement](./package-integration-policy-enforcement.md): Update package to comply with default security and governance policies in Big Bang
1. [Supported Package](./package-integration-supported.md): Migrate package into the Big Bang repo as a supported package
1. [Final Documentation](./package-integration-documentation.md): Add additional Big Bang documentation for final release
# Big Bang Package: Pipeline Integration
Big Bang contains a 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.
## Prerequisites
TBD
## Integration
## Validation
# Big Bang Package: Policy Enforcement
Big Bang has several policies for Kubernetes resources to ensure best practices and security. For example, images must be pulled from Iron Bank, or containers must be run as non-root. These policies are currently enforced by [OPA Gatekeeper](https://repo1.dso.mil/platform-one/big-bang/apps/core/policy), which gets deployed as the first package in Big Bang.
When integrating your package, you must adhere to the policies that are enforced or your resources will be denied by the Kubernetes admission controller. The following is how to identify and fix policy violations.
## Prerequisites
TBD
## Integration
## Validation
# Big Bang Package: Service Mesh Integration
[Istio](https://istio.io/) provides the [service mesh](https://istio.io/latest/about/service-mesh/) for Big Bang. The service mesh assists with secure traffic routing in the cluster. This document will show you how to update your package to support Big Bang's configuration of Istio.
## Prerequisites
TBD
## Integration
## Validation
# Big Bang Package: Single Sign On (SSO)
Big Bang has configuration for Single Sign-On (SSO) authentication using an identity provider, like Keycloak. If the package supports SSO, you will need to integrate Big Bang's configuration with the package. If the package does not support SSO, an [authentication service](https://repo1.dso.mil/platform-one/big-bang/apps/core/authservice) can be used to intercept traffic and provide SSO. This document details how to setup your package for either scenario.
## Prerequisites
TBD
## Integration
## Validation
# Big Bang Package: Object Storage
If your package supports using object storage (e.g. S3 buckets), it must be integrated with Big Bang's storage configuration. This document will detail how to do this.
## Prerequisites
TBD
## Integration
## Validation
# Big Bang Package: Testing
Usually, Helm charts come with a set of Helm tests that can be run to test the deployment of the application. Big Bang requires some additional tests to verify integration is working as expected. By adding additional tests, the goal is to verify that the package is functioning. For example, we may want to validate that
- The HTTPS endpoint can be reached
- The admin user can login using the configured (or randomized) password
- A non-admin user can be created and can login
- Data can be stored and retrieved from the database
- Artifacts can be stored and retrieved from the object storage
- Interactions with other services/packages works
## Prerequisites
TBD
## Integration
## Validation
# Big Bang Package: Upstream Integration
Before beginning the process of integrating a package into Big Bang, you will need to create a workspace and create or sync the package's Helm chart. This document shows you how to setup the workspace and sync the upstream Helm chart.
## Prerequisites
TBD
## Integration
## Validation
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