Skip to content

Commit 8478e54

Browse files
committed
Markdown Lint fixes
1 parent 6cbd033 commit 8478e54

File tree

13 files changed

+128
-136
lines changed

13 files changed

+128
-136
lines changed

.markdownlint.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"MD013" :false ,
3+
"MD033": {
4+
"allowed_elements": ["details", "summary"]
5+
}
6+
}

README.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
# Argo CD Katas
22

3-
Welcome to the Argo CD Katas repository! This project is designed to help users learn and master Argo CD through practical exercises and challenges.
3+
Welcome to the Argo CD Katas repository! This project is designed to help users learn and master Argo CD through practical exercises and challenges.
44

55
Whether you are a beginner looking to understand the basics or an experienced user seeking to deepen your knowledge, these katas will guide you through various aspects of using Argo CD in a real-world context.
66

77
## About Argo CD
88

9-
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
9+
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
1010
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.
1111
For more info on ArgoCD itself, please visit [their website](https://argoproj.github.io/cd/).
1212

13-
1413
## Exercise list in order
1514

1615
It is recommended to follow the exercises in the following order.
@@ -51,8 +50,7 @@ The repository is structured as follows:
5150
└── trainer # Trainer folder
5251
```
5352

54-
5553
## Links
5654

57-
* https://codefresh.io/blog/argo-cd-best-practices/
58-
* https://github.com/akuity/awesome-argo/blob/main/CONTRIBUTING.md
55+
* <https://codefresh.io/blog/argo-cd-best-practices/>
56+
* <https://github.com/akuity/awesome-argo/blob/main/CONTRIBUTING.md>

app-of-apps.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,12 @@ In this exercise, we will work on organizing and managing Argo CD applications m
2323
<details>
2424
<summary>More Details</summary>
2525

26-
* Create bootsrap app manifest
27-
* Create folder for all apps in the repo
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)
30-
* Enable sync policy, prune and self-heal
31-
* kubectl delete parent app, make sure nothing is there. kubectl apply parent app again.
32-
26+
- Create bootsrap app manifest
27+
- Create folder for all apps in the repo
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)
30+
- Enable sync policy, prune and self-heal
31+
- kubectl delete parent app, make sure nothing is there. kubectl apply parent app again.
3332

3433
## Step 1: Create Bootstrap App Manifest
3534

@@ -69,7 +68,7 @@ kubectl apply -f bootstrap-app.yaml
6968

7069
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.
7170

72-
## Step 2: Create Folder for All Apps, and add Jenkins App Manifest to it.
71+
## Step 2: Create Folder for All Apps, and add Jenkins App Manifest to it
7372

7473
Save the current application manifest to your repository in a new folder named `apps`.
7574

@@ -112,6 +111,7 @@ spec:
112111
prune: true
113112
selfHeal: true
114113
```
114+
115115
</details>
116116
117117
- Add, commit and push the jenkins-app.yaml to the repository.
@@ -124,7 +124,6 @@ Now the jenkins app is connected with the bootstrap app.
124124
- In the Argo CD UI, delete the jenkins app.
125125
- What happens when you do that?
126126

127-
128127
## Create the App Manifest for the Quotes Helm Chart
129128

130129
1. In the `apps` folder, create a file named `quotes-app.yaml` with the following content:

applicationsets.md

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -31,32 +31,32 @@ Thus the ApplicationSet controller does not create/modify/delete Kubernetes reso
3131

3232
#### Create a github token
3333

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:
3535

3636
![github token permissions](img/github-token-permissions.png)
3737

38-
* Copy the token to your clipboard
38+
- Copy the token to your clipboard
3939

4040
#### Add the token to a secret in the argocd namespace
4141

42-
* Create a secret in the argocd namespace with the token
42+
- Create a secret in the argocd namespace with the token
4343

4444
```bash
4545

4646
kubectl create secret generic --dry-run=client student-<NUMBER>-github-token -n argocd -o yaml --from-literal token=github_pat_yourtokenhere > secret.yaml
4747

4848
```
4949

50-
* Edit the secret and replace `<NUMBER>` with your number (student-X)
50+
- Edit the secret and replace `<NUMBER>` with your number (student-X)
5151

52-
* Apply the secret
52+
- Apply the secret
5353

5454
```bash
5555
kubectl apply -f secret.yaml
5656

5757
```
5858

59-
* Check that the secret is there
59+
- Check that the secret is there
6060

6161
```bash
6262

@@ -118,23 +118,24 @@ spec:
118118
prune: true
119119
selfHeal: true
120120
```
121-
* take the contents of the file, and paste it into a file in your workstation. The file could be named ´appset.yaml´.
122-
* edit the file and replace
123-
* `<YOUR GITHUB USERNAME>` with your github username
124-
* `<YOUR GIT REPO>` with your git repo
125-
* `<YOUR NAMESPACE>` with your namespace
126-
* `<NUMBER>` with your number (student-X)
127-
* `<YOUR PREFIX>` The first part before `eficode.academy` as `gitops.eficode.academy`
128121
129-
* Apply the manifest
122+
- take the contents of the file, and paste it into a file in your workstation. The file could be named ´appset.yaml´.
123+
- edit the file and replace
124+
- `<YOUR GITHUB USERNAME>` with your github username
125+
- `<YOUR GIT REPO>` with your git repo
126+
- `<YOUR NAMESPACE>` with your namespace
127+
- `<NUMBER>` with your number (student-X)
128+
- `<YOUR PREFIX>` The first part before `eficode.academy` as `gitops.eficode.academy`
129+
130+
- Apply the manifest
130131

131132
```bash
132133
kubectl apply -f appset.yaml
133134
```
134135

135-
* Make sure that it is there by listing the applicationsets: `k get applicationsets.argoproj.io -n argocd`.
136+
- Make sure that it is there by listing the applicationsets: `k get applicationsets.argoproj.io -n argocd`.
136137

137-
* Look at the status on it by `k describe applicationsets.argoproj.io -n argocd pr-X` where X is your number.
138+
- Look at the status on it by `k describe applicationsets.argoproj.io -n argocd pr-X` where X is your number.
138139

139140
Output should look like the following:
140141

@@ -207,41 +208,39 @@ Status:
207208
Events: <none>
208209
```
209210

210-
211211
#### Test with a pull request
212212

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-
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.
215214

216-
* 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.
217216

218-
* Check that an application has been created in ArgoCD
217+
- Check that an application has been created in ArgoCD
219218

220219
```bash
221220
kubectl get applications -n argocd
222221
```
223222

224-
* Check that an application has been created in your namespace
223+
- Check that an application has been created in your namespace
225224

226225
```bash
227226
kubectl get pods -n <YOUR NAMESPACE>
228227
```
229228

230-
* Get your ingress hostname
229+
- Get your ingress hostname
231230

232231
```bash
233232
kubectl get ingress -n <YOUR NAMESPACE>
234233
```
235234

236-
* Access the application in your browser (remember to add https:// in front of the hostname)
235+
- Access the application in your browser (remember to add https:// in front of the hostname)
237236

238237
You should see something like the follwing:
239238

240239
![the todo application](img/todo-app.png)
241240

242241
#### Close the pull request
243242

244-
* 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
245244

246245
```bash
247246
kubectl get applications -n argocd
@@ -251,15 +250,15 @@ kubectl get applications -n argocd
251250

252251
### Clean up
253252

254-
* Delete the applicationset
253+
- Delete the applicationset
255254

256255
```bash
257256
kubectl delete -f applicationsets/pull-request.yaml
258257
```
259258

260259
#### Further reading
261260

262-
* [ApplicationSet](https://argocd-applicationset.readthedocs.io/en/stable/)
263-
* [ApplicationSet Generators](https://argocd-applicationset.readthedocs.io/en/stable/Generators/)
264-
* [ApplicationSet Templates](https://argocd-applicationset.readthedocs.io/en/stable/Template/)
265-
* [ApplicationSet Pr example](https://dev.to/camptocamp-ops/using-argocd-pull-request-generator-to-review-application-modifications-236e)
261+
- [ApplicationSet](https://argocd-applicationset.readthedocs.io/en/stable/)
262+
- [ApplicationSet Generators](https://argocd-applicationset.readthedocs.io/en/stable/Generators/)
263+
- [ApplicationSet Templates](https://argocd-applicationset.readthedocs.io/en/stable/Template/)
264+
- [ApplicationSet Pr example](https://dev.to/camptocamp-ops/using-argocd-pull-request-generator-to-review-application-modifications-236e)

argocd-and-helm.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
<summary>:bulb: Example</summary>
1515

1616
```yaml
17-
1817
apiVersion: argoproj.io/v1alpha1
1918
kind: Application
2019
metadata:
@@ -55,8 +54,8 @@ spec:
5554
targetRevision: main
5655
# name this source "values" for reference in the above source.
5756
ref: values
58-
5957
```
58+
6059
</details>
6160
6261
## Exercise
@@ -70,15 +69,15 @@ In this exercise, you will:
7069
- Write a multi-source deployment file.
7170
- Change the values in the deployment file for automatic changes to the Jenkins app.
7271
73-
7472
### Step by Step Instructions
7573
7674
<details>
7775
<summary>More Details</summary>
7876
7977
### Tasks
8078
81-
**Deploying Jenkins with Bitnami Helm**
79+
#### Deploying Jenkins with Bitnami Helm
80+
8281
- Look into the repository site (Click `settings`, and then `repositories`) to see that a repository called `bitnami` with the URL `https://charts.bitnami.com/bitnami` is there.
8382
- Click on `Applications` in the navigation bar.
8483
- Click on `New App` to create a new application.
@@ -87,7 +86,7 @@ In this exercise, you will:
8786
- **Project Name**: `default`
8887
- **Sync Policy**: `Automatic`
8988
- **Repository Type**: `Helm`
90-
- **Repository URL**: https://charts.bitnami.com/bitnami (or select from the dropdown)
89+
- **Repository URL**: <https://charts.bitnami.com/bitnami> (or select from the dropdown)
9190
- **Chart**: `Jenkins`
9291
- **Version**: `12.4.0`
9392
- **Cluster**: `in-cluster` or `https://kubernetes.default.svc`
@@ -106,7 +105,8 @@ Under the helm parameters, you can see that there are a lot of parameters that c
106105
- Find the http nodeport by clicking on the `studentx-jenkins` service.
107106
- Access the Jenkins site by going to `http://<node-ip>:<nodeport>`. You can find the external node IP by running `kubectl get nodes -o wide`.
108107

109-
**Customizing the Jenkins deployment with a values file**
108+
#### Customizing the Jenkins deployment with a values file
109+
110110
We will change the values of the Jenkins deployment by using a values file. This is useful when you want to keep your values in a separate file and not in the ArgoCD UI.
111111

112112
- Look at the `values.yaml` file in the `jenkins` directory. You can see that the `service.type` is set to `NodePort`, and two other values.
@@ -131,6 +131,7 @@ sources:
131131
targetRevision: main
132132
ref: values
133133
```
134+
134135
💡 Remember to add your own repo to the file as well, as seen on the bottom. Pay attention to formatting.
135136

136137
- Click save.
@@ -139,8 +140,6 @@ sources:
139140

140141
> :bulb: It might also be that the application has a hard time syncing the new pod. You can try to delete the replica set and see if it works. If not, you can delete the application and try again.
141142

142-
143143
- Try to change something in the `values.yaml` file, push it up, and see that the application is synced automatically. If you lack inspiration, you can change the `service.type` to `ClusterIP` and see that the service is now a ClusterIP service.
144144

145145
</details>
146-
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Different ways of organizing your applications in ArgoCD
1+
# Different ways of organizing your applications in ArgoCD

examples/folder-structures/folder-per-env-helm-enabled/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
Only one values file per environment.
44

5+
## Pros
56

6-
# Pros
77
- only display what the developer really needs to touch
88

9+
## Cons
910

10-
# Cons
11-
- blackbox for developers
11+
- blackbox for developers

examples/folder-structures/folder-per-env/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
An app manifest and a values file per application in the environment.
44

55
Pros:
6+
67
- Clear separation of environments
78
- Easy to understand
89
- Easy to get an overview of what is deployed where
9-
- `tree . -L 2` gives a good overview
10+
- `tree . -L 2` gives a good overview
1011

1112
Cons:
12-
- Application manifests are "bleeding" into dev environment
13+
14+
- Application manifests are "bleeding" into dev environment

0 commit comments

Comments
 (0)