Skip to content

Commit 4dd652e

Browse files
authored
Merge pull request #182 from layer5io/copilot/create-agents-md-file
docs: create AGENTS.md for layer5-academy repository
2 parents 3cbf570 + c78d92f commit 4dd652e

File tree

40 files changed

+186
-186
lines changed

40 files changed

+186
-186
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,13 @@ Workflow:
8989
git checkout -b feature/your-feature
9090
```
9191

92-
3. Commit changes:
92+
1. Commit changes:
9393

9494
```bash
9595
git commit -m "Describe your change"
9696
```
9797

98-
4. Push and open a Pull Request.
98+
1. Push and open a Pull Request.
9999

100100
See [CONTRIBUTING.md](CONTRIBUTING.md) for more details.
101101

content/challenges/d011fd20-a3f5-4480-883b-dfb34321d168/processing-log-data-with-fluent-bit-and-wasm/program-explanation/_index.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ weight: 5
1616

1717
Note: The comment `//export go_filter` on function is required and it should be the same as the function name.
1818

19-
3. Using the function parameters we will have access to the original log record, tag, and timestamp. Here is an example log record:
19+
1. Using the function parameters we will have access to the original log record, tag, and timestamp. Here is an example log record:
2020

2121
```bash
2222
{
@@ -25,17 +25,17 @@ Note: The comment `//export go_filter` on function is required and it should be
2525
}
2626
```
2727

28-
4. **Processing the record:**
28+
2. **Processing the record:**
2929

3030
- The function parameter **record** is of type byte slice, which presumably contains a JSON string, and is converted to a Go string.
3131

3232
- This string is then parsed using the **fastjson** package.
3333

34-
5. **Determining the region:**
34+
3. **Determining the region:**
3535

3636
- The **getRegion** function takes an IP address as a string, parses it, converts it to an integer, and determines which region the IP address belongs to based on predefined IP ranges. If the IP address is invalid or doesn’t fall within any range, an error is returned.
3737

38-
6. **Modify and return:**
38+
4. **Modify and return:**
3939

4040
- The determined region is added to the original JSON. The modified record will look like this:
4141

@@ -52,6 +52,6 @@ Note: The comment `//export go_filter` on function is required and it should be
5252

5353
- Note that there’s an explicit null terminator added to the end of the string before converting it back to a byte slice This is necessary for compatibility with whatever system reads this output, perhaps a C/C++ framework.
5454

55-
7. The **main** function is empty because the primary function here **(go_filter)** is meant to be exported and used as a plugin.
55+
5. The **main** function is empty because the primary function here **(go_filter)** is meant to be exported and used as a plugin.
5656

