treasuremap/README.md
Sidney Shiba 9eb8126375 Dex Treasure Map - New Function + Test Site
This patchset provides the implementation of dex-aio function, which is
used to deploy Dex through a Helm operator, e.g., flux/helm-operator.

A test site (dex-test-site) has been included, which contains manifests
to run the following phase plan:

         clusterctl-init-ephemeral
         controlplane-ephemeral
         initinfra-target
         clusterctl-init-target
         clusterctl-move
         workers-target

         helm-operator-target
         helm-collator-target
         dex-release-target

The first six phases are used to deploy a target cluster on Azure cloud
while the remaining three are for deploying Dex through a Helm operator.

The 'helm-collator-target' phase requires an existing "airshipctl" repo
supporting the function 'helm-chart-collator', which is provide by a
different patchset.

Change-Id: I7057d9a5c78cbcef26bac89a9f5bf06fd0d3ac4d
2021-03-05 17:21:22 -06:00

81 lines
3.7 KiB
Markdown

# Deploy Dex on Target Cluster (Azure cloud)
This test site provides the manifests to customize and deploy a target cluster on Azure named ***edge-5g-cluster***.
Once the target cluster has been deployed, manifest in target/workload can be used to deploy the Helm operator, Helm Collator (Helm repository), and Dex itself.
## Dex-AIO Function
The **dex-aio** function provides the manifests to deploy Dex through a Helm Operator.
## Dex Test Site
The **dex-test-site** provides the manifests to deploy a Target cluster on Azure cloud, and workload manifests for the Helm operator, Helm Chart Collator (a.k.a., Helm repository based on ChartMuseum), and Dex.
See **dex-test-site** directory structure below:
```bash
dex-test-site/
├── config
│ └── variable-catalogue.yaml
├── ephemeral
│ └── controlplane
├── metadata.yaml
├── phases
└── target
├── initinfra
├── workers
└── workload
├── dex-helm-release
├── helm-chart-collator
└── helm-operator
```
This test site relies on the *Replacement* transformer to customize it. All customizable values can be found at *config/variable-catalogue.yaml" file.
### Deploying the Target Cluster
The manifests for deploying the Target cluster through *airshipctl phase run* are located in the following tree structure:
```bash
dex-test-site/
├── ephemeral
│ └── controlplane
└── target
├── initinfra
└── workers
```
The sequence for deploying the Target cluster is provided below:
1. Initialize *Airship config* file: invokde *`tools/deployment/22_test_configs.sh`*
2. Create ephemeral cluster: invoke script *`../airshipctl/tools/document/start_kind.sh`*
3. Initialize Ephemeral cluster with CAPI/CAPZ components: invoke script *`tools/deployment/phases/phase-clusterctl-init-ephemeral-script.sh`*
4. Deploy Target control plane node(s): invoke script *`tools/deployment/phases/phase-controlplane-ephemeral-script.sh`*
5. Deploy Calico CNI: invoke script *`tools/deployment/phases/phase-initinfra-target-script.sh`*
6. Initialize Target cluster with CAPI/CAPZ components: invoke script *`tools/deployment/phases/phase-clusterctl-init-target-script.sh`*
7. Move CAPI resources to Target cluster: *`tools/deployment/phases/phase-clusterctl-move-script.sh`*
8. Deploy Target worker node(s): *`tools/deployment/phases/phase-workers-target-script.sh`*
### Deploying the Workload Services
The manifests for deploying the workload services are located under *target/workload* directory:
```bash
dex-test-site/
└── target
└── workload
├── dex-helm-release
├── helm-chart-collator
└── helm-operator
```
In order to test and validate Dex deployment, you need to first deploy the Helm operator (*manifest/composite/flux-helm*) from *airshipctl* project, as well as the Helm Chart Collator (*manifest/function/helm-chart-collator*) from the same project. These two services are referenced by the *kustomization* file in *target/workload/helm-operator* and *target/workload/helm-chart-collator*, respectively.
The *kustomization* file for deploying *Dex* service is located in *target/workload/dex-helm-release* folder.
New phases have been implemented to deploy the Helm operator, Helm repository and Dex. The corresponding phase manifest can be found in *phases/phases.yaml*.
1. Deploy Helm operator service: invoke script *`tools/deployment/phases/phase-helm-operator-target-script.sh`*
2. Deploy Helm Chart Collator service: invoke script *`tools/deployment/phases/phase-helm-collator-target-script.sh`*
3. Deploy Dex service: invoke script *`tools/deployment/phases/phase-dex-release-target-script.sh`*