You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -81,8 +81,8 @@ This deployment script created an infrastructure, shown in the following diagram
81
81
82
82
There are a few Platform Team repositories:
83
83
84
-
- [Control Plane](https://github.com/microsoft/kalypso-control-plane): Contains a platform model defined with high level abstractions such as environments, cluster types, applications and services, mapping rules and configurations, promotion workflows.
85
-
- [Platform GitOps](https://github.com/microsoft/kalypso-gitops): Contains final manifests representing the topology of the fleet, such as what cluster types are available in each environment, what workloads are scheduled on them, and what platform configuration values are set.
84
+
- [Control Plane](https://github.com/microsoft/kalypso-control-plane): Contains a platform model defined with high level abstractions such as environments, cluster types, applications and services, mapping rules and configurations, and promotion workflows.
85
+
- [Platform GitOps](https://github.com/microsoft/kalypso-gitops): Contains final manifests that represent the topology of the fleet, such as which cluster types are available in each environment, what workloads are scheduled on them, and what platform configuration values are set.
- [Services GitOps](https://github.com/microsoft/kalypso-svc-gitops): Contains final manifests of sample dial-tone platform services to be deployed across the clusters.
88
88
@@ -99,7 +99,7 @@ The script created the following Azure Kubernetes Service (AKS) clusters:
99
99
100
100
### Explore Control Plane
101
101
102
-
Let's have a look at what is preconfigured in our `control plane` repository. It contains three branches: `main`, `dev` and `stage`. The `dev` and `stage` branches contain configurations that are specific for`Dev` and `Stage` environments. On the other hand, the `main` branch doesn't represent any specific environment. The content of the `main` branch is common and used by all environmentsin the fleet. Any change to the `main` branch is a subject to be promoted across environments. For example, a new application or a new template can be promoted to the `Stage` environment only after successful testing on the `Dev` environment.
102
+
The `control plane` repository contains three branches: `main`, `dev` and `stage`. The `dev` and `stage` branches contain configurations that are specific for `Dev` and `Stage` environments. On the other hand, the `main` branch doesn't represent any specific environment. The content of the `main` branch is common and used by all environments in the fleet. Any change to the `main` branch is a subject to be promoted across environments. For example, a new application or a new template can be promoted to the `Stage` environment only after successful testing on the `Dev` environment.
103
103
104
104
The `main` branch:
105
105
@@ -125,7 +125,7 @@ The `dev` and `stage` branches:
125
125
126
126
## 2 - Platform Team: Onboard a new application
127
127
128
-
The Application Team runs their software development lifecycle. They build their application and promote it across environments. They're not aware of what cluster types are available in the fleet and where their application is going to be deployed. But they do know that they want to deploy their application in`Dev` environment forfunctional and performance testing andin`Stage` environment for UAT testing.
128
+
The Application Team runs their software development lifecycle. They build their application and promote it across environments. They're not aware of what cluster types are available in the fleet and where their application will be deployed. But they do know that they want to deploy their application in`Dev` environment forfunctional and performance testing andin`Stage` environment for UAT testing.
129
129
130
130
The Application Team describes this intention in the [workload](https://github.com/microsoft/kalypso-app-src/blob/main/workload/workload.yaml) file in the [Application Source](https://github.com/microsoft/kalypso-app-src) repository:
131
131
@@ -167,7 +167,7 @@ spec:
167
167
path: ./uat-test
168
168
```
169
169
170
-
This file contains a list of three deployment targets. They are marked with custom labels and point to the folders in [Application GitOps](https://github.com/microsoft/kalypso-app-gitops) repository where the Application Team generates application manifests for each deployment target.
170
+
This file contains a list of three deployment targets. These targets are marked with custom labels and point to the folders in [Application GitOps](https://github.com/microsoft/kalypso-app-gitops) repository where the Application Team generates application manifests for each deployment target.
171
171
172
172
With this file, Application Team requests Kubernetes compute resources from the Platform Team. In response, the Platform Team must register the application in the [Control Plane](https://github.com/microsoft/kalypso-control-plane) repo.
173
173
@@ -210,7 +210,7 @@ With that in place, the application is onboarded in the control plane. But the c
210
210
211
211
### Define application scheduling policy on Dev
212
212
213
-
The Platform Team must define how the application deployment targets are going to be scheduled on cluster types in the `Dev` environment. To do this, submit scheduling policies for the `functional-test` and `performance-test` deployment targets with the following script:
213
+
The Platform Team must define how the application deployment targets will be scheduled on cluster types in the `Dev` environment. To do this, submit scheduling policies for the `functional-test` and `performance-test` deployment targets with the following script:
214
214
215
215
```bash
216
216
# Switch to dev branch (representing Dev environemnt) in the control-plane folder
@@ -271,9 +271,9 @@ This push to the `dev` branch triggers the scheduling process and creates a PR t
271
271
272
272
:::image type="content" source="media/tutorial-workload-management/pr-to-dev-with-app-assignment.png" alt-text="Screenshot showing a PR to dev environment with application assignment." lightbox="media/tutorial-workload-management/pr-to-dev-with-app-assignment.png":::
273
273
274
-
Besides `Promoted_Commit_id`, which is just tracking information forthe promotion CD flow, the PR contains assignment manifests. The `functional-test` deployment target is assigned to the `drone` cluster type, and the `performance-test` deployment target is assigned to the `large` cluster type. Those manifests are going to be landedin`drone` and `large` folders that contain all assignments to these cluster types in the `Dev` environment.
274
+
Besides `Promoted_Commit_id`, which is just tracking information forthe promotion CD flow, the PR contains assignment manifests. The `functional-test` deployment target is assigned to the `drone` cluster type, and the `performance-test` deployment target is assigned to the `large` cluster type. Those manifests will landin`drone` and `large` folders that contain all assignments to these cluster types in the `Dev` environment.
275
275
276
-
Note that there are`command-center` and `small` cluster types as well in the `Dev` environment:
276
+
The `Dev` environment also includes`command-center` and `small` cluster types:
277
277
278
278
:::image type="content" source="media/tutorial-workload-management/dev-cluster-types.png" alt-text="Screenshot showing cluster types in the Dev environment.":::
279
279
@@ -350,11 +350,11 @@ spec:
350
350
351
351
### Promote application to Stage
352
352
353
-
Once we have approved and merged the PR to the `Platform GitOps` repository, the `drone` and `large` AKS clusters that represent corresponding cluster types start fetching the assignment manifests. The `drone` cluster has [GitOps extension](conceptual-gitops-flux2.md) installed, pointing to the `Platform GitOps` repository. It reports its `compliance` status to Azure Resource Graph:
353
+
Once you approve and merge the PR to the `Platform GitOps` repository, the `drone` and `large` AKS clusters that represent corresponding cluster types start fetching the assignment manifests. The `drone` cluster has [GitOps extension](conceptual-gitops-flux2.md) installed, pointing to the `Platform GitOps` repository. It reports its `compliance` status to Azure Resource Graph:
354
354
355
355
:::image type="content" source="media/tutorial-workload-management/drone-compliance-state.png" alt-text="Screenshot showing compliance state details for the drone cluster.":::
356
356
357
-
The PR merging event starts a GitHub workflow `checkpromote`in the `control plane` repository that waits until all clusters with the [GitOps extension](conceptual-gitops-flux2.md) installed, that are looking at the `dev` branch in the `Platform GitOps` repository are compliant with the PR commit. In this tutorial, the only such cluster is `drone`.
357
+
The PR merging event starts a GitHub workflow `checkpromote`in the `control plane` repository. This workflow waits until all clusters with the [GitOps extension](conceptual-gitops-flux2.md) installed that are looking at the `dev` branch in the `Platform GitOps` repository are compliant with the PR commit. In this tutorial, the only such cluster is `drone`.
358
358
359
359
:::image type="content" source="media/tutorial-workload-management/checkpromote-to-dev.png" alt-text="Screenshot showing promotion to dev.":::
360
360
@@ -416,7 +416,7 @@ The Application Team regularly submits pull requests to the `main` branch in the
416
416
417
417
:::image type="content" source="media/tutorial-workload-management/run-workflow-button.png" alt-text="Screenshot showing the Run workflow option.":::
418
418
419
-
The workflow does the following:
419
+
The workflow performs the following actions:
420
420
421
421
- Builds the application Docker image and pushes it to the GitHub repository package.
422
422
- Generates manifests forthe `functional-test` and `performance-test` deployment targets. It uses configuration values from the `dev-configs` branch. The generated manifests are added to a pull request and auto-mergedin the `dev` branch.
This time, use `8080` port and open `localhost:8080` in your browser.
458
458
459
-
Once you are satisfied with the `Dev` environment, approve and merge the PR to the `Stage` environment. After that, test the `uat-test` application instance in the `Stage` environment on both clusters.
459
+
Once you're satisfied with the `Dev` environment, approve and merge the PR to the `Stage` environment. After that, test the `uat-test` application instance in the `Stage` environment on both clusters.
460
460
461
461
Run the following commandforthe `drone` cluster and open `localhost:8001`in your browser:
462
462
@@ -514,7 +514,7 @@ In a few seconds, a new PR to the `stage` branch in the `Platform GitOps` reposi
514
514
515
515
Approve the PR and merge it.
516
516
517
-
The `large` cluster is handled by ArgoCD, which, by default, is configured to reconcile every three minutes. This cluster doesn't report its compliance state to Azure like the clusters such as `drone` which have the [GitOps extension](conceptual-gitops-flux2.md). However, you can still monitor the reconciliation state on the cluster with ArgoCD UI.
517
+
The `large` cluster is handled by ArgoCD, which, by default, is configured to reconcile every three minutes. This cluster doesn't report its compliance state to Azure like the clusters such as `drone`that have the [GitOps extension](conceptual-gitops-flux2.md). However, you can still monitor the reconciliation state on the cluster with ArgoCD UI.
518
518
519
519
To access the ArgoCD UI on the `large` cluster, run the following command:
520
520
@@ -547,7 +547,7 @@ You'll see the updated database url:
547
547
548
548
## 5 - Platform Team: Add cluster type to environment
549
549
550
-
Currently, only `drone` and `large` cluster types are included in the `Stage` environment. Let's include the `small` cluster type to `Stage` as well. Even though we don't have a physical cluster representing this cluster type, you can see how the scheduler reacts to this change.
550
+
Currently, only `drone` and `large` cluster types are included in the `Stage` environment. Let's include the `small` cluster type to `Stage` as well. Even though there's no physical cluster representing this cluster type, you can see how the scheduler reacts to this change.
551
551
552
552
```bash
553
553
# Switch to stage branch (representing Stage environemnt) in the control-plane folder
@@ -575,7 +575,7 @@ git pull --no-edit
575
575
git push
576
576
```
577
577
578
-
In a few seconds, the scheduler submits a PR to the `Platform GitOps` repository. According to the `uat-test-policy` that you created, it assigns the `uat-test` deployment target to the new cluster type, as it is supposed to work on all available cluster types in the environment.
578
+
In a few seconds, the scheduler submits a PR to the `Platform GitOps` repository. According to the `uat-test-policy` that you created, it assigns the `uat-test` deployment target to the new cluster type, as it's supposed to work on all available cluster types in the environment.
579
579
580
580
:::image type="content" source="media/tutorial-workload-management/small-cluster-type-assignment.png" alt-text="Screenshot showing the assignment for the small cluster type." lightbox="media/tutorial-workload-management/small-cluster-type-assignment.png":::
0 commit comments