5757
Follow the [official documentation](https://docs.fluentbit.io/manual/development/wasm-filter-plugins) for more information on writing WASM plugins.

content/challenges/d011fd20-a3f5-4480-883b-dfb34321d168/securing-k8s-traffic-with-calico-ingress-gateway/content/clussterissuer/_index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ Issuers and ClusterIssuers are cert-manager resources that represent certificate
1111

1212
We create a ClusterIssuer, a cluster-scoped resource used to configure a Certificate Authority (CA) - in this example, Let’s Encrypt. We configure it to use the HTTP-01 challenge method for domain validation and explicitly tell it to solve these challenges via the **calico-demo-gw** Gateway.
1313

14-
1514
Create a clusterissuer resource:
1615

1716
```bash

content/challenges/d011fd20-a3f5-4480-883b-dfb34321d168/securing-k8s-traffic-with-calico-ingress-gateway/content/deploy-a-demo/_index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Deploy the application; this pulls the Kubernetes manifests from the official Gi
1919
kubectl create -f
2020
https://raw.githubusercontent.com/GoogleCloudPlatform/microservices-demo/refs/heads/release/v0.10.2/release/kubernetes-manifests.yaml
2121
```
22+
2223
Now that the application is deployed, we can verify the status of the frontend deployment and identify the associated ClusterIP service:
2324

2425
```bash
@@ -38,5 +39,5 @@ frontend ClusterIP 10.100.42.132 <none>
3839
frontend-external LoadBalancer 10.100.43.33 a78ef864683d543e59c7d91fba812176-247554297.us-west-2.elb.amazonaws.com 80:30816/TCP 5d19h
3940
```
4041

41-
At this point, our application is successfully deployed, and our customers can access it using the DNS name provided by the load balancer. However, this traffic is unencrypted, which highlights the key security gap we’re aiming to address.
42+
At this point, our application is successfully deployed, and our customers can access it using the DNS name provided by the load balancer. However, this traffic is unencrypted, which highlights the key security gap we’re aiming to address.
4243
Next, we will use Calico Ingress Gateway to equip our application with SSL and run it over HTTPS without modifying our application or server code.

content/challenges/d011fd20-a3f5-4480-883b-dfb34321d168/securing-k8s-traffic-with-calico-ingress-gateway/content/enable-calico/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ metadata:
2020
EOF
2121
```
2222

23-
This Calico-specific Gateway API resource is the essential prerequisite for using Kubernetes Gateway API standard objects.
23+
This Calico-specific Gateway API resource is the essential prerequisite for using Kubernetes Gateway API standard objects.
2424

2525
Let's check the deployment status:
2626

content/challenges/d011fd20-a3f5-4480-883b-dfb34321d168/securing-k8s-traffic-with-calico-ingress-gateway/content/install-calico/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,4 @@ You should see an output similar to the following:
5858
NAME AVAILABLE PROGRESSING DEGRADED SINCE
5959
calico True False False 4d10h
6060
ippools True False False 4d10h
61-
```
61+
```

content/challenges/d011fd20-a3f5-4480-883b-dfb34321d168/securing-k8s-traffic-with-calico-ingress-gateway/content/overview/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ This microcourse guides you through the settings and basic configurations requir
2525

2626
#### What Makes Gateway API Different?
2727

28-
There are three main points we should highlight when evaluating Gateway API and Ingress controllers.
28+
There are three main points we should highlight when evaluating Gateway API and Ingress controllers.

content/challenges/d011fd20-a3f5-4480-883b-dfb34321d168/securing-k8s-traffic-with-calico-ingress-gateway/content/spin-up-k8s/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ weight: 3
99

1010
We need a running Kubernetes environment to deploy Calico, our application, and the Gateway API resources, which happens in this step. We used EKS for our example because we wanted to tie the Gateway API resources to an actual domain and a valid certificate to emphasize its application in a real-world scenario.
1111

12-
Let's create an EKS cluster with the **eksctl** command:
12+
Let's create an EKS cluster with the **eksctl** command:

content/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/lab/e1/_index.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,47 +20,47 @@ $ docker run --name myjenkins1 -dit -p 8080:8080 -p 50000:50000 -v
2020
jenkins_data:/var/jenkins_home jenkins/jenkins:2.60.3-alpine
2121
```
2222

23-
2. List the container running the following command:
23+
1. List the container running the following command:
2424

2525
```bash
2626
docker container ls
2727
```
2828

29-
3. View the logs and capture the initial admin password for Jenkins by executing the following
29+
1. View the logs and capture the initial admin password for Jenkins by executing the following
3030
command:
3131

3232
```bash
3333
docker logs myjenkins1| grep -B 5 initialAdminPassword
3434
```
3535

36-
4. Access the Jenkins server and perform the initial configuration.
36+
1. Access the Jenkins server and perform the initial configuration.
3737
Open the browser and access the URL:<http://HostIP:8080> (curl ifconfig.io to
3838
get your public IP).
3939

4040
![Initial Jenkins Setup](step1.png)
4141

42-
5. Enter the initial admin password and click on continue:
42+
1. Enter the initial admin password and click on continue:
4343

4444
![Initial Jenkins Setup](step2.png)
4545

