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
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ Whether you are a beginner looking to understand the basics or an experienced us
7
7
## About Argo CD
8
8
9
9
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
10
-
It allows for Kubernetes resources to be managed using git repositories as the source of truth, making it easier to implement continuous deployment strategies in cloud-native environments.
10
+
It enables Kubernetes resources to be managed using Git repositories as the source of truth, making it easier to implement continuous deployment strategies in cloud-native environments.
11
11
For more info on ArgoCD itself, please visit [their website](https://argoproj.github.io/cd/).
12
12
13
13
## Exercise list in order
@@ -25,7 +25,7 @@ It is recommended to follow the exercises in the following order.
25
25
## Using this outside of the workshop
26
26
27
27
You need to have ArgoCD installed and running.
28
-
All exercises should work on minikube, or kind.
28
+
All exercises should work on minikube or kind.
29
29
You can refer to the [installation link](https://argo-cd.readthedocs.io/en/stable/operator-manual/installation/) for how to install ArgoCD.
Copy file name to clipboardExpand all lines: app-of-apps.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,31 +2,31 @@
2
2
3
3
## Learning Goals
4
4
5
-
- Create a bootstrap app manifest
5
+
- Create a Bootstrap app manifest
6
6
- Arrange Argo CD app manifests in a folder structure
7
7
8
8
## Introduction
9
9
10
-
In this exercise, we will work on organizing and managing Argo CD applications more effectively. We will create a bootstrap app manifest to serve as a starting point, structure our repository to accommodate multiple apps, and work with a new app manifest for a Helm chart.
10
+
In this exercise, we will work on organizing and managing Argo CD applications more effectively. We will create a Bootstrap app manifest to serve as a starting point, structure our repository to accommodate multiple apps, and work with a new app manifest for a Helm chart.
11
11
12
12
## Exercise
13
13
14
14
### Overview
15
15
16
16
- Create Bootstrap App Manifest
17
-
- Create Folder for All Apps
17
+
- Create a folder for All Apps
18
18
- Move Jenkins App Manifest
19
19
- Create the App Manifest for the Quotes Helm Chart
20
20
21
-
### Step by step instructions
21
+
### Step-by-step instructions
22
22
23
23
<details>
24
24
<summary>More Details</summary>
25
25
26
-
- Create bootsrap app manifest
27
-
- Create folder for all apps in the repo
26
+
- Create Bootstrap app manifest
27
+
- Create a folder for all apps in the repo
28
28
- Move Jenkins app manifest to the folder
29
-
- Create the app manifest for the quotes helm chart located in the same repo. (OR IN THE OTHER REPO TODO)
29
+
- Create the app manifest for the quotes Helm chart located in the same repo. (OR IN THE OTHER REPO TODO)
30
30
- Enable sync policy, prune and self-heal
31
31
- kubectl delete parent app, make sure nothing is there. kubectl apply parent app again.
1. Go to the Argo CD UI and verify that the bootstrap app is present. It should have an error saying that it cannot find the `apps` folder. This is expected.
70
70
71
-
## Step 2: Create Folder for All Apps, and add Jenkins App Manifest to it
71
+
## Step 2: Create a folder for All Apps, and add Jenkins App Manifest to it
72
72
73
73
Save the current application manifest to your repository in a new folder named `apps`.
74
74
@@ -117,11 +117,11 @@ spec:
117
117
- Add, commit and push the jenkins-app.yaml to the repository.
118
118
- Go to the Argo CD UI and verify that the bootstrap app is present. It should now be updated to include the `apps` folder, and therefore the Jenkins app manifest.
119
119
120
-
Now the jenkins app is connected with the bootstrap app.
120
+
Now the Jenkins app is connected with the bootstrap app.
121
121
122
-
## Delete the jenkins app
122
+
## Delete the Jenkins app
123
123
124
-
- In the Argo CD UI, delete the jenkins app.
124
+
- In the Argo CD UI, delete the Jenkins app.
125
125
- What happens when you do that?
126
126
127
127
## Create the App Manifest for the Quotes Helm Chart
@@ -161,7 +161,7 @@ spec:
161
161
162
162
1. Verify the applications are synced and running as expected.
1. Verify the applications are synced and running as expected again.
183
183
184
-
You have now seen how fast it is to reapply your manifests to the cluster. This is a great way to recover from a disaster, or to make sure that your cluster is in the desired state.
184
+
You have now seen how fast it is to reapply your manifests to the cluster. This is a great way to recover from a disaster or to make sure that your cluster is in the desired state.
Copy file name to clipboardExpand all lines: applicationsets.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,36 +2,36 @@
2
2
3
3
## Learning Goals
4
4
5
-
- Trying out a pullrequest based application set
5
+
- Trying out a pull-request based application set
6
6
7
7
## Introduction
8
8
9
-
In this exercise we will try out a pullrequest based application set. We will try to create an application set that will create an application for each pull request in a repository.
9
+
In this exercise, we will try out a pull-request based application set. We will try to create an application set that will create an application for each pull request in a repository.
10
10
11
11
## Application set
12
12
13
13
The sole responsibility of the ApplicationSet controller is to create, update, and delete `Application` resources within the Argo CD namespace. The controller's only job is to ensure that the Application resources remain consistent with the defined declarative ApplicationSet resource, and nothing more.
14
14
15
-
Thus the ApplicationSet controller does not create/modify/delete Kubernetes resources (other than the Application CR)
15
+
Thus, the ApplicationSet controller does not create/modify/delete Kubernetes resources (other than the Application CR)
16
16
17
17
## Exercise
18
18
19
19
### Overview
20
20
21
-
- Create a github token
21
+
- Create a GitHub token
22
22
- Add the token to a secret in the argocd namespace
23
23
- Create an applicationset manifest
24
24
- Test with a pull request
25
25
- Close the pull request
26
26
27
-
### Step by step instructions
27
+
### Step-by-step instructions
28
28
29
29
<details>
30
30
<summary>More Details</summary>
31
31
32
-
#### Create a github token
32
+
#### Create a GitHub token
33
33
34
-
- Go to your github account settings and [create a new token](https://github.com/settings/tokens?type=beta) with the following permissions:
34
+
- Go to your GitHub account settings and [create a new token](https://github.com/settings/tokens?type=beta) with the following permissions:
repo: <YOUR GIT REPO> #Just the repository name e.g. argocd-katas. Not your entire URL
85
-
tokenRef: # your github token
86
-
secretName: student-<NUMBER>-github-token # the name of the secret that contains your github token
87
-
key: token # the key in the secret that contains your github token
88
-
# Labels is used to filter the PRs that you want to target. (optional)
85
+
tokenRef: # your GitHub token
86
+
secretName: student-<NUMBER>-github-token # the name of the secret that contains your GitHub token
87
+
key: token # the key in the secret that contains your GitHub token
88
+
# Labels are used to filter the PRs that you want to target. (optional)
89
89
labels:
90
90
- enhancement
91
91
requeueAfterSeconds: 60
@@ -119,7 +119,7 @@ spec:
119
119
selfHeal: true
120
120
```
121
121
122
-
- take the contents of the file, and paste it into a file in your workstation. The file could be named ´appset.yaml´.
122
+
- Copy the contents of the file and paste it into a file in your workstation. The file could be named ´appset.yaml´.
123
123
- edit the file and replace
124
124
- `<YOUR GITHUB USERNAME>` with your github username
125
125
- `<YOUR GIT REPO>`with your git repo
@@ -212,7 +212,7 @@ Events: <none>
212
212
213
213
- Create a pull request in your git repo. The change does not matter at this time, since we are not using the source code in the pull request. 💡 The name of your branch needs to have all lowercase characters, otherwise it will not work.
214
214
215
-
- Remember to set the label `enhancement` on the pull request. The label does not exist, so create it in the Github UI.
215
+
- Remember to set the label `enhancement` on the pull request. The label does not exist, so create it in the GitHub UI.
216
216
217
217
- Check that an application has been created in ArgoCD
218
218
@@ -234,13 +234,13 @@ kubectl get ingress -n <YOUR NAMESPACE>
234
234
235
235
- Access the application in your browser (remember to add https:// in front of the hostname)
236
236
237
-
You should see something like the follwing:
237
+
You should see something like the following:
238
238
239
239

240
240
241
241
#### Close the pull request
242
242
243
-
- now close the pull request, and see that the application is deleted from ArgoCD
243
+
- Now, close the pull request, and see that the application is deleted from ArgoCD
Copy file name to clipboardExpand all lines: intro.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ In this exercise, you will:
31
31
-**Refresh**: This action updates the live view in ArgoCD with the current state of the cluster and the state of the git repo. It does not change any resources in the cluster.
32
32
-**Sync**: This action deploys the desired state from the Git repository to the cluster. If there are differences between the Git repo and the cluster, Sync will make the necessary changes to align them.
Copy file name to clipboardExpand all lines: projects.md
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,15 +2,15 @@
2
2
3
3
## Learning Goals
4
4
5
-
- Introduction to the appproject manifest
6
-
- Examine the restrictions you can make with the appprojects
5
+
- Introduction to the app project manifest
6
+
- Examine the restrictions you can make with the app projects
7
7
8
8
## Introduction
9
9
10
-
Argo CD `projects` logically group applications for multiple teams, providing deployment restrictions to things like source repos, destination clusters/namespaces, resource definitions etc.
11
-
The default project that comes baked in to ArgoCD allows unrestricted deployments.
10
+
Argo CD `projects` logically group applications for multiple teams, providing deployment restrictions to things like source repos, destination clusters/namespaces, resource definitions, etc.
11
+
The default project that comes baked into ArgoCD allows unrestricted deployments.
12
12
New projects should be created for team-specific access levels, managing source repos, destinations, and Kubernetes resource kinds.
13
-
Projects can be created with either Argo CD cli or declaratively.
13
+
Projects can be created with either Argo CD CLI or declaratively.
14
14
15
15
An `AppProject` is a custom resource definition (CRD) that defines a project in Argo CD. An example of an `AppProject` is shown below:
16
16
@@ -36,12 +36,12 @@ We are going to try out restrictions with the `appproject` kind. We will apply a
36
36
37
37
### Overview
38
38
39
-
- create a project manifest
40
-
- apply the project manifest
41
-
- apply the application manifest that violates the restrictions
42
-
- choose selective sync to partially sync the application
39
+
- Create a project manifest
40
+
- Apply the project manifest
41
+
- Apply the application manifest that violates the restrictions
42
+
- Choose selective sync to partially sync the application
43
43
44
-
### Step by step instructions
44
+
### Step-by-step instructions
45
45
46
46
#### Create a project manifest
47
47
@@ -69,7 +69,7 @@ spec:
69
69
70
70
It is a simple project manifest that restricts the deployment to a specific namespace and restricts the deployment of `Role` resources.
71
71
72
-
- change the `name`, `spec.description` and `spec.destinations.namespace` fields to your student number
72
+
- Change the `name`, `spec.description`, and `spec.destinations.namespace` fields to your student number
73
73
74
74
#### Apply the project manifest
75
75
@@ -96,7 +96,7 @@ Go to the ArgoCD UI and see the project from there as well.
96
96
97
97
- Click on `Settings` -> `Projects` and you should see the project there
98
98
- Click on the project and see the details. Here you can see the different options that can be set for the project.
99
-
- Verify that the description reflects your student number as well, e.g `a project for student-0 to play with`
99
+
- Verify that the description reflects your student number as well, e.g, `a project for student-0 to play with`
100
100
101
101
#### Apply the application manifest that violates the restrictions
102
102
@@ -140,10 +140,10 @@ The project restricts the deployment of `Role` resources, so the application wil
140
140
### Optional: Create an application outside your namespace
141
141
142
142
If time permits, try to create an application that is deployed to a namespace that is not allowed by the project.
143
-
> **NOTE:** Don't do this by simply manipulating the destination of the application you just applied as that will
144
-
> potentially interfere with the other students exercises.
143
+
> **NOTE:** Don't do this by simply manipulating the destination of the application you just applied, as that will
144
+
> potentially interfere with the other students' exercises.
145
145
146
-
What are the differences in the error messages, compared to the previous application?
146
+
What are the differences in the error messages compared to the previous application?
0 commit comments