Skip to content

Commit

Permalink
Updated documentation for flux-manifests (#43)
Browse files Browse the repository at this point in the history
  • Loading branch information
kbabigumira authored Aug 15, 2024
1 parent 540246c commit fcf4c39
Showing 1 changed file with 23 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ The Flux Operator is a Kubernetes controller that manages the lifecycle of Flux

## Generating the Flux Manifests

Flux manifests are used by the Flux GitOps Operator to deploy the services into the AKS cluster. The flux manifests are generated either when scaffolding a new service using the ADP Portal or when the CD pipeline is deploying a service to a new environment (for which the flux manifests don’t exist or require updating).

![image.png](../../../../images/core-platform/flux/Flux-Manifests-Generation-Process.png)

1. A Delivery Project is created following the process described in [the Onboarding a delivery project section](../../../../Getting-Started/onboarding-a-delivery-project.md). The portal will make an API POST request to the backend API to create the Team specific AD Groups to be used for RBAC.
Expand All @@ -48,3 +50,24 @@ The Flux Operator is a Kubernetes controller that manages the lifecycle of Flux
6. The Backend service will start by writing the information to the Teams config.
7. The API will then create/update the Flux manifests for the Sandpit environments in the Flux Services repository. For upstream environments (dev, tst, pre and prd), the CI pipeline will add/update the flux manifests on demand during the deployment of the services to that environment.
8. Flux will reconcile and deploy the application.

## Process for making changes to the Flux Templates

The flux generation process is split into two environments, Sandpit and Production. The sandpit environment will be used the core ADP Platform Team to test new enhancements and issues pertaining to scaffolder whilst the Production environment will be used for all environments used by the Development Teams to development, testing and deploying live services.
Each Flux Environment comprises of the following repositories.

• adp-teams-config: This GitHub repository contains the configuration used to define and generate the flux manifests. The configuration is defined at tenant, environment, and service level. This GitHub repository’s visibility has been set to internal.
• adp-flux-core: This GitHub repository contains the flux manifests for deploying the cluster and platform level (core) resources e.g., Nginx Ingress controller, Azure Service Operator, Cert Manager, and other services. This GitHub repository’s visibility has been set to public.
• adp-flux-services: This GitHub repository contains the flux manifests for deploy service level resources. Each deployed microservice that is running in the cluster will have a set of flux manifests that define the configuration Flux requires to deploy the service. No manual process is required for adding the manifests. This has been automated using an API.
• ADP Portal: Users of the Portal can use a set of defined Software Backend and Frontend Templates to scaffold a new service. This leverages an API that scaffolds updates the configuration in the repository adp-teams-config and then scaffolds the flux manifests in the repository adp-flux-services.

Github Organisations used for Flux Manifests Scaffolding

Sandpit - the defra adp sandpit org is used by the platform team.
Production - main DEFRA Github Org

Each of these will contain the following repositories

- adp-teams-config
- adp-flux-core
- adp-flux-services

0 comments on commit fcf4c39

Please sign in to comment.