46-
6. Choose the “Select Plugins to install” option and click on “none”, then click on Install. The
46+
1. Choose the “Select Plugins to install” option and click on “none”, then click on Install. The
4747
initial installation does not contain any plugins by default. We can install plugins of our
4848
choice. However, to keep it simple, we will choose “none” in this lab and move forward.
4949

5050
![Initial Jenkins Setup](step3.png)
5151

5252
!![Initial Jenkins Setup](step4.png)
5353

54-
7. Admin user can be created during this step. We will skip the step and select “Continue as
54+
1. Admin user can be created during this step. We will skip the step and select “Continue as
5555
admin” and proceed to the next step.
5656

5757
![Initial Jenkins Setup](step5.png)
5858

59-
8. Jenkins is set up and ready to use. Click on Start using Jenkins to proceed further.
59+
1. Jenkins is set up and ready to use. Click on Start using Jenkins to proceed further.
6060

6161
![Initial Jenkins Setup](step6.png)
6262

63-
9. The initial admin password was generated during installation; reset the password of the
63+
1. The initial admin password was generated during installation; reset the password of the
6464
admin user and change it to one of your choice.
6565

6666
![Initial Jenkins Setup](step7.png)
@@ -69,44 +69,44 @@ Update the Password and confirm.
6969

7070
![Initial Jenkins Setup](step8.png)
7171

72-
10. Now that Jenkins is ready, create a new job to test the working on Jenkins.
72+
1. Now that Jenkins is ready, create a new job to test the working on Jenkins.
7373

7474
![Initial Jenkins Setup](step9.png)
7575

76-
11. Notice that there are no projects available; this is because we skipped installing additional
76+
1. Notice that there are no projects available; this is because we skipped installing additional
7777
plugins during the setup. We can add plugins later, for now we will make use of the default
7878
Freestyle Project plugin available and set up a test job to execute a command.
7979

8080
![Initial Jenkins Setup](step10.png)
8181

82-
12. Under the Build section, select Execute shell to execute a command
82+
1. Under the Build section, select Execute shell to execute a command
8383

8484
![Initial Jenkins Setup](step11.png)
8585

86-
13. Instead of creating a complex command, we are just executing a simple “ls” command. Type
86+
1. Instead of creating a complex command, we are just executing a simple “ls” command. Type
8787
“ls” in the command box, save and exit
8888

8989
![Initial Jenkins Setup](step12.png)
9090

91-
14. On the Jenkins dashboard you will find the newly created Project test_job.
91+
1. On the Jenkins dashboard you will find the newly created Project test_job.
9292

9393
![Initial Jenkins Setup](step13.png)
9494

95-
15. Click on Build Now on the left hand pane, to execute the command or to run the build
95+
1. Click on Build Now on the left hand pane, to execute the command or to run the build
9696

9797
![Initial Jenkins Setup](step14.png)
9898

99-
16. The build job is completed in a few seconds; click on the build number in build history to
99+
1. The build job is completed in a few seconds; click on the build number in build history to
100100
view the console output, which displays the log output of the completed job.
101101

102102
![Initial Jenkins Setup](step15.png)
103103

104-
17. Congratulations!!! You have successfully installed Jenkins, configured it, created and
104+
1. Congratulations!!! You have successfully installed Jenkins, configured it, created and
105105
executed a simple job on Jenkins.
106106
If you like, go ahead and explore the Jenkins Server by adding new plugins and creating
107107
pipelines.
108108

109-
18. Clean up by logging off the Jenkins Server, then stop and remove the myjenkins
109+
2. Clean up by logging off the Jenkins Server, then stop and remove the myjenkins
110110
container, by executing the following commands.
111111

112112
```bash

content/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/introduction-to-observability/lab/e1/_index.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ https://github.com/prometheus/prometheus/releases/download/v2.49.1/pr
1616
ometheus-2.49.1.linux-amd64.tar.gz
1717
```
1818

19-
2. Extract the contents by executing the following command.
19+
1. Extract the contents by executing the following command.
2020

2121
```bash
2222
$ tar xvf prometheus-2.49.1.linux-amd64.tar.gz
@@ -39,14 +39,14 @@ prometheus-2.49.1.linux-amd64/console_libraries/menu.lib
3939
prometheus-2.49.1.linux-amd64/console_libraries/prom.lib
4040
```
4141

42-
3. Move the extracted binaries to the bin folder by executing the below commands.
42+
1. Move the extracted binaries to the bin folder by executing the below commands.
4343

4444
```bash
4545
sudo mv prometheus-2.49.1.linux-amd64/prometheus /usr/local/bin/
4646
sudo mv prometheus-2.49.1.linux-amd64/promtool /usr/local/bin/
4747
```
4848

49-
4. Create a directory for the Prometheus configuration file and make use of the default
49+
1. Create a directory for the Prometheus configuration file and make use of the default
5050
configuration.
5151

5252
```bash
@@ -55,22 +55,22 @@ $ sudo mv prometheus-2.49.1.linux-amd64/prometheus.yml
5555
/etc/prometheus/prometheus.yml
5656
```
5757

58-
5. Create a user for Prometheus. It's always a good practice to run services using a dedicated
58+
1. Create a user for Prometheus. It's always a good practice to run services using a dedicated
5959
user.
6060

6161
```bash
6262
sudo useradd --no-create-home --shell /bin/false prometheus
6363
```
6464

65-
6. Set ownership, make Prometheus own its files.
65+
1. Set ownership, make Prometheus own its files.
6666

6767
```bash
6868
sudo chown prometheus:prometheus /usr/local/bin/prometheus
6969
sudo chown prometheus:prometheus /usr/local/bin/promtool
7070
sudo chown -R prometheus:prometheus /etc/prometheus
7171
```
7272

73-
7. To allow Prometheus to run as a service, create a systemd service file:
73+
1. To allow Prometheus to run as a service, create a systemd service file:
7474

7575
```bash
7676
cat > /etc/systemd/system/prometheus.service << EOF
@@ -91,7 +91,7 @@ WantedBy=multi-user.target
9191
EOF
9292
```
9393

94-
8. Enable and start the Prometheus service:
94+
1. Enable and start the Prometheus service:
9595

9696
```bash
9797
$ sudo systemctl daemon-reload
@@ -102,12 +102,12 @@ Created symlink
102102
/etc/systemd/system/prometheus.service.
103103
```
104104

105-
9. Verify if you are able to access the service by opening the browser and executing
105+
1. Verify if you are able to access the service by opening the browser and executing
106106
<http://localhost:9090>
107107

108108
![Prometheus UI](ui.png)
109109

110-
10. Let us install Grafana, add the apt Grafana repository and the GPG key to verify the
110+
1. Let us install Grafana, add the apt Grafana repository and the GPG key to verify the
111111
packages.
112112

113113
```bash
@@ -120,7 +120,7 @@ $ echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com
120120
stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
121121
```
122122

123-
11. Install Grafana by executing the following command:
123+
1. Install Grafana by executing the following command:
124124

125125
```bash
126126
$ sudo apt-get -y update
@@ -183,7 +183,7 @@ Processing triggers for man-db (2.9.1-1) ...
183183
Processing triggers for libc-bin (2.31-0ubuntu9.14) ...
184184
```
185185

186-
12. Start and enable Grafana by executing the below command:
186+
1. Start and enable Grafana by executing the below command:
187187

188188
```bash
189189
$ sudo systemctl start grafana-server
@@ -196,7 +196,7 @@ Created symlink
196196
/lib/systemd/system/grafana-server.service.
197197
```
198198

199-
13. Configure Grafana to use Prometheus:
199+
1. Configure Grafana to use Prometheus:
200200

201201
- Access Grafana web interface. Open your web browser and go to <http://localhost:3000>. The default login is admin for both username and password.
202202

0 commit comments

Comments
 (0)