diff --git a/Istio/07-External-Authrorization/README.md b/.placeholder/07-External-Authrorization/README.md
similarity index 100%
rename from Istio/07-External-Authrorization/README.md
rename to .placeholder/07-External-Authrorization/README.md
diff --git a/Istio/08-monitoring/README.md b/.placeholder/08-monitoring/README.md
similarity index 100%
rename from Istio/08-monitoring/README.md
rename to .placeholder/08-monitoring/README.md
diff --git a/Istio/__-NetworkPolicies/README.md b/.placeholder/__-NetworkPolicies/README.md
similarity index 100%
rename from Istio/__-NetworkPolicies/README.md
rename to .placeholder/__-NetworkPolicies/README.md
diff --git a/Istio/__-cert-management/README.md b/.placeholder/__-cert-management/README.md
similarity index 100%
rename from Istio/__-cert-management/README.md
rename to .placeholder/__-cert-management/README.md
diff --git a/Istio/00-Troubleshooting/README.md b/00-Troubleshooting/README.md
similarity index 96%
rename from Istio/00-Troubleshooting/README.md
rename to 00-Troubleshooting/README.md
index 76e484c..ad90083 100644
--- a/Istio/00-Troubleshooting/README.md
+++ b/00-Troubleshooting/README.md
@@ -52,14 +52,16 @@ Warning [IST0104] (Gateway default/helloworld-gateway) The gateway refers to a p
Target a pod and start a packet capture on the istio-proxy container.
-This step requires istio to be installed with the flag `values.global.proxy.privileged=true`
+This step requires Istio to be installed with the flag `values.global.proxy.privileged=true`
This is very useful to confirm if the service is receiving any traffic, or which is the traffic received.
If mTLS is enabled and configured, the traffic received should be encrypted.
```shell
-$ kubectl exec -n default "$(kubectl get pod -n default -l app=helloworld -o jsonpath={.items..metadata.name})" -c istio-proxy -- sudo tcpdump dst port 80 -A
+kubectl exec -n default "$(kubectl get pod -n default -l app=helloworld -o jsonpath={.items..metadata.name})" -c istio-proxy -- sudo tcpdump dst port 80 -A
+```
+```text
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
...
diff --git a/Istio/09-Ingress/01-Create-Istio-LoadBalancer/deployment.yaml b/01-Getting_Started/01-hello_world_1_service_1_deployment/Deployment.yaml
similarity index 53%
rename from Istio/09-Ingress/01-Create-Istio-LoadBalancer/deployment.yaml
rename to 01-Getting_Started/01-hello_world_1_service_1_deployment/Deployment.yaml
index 36e6b76..233fd2c 100755
--- a/Istio/09-Ingress/01-Create-Istio-LoadBalancer/deployment.yaml
+++ b/01-Getting_Started/01-hello_world_1_service_1_deployment/Deployment.yaml
@@ -1,25 +1,3 @@
-# https://github.com/istio/istio/blob/master/samples/helloworld/helloworld.yaml
-apiVersion: v1
-kind: Service
-metadata:
- name: helloworld
- labels:
- app: helloworld
- service: helloworld
-spec:
- ports:
- - port: 80
- name: http
- selector:
- app: helloworld
----
-#apiVersion: v1
-#kind: ServiceAccount
-#metadata:
-# name: istio-helloworld
-# labels:
-# account:
----
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -36,7 +14,6 @@ spec:
labels:
app: helloworld
spec:
-# serviceAccountName: istio-helloworld
containers:
- name: helloworld
image: nginx
diff --git a/01-Getting_Started/01-hello_world_1_service_1_deployment/Gateway.yaml b/01-Getting_Started/01-hello_world_1_service_1_deployment/Gateway.yaml
new file mode 100644
index 0000000..0693895
--- /dev/null
+++ b/01-Getting_Started/01-hello_world_1_service_1_deployment/Gateway.yaml
@@ -0,0 +1,14 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: Gateway
+metadata:
+ name: helloworld-gateway
+spec:
+ selector:
+ istio: ingressgateway
+ servers:
+ - port:
+ number: 80
+ name: http
+ protocol: HTTP
+ hosts:
+ - "*"
\ No newline at end of file
diff --git a/01-Getting_Started/01-hello_world_1_service_1_deployment/README.md b/01-Getting_Started/01-hello_world_1_service_1_deployment/README.md
new file mode 100755
index 0000000..13ebeb3
--- /dev/null
+++ b/01-Getting_Started/01-hello_world_1_service_1_deployment/README.md
@@ -0,0 +1,236 @@
+---
+gitea: none
+include_toc: true
+---
+
+
+# Description
+
+This is the most basic example, most of the examples spread through this [repository](../../) will be using variants of this.
+
+This example configures:
+
+ Generic Kubernetes resources:
+ - 1 Service
+ - 1 Deployment
+
+ Istio resources:
+ - 1 Gateway
+ - 1 Virtual Service
+
+> **Note:**\
+> I don't intend to explain thing related to Kubernetes unless necessary.
+
+# Configuration
+
+## Service
+
+Creates a service named `helloworld`.
+
+This service listens for the port `80` expecting `HTTP` traffic and will forward the incoming traffic towards the port `80` from the destination pod.
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: helloworld
+ labels:
+ app: helloworld
+ service: helloworld
+spec:
+ ports:
+ - port: 80
+ name: http
+ selector:
+ app: helloworld
+```
+
+## Deployment
+
+Deploys a Nginx server that listens for the port `80`.
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: helloworld-nginx
+ labels:
+ app: helloworld
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: helloworld
+ template:
+ metadata:
+ labels:
+ app: helloworld
+ spec:
+ containers:
+ - name: helloworld
+ image: nginx
+ resources:
+ requests:
+ cpu: "100m"
+ imagePullPolicy: IfNotPresent #Always
+ ports:
+ - containerPort: 80
+```
+
+## Gateway
+
+Deploys an Istio gateway that's listening to the port `80` for `HTTP` traffic.
+
+It doesn't filter for any specific host.
+
+The `selector` field is used to "choose" which Istio Load Balancers will have this gateway assigned to.
+
+The Istio `default` profile creates a Load Balancer in the namespace `istio-system` that has the label `istio: ingressgateway` set, allowing us to target that specific Load Balancer and assign this gateway resource to it.
+
+```yaml
+apiVersion: networking.istio.io/v1alpha3
+kind: Gateway
+metadata:
+ name: helloworld-gateway
+spec:
+ selector:
+ istio: ingressgateway
+ servers:
+ - port:
+ number: 80
+ name: http
+ protocol: HTTP
+ hosts:
+ - "*"
+```
+
+## VirtualService
+
+The Virtual Service resources are used to route and filter the received traffic from the gateway resources, and route it towards the desired destination.
+
+On this example we select the gateway `helloworld-gateway`, which is the [gateway that 's described in the `Gateway` section](#gateway).
+
+On this resource, we are also not limiting the incoming traffic to any specific host, allowing for all the incoming traffic to go through the rules set.
+
+Here we created a rule that will be applied on `HTTP` related traffic (including `HTTPS` and `HTTP2`) when the destination path is exactly `/helloworld`.
+
+This traffic will be forwarded to the port `80` of the destination service `helloworld` (the full path URL equivalent would be `helloworld.$NAMESPACE.svc.cluster.local`).
+
+Additionally, there will be an internal URL rewrite set, as if the URL is not modified, it would attempt to reach to the `/helloworld` path from the Nginx deployment, which currently has no content and would result in an error code `404` (Not found).
+
+```yaml
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+ name: helloworld-vs
+spec:
+ hosts:
+ - "*"
+ gateways:
+ - helloworld-gateway
+ http:
+ - match:
+ - uri:
+ exact: /helloworld
+ route:
+ - destination:
+ host: helloworld
+ port:
+ number: 80
+ rewrite:
+ uri: "/"
+```
+
+# Walkthrough
+
+## Deploy resources
+
+Deploy the resources.
+
+```shell
+kubectl apply -f ./
+```
+```text
+deployment.apps/helloworld-nginx created
+gateway.networking.istio.io/helloworld-gateway created
+service/helloworld created
+virtualservice.networking.istio.io/helloworld-vs created
+```
+
+## Wait for the deployment to be ready
+
+Wait for the Nginx deployment to be up and ready.
+
+```shell
+kubectl get deployment helloworld-nginx -w
+```
+```text
+NAME READY UP-TO-DATE AVAILABLE AGE
+helloworld-nginx 1/1 1 1 44s
+```
+
+## Test the service
+
+### Get LB IP
+
+To perform the desired tests, we will need to obtain the IP Istio Load Balancer that we selected in the [Gateway section](#gateway).
+
+On my environment, the IP is the `192.168.1.50`.
+
+```shell
+kubectl get svc -l istio=ingressgateway -A
+```
+```text
+NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
+istio-ingressgateway LoadBalancer 10.97.47.216 192.168.1.50 15021:31316/TCP,80:32012/TCP,443:32486/TCP 39h
+```
+
+### Curl /helloworld
+
+Due to accessing the path `/helloworld`, we are triggering the rule set on the [VirtualService configuration](#virtualservice), sending a request to the Nginx backend and returning us its contents.
+
+```shell
+curl 192.168.1.50/helloworld -s | grep "
.*"
+```
+```text
+Welcome to nginx!
+```
+
+### Curl /other
+
+What happens if we access a path or URL that doesn't trigger any rule?
+
+
+```shell
+curl 192.168.1.50/other -s -I
+```
+```text
+HTTP/1.1 404 Not Found
+date: Sun, 30 Apr 2023 22:16:30 GMT
+server: istio-envoy
+transfer-encoding: chunked
+```
+
+We receive a status code `404`.
+
+I would like to put emphasis on the following line returned:
+
+```text
+server: istio-envoy
+```
+
+This means that the contents returned was performed by the Istio service, instead of the Nginx or any other possible backend service.
+
+## Cleanup
+
+Finally, a cleanup from the resources deployed.
+
+```shell
+kubectl delete -f ./
+```
+```text
+deployment.apps "helloworld-nginx" deleted
+gateway.networking.istio.io "helloworld-gateway" deleted
+service "helloworld" deleted
+virtualservice.networking.istio.io "helloworld-vs" deleted
+```
\ No newline at end of file
diff --git a/01-Getting_Started/01-hello_world_1_service_1_deployment/Service.yaml b/01-Getting_Started/01-hello_world_1_service_1_deployment/Service.yaml
new file mode 100644
index 0000000..271ce25
--- /dev/null
+++ b/01-Getting_Started/01-hello_world_1_service_1_deployment/Service.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: helloworld
+ labels:
+ app: helloworld
+ service: helloworld
+spec:
+ ports:
+ - port: 80
+ name: http
+ selector:
+ app: helloworld
\ No newline at end of file
diff --git a/Istio/01-Simple/01-hello_world_1_service_1_deployment/gateway.yaml b/01-Getting_Started/01-hello_world_1_service_1_deployment/VirtualService.yaml
similarity index 56%
rename from Istio/01-Simple/01-hello_world_1_service_1_deployment/gateway.yaml
rename to 01-Getting_Started/01-hello_world_1_service_1_deployment/VirtualService.yaml
index 252a01e..205231b 100755
--- a/Istio/01-Simple/01-hello_world_1_service_1_deployment/gateway.yaml
+++ b/01-Getting_Started/01-hello_world_1_service_1_deployment/VirtualService.yaml
@@ -1,19 +1,4 @@
apiVersion: networking.istio.io/v1alpha3
-kind: Gateway
-metadata:
- name: helloworld-gateway
-spec:
- selector:
- istio: ingressgateway # use istio default controller
- servers:
- - port:
- number: 80
- name: http
- protocol: HTTP
- hosts:
- - "*"
----
-apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: helloworld-vs
diff --git a/Istio/01-Simple/02-hello_world_1_service_2_deployments_unmanaged/deployment.yaml b/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/Deployment.yaml
similarity index 66%
rename from Istio/01-Simple/02-hello_world_1_service_2_deployments_unmanaged/deployment.yaml
rename to 01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/Deployment.yaml
index 761def5..012c69e 100755
--- a/Istio/01-Simple/02-hello_world_1_service_2_deployments_unmanaged/deployment.yaml
+++ b/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/Deployment.yaml
@@ -1,25 +1,3 @@
-# https://github.com/istio/istio/blob/master/samples/helloworld/helloworld.yaml
-apiVersion: v1
-kind: Service
-metadata:
- name: helloworld
- labels:
- app: helloworld
- service: helloworld
-spec:
- ports:
- - port: 80
- name: http
- selector:
- app: helloworld
----
-#apiVersion: v1
-#kind: ServiceAccount
-#metadata:
-# name: istio-helloworld
-# labels:
-# account:
----
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -36,7 +14,6 @@ spec:
labels:
app: helloworld
spec:
-# serviceAccountName: istio-helloworld
containers:
- name: helloworld
image: nginx
@@ -63,7 +40,6 @@ spec:
labels:
app: helloworld
spec:
-# serviceAccountName: istio-helloworld
containers:
- name: helloworld
image: httpd
diff --git a/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/Gateway.yaml b/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/Gateway.yaml
new file mode 100755
index 0000000..7a88507
--- /dev/null
+++ b/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/Gateway.yaml
@@ -0,0 +1,14 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: Gateway
+metadata:
+ name: helloworld-gateway
+spec:
+ selector:
+ istio: ingressgateway
+ servers:
+ - port:
+ number: 80
+ name: http
+ protocol: HTTP
+ hosts:
+ - "*"
diff --git a/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/README.md b/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/README.md
new file mode 100755
index 0000000..e94edc9
--- /dev/null
+++ b/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/README.md
@@ -0,0 +1,306 @@
+---
+gitea: none
+include_toc: true
+---
+
+# Description
+
+This example deploys the same infrastructure as the [previous example](../01-hello_world_1_service_1_deployment), this time containing 2 deployments under the same service.
+
+This example configures:
+
+ Generic Kubernetes resources:
+ - 1 Service
+ - 2 Deployments
+
+ Istio resources:
+ - 1 Gateway
+ - 1 Virtual Service
+
+
+# Based on
+
+- [01-hello_world_1_service_1_deployment](../01-hello_world_1_service_1_deployment)
+
+# Configuration
+
+## Service
+
+Creates a service named `helloworld`.
+
+This service listens for the port `80` expecting `HTTP` traffic and will forward the incoming traffic towards the port `80` from the destination pod.
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: helloworld
+ labels:
+ app: helloworld
+ service: helloworld
+spec:
+ ports:
+ - port: 80
+ name: http
+ selector:
+ app: helloworld
+```
+
+## Deployment
+
+### helloworld-v1
+
+Deploys a Nginx server that listens for the port `80`.
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: helloworld-v1
+ labels:
+ app: helloworld
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: helloworld
+ template:
+ metadata:
+ labels:
+ app: helloworld
+ spec:
+ containers:
+ - name: helloworld
+ image: nginx
+ resources:
+ requests:
+ cpu: "100m"
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 80
+```
+
+### helloworld-v2
+
+Deploys an Apache server that listens for the port `80`.
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: helloworld-v2
+ labels:
+ app: helloworld
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: helloworld
+ template:
+ metadata:
+ labels:
+ app: helloworld
+ spec:
+ containers:
+ - name: helloworld
+ image: httpd
+ resources:
+ requests:
+ cpu: "100m"
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 80
+```
+
+## Gateway
+
+Deploys an Istio gateway that's listening to the port `80` for `HTTP` traffic.
+
+It doesn't filter for any specific host.
+
+The `selector` field is used to "choose" which Istio Load Balancers will have this gateway assigned to.
+
+The Istio `default` profile creates a Load Balancer in the namespace `istio-system` that has the label `istio: ingressgateway` set, allowing us to target that specific Load Balancer and assign this gateway resource to it.
+
+```yaml
+apiVersion: networking.istio.io/v1alpha3
+kind: Gateway
+metadata:
+ name: helloworld-gateway
+spec:
+ selector:
+ istio: ingressgateway
+ servers:
+ - port:
+ number: 80
+ name: http
+ protocol: HTTP
+ hosts:
+ - "*"
+```
+
+## VirtualService
+
+The Virtual Service resources are used to route and filter the received traffic from the gateway resources, and route it towards the desired destination.
+
+On this example we select the gateway `helloworld-gateway`, which is the [gateway that 's described in the `Gateway` section](#gateway).
+
+On this resource, we are also not limiting the incoming traffic to any specific host, allowing for all the incoming traffic to go through the rules set.
+
+Here we created a rule that will be applied on `HTTP` related traffic (including `HTTPS` and `HTTP2`) when the destination path is exactly `/helloworld`.
+
+This traffic will be forwarded to the port `80` of the destination service `helloworld` (the full path URL equivalent would be `helloworld.$NAMESPACE.svc.cluster.local`).
+
+Additionally, there will be an internal URL rewrite set, as if the URL is not modified, it would attempt to reach to the `/helloworld` path from the Nginx deployment, which currently has no content and would result in an error code `404` (Not found).
+
+```yaml
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+ name: helloworld-vs
+spec:
+ hosts:
+ - "*"
+ gateways:
+ - helloworld-gateway
+ http:
+ - match:
+ - uri:
+ exact: /helloworld
+ route:
+ - destination:
+ host: helloworld
+ port:
+ number: 80
+ rewrite:
+ uri: "/"
+```
+
+
+# Walkthrough
+
+## Deploy resources
+
+Deploy the resources.
+
+```shell
+kubectl apply -f ./
+```
+```text
+deployment.apps/helloworld-v1 created
+deployment.apps/helloworld-v2 created
+gateway.networking.istio.io/helloworld-gateway created
+service/helloworld created
+virtualservice.networking.istio.io/helloworld-vs created
+```
+
+## Wait for the pods to be ready
+
+Wait for the Apache and Nginx deployments to be up and ready.
+
+```shell
+kubectl get deployment helloworld-v{1..2} -w
+```
+```text
+NAME READY UP-TO-DATE AVAILABLE AGE
+helloworld-v1 1/1 1 1 4m1s
+helloworld-v2 1/1 1 1 4m1s
+```
+
+## Test the service
+
+### Get LB IP
+
+To perform the desired tests, we will need to obtain the IP Istio Load Balancer that we selected in the [Gateway section](#gateway).
+
+On my environment, the IP is the `192.168.1.50`.
+
+```shell
+kubectl get svc -l istio=ingressgateway -A
+```
+```text
+NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
+istio-ingressgateway LoadBalancer 10.97.47.216 192.168.1.50 15021:31316/TCP,80:32012/TCP,443:32486/TCP 39h
+```
+
+### Curl
+
+Performing a series of `curl` requests, we can observe how the response iterate between the Nginx and Apache backends.
+
+```shell
+curl 192.168.1.50/helloworld -s | grep ".*
"
+```
+```text
+Welcome to nginx!
+```
+
+```shell
+curl 192.168.1.50/helloworld -s | grep ".*
"
+```
+```text
+It works!
+```
+
+```shell
+curl 192.168.1.50/helloworld -s | grep ".*
"
+```
+```text
+Welcome to nginx!
+```
+
+```shell
+curl 192.168.1.50/helloworld -s | grep ".*
"
+```
+```text
+It works!
+```
+
+```shell
+curl 192.168.1.50/helloworld -s | grep ".*
"
+```
+```text
+Welcome to nginx!
+```
+
+```shell
+curl 192.168.1.50/helloworld -s | grep ".*
"
+```
+```text
+It works!
+```
+
+```shell
+curl 192.168.1.50/helloworld -s | grep ".*
"
+```
+```text
+Welcome to nginx!
+```
+
+```shell
+curl 192.168.1.50/helloworld -s | grep ".*
"
+```
+```text
+Welcome to nginx!
+```
+
+```shell
+curl 192.168.1.50/helloworld -s | grep ".*
"
+```
+```text
+It works!
+```
+
+## Cleanup
+
+Finally, a cleanup from the resources deployed.
+
+```shell
+kubectl delete -f ./
+```
+```text
+deployment.apps "helloworld-v1" deleted
+deployment.apps "helloworld-v2" deleted
+gateway.networking.istio.io "helloworld-gateway" deleted
+service "helloworld" deleted
+virtualservice.networking.istio.io "helloworld-vs" deleted
+```
\ No newline at end of file
diff --git a/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/Service.yaml b/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/Service.yaml
new file mode 100644
index 0000000..271ce25
--- /dev/null
+++ b/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/Service.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: helloworld
+ labels:
+ app: helloworld
+ service: helloworld
+spec:
+ ports:
+ - port: 80
+ name: http
+ selector:
+ app: helloworld
\ No newline at end of file
diff --git a/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/VirtualService.yaml b/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/VirtualService.yaml
new file mode 100644
index 0000000..205231b
--- /dev/null
+++ b/01-Getting_Started/02-hello_world_1_service_2_deployments_unmanaged/VirtualService.yaml
@@ -0,0 +1,20 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+ name: helloworld-vs
+spec:
+ hosts:
+ - "*"
+ gateways:
+ - helloworld-gateway
+ http:
+ - match:
+ - uri:
+ exact: /helloworld
+ route:
+ - destination:
+ host: helloworld
+ port:
+ number: 80
+ rewrite:
+ uri: "/"
\ No newline at end of file
diff --git a/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/deployment.yaml b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/Deployment.yaml
similarity index 65%
rename from Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/deployment.yaml
rename to 01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/Deployment.yaml
index beb308d..22a2cba 100755
--- a/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/deployment.yaml
+++ b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/Deployment.yaml
@@ -1,37 +1,11 @@
-# https://github.com/istio/istio/blob/master/samples/helloworld/helloworld.yaml
-
----
-apiVersion: v1
-kind: Service
-metadata:
- name: helloworld
- namespace: defaultnt
- labels:
- app: helloworldll
- service: helloworld
- sidecar.istio.io/inject: "false"
-spec:
- ports:
- - port: 80
- name: http
- selector:
- app: helloworld
----
-#apiVersion: v1
-#kind: ServiceAccount
-#metadata:
-# name: istio-helloworld
-# labels:
-# account:
----
apiVersion: apps/v1
kind: Deployment
metadata:
name: helloworld-v1
- namespace: defaultnt
labels:
app: helloworld
version: v1
+ namespace: default
spec:
replicas: 1
selector:
@@ -58,10 +32,10 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: helloworld-v2
- namespace: defaultnt
labels:
app: helloworld
version: v2
+ namespace: default
spec:
replicas: 1
selector:
@@ -82,5 +56,4 @@ spec:
cpu: "100m"
imagePullPolicy: IfNotPresent
ports:
- - containerPort: 80
----
\ No newline at end of file
+ - containerPort: 80
\ No newline at end of file
diff --git a/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/DestinationRule.yaml b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/DestinationRule.yaml
new file mode 100644
index 0000000..bfe0e7b
--- /dev/null
+++ b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/DestinationRule.yaml
@@ -0,0 +1,16 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: DestinationRule
+metadata:
+ # name: helloworld (OLD)
+ name: helloworld.default.svc.cluster.local # Destination that will "interject"
+ namespace: default
+spec:
+ # host: helloworld # destination service (OLD)
+ host: helloworld.default.svc.cluster.local # Full destination service, lil better for consistency
+ subsets:
+ - name: v1
+ labels:
+ version: v1
+ - name: v2
+ labels:
+ version: v2
diff --git a/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/Gateway.yaml b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/Gateway.yaml
new file mode 100755
index 0000000..7f7989d
--- /dev/null
+++ b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/Gateway.yaml
@@ -0,0 +1,15 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: Gateway
+metadata:
+ name: helloworld-gateway
+ namespace: default
+spec:
+ selector:
+ istio: ingressgateway # use istio default controller
+ servers:
+ - port:
+ number: 80
+ name: http
+ protocol: HTTP
+ hosts:
+ - "*"
diff --git a/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/README.md b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/README.md
new file mode 100755
index 0000000..a81902e
--- /dev/null
+++ b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/README.md
@@ -0,0 +1,426 @@
+---
+gitea: none
+include_toc: true
+---
+
+# Description
+
+Based on the [previous example](../02-hello_world_1_service_2_deployments_unmanaged), where we created 2 deployments under the same service, we will attribute different tags to each Deployment, and afterwards, through the usage of a [DestinationRule](#destinationrule), internationally target the desired backend to route the traffic towards it.
+
+This is example is based on the following post regarding [canary deployments on Istio](https://istio.io/latest/blog/2017/0.1-canary/).
+
+This example configures:
+
+ Generic Kubernetes resources:
+ - 1 Service
+ - 2 Deployments
+
+ Istio resources:
+ - 1 Gateway
+ - 1 Virtual Service
+ - 1 Destination rule
+
+Additionally, for consistency, now the resources are being created in the `default` namespace.
+
+As well, on the [VirtualService section](#virtualservice), we are targeting the service `helloworld` by the full URL, where on previous examples it was targeted by `helloworld`, now it's targeted by `helloworld.default.svc.cluster.local`.
+
+# Based on
+
+- [02-hello_world_1_service_2_deployments_unmanaged](../02-hello_world_1_service_2_deployments_unmanaged)
+
+# Configuration
+
+## Service
+
+Creates a service named `helloworld`.
+
+This service listens for the port `80` expecting `HTTP` traffic and will forward the incoming traffic towards the port `80` from the destination pod.
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: helloworld
+ labels:
+ app: helloworld
+ service: helloworld
+spec:
+ ports:
+ - port: 80
+ name: http
+ selector:
+ app: helloworld
+```
+
+## Deployment
+
+### helloworld-v1
+
+Deploys a Nginx server that listens for the port `80`.
+
+On this deployment, we attributed the label `version` set to `v1`, this will be used by the [DestinationRule](#destinationrule) resource to target this deployment.
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: helloworld-v1
+ labels:
+ app: helloworld
+ version: v1
+ namespace: default
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: helloworld
+ version: v1
+ template:
+ metadata:
+ labels:
+ app: helloworld
+ version: v1
+ spec:
+ containers:
+ - name: helloworld
+ image: nginx
+ resources:
+ requests:
+ cpu: "100m"
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 80
+```
+
+### helloworld-v2
+
+Deploys an Apache server that listens for the port `80`.
+
+On this deployment, we attributed the label `version` set to `v2`, this will be used by the [DestinationRule](#destinationrule) resource to target this deployment.
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: helloworld-v2
+ labels:
+ app: helloworld
+ version: v2
+ namespace: default
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: helloworld
+ version: v2
+ template:
+ metadata:
+ labels:
+ app: helloworld
+ version: v2
+ spec:
+ containers:
+ - name: helloworld
+ image: httpd
+ resources:
+ requests:
+ cpu: "100m"
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 80
+```
+
+## Gateway
+
+Deploys an Istio gateway that's listening to the port `80` for `HTTP` traffic.
+
+It doesn't filter for any specific host.
+
+The `selector` field is used to "choose" which Istio Load Balancers will have this gateway assigned to.
+
+The Istio `default` profile creates a Load Balancer in the namespace `istio-system` that has the label `istio: ingressgateway` set, allowing us to target that specific Load Balancer and assign this gateway resource to it.
+
+
+
+```yaml
+apiVersion: networking.istio.io/v1alpha3
+kind: Gateway
+metadata:
+ name: helloworld-gateway
+ namespace: default
+spec:
+ selector:
+ istio: ingressgateway # use istio default controller
+ servers:
+ - port:
+ number: 80
+ name: http
+ protocol: HTTP
+ hosts:
+ - "*"
+```
+
+## VirtualService
+
+The Virtual Service resources are used to route and filter the received traffic from the gateway resources, and route it towards the desired destination.
+
+On this example we select the gateway `helloworld-gateway`, which is the [gateway that 's described in the `Gateway` section](#gateway).
+
+On this resource, we are also not limiting the incoming traffic to any specific host, allowing for all the incoming traffic to go through the rules set.
+
+Here we created a rule that will be applied on `HTTP` related traffic (including `HTTPS` and `HTTP2`) when the destination path is exactly `/helloworld`.
+
+This traffic will be forwarded to the port `80` of the destination service `helloworld` (the full path URL equivalent would be `helloworld.$NAMESPACE.svc.cluster.local`).
+
+There will be an internal URL rewrite set, as if the URL is not modified, it would attempt to reach to the `/helloworld` path from the Nginx deployment, which currently has no content and would result in an error code `404` (Not found).
+
+Also, there's been configured 2 destinations under the same rule, each one with a `subset` set, which will be used by the [DestinationRule](#destinationrule) object to manage the traffic from each destination.
+
+As well, where each one of the destinations mentioned, has a `weight` set, this value will be used to distribute the incoming requests towards the specified subsets.
+
+> **Note:**
+> A 20% of the traffic will be sent to the `subset` v1, meanwhile 80% will be sent to the `subset` v2.
+
+```yaml
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+ name: helloworld-vs
+ namespace: default
+spec:
+ hosts:
+ - "*"
+ gateways:
+ - helloworld-gateway
+ http:
+ - match:
+ - uri:
+ exact: /helloworld
+ route:
+ - destination:
+ host: helloworld.default.svc.cluster.local
+ # host: helloworld (OLD)
+ port:
+ number: 80
+ subset: v1
+ weight: 20
+ - destination:
+ # host: helloworld (OLD)
+ host: helloworld.default.svc.cluster.local
+ port:
+ number: 80
+ subset: v2
+ weight: 80
+ rewrite:
+ uri: "/"
+```
+
+## DestinationRule
+
+This `DestinationRule` interferes with the traffic with destination `helloworld.default.svc.cluster.local`.
+
+Contains 2 subsets defined, where each one will target a different backend.
+
+A reminder that the `version: v1` was given to the Nginx backend, meanwhile the Apache backend had set `version: v2`.
+
+```yaml
+apiVersion: networking.istio.io/v1alpha3
+kind: DestinationRule
+metadata:
+ # name: helloworld (OLD)
+ name: helloworld.default.svc.cluster.local # Destination that will "interject"
+ namespace: default
+spec:
+ # host: helloworld # destination service (OLD)
+ host: helloworld.default.svc.cluster.local # Full destination service, lil better for consistency
+ subsets:
+ - name: v1
+ labels:
+ version: v1
+ - name: v2
+ labels:
+ version: v2
+```
+
+# Walkthrough
+
+## Deploy resources
+
+Deploy the resources.
+
+```shell
+kubectl apply -f ./
+```
+```text
+deployment.apps/helloworld-v1 created
+deployment.apps/helloworld-v2 created
+destinationrule.networking.istio.io/helloworld.default.svc.cluster.local created
+gateway.networking.istio.io/helloworld-gateway created
+service/helloworld created
+virtualservice.networking.istio.io/helloworld-vs created
+```
+
+## Wait for the pods to be ready
+
+Wait for the Apache and Nginx deployments to be up and ready.
+
+```shell
+watch -n 2 kubectl get deployment helloworld-v{1..2}
+```
+```text
+NAME READY UP-TO-DATE AVAILABLE AGE
+helloworld-v1 1/1 1 1 58s
+helloworld-v2 1/1 1 1 58s
+```
+
+## Test the service
+
+### Get LB IP
+
+To perform the desired tests, we will need to obtain the IP Istio Load Balancer that we selected in the [Gateway section](#gateway).
+
+On my environment, the IP is the `192.168.1.50`.
+
+```shell
+kubectl get svc -l istio=ingressgateway -A
+```
+```text
+NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
+istio-ingressgateway LoadBalancer 10.97.47.216 192.168.1.50 15021:31316/TCP,80:32012/TCP,443:32486/TCP 39h
+```
+
+### Curl
+
+By performing a series of curls, we can notice how the output received iterates between Nginx and Apache.
+
+If we take into account the configuration set, and we review the results, we can notice how the ratio is close to the one configured in the [VirtualService](#virtualservice) section.
+
+> Nginx instances (v1): 2 \
+> Apache instances (v2): 9
+
+```text
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+Welcome to nginx!
+
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ curl 192.168.1.50/helloworld -s | grep ".*
"
+Welcome to nginx!
+```
+
+## Check Istio internal configurations created
+
+Using the command `istioctl x describe pod $POD`, we can see which Istio configuration is currently attributed to that specific pod.
+
+### v1
+
+We can notice the following line:
+
+`Weight 20%`
+
+Which matches the configuration set in the [VirtualService](#virtualservice) configuration.
+
+```sh
+istioctl x describe pod $(kubectl get pod -l app=helloworld,version=v1 -o jsonpath='{.items[0].metadata.name}')
+```
+```text
+Pod: helloworld-v1-7454b56b86-4cksf
+ Pod Revision: default
+ Pod Ports: 80 (helloworld), 15090 (istio-proxy)
+--------------------
+Service: helloworld
+ Port: http 80/HTTP targets pod port 80
+DestinationRule: helloworld for "helloworld.default.svc.cluster.local"
+ Matching subsets: v1
+ (Non-matching subsets v2)
+ No Traffic Policy
+--------------------
+Effective PeerAuthentication:
+ Workload mTLS mode: PERMISSIVE
+
+
+Exposed on Ingress Gateway http://192.168.1.50
+VirtualService: helloworld-vs
+ Weight 20%
+ /helloworld
+```
+
+### v2
+
+We can notice the following line:
+
+`Weight 80%`
+
+Which matches the configuration set in the [VirtualService](#virtualservice) configuration.
+
+```shell
+istioctl x describe pod `kubectl get pod -l app=helloworld,version=v2 -o jsonpath='{.items[0].metadata.name
+```
+```text
+Pod: helloworld-v2-64b5656d99-5bwgr
+ Pod Revision: default
+ Pod Ports: 80 (helloworld), 15090 (istio-proxy)
+--------------------
+Service: helloworld
+ Port: http 80/HTTP targets pod port 80
+DestinationRule: helloworld for "helloworld.default.svc.cluster.local"
+ Matching subsets: v2
+ (Non-matching subsets v1)
+ No Traffic Policy
+--------------------
+Effective PeerAuthentication:
+ Workload mTLS mode: PERMISSIVE
+
+
+Exposed on Ingress Gateway http://192.168.1.50
+VirtualService: helloworld-vs
+ Weight 80%
+ /helloworld
+```
+
+## Cleanup
+
+Finally, a cleanup from the resources deployed.
+
+```shell
+kubectl delete -f ./
+```
+```text
+deployment.apps "helloworld-v1" deleted
+deployment.apps "helloworld-v2" deleted
+destinationrule.networking.istio.io "helloworld.default.svc.cluster.local" deleted
+gateway.networking.istio.io "helloworld-gateway" deleted
+service "helloworld" deleted
+virtualservice.networking.istio.io "helloworld-vs" deleted
+```
+
+
+# Links of Interest
+
+- https://istio.io/latest/blog/2017/0.1-canary/
+- https://istio.io/latest/docs/reference/config/networking/destination-rule/#DestinationRule
\ No newline at end of file
diff --git a/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/Service.yaml b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/Service.yaml
new file mode 100644
index 0000000..503a64c
--- /dev/null
+++ b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/Service.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: helloworld
+ labels:
+ app: helloworld
+ service: helloworld
+ namespace: default
+spec:
+ ports:
+ - port: 80
+ name: http
+ selector:
+ app: helloworld
\ No newline at end of file
diff --git a/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/VirtualService.yaml b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/VirtualService.yaml
new file mode 100644
index 0000000..3b39a70
--- /dev/null
+++ b/01-Getting_Started/03-hello_world_1_service_2_deployments_managed_version/VirtualService.yaml
@@ -0,0 +1,31 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+ name: helloworld-vs
+ namespace: default
+spec:
+ hosts:
+ - "*"
+ gateways:
+ - helloworld-gateway
+ http:
+ - match:
+ - uri:
+ exact: /helloworld
+ route:
+ - destination:
+ host: helloworld.default.svc.cluster.local
+ # host: helloworld (OLD)
+ port:
+ number: 80
+ subset: v1
+ weight: 20
+ - destination:
+ # host: helloworld (OLD)
+ host: helloworld.default.svc.cluster.local
+ port:
+ number: 80
+ subset: v2
+ weight: 80
+ rewrite:
+ uri: "/"
\ No newline at end of file
diff --git a/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/01-namespace.yaml b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/01-namespace.yaml
new file mode 100755
index 0000000..8e80824
--- /dev/null
+++ b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/01-namespace.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: foo
\ No newline at end of file
diff --git a/Istio/01-Simple/03-hello_world_1_service_2_deployments_managed_version/deployment.yaml b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/Deployment.yaml
similarity index 69%
rename from Istio/01-Simple/03-hello_world_1_service_2_deployments_managed_version/deployment.yaml
rename to 01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/Deployment.yaml
index 0745bb1..8b5ba41 100755
--- a/Istio/01-Simple/03-hello_world_1_service_2_deployments_managed_version/deployment.yaml
+++ b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/Deployment.yaml
@@ -1,29 +1,8 @@
-# https://github.com/istio/istio/blob/master/samples/helloworld/helloworld.yaml
-apiVersion: v1
-kind: Service
-metadata:
- name: helloworld
- labels:
- app: helloworld
- service: helloworld
-spec:
- ports:
- - port: 80
- name: http
- selector:
- app: helloworld
----
-#apiVersion: v1
-#kind: ServiceAccount
-#metadata:
-# name: istio-helloworld
-# labels:
-# account:
----
apiVersion: apps/v1
kind: Deployment
metadata:
name: helloworld-v1
+ namespace: foo
labels:
app: helloworld
version: v1
@@ -39,7 +18,6 @@ spec:
app: helloworld
version: v1
spec:
-# serviceAccountName: istio-helloworld
containers:
- name: helloworld
image: nginx
@@ -54,6 +32,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: helloworld-v2
+ namespace: foo
labels:
app: helloworld
version: v2
@@ -69,7 +48,6 @@ spec:
app: helloworld
version: v2
spec:
-# serviceAccountName: istio-helloworld
containers:
- name: helloworld
image: httpd
diff --git a/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/DestinationRule.yaml b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/DestinationRule.yaml
new file mode 100644
index 0000000..8fa839d
--- /dev/null
+++ b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/DestinationRule.yaml
@@ -0,0 +1,14 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: DestinationRule
+metadata:
+ name: helloworld
+ namespace: foo
+spec:
+ host: helloworld.foo.svc.cluster.local # Full destination service, lil better for consistency
+ subsets:
+ - name: v1
+ labels:
+ version: v1
+ - name: v2
+ labels:
+ version: v2
diff --git a/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/Gateway.yaml b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/Gateway.yaml
new file mode 100755
index 0000000..236a606
--- /dev/null
+++ b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/Gateway.yaml
@@ -0,0 +1,15 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: Gateway
+metadata:
+ name: helloworld-gateway
+ namespace: default
+spec:
+ selector:
+ istio: ingressgateway # use istio default controller
+ servers:
+ - port:
+ number: 80
+ name: http
+ protocol: HTTP
+ hosts:
+ - "*"
\ No newline at end of file
diff --git a/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/README.md b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/README.md
new file mode 100755
index 0000000..3791737
--- /dev/null
+++ b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/README.md
@@ -0,0 +1,374 @@
+---
+gitea: none
+include_toc: true
+---
+
+# Description
+
+Based on the [previous example](../03-hello_world_1_service_2_deployments_managed_version), we create the previous deployments in a different namespace than the Istio VirtualService object, in this case we create them in the namespace `foo`.
+
+This is example is based on the following post regarding [canary deployments on Istio](https://istio.io/latest/blog/2017/0.1-canary/).
+
+This example configures:
+
+ Generic Kubernetes resources:
+ - 1 Namespace
+ - 1 Service
+ - 2 Deployments
+
+ Istio resources:
+ - 1 Gateway
+ - 1 Virtual Service
+ - 1 Destination rule
+
+Additionally, for consistency, now the resources are being created in the `default` namespace.
+
+On this example, the `service`, the `deployment`, and the Istio `DestinationRule` are being created in the namespace `foo`.
+
+As well, on the [VirtualService section](#virtualservice), we are targeting the service `helloworld` by the full URL, where on previous examples it was targeted by `helloworld`, now it's targeted by `helloworld.default.svc.cluster.local`.
+
+# Based on
+
+- [03-hello_world_1_service_2_deployments_managed_version](../03-hello_world_1_service_2_deployments_managed_version)
+
+# Configuration
+
+## Namespace
+
+Creates a namespace named `foo`.
+
+```yaml
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: foo
+```
+
+## Service
+
+Creates a service named `helloworld`.
+
+This service listens for the port `80` expecting `HTTP` traffic and will forward the incoming traffic towards the port `80` from the destination pod.
+
+The service is created in the namespace `foo`.
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: helloworld
+ namespace: foo
+ labels:
+ app: helloworld
+ service: helloworld
+spec:
+ ports:
+ - port: 80
+ name: http
+ selector:
+ app: helloworld
+```
+
+## Deployment
+
+### helloworld-v1
+
+Deploys a Nginx server that listens for the port `80`.
+
+On this deployment, we attributed the label `version` set to `v1`, this will be used by the [DestinationRule](#destinationrule) resource to target this deployment.
+
+The deployment is created in the namespace `foo`.
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: helloworld-v1
+ namespace: foo
+ labels:
+ app: helloworld
+ version: v1
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: helloworld
+ version: v1
+ template:
+ metadata:
+ labels:
+ app: helloworld
+ version: v1
+ spec:
+ containers:
+ - name: helloworld
+ image: nginx
+ resources:
+ requests:
+ cpu: "100m"
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 80
+```
+
+### helloworld-v2
+
+Deploys an Apache server that listens for the port `80`.
+
+On this deployment, we attributed the label `version` set to `v2`, this will be used by the [DestinationRule](#destinationrule) resource to target this deployment.
+
+The deployment is created in the namespace `foo`.
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: helloworld-v2
+ namespace: foo
+ labels:
+ app: helloworld
+ version: v2
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: helloworld
+ version: v2
+ template:
+ metadata:
+ labels:
+ app: helloworld
+ version: v2
+ spec:
+ containers:
+ - name: helloworld
+ image: httpd
+ resources:
+ requests:
+ cpu: "100m"
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 80
+```
+
+## Gateway
+
+Deploys an Istio gateway that's listening to the port `80` for `HTTP` traffic.
+
+It doesn't filter for any specific host.
+
+The `selector` field is used to "choose" which Istio Load Balancers will have this gateway assigned to.
+
+The Istio `default` profile creates a Load Balancer in the namespace `istio-system` that has the label `istio: ingressgateway` set, allowing us to target that specific Load Balancer and assign this gateway resource to it.
+
+
+```yaml
+apiVersion: networking.istio.io/v1alpha3
+kind: Gateway
+metadata:
+ name: helloworld-gateway
+ namespace: default
+spec:
+ selector:
+ istio: ingressgateway # use istio default controller
+ servers:
+ - port:
+ number: 80
+ name: http
+ protocol: HTTP
+ hosts:
+ - "*"
+```
+
+## VirtualService
+
+The Virtual Service resources are used to route and filter the received traffic from the gateway resources, and route it towards the desired destination.
+
+On this example we select the gateway `helloworld-gateway`, which is the [gateway that 's described in the `Gateway` section](#gateway).
+
+On this resource, we are also not limiting the incoming traffic to any specific host, allowing for all the incoming traffic to go through the rules set.
+
+Here we created a rule that will be applied on `HTTP` related traffic (including `HTTPS` and `HTTP2`) when the destination path is exactly `/helloworld`.
+
+This traffic will be forwarded to the port `80` of the destination service `helloworld` located in the namespace `foo`.
+
+There will be an internal URL rewrite set, as if the URL is not modified, it would attempt to reach to the `/helloworld` path from the Nginx deployment, which currently has no content and would result in an error code `404` (Not found).
+
+Also, there's been configured 2 destinations under the same rule, each one with a `subset` set, which will be used by the [DestinationRule](#destinationrule) object to manage the traffic from each destination.
+
+As well, where each one of the destinations mentioned, has a `weight` set, this value will be used to distribute the incoming requests towards the specified subsets.
+
+> **Note:**
+> A 20% of the traffic will be sent to the `subset` v1, meanwhile 80% will be sent to the `subset` v2.
+
+```yaml
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+ name: helloworld-vs
+ namespace: default
+spec:
+ hosts:
+ - "*"
+ gateways:
+ - helloworld-gateway
+ http:
+ - match:
+ - uri:
+ exact: /helloworld
+ route:
+ - destination:
+ host: helloworld.foo.svc.cluster.local
+ port:
+ number: 80
+ subset: v1
+ weight: 20
+ - destination:
+ host: helloworld.foo.svc.cluster.local
+ port:
+ number: 80
+ subset: v2
+ weight: 80
+ rewrite:
+ uri: "/"
+```
+## DestinationRule
+
+This `DestinationRule` interferes with the traffic with destination `helloworld.foo.svc.cluster.local`.
+
+Contains 2 subsets defined, where each one will target a different backend.
+
+A reminder that the `version: v1` was given to the Nginx backend, meanwhile the Apache backend had set `version: v2`.
+
+This resource is created in the namespace `foo`.
+
+```yaml
+apiVersion: networking.istio.io/v1alpha3
+kind: DestinationRule
+metadata:
+ name: helloworld
+ namespace: foo
+spec:
+ host: helloworld.foo.svc.cluster.local # Full destination service, lil better for consistency
+ subsets:
+ - name: v1
+ labels:
+ version: v1
+ - name: v2
+ labels:
+ version: v2
+```
+
+
+## Deploy resources
+
+Deploy the resources.
+
+```shell
+kubectl apply -f ./
+```
+```text
+deployment.apps/helloworld-v1 created
+deployment.apps/helloworld-v2 created
+destinationrule.networking.istio.io/helloworld.default.svc.cluster.local created
+gateway.networking.istio.io/helloworld-gateway created
+service/helloworld created
+virtualservice.networking.istio.io/helloworld-vs created
+```
+
+## Wait for the pods to be ready
+
+Wait for the Apache and Nginx deployments to be up and ready.
+
+```shell
+watch -n 2 kubectl get deployment helloworld-v{1..2}
+```
+```text
+NAME READY UP-TO-DATE AVAILABLE AGE
+helloworld-v1 1/1 1 1 58s
+helloworld-v2 1/1 1 1 58s
+```
+
+## Test the service
+
+### Get LB IP
+
+To perform the desired tests, we will need to obtain the IP Istio Load Balancer that we selected in the [Gateway section](#gateway).
+
+On my environment, the IP is the `192.168.1.50`.
+
+```shell
+kubectl get svc -l istio=ingressgateway -A
+```
+```text
+NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
+istio-ingressgateway LoadBalancer 10.97.47.216 192.168.1.50 15021:31316/TCP,80:32012/TCP,443:32486/TCP 39h
+```
+
+### Curl
+
+As we can see, we can reach out to the service, now located in the namespace `foo`.
+
+As well, if we check the ration on which we reached the backends, we can still see how the [VirtualService](#virtualservice) weight configured to the subsets is still being applied.
+
+> Nginx: 3\
+> Apache: 9
+
+```text
+curl 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+Welcome to nginx!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+Welcome to nginx!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+Welcome to nginx!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+
+$ 192.168.1.50/helloworld -s | grep ".*
"
+It works!
+```
+
+
+## Cleanup
+
+Finally, a cleanup from the resources deployed.
+
+```shell
+kubectl delete -f ./
+```
+```text
+namespace "foo" deleted
+deployment.apps "helloworld-v1" deleted
+deployment.apps "helloworld-v2" deleted
+destinationrule.networking.istio.io "helloworld" deleted
+gateway.networking.istio.io "helloworld-gateway" deleted
+service "helloworld" deleted
+virtualservice.networking.istio.io "helloworld-vs" deleted
+```
\ No newline at end of file
diff --git a/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/Service.yaml b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/Service.yaml
new file mode 100644
index 0000000..069641d
--- /dev/null
+++ b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/Service.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: helloworld
+ namespace: foo
+ labels:
+ app: helloworld
+ service: helloworld
+spec:
+ ports:
+ - port: 80
+ name: http
+ selector:
+ app: helloworld
\ No newline at end of file
diff --git a/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/VirtualService.yaml b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/VirtualService.yaml
new file mode 100644
index 0000000..13b9b33
--- /dev/null
+++ b/01-Getting_Started/04-hello_world_1_service_2_deployments_managed_version_foo_namespace/VirtualService.yaml
@@ -0,0 +1,29 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+ name: helloworld-vs
+ namespace: default
+spec:
+ hosts:
+ - "*"
+ gateways:
+ - helloworld-gateway
+ http:
+ - match:
+ - uri:
+ exact: /helloworld
+ route:
+ - destination:
+ host: helloworld.foo.svc.cluster.local
+ port:
+ number: 80
+ subset: v1
+ weight: 20
+ - destination:
+ host: helloworld.foo.svc.cluster.local
+ port:
+ number: 80
+ subset: v2
+ weight: 80
+ rewrite:
+ uri: "/"
\ No newline at end of file
diff --git a/01-Getting_Started/README.md b/01-Getting_Started/README.md
new file mode 100755
index 0000000..9ce55a6
--- /dev/null
+++ b/01-Getting_Started/README.md
@@ -0,0 +1,45 @@
+---
+gitea: none
+include_toc: true
+---
+
+# Getting Started
+
+The idea of these examples is to get yourself familiarized with the basic elements used on Istio, allowing you to explore the documentation as well of proceeding with other examples or tests on your onw.
+
+On these examples you will find the following Istio resources:
+
+- Gateway
+- VirtualService
+- DestinationRule
+
+# Examples
+
+- 01-hello_world_1_service_1_deployment
+
+- 02-hello_world_1_service_2_deployments_unmanaged
+
+- 03-hello_world_1_service_2_deployments_managed_version
+
+- 04-hello_world_1_service_2_deployments_managed_version_foo_namespace
+
+
+# How to get started?
+
+## Install Istio
+
+Follow [this](https://istio.io/latest/docs/setup/getting-started/) guide to install the `default` profile.
+
+Specifically, the steps of [Download Istio](https://istio.io/latest/docs/setup/getting-started/#download) and [Install Istio][https://istio.io/latest/docs/setup/getting-started/#install).
+
+Once this is set, proceed with the rest of the installation.
+
+## Setting up a Cluster?
+
+Consider using this.
+
+It's what I used to set up my labs for testing (which is the environment that I to do this repository/set of examples).
+
+https://gitea.filterhome.xyz/ofilter/ansible_kubernetes_cluster
+
+Also, I have added MetalLB to allow for my Load Balancers to get a Local IP and be available through the local network environment.
\ No newline at end of file
diff --git a/Istio/02-Traffic_management/01-2_deployments_method/README.md b/02-Traffic_management/01-2_deployments_method/README.md
similarity index 100%
rename from Istio/02-Traffic_management/01-2_deployments_method/README.md
rename to 02-Traffic_management/01-2_deployments_method/README.md
diff --git a/Istio/02-Traffic_management/01-2_deployments_method/deployment.yaml b/02-Traffic_management/01-2_deployments_method/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/01-2_deployments_method/deployment.yaml
rename to 02-Traffic_management/01-2_deployments_method/deployment.yaml
diff --git a/Istio/02-Traffic_management/01-2_deployments_method/gateway.yaml b/02-Traffic_management/01-2_deployments_method/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/01-2_deployments_method/gateway.yaml
rename to 02-Traffic_management/01-2_deployments_method/gateway.yaml
diff --git a/Istio/02-Traffic_management/02-DirectResponse-HTTP-Body/README.md b/02-Traffic_management/02-DirectResponse-HTTP-Body/README.md
similarity index 100%
rename from Istio/02-Traffic_management/02-DirectResponse-HTTP-Body/README.md
rename to 02-Traffic_management/02-DirectResponse-HTTP-Body/README.md
diff --git a/Istio/02-Traffic_management/02-DirectResponse-HTTP-Body/deployment.yaml b/02-Traffic_management/02-DirectResponse-HTTP-Body/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/02-DirectResponse-HTTP-Body/deployment.yaml
rename to 02-Traffic_management/02-DirectResponse-HTTP-Body/deployment.yaml
diff --git a/Istio/02-Traffic_management/02-DirectResponse-HTTP-Body/gateway.yaml b/02-Traffic_management/02-DirectResponse-HTTP-Body/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/02-DirectResponse-HTTP-Body/gateway.yaml
rename to 02-Traffic_management/02-DirectResponse-HTTP-Body/gateway.yaml
diff --git a/Istio/02-Traffic_management/03-HTTPRewrite/README.md b/02-Traffic_management/03-HTTPRewrite/README.md
similarity index 100%
rename from Istio/02-Traffic_management/03-HTTPRewrite/README.md
rename to 02-Traffic_management/03-HTTPRewrite/README.md
diff --git a/Istio/02-Traffic_management/03-HTTPRewrite/deployment.yaml b/02-Traffic_management/03-HTTPRewrite/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/03-HTTPRewrite/deployment.yaml
rename to 02-Traffic_management/03-HTTPRewrite/deployment.yaml
diff --git a/Istio/02-Traffic_management/03-HTTPRewrite/gateway.yaml b/02-Traffic_management/03-HTTPRewrite/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/03-HTTPRewrite/gateway.yaml
rename to 02-Traffic_management/03-HTTPRewrite/gateway.yaml
diff --git a/Istio/02-Traffic_management/04-HTTPRedirect/README.md b/02-Traffic_management/04-HTTPRedirect/README.md
similarity index 100%
rename from Istio/02-Traffic_management/04-HTTPRedirect/README.md
rename to 02-Traffic_management/04-HTTPRedirect/README.md
diff --git a/Istio/02-Traffic_management/04-HTTPRedirect/deployment.yaml b/02-Traffic_management/04-HTTPRedirect/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/04-HTTPRedirect/deployment.yaml
rename to 02-Traffic_management/04-HTTPRedirect/deployment.yaml
diff --git a/Istio/02-Traffic_management/04-HTTPRedirect/gateway.yaml b/02-Traffic_management/04-HTTPRedirect/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/04-HTTPRedirect/gateway.yaml
rename to 02-Traffic_management/04-HTTPRedirect/gateway.yaml
diff --git a/Istio/01-Simple/05-hello_world_1_Service_Entry/README.md b/02-Traffic_management/05-hello_world_1_Service_Entry/README.md
similarity index 100%
rename from Istio/01-Simple/05-hello_world_1_Service_Entry/README.md
rename to 02-Traffic_management/05-hello_world_1_Service_Entry/README.md
diff --git a/Istio/01-Simple/05-hello_world_1_Service_Entry/ServiceEntry.yaml b/02-Traffic_management/05-hello_world_1_Service_Entry/ServiceEntry.yaml
similarity index 100%
rename from Istio/01-Simple/05-hello_world_1_Service_Entry/ServiceEntry.yaml
rename to 02-Traffic_management/05-hello_world_1_Service_Entry/ServiceEntry.yaml
diff --git a/Istio/01-Simple/05-hello_world_1_Service_Entry/gateway.yaml b/02-Traffic_management/05-hello_world_1_Service_Entry/gateway.yaml
similarity index 100%
rename from Istio/01-Simple/05-hello_world_1_Service_Entry/gateway.yaml
rename to 02-Traffic_management/05-hello_world_1_Service_Entry/gateway.yaml
diff --git a/Istio/02-Traffic_management/05a-FaultInjection-delay/README.md b/02-Traffic_management/05a-FaultInjection-delay/README.md
similarity index 100%
rename from Istio/02-Traffic_management/05a-FaultInjection-delay/README.md
rename to 02-Traffic_management/05a-FaultInjection-delay/README.md
diff --git a/Istio/02-Traffic_management/05a-FaultInjection-delay/deployment.yaml b/02-Traffic_management/05a-FaultInjection-delay/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/05a-FaultInjection-delay/deployment.yaml
rename to 02-Traffic_management/05a-FaultInjection-delay/deployment.yaml
diff --git a/Istio/02-Traffic_management/05a-FaultInjection-delay/gateway.yaml b/02-Traffic_management/05a-FaultInjection-delay/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/05a-FaultInjection-delay/gateway.yaml
rename to 02-Traffic_management/05a-FaultInjection-delay/gateway.yaml
diff --git a/Istio/02-Traffic_management/05b-FaultInjection-abort/README.md b/02-Traffic_management/05b-FaultInjection-abort/README.md
similarity index 100%
rename from Istio/02-Traffic_management/05b-FaultInjection-abort/README.md
rename to 02-Traffic_management/05b-FaultInjection-abort/README.md
diff --git a/Istio/02-Traffic_management/05b-FaultInjection-abort/deployment.yaml b/02-Traffic_management/05b-FaultInjection-abort/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/05b-FaultInjection-abort/deployment.yaml
rename to 02-Traffic_management/05b-FaultInjection-abort/deployment.yaml
diff --git a/Istio/02-Traffic_management/05b-FaultInjection-abort/gateway.yaml b/02-Traffic_management/05b-FaultInjection-abort/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/05b-FaultInjection-abort/gateway.yaml
rename to 02-Traffic_management/05b-FaultInjection-abort/gateway.yaml
diff --git a/Istio/01-Simple/06-hello_world_1_HTTPS-Service_Entry/README.md b/02-Traffic_management/06-hello_world_1_HTTPS-Service_Entry/README.md
similarity index 95%
rename from Istio/01-Simple/06-hello_world_1_HTTPS-Service_Entry/README.md
rename to 02-Traffic_management/06-hello_world_1_HTTPS-Service_Entry/README.md
index 69813e6..1eed779 100755
--- a/Istio/01-Simple/06-hello_world_1_HTTPS-Service_Entry/README.md
+++ b/02-Traffic_management/06-hello_world_1_HTTPS-Service_Entry/README.md
@@ -108,7 +108,7 @@ spec:
## DestinationRule
-As seen in the example [02-Traffic_management/09-HTTPS-backend](../../02-Traffic_management/09-HTTPS-backend), where we configure Istio to use an `HTTPS` backend, the same configuration is applied on this case (yes, I am aware that a `ServiceEntry` is also a backend).
+As seen in the example [02-Traffic_management/09-HTTPS-backend](../09-HTTPS-backend), where we configure Istio to use an `HTTPS` backend, the same configuration is applied on this case (yes, I am aware that a `ServiceEntry` is also a backend).
For such, we deploy a `DestinationRule` setting to expect to terminate the TLS traffic, for the traffic with resource destination `github.com`, and port `8443`, which matches the settings set in our [ServiceEntry](#serviceentry) deployed.
@@ -169,7 +169,7 @@ I mean, we can use curl but it's certainly quite an ugly output, it works tho.
As performing the test through `curl` is ugly, here is a screenshot of the setting working correctly.
-
+
## Cleanup
diff --git a/Istio/01-Simple/06-hello_world_1_HTTPS-Service_Entry/ServiceEntry.yaml b/02-Traffic_management/06-hello_world_1_HTTPS-Service_Entry/ServiceEntry.yaml
similarity index 100%
rename from Istio/01-Simple/06-hello_world_1_HTTPS-Service_Entry/ServiceEntry.yaml
rename to 02-Traffic_management/06-hello_world_1_HTTPS-Service_Entry/ServiceEntry.yaml
diff --git a/Istio/01-Simple/06-hello_world_1_HTTPS-Service_Entry/gateway.yaml b/02-Traffic_management/06-hello_world_1_HTTPS-Service_Entry/gateway.yaml
similarity index 100%
rename from Istio/01-Simple/06-hello_world_1_HTTPS-Service_Entry/gateway.yaml
rename to 02-Traffic_management/06-hello_world_1_HTTPS-Service_Entry/gateway.yaml
diff --git a/Istio/01-Simple/06-hello_world_1_HTTPS-Service_Entry/src/github-screenshot.png b/02-Traffic_management/06-hello_world_1_HTTPS-Service_Entry/src/github-screenshot.png
similarity index 100%
rename from Istio/01-Simple/06-hello_world_1_HTTPS-Service_Entry/src/github-screenshot.png
rename to 02-Traffic_management/06-hello_world_1_HTTPS-Service_Entry/src/github-screenshot.png
diff --git a/Istio/02-Traffic_management/06-mTLS/README.md b/02-Traffic_management/06-mTLS/README.md
similarity index 98%
rename from Istio/02-Traffic_management/06-mTLS/README.md
rename to 02-Traffic_management/06-mTLS/README.md
index 84e2185..4e6dadb 100755
--- a/Istio/02-Traffic_management/06-mTLS/README.md
+++ b/02-Traffic_management/06-mTLS/README.md
@@ -5,7 +5,7 @@ include_toc: true
# Based on
-- [01-hello_world_1_service_1_deployment](../../01-Simple/01-hello_world_1_service_1_deployment)
+- [01-hello_world_1_service_1_deployment](../../01-Getting%20Started/01-hello_world_1_service_1_deployment)
## Description
diff --git a/Istio/02-Traffic_management/06-mTLS/authentication.yaml b/02-Traffic_management/06-mTLS/authentication.yaml
similarity index 100%
rename from Istio/02-Traffic_management/06-mTLS/authentication.yaml
rename to 02-Traffic_management/06-mTLS/authentication.yaml
diff --git a/Istio/02-Traffic_management/06-mTLS/deployment.yaml b/02-Traffic_management/06-mTLS/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/06-mTLS/deployment.yaml
rename to 02-Traffic_management/06-mTLS/deployment.yaml
diff --git a/Istio/02-Traffic_management/06-mTLS/deployment_2.yaml b/02-Traffic_management/06-mTLS/deployment_2.yaml
similarity index 100%
rename from Istio/02-Traffic_management/06-mTLS/deployment_2.yaml
rename to 02-Traffic_management/06-mTLS/deployment_2.yaml
diff --git a/Istio/02-Traffic_management/06-mTLS/gateway.yaml b/02-Traffic_management/06-mTLS/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/06-mTLS/gateway.yaml
rename to 02-Traffic_management/06-mTLS/gateway.yaml
diff --git a/Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/README.md b/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/README.md
similarity index 97%
rename from Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/README.md
rename to 02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/README.md
index ac080b5..ff66d5e 100644
--- a/Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/README.md
+++ b/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/README.md
@@ -5,7 +5,7 @@ include_toc: true
# Based on
-- [01-hello_world_1_service_1_deployment](../../01-Simple/01-hello_world_1_service_1_deployment)
+- [01-hello_world_1_service_1_deployment](../../01-Getting%20Started/01-hello_world_1_service_1_deployment)
# Description
diff --git a/Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/deployment.yaml b/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/deployment.yaml
rename to 02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/deployment.yaml
diff --git a/Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/gateway.yaml b/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/gateway.yaml
rename to 02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/gateway.yaml
diff --git a/Istio/02-Traffic_management/08a-HTTPS-min-TLS-version/README.md b/02-Traffic_management/08a-HTTPS-min-TLS-version/README.md
similarity index 100%
rename from Istio/02-Traffic_management/08a-HTTPS-min-TLS-version/README.md
rename to 02-Traffic_management/08a-HTTPS-min-TLS-version/README.md
diff --git a/Istio/02-Traffic_management/08a-HTTPS-min-TLS-version/deployment.yaml b/02-Traffic_management/08a-HTTPS-min-TLS-version/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/08a-HTTPS-min-TLS-version/deployment.yaml
rename to 02-Traffic_management/08a-HTTPS-min-TLS-version/deployment.yaml
diff --git a/Istio/02-Traffic_management/08a-HTTPS-min-TLS-version/gateway.yaml b/02-Traffic_management/08a-HTTPS-min-TLS-version/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/08a-HTTPS-min-TLS-version/gateway.yaml
rename to 02-Traffic_management/08a-HTTPS-min-TLS-version/gateway.yaml
diff --git a/Istio/02-Traffic_management/08b-HTTPS-max-TLS-version/README.md b/02-Traffic_management/08b-HTTPS-max-TLS-version/README.md
similarity index 100%
rename from Istio/02-Traffic_management/08b-HTTPS-max-TLS-version/README.md
rename to 02-Traffic_management/08b-HTTPS-max-TLS-version/README.md
diff --git a/Istio/02-Traffic_management/08b-HTTPS-max-TLS-version/deployment.yaml b/02-Traffic_management/08b-HTTPS-max-TLS-version/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/08b-HTTPS-max-TLS-version/deployment.yaml
rename to 02-Traffic_management/08b-HTTPS-max-TLS-version/deployment.yaml
diff --git a/Istio/02-Traffic_management/08b-HTTPS-max-TLS-version/gateway.yaml b/02-Traffic_management/08b-HTTPS-max-TLS-version/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/08b-HTTPS-max-TLS-version/gateway.yaml
rename to 02-Traffic_management/08b-HTTPS-max-TLS-version/gateway.yaml
diff --git a/Istio/02-Traffic_management/09-HTTPS-backend/README.md b/02-Traffic_management/09-HTTPS-backend/README.md
similarity index 100%
rename from Istio/02-Traffic_management/09-HTTPS-backend/README.md
rename to 02-Traffic_management/09-HTTPS-backend/README.md
diff --git a/Istio/02-Traffic_management/09-HTTPS-backend/authentication.yaml b/02-Traffic_management/09-HTTPS-backend/authentication.yaml
similarity index 100%
rename from Istio/02-Traffic_management/09-HTTPS-backend/authentication.yaml
rename to 02-Traffic_management/09-HTTPS-backend/authentication.yaml
diff --git a/Istio/02-Traffic_management/09-HTTPS-backend/deployment.yaml b/02-Traffic_management/09-HTTPS-backend/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/09-HTTPS-backend/deployment.yaml
rename to 02-Traffic_management/09-HTTPS-backend/deployment.yaml
diff --git a/Istio/02-Traffic_management/09-HTTPS-backend/gateway.yaml b/02-Traffic_management/09-HTTPS-backend/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/09-HTTPS-backend/gateway.yaml
rename to 02-Traffic_management/09-HTTPS-backend/gateway.yaml
diff --git a/Istio/02-Traffic_management/10-TCP-FORWARDING/README.md b/02-Traffic_management/10-TCP-FORWARDING/README.md
similarity index 100%
rename from Istio/02-Traffic_management/10-TCP-FORWARDING/README.md
rename to 02-Traffic_management/10-TCP-FORWARDING/README.md
diff --git a/Istio/02-Traffic_management/10-TCP-FORWARDING/deployment.yaml b/02-Traffic_management/10-TCP-FORWARDING/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/10-TCP-FORWARDING/deployment.yaml
rename to 02-Traffic_management/10-TCP-FORWARDING/deployment.yaml
diff --git a/Istio/02-Traffic_management/10-TCP-FORWARDING/gateway.yaml b/02-Traffic_management/10-TCP-FORWARDING/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/10-TCP-FORWARDING/gateway.yaml
rename to 02-Traffic_management/10-TCP-FORWARDING/gateway.yaml
diff --git a/Istio/02-Traffic_management/11-TLS-PASSTHROUGH/README.md b/02-Traffic_management/11-TLS-PASSTHROUGH/README.md
similarity index 100%
rename from Istio/02-Traffic_management/11-TLS-PASSTHROUGH/README.md
rename to 02-Traffic_management/11-TLS-PASSTHROUGH/README.md
diff --git a/Istio/02-Traffic_management/11-TLS-PASSTHROUGH/deployment.yaml b/02-Traffic_management/11-TLS-PASSTHROUGH/deployment.yaml
similarity index 100%
rename from Istio/02-Traffic_management/11-TLS-PASSTHROUGH/deployment.yaml
rename to 02-Traffic_management/11-TLS-PASSTHROUGH/deployment.yaml
diff --git a/Istio/02-Traffic_management/11-TLS-PASSTHROUGH/gateway.yaml b/02-Traffic_management/11-TLS-PASSTHROUGH/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/11-TLS-PASSTHROUGH/gateway.yaml
rename to 02-Traffic_management/11-TLS-PASSTHROUGH/gateway.yaml
diff --git a/Istio/02-Traffic_management/12-HTTP-to-HTTPS-traffic-redirect/README.md b/02-Traffic_management/12-HTTP-to-HTTPS-traffic-redirect/README.md
similarity index 100%
rename from Istio/02-Traffic_management/12-HTTP-to-HTTPS-traffic-redirect/README.md
rename to 02-Traffic_management/12-HTTP-to-HTTPS-traffic-redirect/README.md
diff --git a/Istio/02-Traffic_management/12-HTTP-to-HTTPS-traffic-redirect/gateway.yaml b/02-Traffic_management/12-HTTP-to-HTTPS-traffic-redirect/gateway.yaml
similarity index 100%
rename from Istio/02-Traffic_management/12-HTTP-to-HTTPS-traffic-redirect/gateway.yaml
rename to 02-Traffic_management/12-HTTP-to-HTTPS-traffic-redirect/gateway.yaml
diff --git a/Istio/02-Traffic_management/README.md b/02-Traffic_management/README.md
similarity index 100%
rename from Istio/02-Traffic_management/README.md
rename to 02-Traffic_management/README.md
diff --git a/Istio/02-Traffic_management/src/06-kiali-services-byeworld.png b/02-Traffic_management/src/06-kiali-services-byeworld.png
similarity index 100%
rename from Istio/02-Traffic_management/src/06-kiali-services-byeworld.png
rename to 02-Traffic_management/src/06-kiali-services-byeworld.png
diff --git a/Istio/02-Traffic_management/src/06-kiali-services-helloworld.png b/02-Traffic_management/src/06-kiali-services-helloworld.png
similarity index 100%
rename from Istio/02-Traffic_management/src/06-kiali-services-helloworld.png
rename to 02-Traffic_management/src/06-kiali-services-helloworld.png
diff --git a/Istio/02-Traffic_management/src/06-kiali-services.png b/02-Traffic_management/src/06-kiali-services.png
similarity index 100%
rename from Istio/02-Traffic_management/src/06-kiali-services.png
rename to 02-Traffic_management/src/06-kiali-services.png
diff --git a/Istio/03-Sidecar/01-ingress-proxy-forwarding/README.md b/03-Sidecar/01-ingress-proxy-forwarding/README.md
similarity index 100%
rename from Istio/03-Sidecar/01-ingress-proxy-forwarding/README.md
rename to 03-Sidecar/01-ingress-proxy-forwarding/README.md
diff --git a/Istio/03-Sidecar/01-ingress-proxy-forwarding/deployment.yaml b/03-Sidecar/01-ingress-proxy-forwarding/deployment.yaml
similarity index 100%
rename from Istio/03-Sidecar/01-ingress-proxy-forwarding/deployment.yaml
rename to 03-Sidecar/01-ingress-proxy-forwarding/deployment.yaml
diff --git a/Istio/03-Sidecar/01-ingress-proxy-forwarding/gateway.yaml b/03-Sidecar/01-ingress-proxy-forwarding/gateway.yaml
similarity index 100%
rename from Istio/03-Sidecar/01-ingress-proxy-forwarding/gateway.yaml
rename to 03-Sidecar/01-ingress-proxy-forwarding/gateway.yaml
diff --git a/Istio/03-Sidecar/01-ingress-proxy-forwarding/sidecar.yaml b/03-Sidecar/01-ingress-proxy-forwarding/sidecar.yaml
similarity index 100%
rename from Istio/03-Sidecar/01-ingress-proxy-forwarding/sidecar.yaml
rename to 03-Sidecar/01-ingress-proxy-forwarding/sidecar.yaml
diff --git a/Istio/03-Sidecar/README.md b/03-Sidecar/README.md
similarity index 100%
rename from Istio/03-Sidecar/README.md
rename to 03-Sidecar/README.md
diff --git a/Istio/04-Envoy/01-envoy_add_headers/README.md b/04-Envoy/01-envoy_add_headers/README.md
similarity index 100%
rename from Istio/04-Envoy/01-envoy_add_headers/README.md
rename to 04-Envoy/01-envoy_add_headers/README.md
diff --git a/Istio/04-Envoy/01-envoy_add_headers/deployment.yaml b/04-Envoy/01-envoy_add_headers/deployment.yaml
similarity index 91%
rename from Istio/04-Envoy/01-envoy_add_headers/deployment.yaml
rename to 04-Envoy/01-envoy_add_headers/deployment.yaml
index f75b734..e3319c3 100755
--- a/Istio/04-Envoy/01-envoy_add_headers/deployment.yaml
+++ b/04-Envoy/01-envoy_add_headers/deployment.yaml
@@ -1,4 +1,3 @@
-# https://github.com/istio/istio/blob/master/samples/helloworld/helloworld.yaml
apiVersion: v1
kind: Service
metadata:
diff --git a/Istio/04-Envoy/01-envoy_add_headers/envoy.yaml b/04-Envoy/01-envoy_add_headers/envoy.yaml
similarity index 100%
rename from Istio/04-Envoy/01-envoy_add_headers/envoy.yaml
rename to 04-Envoy/01-envoy_add_headers/envoy.yaml
diff --git a/Istio/04-Envoy/01-envoy_add_headers/envoy2.yaml b/04-Envoy/01-envoy_add_headers/envoy2.yaml
similarity index 100%
rename from Istio/04-Envoy/01-envoy_add_headers/envoy2.yaml
rename to 04-Envoy/01-envoy_add_headers/envoy2.yaml
diff --git a/Istio/01-Simple/02-hello_world_1_service_2_deployments_unmanaged/gateway.yaml b/04-Envoy/01-envoy_add_headers/gateway.yaml
similarity index 100%
rename from Istio/01-Simple/02-hello_world_1_service_2_deployments_unmanaged/gateway.yaml
rename to 04-Envoy/01-envoy_add_headers/gateway.yaml
diff --git a/Istio/04-Envoy/README.md b/04-Envoy/README.md
similarity index 100%
rename from Istio/04-Envoy/README.md
rename to 04-Envoy/README.md
diff --git a/Istio/05-MeshConfig/01-Outboud-Traffic-Policy/README.md b/05-MeshConfig/01-Outboud-Traffic-Policy/README.md
similarity index 100%
rename from Istio/05-MeshConfig/01-Outboud-Traffic-Policy/README.md
rename to 05-MeshConfig/01-Outboud-Traffic-Policy/README.md
diff --git a/Istio/05-MeshConfig/01-Outboud-Traffic-Policy/deployment.yaml b/05-MeshConfig/01-Outboud-Traffic-Policy/deployment.yaml
similarity index 100%
rename from Istio/05-MeshConfig/01-Outboud-Traffic-Policy/deployment.yaml
rename to 05-MeshConfig/01-Outboud-Traffic-Policy/deployment.yaml
diff --git a/Istio/05-MeshConfig/01-Outboud-Traffic-Policy/gateway.yaml b/05-MeshConfig/01-Outboud-Traffic-Policy/gateway.yaml
similarity index 100%
rename from Istio/05-MeshConfig/01-Outboud-Traffic-Policy/gateway.yaml
rename to 05-MeshConfig/01-Outboud-Traffic-Policy/gateway.yaml
diff --git a/Istio/05-MeshConfig/README.md b/05-MeshConfig/README.md
similarity index 100%
rename from Istio/05-MeshConfig/README.md
rename to 05-MeshConfig/README.md
diff --git a/Istio/06-AuthorizationPolicy/01-target-namespaces/01-namespace.yaml b/06-AuthorizationPolicy/01-target-namespaces/01-namespace.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/01-target-namespaces/01-namespace.yaml
rename to 06-AuthorizationPolicy/01-target-namespaces/01-namespace.yaml
diff --git a/Istio/06-AuthorizationPolicy/01-target-namespaces/README.md b/06-AuthorizationPolicy/01-target-namespaces/README.md
similarity index 100%
rename from Istio/06-AuthorizationPolicy/01-target-namespaces/README.md
rename to 06-AuthorizationPolicy/01-target-namespaces/README.md
diff --git a/Istio/06-AuthorizationPolicy/01-target-namespaces/authentication.yaml b/06-AuthorizationPolicy/01-target-namespaces/authentication.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/01-target-namespaces/authentication.yaml
rename to 06-AuthorizationPolicy/01-target-namespaces/authentication.yaml
diff --git a/Istio/06-AuthorizationPolicy/01-target-namespaces/deployment.yaml b/06-AuthorizationPolicy/01-target-namespaces/deployment.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/01-target-namespaces/deployment.yaml
rename to 06-AuthorizationPolicy/01-target-namespaces/deployment.yaml
diff --git a/Istio/06-AuthorizationPolicy/01-target-namespaces/deployment_2.yaml b/06-AuthorizationPolicy/01-target-namespaces/deployment_2.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/01-target-namespaces/deployment_2.yaml
rename to 06-AuthorizationPolicy/01-target-namespaces/deployment_2.yaml
diff --git a/Istio/06-AuthorizationPolicy/01-target-namespaces/gateway.yaml b/06-AuthorizationPolicy/01-target-namespaces/gateway.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/01-target-namespaces/gateway.yaml
rename to 06-AuthorizationPolicy/01-target-namespaces/gateway.yaml
diff --git a/Istio/06-AuthorizationPolicy/02-target-service-accounts/01-namespace.yaml b/06-AuthorizationPolicy/02-target-service-accounts/01-namespace.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/02-target-service-accounts/01-namespace.yaml
rename to 06-AuthorizationPolicy/02-target-service-accounts/01-namespace.yaml
diff --git a/Istio/06-AuthorizationPolicy/02-target-service-accounts/01-service-accounts.yaml b/06-AuthorizationPolicy/02-target-service-accounts/01-service-accounts.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/02-target-service-accounts/01-service-accounts.yaml
rename to 06-AuthorizationPolicy/02-target-service-accounts/01-service-accounts.yaml
diff --git a/Istio/06-AuthorizationPolicy/02-target-service-accounts/README.md b/06-AuthorizationPolicy/02-target-service-accounts/README.md
similarity index 100%
rename from Istio/06-AuthorizationPolicy/02-target-service-accounts/README.md
rename to 06-AuthorizationPolicy/02-target-service-accounts/README.md
diff --git a/Istio/06-AuthorizationPolicy/02-target-service-accounts/authentication.yaml b/06-AuthorizationPolicy/02-target-service-accounts/authentication.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/02-target-service-accounts/authentication.yaml
rename to 06-AuthorizationPolicy/02-target-service-accounts/authentication.yaml
diff --git a/Istio/06-AuthorizationPolicy/02-target-service-accounts/deployment.yaml b/06-AuthorizationPolicy/02-target-service-accounts/deployment.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/02-target-service-accounts/deployment.yaml
rename to 06-AuthorizationPolicy/02-target-service-accounts/deployment.yaml
diff --git a/Istio/06-AuthorizationPolicy/02-target-service-accounts/deployment_2.yaml b/06-AuthorizationPolicy/02-target-service-accounts/deployment_2.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/02-target-service-accounts/deployment_2.yaml
rename to 06-AuthorizationPolicy/02-target-service-accounts/deployment_2.yaml
diff --git a/Istio/06-AuthorizationPolicy/02-target-service-accounts/gateway.yaml b/06-AuthorizationPolicy/02-target-service-accounts/gateway.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/02-target-service-accounts/gateway.yaml
rename to 06-AuthorizationPolicy/02-target-service-accounts/gateway.yaml
diff --git a/Istio/06-AuthorizationPolicy/03-target-deployments/01-namespace.yaml b/06-AuthorizationPolicy/03-target-deployments/01-namespace.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/03-target-deployments/01-namespace.yaml
rename to 06-AuthorizationPolicy/03-target-deployments/01-namespace.yaml
diff --git a/Istio/06-AuthorizationPolicy/03-target-deployments/README.md b/06-AuthorizationPolicy/03-target-deployments/README.md
similarity index 100%
rename from Istio/06-AuthorizationPolicy/03-target-deployments/README.md
rename to 06-AuthorizationPolicy/03-target-deployments/README.md
diff --git a/Istio/06-AuthorizationPolicy/03-target-deployments/authentication.yaml b/06-AuthorizationPolicy/03-target-deployments/authentication.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/03-target-deployments/authentication.yaml
rename to 06-AuthorizationPolicy/03-target-deployments/authentication.yaml
diff --git a/Istio/06-AuthorizationPolicy/03-target-deployments/deployment.yaml b/06-AuthorizationPolicy/03-target-deployments/deployment.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/03-target-deployments/deployment.yaml
rename to 06-AuthorizationPolicy/03-target-deployments/deployment.yaml
diff --git a/Istio/06-AuthorizationPolicy/03-target-deployments/deployment_2.yaml b/06-AuthorizationPolicy/03-target-deployments/deployment_2.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/03-target-deployments/deployment_2.yaml
rename to 06-AuthorizationPolicy/03-target-deployments/deployment_2.yaml
diff --git a/Istio/06-AuthorizationPolicy/03-target-deployments/gateway.yaml b/06-AuthorizationPolicy/03-target-deployments/gateway.yaml
similarity index 100%
rename from Istio/06-AuthorizationPolicy/03-target-deployments/gateway.yaml
rename to 06-AuthorizationPolicy/03-target-deployments/gateway.yaml
diff --git a/Istio/06-AuthorizationPolicy/README.md b/06-AuthorizationPolicy/README.md
similarity index 100%
rename from Istio/06-AuthorizationPolicy/README.md
rename to 06-AuthorizationPolicy/README.md
diff --git a/Istio/09-Ingress/01-Create-Istio-LoadBalancer/01-namespace.yaml b/09-Ingress/01-Create-Istio-LoadBalancer/01-namespace.yaml
similarity index 100%
rename from Istio/09-Ingress/01-Create-Istio-LoadBalancer/01-namespace.yaml
rename to 09-Ingress/01-Create-Istio-LoadBalancer/01-namespace.yaml
diff --git a/Istio/09-Ingress/01-Create-Istio-LoadBalancer/README.md b/09-Ingress/01-Create-Istio-LoadBalancer/README.md
similarity index 97%
rename from Istio/09-Ingress/01-Create-Istio-LoadBalancer/README.md
rename to 09-Ingress/01-Create-Istio-LoadBalancer/README.md
index 382f17e..bdf9255 100644
--- a/Istio/09-Ingress/01-Create-Istio-LoadBalancer/README.md
+++ b/09-Ingress/01-Create-Istio-LoadBalancer/README.md
@@ -6,7 +6,7 @@ include_toc: true
# Based on
-- [01-hello_world_1_service_1_deployment](../../01-Simple/01-hello_world_1_service_1_deployment)
+- [01-hello_world_1_service_1_deployment](../../01-Getting%20Started/01-hello_world_1_service_1_deployment)
# Description
diff --git a/Istio/01-Simple/01-hello_world_1_service_1_deployment/deployment.yaml b/09-Ingress/01-Create-Istio-LoadBalancer/deployment.yaml
similarity index 100%
rename from Istio/01-Simple/01-hello_world_1_service_1_deployment/deployment.yaml
rename to 09-Ingress/01-Create-Istio-LoadBalancer/deployment.yaml
diff --git a/Istio/09-Ingress/01-Create-Istio-LoadBalancer/gateway.yaml b/09-Ingress/01-Create-Istio-LoadBalancer/gateway.yaml
similarity index 100%
rename from Istio/09-Ingress/01-Create-Istio-LoadBalancer/gateway.yaml
rename to 09-Ingress/01-Create-Istio-LoadBalancer/gateway.yaml
diff --git a/Istio/09-Ingress/01-Create-Istio-LoadBalancer/ingress.yaml b/09-Ingress/01-Create-Istio-LoadBalancer/ingress.yaml
similarity index 100%
rename from Istio/09-Ingress/01-Create-Istio-LoadBalancer/ingress.yaml
rename to 09-Ingress/01-Create-Istio-LoadBalancer/ingress.yaml
diff --git a/Istio/10-PeerAuthentication/01-disable-mTLS/README.md b/10-PeerAuthentication/01-disable-mTLS/README.md
similarity index 100%
rename from Istio/10-PeerAuthentication/01-disable-mTLS/README.md
rename to 10-PeerAuthentication/01-disable-mTLS/README.md
diff --git a/Istio/10-PeerAuthentication/01-disable-mTLS/Service.yaml b/10-PeerAuthentication/01-disable-mTLS/Service.yaml
similarity index 100%
rename from Istio/10-PeerAuthentication/01-disable-mTLS/Service.yaml
rename to 10-PeerAuthentication/01-disable-mTLS/Service.yaml
diff --git a/Istio/10-PeerAuthentication/01-disable-mTLS/authentication.yaml b/10-PeerAuthentication/01-disable-mTLS/authentication.yaml
similarity index 100%
rename from Istio/10-PeerAuthentication/01-disable-mTLS/authentication.yaml
rename to 10-PeerAuthentication/01-disable-mTLS/authentication.yaml
diff --git a/Istio/10-PeerAuthentication/01-disable-mTLS/deployment.yaml b/10-PeerAuthentication/01-disable-mTLS/deployment.yaml
similarity index 100%
rename from Istio/10-PeerAuthentication/01-disable-mTLS/deployment.yaml
rename to 10-PeerAuthentication/01-disable-mTLS/deployment.yaml
diff --git a/Istio/10-PeerAuthentication/01-disable-mTLS/gateway.yaml b/10-PeerAuthentication/01-disable-mTLS/gateway.yaml
similarity index 100%
rename from Istio/10-PeerAuthentication/01-disable-mTLS/gateway.yaml
rename to 10-PeerAuthentication/01-disable-mTLS/gateway.yaml
diff --git a/Istio/10-PeerAuthentication/02-portLevelMtls/README.md b/10-PeerAuthentication/02-portLevelMtls/README.md
similarity index 97%
rename from Istio/10-PeerAuthentication/02-portLevelMtls/README.md
rename to 10-PeerAuthentication/02-portLevelMtls/README.md
index 0dfb971..aeb0aa2 100644
--- a/Istio/10-PeerAuthentication/02-portLevelMtls/README.md
+++ b/10-PeerAuthentication/02-portLevelMtls/README.md
@@ -312,7 +312,7 @@ listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
##### Curl
-Even tho, we have set in the [PeerAuthentication configuration](#peerauthentication) mode to `STRICT`, unlike in the [previous example](../01-disable-mTLS/#https-1), where the mode was also set to `STRICT`, in this example we configured the `portLevelMtls` field for the port `443`, successfully disabling `mTLS` for this port, and allowing to proceed with the request towards the `HTTPS` backend; which was performed without the need of disabling `mTLS` for the whole deployment.
+Even tho, we have set in the [PeerAuthentication configuration](#peerauthentication) mode to `STRICT`, unlike in the [previous example](01-disable-mTLS/#https-1), where the mode was also set to `STRICT`, in this example we configured the `portLevelMtls` field for the port `443`, successfully disabling `mTLS` for this port, and allowing to proceed with the request towards the `HTTPS` backend; which was performed without the need of disabling `mTLS` for the whole deployment.
```shell
curl 192.168.1.50/https
diff --git a/Istio/10-PeerAuthentication/02-portLevelMtls/Service.yaml b/10-PeerAuthentication/02-portLevelMtls/Service.yaml
similarity index 100%
rename from Istio/10-PeerAuthentication/02-portLevelMtls/Service.yaml
rename to 10-PeerAuthentication/02-portLevelMtls/Service.yaml
diff --git a/Istio/10-PeerAuthentication/02-portLevelMtls/authentication.yaml b/10-PeerAuthentication/02-portLevelMtls/authentication.yaml
similarity index 100%
rename from Istio/10-PeerAuthentication/02-portLevelMtls/authentication.yaml
rename to 10-PeerAuthentication/02-portLevelMtls/authentication.yaml
diff --git a/Istio/10-PeerAuthentication/02-portLevelMtls/deployment.yaml b/10-PeerAuthentication/02-portLevelMtls/deployment.yaml
similarity index 100%
rename from Istio/10-PeerAuthentication/02-portLevelMtls/deployment.yaml
rename to 10-PeerAuthentication/02-portLevelMtls/deployment.yaml
diff --git a/Istio/10-PeerAuthentication/02-portLevelMtls/gateway.yaml b/10-PeerAuthentication/02-portLevelMtls/gateway.yaml
similarity index 100%
rename from Istio/10-PeerAuthentication/02-portLevelMtls/gateway.yaml
rename to 10-PeerAuthentication/02-portLevelMtls/gateway.yaml
diff --git a/Istio/99-resources/HTTPS-NGINX-DOCKERFILE/Dockerfile b/99-resources/HTTPS-NGINX-DOCKERFILE/Dockerfile
similarity index 100%
rename from Istio/99-resources/HTTPS-NGINX-DOCKERFILE/Dockerfile
rename to 99-resources/HTTPS-NGINX-DOCKERFILE/Dockerfile
diff --git a/Istio/99-resources/HTTPS-NGINX-DOCKERFILE/README.md b/99-resources/HTTPS-NGINX-DOCKERFILE/README.md
similarity index 100%
rename from Istio/99-resources/HTTPS-NGINX-DOCKERFILE/README.md
rename to 99-resources/HTTPS-NGINX-DOCKERFILE/README.md
diff --git a/Istio/99-resources/HTTPS-NGINX-DOCKERFILE/server.conf b/99-resources/HTTPS-NGINX-DOCKERFILE/server.conf
similarity index 100%
rename from Istio/99-resources/HTTPS-NGINX-DOCKERFILE/server.conf
rename to 99-resources/HTTPS-NGINX-DOCKERFILE/server.conf
diff --git a/Calico/README.md b/Calico/README.md
deleted file mode 100644
index cf13547..0000000
--- a/Calico/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-
-## Eventually
-
-https://medium.com/expedia-group-tech/network-policies-with-calico-for-kubernetes-networking-875c0ebbcfb3
-
-https://docs.tigera.io/calico/latest/network-policy/get-started/calico-policy/calico-network-policy
-
-https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart
-
-https://docs.tigera.io/archive/v3.7/getting-started/kubernetes/
-
-https://hustcat.github.io/getting-started-with-calico/
\ No newline at end of file
diff --git a/Istio/01-Simple/01-hello_world_1_service_1_deployment/README.md b/Istio/01-Simple/01-hello_world_1_service_1_deployment/README.md
deleted file mode 100755
index f48a3ab..0000000
--- a/Istio/01-Simple/01-hello_world_1_service_1_deployment/README.md
+++ /dev/null
@@ -1,120 +0,0 @@
-##### https://github.com/istio/istio/tree/master/samples/helloworld
-
-### Base simple template
-
-# Simple Hello World
-
-- 1 Service
-- 1 Deployment
-
-I think that by default uses `RANDOM`.
-
-https://istio.io/latest/docs/reference/config/networking/destination-rule/#TrafficPolicy-PortTrafficPolicy
-
-https://istio.io/latest/docs/reference/config/networking/destination-rule/#LoadBalancerSettings
-
-> Contains service account configurations, yet they are commented as not "necessary".
-
-
-## Files
-
-- deployment.yaml
-- gateway.yaml
-
-## deployment.yaml
-
-### Creates
-
-#### Service
-
-- helloworld
-
-#### Deployments
-
-- helloworld-nginx (Nginx container)
-
-## gateway.yaml
-
-### Creates
-
-#### Gateway
-
-##### helloworld-gateway
-
-###### Configuration
-
-```yml
-port: 80
-istio-ingress: ingressgateway
-hosts: "*"
-```
-
-#### VirtualService
-
-##### helloworld-vs
-
-###### Configuration
-
-
-
-```yaml
- hosts:
- - "*"
- gateways:
- - helloworld-gateway
- http:
- - match:
- - uri:
- exact: /helloworld
- route:
- - destination:
- host: helloworld
- port:
- number: 80
- rewrite:
- uri: "/"
-```
-- Allows the traffic that have as a destination any domain.
-
-- Only allows traffic that has as a destination the directory/path `/helloworld`.
-
-- `rewrite.uri` allows to redirect the traffic towards the root directory of the service, as the service(s) used don't have any directory named `helloworld` but are configured to work at the root base level.
-
-- Traffic request is sent to the service named `helloworld`, to the service port 80.
-
-# Run example
-
-## Deploy resources
-
-```shell
-$ kubectl apply -f ./
-service/helloworld created
-deployment.apps/helloworld-nginx created
-gateway.networking.istio.io/helloworld-gateway created
-virtualservice.networking.istio.io/helloworld-vs created
-```
-
-## Wait for the deployment to be ready
-
-```shell
-$ kubectl get deployment helloworld-nginx -w
-NAME READY UP-TO-DATE AVAILABLE AGE
-helloworld-nginx 1/1 1 1 44s
-```
-
-## Test the service
-
-### Get LB IP
-
-```shell
-$ kubectl get svc -l istio=ingressgateway -A
-NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
-istio-ingressgateway LoadBalancer 10.97.47.216 192.168.1.50 15021:31316/TCP,80:32012/TCP,443:32486/TCP 39h
-```
-
-### Curl
-
-```shell
-$ curl 192.168.1.50/helloworld -s | grep ".*" ✔
-Welcome to nginx!
-```
\ No newline at end of file
diff --git a/Istio/01-Simple/02-hello_world_1_service_2_deployments_unmanaged/README.md b/Istio/01-Simple/02-hello_world_1_service_2_deployments_unmanaged/README.md
deleted file mode 100755
index 65bc6b3..0000000
--- a/Istio/01-Simple/02-hello_world_1_service_2_deployments_unmanaged/README.md
+++ /dev/null
@@ -1,142 +0,0 @@
-##### https://github.com/istio/istio/tree/master/samples/helloworld
-
-# Simple Hello World
-
-- 1 Service
-- 2 Versions
-
-Iterates between the versions without any specific policy. (actually doesn't use the version for anything)
-
-By default uses `Round Robin`
-
-https://istio.io/latest/docs/concepts/traffic-management/#load-balancing-options
-
-> Contains service account configurations, yet they are commented as not "necessary".
-
-
-# Changes
-
-## File
-
-- deployment.yaml
-- gateway.yaml
-
-> Files used maintains from the last version
-
-## deployment.yaml
-
-### Creates
-
-#### Service
-
-- helloworld
-
-> Service used maintains from the last version
-
-#### Deployments
-
-- helloworld-v1 (Nginx)
-- helloworld-v2 (Apache)
-
-> Renamed the old deployment from `helloworld-nginx` to `helloworld-v1`.\
-> Created a secondary deployment using apache named `helloworld-v2`.
-
-## gateway.yaml
-
-### Creates
-
-#### Gateway
-
-##### helloworld-gateway
-
-###### Configuration
-
-```yml
-port: 80
-istio-ingress: ingressgateway
-hosts: "*"
-```
-
-#### VirtualService
-
-##### helloworld-vs
-
-###### Configuration
-
-```yaml
-hosts: "*"
-uri: "/helloworld"
-```
-
-
-
-
-
-
-# Run example
-
-## Deploy resources
-
-```shell
-$ kubectl apply -f ./
-service/helloworld created
-deployment.apps/helloworld-v1 created
-deployment.apps/helloworld-v2 created
-deployment.apps/helloworld-v2 unchanged
-gateway.networking.istio.io/helloworld-gateway created
-virtualservice.networking.istio.io/helloworld-vs created
-```
-
-## Wait for the pods to be ready
-
-(I think it deploys 2 pods as there is the Envoy Proxy pod besides the Nginx deployment)
-
-```shell
-$ kubectl get deployment helloworld-v{1..2} -w
-NAME READY UP-TO-DATE AVAILABLE AGE
-helloworld-v1 1/1 1 1 4m1s
-helloworld-v2 1/1 1 1 4m1s
-```
-
-## Test the service
-
-### Get LB IP
-
-```shell
-$ kubectl get svc istio-ingressgateway -n istio-system
-NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
-istio-ingressgateway LoadBalancer 10.97.47.216 192.168.1.50 15021:31316/TCP,80:32012/TCP,443:32486/TCP 39h
-```
-
-### Curl
-
-Iterates randomly between Nginx and Apache
-
-```shell
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-Welcome to nginx!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-Welcome to nginx!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-Welcome to nginx!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-Welcome to nginx!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-Welcome to nginx!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-```
diff --git a/Istio/01-Simple/03-hello_world_1_service_2_deployments_managed_version/README.md b/Istio/01-Simple/03-hello_world_1_service_2_deployments_managed_version/README.md
deleted file mode 100755
index cd7063c..0000000
--- a/Istio/01-Simple/03-hello_world_1_service_2_deployments_managed_version/README.md
+++ /dev/null
@@ -1,261 +0,0 @@
-##### https://github.com/istio/istio/tree/master/samples/helloworld
-
-https://istio.io/latest/blog/2017/0.1-canary/
-
-
-# Continues from
-
-- 01-hello_world_1_service_1_deployment
-
-# Simple Hello World
-
-- 1 Service
-- 2 Versions
-
-Iterates between the versions without any specific policy. (actually doesn't use the version for anything)
-
-
-> Contains service account configurations, yet they are commented as not "necessary".
-
-## Quick note
-
-On this version I have "started" to use the full service name instead of the shorten version, aka:
-
-```yaml
- route:
- - destination:
- host: helloworld
-```
-
-Will be:
-
-```yaml
- route:
- - destination:
- host: helloworld.default.svc.cluster.local
-```
-
-It's overall a good practice to have, so not much of a reason to not do it.
-
-https://istio.io/latest/docs/reference/config/networking/destination-rule/#DestinationRule
-
-
-# Changes
-
-## File
-
-- deployment.yaml
-- gateway.yaml
-
-> Files used maintains from the last version
-
-## deployment.yaml
-
-### Creates
-
-#### Service
-
-- helloworld
-
-> Service used maintains from the last version
-
-#### Deployments
-
-- helloworld-v1 (Nginx)
-- helloworld-v2 (Apache)
-
-> Renamed the old deployment from `helloworld-nginx` to `helloworld-v1`.\
-> Created a secondary deployment using apache named `helloworld-v2`.
-
-## gateway.yaml
-
-#### VirtualService
-
-##### helloworld-vs
-
-###### Configuration
-
-
-
-```yaml
-...
- http:
- - match:
- - uri:
- exact: /helloworld
- route:
- - destination:
- host: helloworld.default.svc.cluster.local
- port:
- number: 80
- subset: v1
- weight: 20
- - destination:
- host: helloworld.default.svc.cluster.local
- port:
- number: 80
- subset: v2
- weight: 80
-...
-```
-
-> Distributed the traffic between 2 versions (`subsets`), setting a `25%` to the subset `v1` and a `75%` to the subset `v2`.
-
-> As previously mentioned, the section `http.route.host` points to `helloworld.default.svc.cluster.local`, which is the service we created, on the `default` namespace.
-
-
-
-
-#### Destination Rule
-
-###### Declaration configuration
-
-```yaml
-apiVersion: networking.istio.io/v1alpha3
-kind: DestinationRule
-metadata:
- name: helloworld.default.svc.cluster.local # Destination that will "interject"
-```
-
-> Here we need to put the `path/destination/service` that we want this rule to interject and manage.
-
-###### Traffic Configuration
-
-```yaml
- host: helloworld.default.svc.cluster.local
- subsets:
- - name: v1
- labels:
- version: v1
- - name: v2
- labels:
- version: v2
-```
-
-> On the `Destination Rule` declared the subsets. Each subset has different labels. This will be used to select the deployments within the destination service.
-
-# Run example
-
-## Deploy resources
-
-```shell
-$ kubectl apply -f ./
-service/helloworld created
-deployment.apps/helloworld-v1 created
-deployment.apps/helloworld-v2 created
-gateway.networking.istio.io/helloworld-gateway created
-virtualservice.networking.istio.io/helloworld-vs created
-destinationrule.networking.istio.io/helloworld-destinationrule created
-```
-
-## Wait for the pods to be ready
-
-(I think it deploys 2 pods as there is the Envoy Proxy pod besides the Nginx deployment)
-
-```shell
-$ kubectl get deployment helloworld-v{1..2} -w
-NAME READY UP-TO-DATE AVAILABLE AGE
-helloworld-v1 1/1 1 1 4m1s
-helloworld-v2 1/1 1 1 4m1s
-```
-
-## Test the service
-
-### Get LB IP
-
-```shell
-$ kubectl get svc istio-ingressgateway -n istio-system
-NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
-istio-ingressgateway LoadBalancer 10.97.47.216 192.168.1.50 15021:31316/TCP,80:32012/TCP,443:32486/TCP 39h
-```
-
-### Curl
-
-Iterates between Nginx and Apache. Somwhat close to the ratio configured.
-
-> Nginx instances (v1): 2 \
-> Apache instances (v2): 9
-
-```shell
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-Welcome to nginx!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-Welcome to nginx!
-```
-
-## Check istio configs
-
-```sh
-$ istioctl x describe pod `kubectl get pod -l app=helloworld,version=v1 -o jsonpath='{.items[0].metadata.name}'`
-Pod: helloworld-v1-7454b56b86-4cksf
- Pod Revision: default
- Pod Ports: 80 (helloworld), 15090 (istio-proxy)
---------------------
-Service: helloworld
- Port: http 80/HTTP targets pod port 80
-DestinationRule: helloworld for "helloworld.default.svc.cluster.local"
- Matching subsets: v1
- (Non-matching subsets v2)
- No Traffic Policy
---------------------
-Effective PeerAuthentication:
- Workload mTLS mode: PERMISSIVE
-
-
-Exposed on Ingress Gateway http://192.168.1.50
-VirtualService: helloworld-vs
- Weight 20%
- /helloworld
-```
-
-
-```shell
-$ istioctl x describe pod `kubectl get pod -l app=helloworld,version=v2 -o jsonpath='{.items[0].metadata.name
-Pod: helloworld-v2-64b5656d99-5bwgr
- Pod Revision: default
- Pod Ports: 80 (helloworld), 15090 (istio-proxy)
---------------------
-Service: helloworld
- Port: http 80/HTTP targets pod port 80
-DestinationRule: helloworld for "helloworld.default.svc.cluster.local"
- Matching subsets: v2
- (Non-matching subsets v1)
- No Traffic Policy
---------------------
-Effective PeerAuthentication:
- Workload mTLS mode: PERMISSIVE
-
-
-Exposed on Ingress Gateway http://192.168.1.50
-VirtualService: helloworld-vs
- Weight 80%
- /helloworld
-```
\ No newline at end of file
diff --git a/Istio/01-Simple/03-hello_world_1_service_2_deployments_managed_version/gateway.yaml b/Istio/01-Simple/03-hello_world_1_service_2_deployments_managed_version/gateway.yaml
deleted file mode 100755
index 62a63a5..0000000
--- a/Istio/01-Simple/03-hello_world_1_service_2_deployments_managed_version/gateway.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-# https://github.com/istio/istio/blob/master/samples/helloworld/helloworld-gateway.yaml
-apiVersion: networking.istio.io/v1alpha3
-kind: Gateway
-metadata:
- name: helloworld-gateway
-spec:
- selector:
- istio: ingressgateway # use istio default controller
- servers:
- - port:
- number: 80
- name: http
- protocol: HTTP
- hosts:
- - "*"
----
-apiVersion: networking.istio.io/v1alpha3
-kind: VirtualService
-metadata:
- name: helloworld-vs
-spec:
- hosts:
- - "*"
- gateways:
- - helloworld-gateway
- http:
- - match:
- - uri:
- exact: /helloworld
- route:
- - destination:
- host: helloworld.default.svc.cluster.local
-# host: helloworld
- port:
- number: 80
- subset: v1
- weight: 20
- - destination:
-# host: helloworld
- host: helloworld.default.svc.cluster.local
- port:
- number: 80
- subset: v2
- weight: 80
- rewrite:
- uri: "/"
----
-apiVersion: networking.istio.io/v1alpha3
-kind: DestinationRule
-metadata:
- # name: helloworld
- name: helloworld.default.svc.cluster.local # Destination that will "interject"
-spec:
-# host: helloworld # destination service
- host: helloworld.default.svc.cluster.local # Full destination service, lil better for consistency
- subsets:
- - name: v1
- labels:
- version: v1
- - name: v2
- labels:
- version: v2
diff --git a/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/01-namespace.yaml b/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/01-namespace.yaml
deleted file mode 100755
index 775855d..0000000
--- a/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/01-namespace.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: v1
-kind: Namespace
-metadata:
- name: defaultnt
- labels:
- istio-injection: "false"
-# istio-injection: "enabled"
----
\ No newline at end of file
diff --git a/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/README.md b/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/README.md
deleted file mode 100755
index 2bba7e8..0000000
--- a/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/README.md
+++ /dev/null
@@ -1,123 +0,0 @@
-##### https://github.com/istio/istio/tree/master/samples/helloworld
-
-https://istio.io/latest/blog/2017/0.1-canary/
-
-
-# Simple Hello World
-
-- 1 Service
-- 2 Versions
-
-Iterates between the versions without any specific policy. (actually doesn't use the version for anything)
-
-I think that by default uses `RANDOM`.
-
-https://istio.io/latest/docs/reference/config/networking/destination-rule/#TrafficPolicy-PortTrafficPolicy
-
-https://istio.io/latest/docs/reference/config/networking/destination-rule/#LoadBalancerSettings
-
-
-Manually allows the sidecar injection through the label in the pod
-
-
-https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/#controlling-the-injection-policy
-
-## Files
-
-- deployment.yaml
-- gateway.yaml
-
-## deployment.yaml
-
-### Creates
-
-#### Service
-
-- helloworld
-
-#### Deployments
-
-- helloworld-v1 (Nginx)
-- helloworld-v2 (Apache)
-
-## gateway.yaml
-
-### Creates
-
-#### Gateway
-
-##### helloworld-gateway
-
-###### Configuration
-
-```yml
-port: 80
-istio-ingress: ingressgateway
-hosts: "*"
-```
-
-#### VirtualService
-
-##### helloworld-vs
-
-###### Configuration
-
-```yaml
-hosts: "*"
-uri: "/helloworld"
-versions:
- v1:
- weight: "50%"
- v2:
- weight: "50%"
-```
-
-#### Destination Rule
-
-###### Configuration
-
-```yaml
-host: helloworld.defaultnt.svc.cluster.local # Full destination service, lil better for consistency
-subsets:
-- name: v1
- labels:
- version: v1
-- name: v2
- labels:
- version: v2
-```
-
-
-# Run example
-
-## Deploy resources
-
-```shell
-$
-```
-
-## Wait for the pods to be ready
-
-(I think it deploys 2 pods as there is the Envoy Proxy pod besides the Nginx deployment)
-
-```shell
-
-```
-
-## Test the service
-
-### Get LB IP
-
-```shell
-$ kubectl get svc istio-ingressgateway -n istio-system
-NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
-istio-ingressgateway LoadBalancer 10.97.47.216 192.168.1.50 15021:31316/TCP,80:32012/TCP,443:32486/TCP 39h
-```
-
-### Curl
-
-
-```shell
-$ curl 192.168.1.50/helloworld -s | grep ".*
"
-It works!
-```
\ No newline at end of file
diff --git a/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/gateway.yaml b/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/gateway.yaml
deleted file mode 100755
index 8dbe334..0000000
--- a/Istio/01-Simple/04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace/gateway.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-# https://github.com/istio/istio/blob/master/samples/helloworld/helloworld-gateway.yaml
-apiVersion: networking.istio.io/v1alpha3
-kind: Gateway
-metadata:
- name: helloworld-gateway
- namespace: defaultnt
-spec:
- selector:
- istio: istio-ingress # use istio default controller
- servers:
- - port:
- number: 80
- name: http
- protocol: HTTP
- hosts:
- - "*"
----
-apiVersion: networking.istio.io/v1alpha3
-kind: VirtualService
-metadata:
- name: helloworld-vs
- namespace: defaultnt
-spec:
- hosts:
- - "*"
- gateways:
- - helloworld-gateway
- http:
- - match:
- - uri:
- exact: /helloworld
- route:
- - destination:
- host: helloworld.defaultnt.svc.cluster.local
- port:
- number: 80
- subset: v1
- weight: 50
- - destination:
- host: helloworld.defaultnt.svc.cluster.local
- port:
- number: 80
- subset: v2
- weight: 50
- rewrite:
- uri: "/"
----
-apiVersion: networking.istio.io/v1alpha3
-kind: DestinationRule
-metadata:
- name: helloworld
- namespace: defaultnt
-spec:
- host: helloworld.defaultnt.svc.cluster.local # Full destination service, lil better for consistency
- subsets:
- - name: v1
- labels:
- version: v1
- - name: v2
- labels:
- version: v2
diff --git a/Istio/01-Simple/README.md b/Istio/01-Simple/README.md
deleted file mode 100755
index bed5787..0000000
--- a/Istio/01-Simple/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Simple examples
-
-
-# Traffic path
-
-## Istio Ingress Controller ---> Gateway -> Virtual Service (-> Destination Route) -> Ingress -> Deployment
-
-
-# Examples
-
-ALL NEEDS DOCUMENTATION
-
-- 01-hello_world_1_service_1_deployment
-
-- 02-hello_world_1_service_2_deployments_unmanaged
-
-- 03-hello_world_1_service_2_deployments_managed_version
-
-- 04-hello_world_1_service_2_deployments_managed_version_defaultnt_namespace
-
-- 05-hello_world_1_Service_Entry
-
-
-
-
-
-
-
-
-# TODO
-
-do HTTPS ingress
-
-tcp ingress to minecraft/factorio/zomboid
-
-Service Entry with outbound policy set to `REGISTRY_ONLY`
-istioctl install --set profile=default -y --set meshConfig.accessLogFile=/dev/stdout --set meshConfig.outboundTrafficPolicy.mode=REGISTRY_ONLY
-(no funca)
\ No newline at end of file
diff --git a/Istio/04-Envoy/01-envoy_add_headers/gateway.yaml b/Istio/04-Envoy/01-envoy_add_headers/gateway.yaml
deleted file mode 100755
index 8ba8a20..0000000
--- a/Istio/04-Envoy/01-envoy_add_headers/gateway.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-# https://github.com/istio/istio/blob/master/samples/helloworld/helloworld-gateway.yaml
-apiVersion: networking.istio.io/v1alpha3
-kind: Gateway
-metadata:
- name: helloworld-gateway
-spec:
- selector:
- istio: ingressgateway # use istio default controller
- servers:
- - port:
- number: 80
- name: http
- protocol: HTTP
- hosts:
- - "*"
----
-apiVersion: networking.istio.io/v1alpha3
-kind: VirtualService
-metadata:
- name: helloworld-vs
-spec:
- hosts:
- - "*"
- gateways:
- - helloworld-gateway
- http:
- - match:
- - uri:
- exact: /helloworld
- route:
- - destination:
- host: helloworld
- port:
- number: 80
- rewrite:
- uri: "/"
\ No newline at end of file
diff --git a/Istio/README.md b/Istio/README.md
deleted file mode 100755
index 514fef1..0000000
--- a/Istio/README.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# Disclaimer:
-
-I have absolutely used as a reference and or template other party configurations/files.
-
-I have tried to reference as much as possible as long it's relevant/useful for the reader.
-
-# Stuff
-
-## Glossary
-
-https://istio.io/latest/docs/reference/glossary/
-
-
-## Workload
-
-https://istio.io/latest/docs/reference/glossary/#workload
-
-https://kiali.io/docs/architecture/terminology/concepts/#workload
-
-
-https://istio.io/latest/docs/ops/deployment/vm-architecture/
-
-
-## Sidecar
-
-https://kubebyexample.com/learning-paths/istio/intro
-
-
-# Notes for myself
-
-Internal and external authentication should be set together.
-
-
-https://istio.io/latest/docs/ops/diagnostic-tools/proxy-cmd/
-
-https://istio.io/latest/docs/ops/deployment/deployment-models/
-
-## Services port names
-
-Istio allows to specify which protocol will run through a port.
-
-It requires the name of the port to be set to a specific format `name: (-)`.
-
-Starting from Kubernetes 1.18, it also can be specified through the `appProtocol` field in the port, resulting in `appProtocol: `.
-
-This means that port names should respect this format to avoid issues, and for such be cautious when setting up the name of the ports.
-
-This applies to multiple Istio elements, but as well to `kind: Services` from default Kubernetes.
-
-For more information about this behavior, refer to:
-
-https://istio.io/latest/docs/ops/configuration/traffic-management/protocol-selection/#explicit-protocol-selection
-
-
-
-# Workload selector is cool
-
-- https://istio.io/latest/docs/reference/config/type/workload-selector/#WorkloadSelector
-
-# Links of interest
-
-- https://istiobyexample.dev/
-
diff --git a/LB/lb.yaml b/LB/lb.yaml
deleted file mode 100755
index ca32151..0000000
--- a/LB/lb.yaml
+++ /dev/null
@@ -1,98 +0,0 @@
-# Example of a Ingress "LB" that itterates between 3 instances
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: nginxo-deploayment
- labels:
- environment: testin-lb1s
-spec:
- selector:
- matchLabels:
- applicasao: webpaggo
- replicas: 1
- template:
- metadata:
- labels:
- applicasao: webpaggo
- spec:
- containers:
- - name: nginxo
- image: nginx
- ports:
- - containerPort: 80
- name: http
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: whoami-traefik
- labels:
- environment: testin-lb1
-spec:
- selector:
- matchLabels:
- applicasao: webpaggo
- replicas: 2
- template:
- metadata:
- labels:
- applicasao: webpaggo
- spec:
- containers:
- - name: whoami
- image: traefik/whoami
- ports:
- - containerPort: 80
- name: http
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: httpago-deployment
- labels:
- environment: testin-lb1
-spec:
- selector:
- matchLabels:
- applicasao: webpaggo
- replicas: 1
- template:
- metadata:
- labels:
- applicasao: webpaggo
- spec:
- containers:
- - name: apache
- image: httpd
- ports:
- - containerPort: 80
- name: http
----
-apiVersion: v1
-kind: Service
-metadata:
- name: ingressito
- labels:
- environment: testin-lb1
-spec:
- selector:
- applicasao: webpaggo
- ports:
- - port: 80
- targetPort: http
- externalTrafficPolicy: Local
- type: LoadBalancer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/PLACEHOLDER.md b/PLACEHOLDER.md
deleted file mode 100644
index 46a9440..0000000
--- a/PLACEHOLDER.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
-https://plantuml.com/
-https://blog.jetbrains.com/dotnet/2020/10/06/create-uml-diagrams-using-plantuml/
-
-```puml
-Bob->Alice : Hello!
-```
-
-https://mermaid.js.org/#/
-
-```mermaid
-graph LR
- A[Write Code] --> B{Does it work?}
- B --> NO --> D[Google]
- B --> YES --> C[GREAT!]
- D --> A
-```
-
-
-> NOTE:\
-> Gitea has support for mermaid.\
-> Doesn't have support for puml.\
-> (obv talking about default behavior)
\ No newline at end of file
diff --git a/README.md b/README.md
index 0c08e8b..bfb8c7c 100755
--- a/README.md
+++ b/README.md
@@ -1,5 +1,116 @@
-# Surely only the following folders work / have any meaningful information
+# Disclaimer:
-- [Istio](./Istio)
+I have absolutely used as a reference and or template other party configurations/files.
+
+I have tried to reference as much as possible as long it's relevant/useful for the reader.
+
+Refer to the specific `README.md` in each example for more information, as the documentation is still in progress.
+
+As per the moment, most of the examples are located in 02-Traffic_management.
+
+Currently, the resources are under a relocation and the folders might contain things that don't _really match the topic_.
+
+# Stuff
+
+## Directories
+
+```text
+├── 00-Troubleshooting
+├── 01-Getting_Started
+│ ├── 01-hello_world_1_service_1_deployment
+│ ├── 02-hello_world_1_service_2_deployments_unmanaged
+│ ├── 03-hello_world_1_service_2_deployments_managed_version
+│ └── 04-hello_world_1_service_2_deployments_managed_version_foo_namespace
+├── 02-Traffic_management
+│ ├── 01-2_deployments_method
+│ ├── 02-DirectResponse-HTTP-Body
+│ ├── 03-HTTPRewrite
+│ ├── 04-HTTPRedirect
+│ ├── 05a-FaultInjection-delay
+│ ├── 05b-FaultInjection-abort
+│ ├── 05-hello_world_1_Service_Entry
+│ ├── 06-hello_world_1_HTTPS-Service_Entry
+│ │ └── src
+│ ├── 06-mTLS
+│ ├── 07-HTTPS-Gateway-Simple-TLS
+│ ├── 08a-HTTPS-min-TLS-version
+│ ├── 08b-HTTPS-max-TLS-version
+│ ├── 09-HTTPS-backend
+│ ├── 10-TCP-FORWARDING
+│ ├── 11-TLS-PASSTHROUGH
+│ ├── 12-HTTP-to-HTTPS-traffic-redirect
+│ └── src
+├── 03-Sidecar
+│ └── 01-ingress-proxy-forwarding
+├── 04-Envoy
+│ └── 01-envoy_add_headers
+├── 05-MeshConfig
+│ └── 01-Outboud-Traffic-Policy
+├── 06-AuthorizationPolicy
+│ ├── 01-target-namespaces
+│ ├── 02-target-service-accounts
+│ └── 03-target-deployments
+├── 09-Ingress
+│ └── 01-Create-Istio-LoadBalancer
+├── 10-PeerAuthentication
+│ ├── 01-disable-mTLS
+│ └── 02-portLevelMtls
+├── 99-resources
+│ └── HTTPS-NGINX-DOCKERFILE
+└── XX-CirtcuitBreaking
+```
+
+## Glossary
+
+https://istio.io/latest/docs/reference/glossary/
+
+## Workload
+
+https://istio.io/latest/docs/reference/glossary/#workload
+
+https://kiali.io/docs/architecture/terminology/concepts/#workload
+https://istio.io/latest/docs/ops/deployment/vm-architecture/
+
+
+## Sidecar
+
+https://kubebyexample.com/learning-paths/istio/intro
+
+
+# Notes for myself
+
+Internal and external authentication should be set together.
+
+
+https://istio.io/latest/docs/ops/diagnostic-tools/proxy-cmd/
+
+https://istio.io/latest/docs/ops/deployment/deployment-models/
+
+## Services port names
+
+Istio allows to specify which protocol will run through a port.
+
+It requires the name of the port to be set to a specific format `name: (-)`.
+
+Starting from Kubernetes 1.18, it also can be specified through the `appProtocol` field in the port, resulting in `appProtocol: `.
+
+This means that port names should respect this format to avoid issues, and for such be cautious when setting up the name of the ports.
+
+This applies to multiple Istio elements, but as well to `kind: Services` from default Kubernetes.
+
+For more information about this behavior, refer to:
+
+https://istio.io/latest/docs/ops/configuration/traffic-management/protocol-selection/#explicit-protocol-selection
+
+
+
+# Workload selector is cool
+
+- https://istio.io/latest/docs/reference/config/type/workload-selector/#WorkloadSelector
+
+# Links of interest
+
+- https://istiobyexample.dev/
+
diff --git a/Istio/XX-CirtcuitBreaking/Deployment.yaml b/XX-CirtcuitBreaking/Deployment.yaml
similarity index 100%
rename from Istio/XX-CirtcuitBreaking/Deployment.yaml
rename to XX-CirtcuitBreaking/Deployment.yaml
diff --git a/Istio/XX-CirtcuitBreaking/DestinationRule.yaml b/XX-CirtcuitBreaking/DestinationRule.yaml
similarity index 100%
rename from Istio/XX-CirtcuitBreaking/DestinationRule.yaml
rename to XX-CirtcuitBreaking/DestinationRule.yaml
diff --git a/Istio/XX-CirtcuitBreaking/Fortio.yaml b/XX-CirtcuitBreaking/Fortio.yaml
similarity index 100%
rename from Istio/XX-CirtcuitBreaking/Fortio.yaml
rename to XX-CirtcuitBreaking/Fortio.yaml
diff --git a/Istio/XX-CirtcuitBreaking/README.md b/XX-CirtcuitBreaking/README.md
similarity index 100%
rename from Istio/XX-CirtcuitBreaking/README.md
rename to XX-CirtcuitBreaking/README.md
diff --git a/Istio/XX-CirtcuitBreaking/Service.yaml b/XX-CirtcuitBreaking/Service.yaml
similarity index 100%
rename from Istio/XX-CirtcuitBreaking/Service.yaml
rename to XX-CirtcuitBreaking/Service.yaml
diff --git a/dashboard/README.md b/dashboard/README.md
deleted file mode 100755
index 9305ed9..0000000
--- a/dashboard/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md
-
-
-
-```
-eyJhbGciOiJSUzI1NiIsImtpZCI6IlZJbF9YZWlzNGVybkRTMUVjZ0hFbVJkZ0tVaEFYVTNSUjhVWXlJWWJuUkEifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjc5MDExNTUwLCJpYXQiOjE2NzkwMDc5NTAsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiZDhmOWU3YTgtYmZiMy00Zjc0LWE3Y2MtZjZjODkzMmEzOWYzIn19LCJuYmYiOjE2NzkwMDc5NTAsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.HAmpLXAz8GZpEDqvpsQNnS3HOvP13UnytbVLzmfCMEKpA_HrVtq48fqeRbWICjNit7qeT8eGEB22fTsBhFzGLoKM7REC7hisq8jiMMvKOtZ-wbCQk5SiK4njr0ovhxKfhUvumK6D7oPVdSXGX3j8LC_T6nLjfMqoU3vRMam08yUJ88WWVQLKUOKlqVbsQaLrWvjg8M8Sme0gawxRFo21DFHfk8afP6kEC7n6MnBna6bjd2He74GeJZ9QwwdllTjIX9GdVxXpjj8e1VnvkTZKDWzV9F5mLHmuuE8lgQT02kZRUv0P3vPGckIgUS-kzvBIrmBwIjvStiOK6L93zzJHTg
-```
\ No newline at end of file
diff --git a/dashboard/dashboard.yaml b/dashboard/dashboard.yaml
deleted file mode 100755
index fd3253b..0000000
--- a/dashboard/dashboard.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-kind: Service
-apiVersion: v1
-metadata:
- labels:
- k8s-app: kubernetes-dashboard
- name: kubernetes-dashboard-pub
- namespace: kubernetes-dashboard
-spec:
- ports:
- - port: 443
- targetPort: 8443
- selector:
- k8s-app: kubernetes-dashboard-pub
- type: LoadBalancer
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: admin-user
- namespace: kubernetes-dashboard
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: admin-user
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: cluster-admin
-subjects:
- - kind: ServiceAccount
- name: admin-user
- namespace: kubernetes-dashboard
\ No newline at end of file
diff --git a/hosted_ideas/README.md b/hosted_ideas/README.md
deleted file mode 100755
index 2300f43..0000000
--- a/hosted_ideas/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# Dashboards
-
-Muximux https://github.com/mescon/Muximux
-
-Flame https://github.com/pawelmalak/flame
-
-# Kanboard / Task manager
-
-Vikunja https://vikunja.io/
-
-# CV (looks cool)
-rxresu https://rxresu.me/
-
-
-# Misc
-
-whoogle https://github.com/benbusby/whoogle-search
-
-
-
-Metabase ?
-
-# Downloader
-
-## Music
-Deemix
-
-
-# Content Streaming
-## Music
-Navidrome
-
-# Games
-## Chess
-Lila
-
-# File uploading (replace tube)
-##
-https://github.com/awesome-selfhosted/awesome-selfhosted#file-transfer---single-click--drag-n-drop-upload
-
-
-
-# Metrics / Logs analytics
-
-Wazuh
\ No newline at end of file
diff --git a/ingress/test.yaml b/ingress/test.yaml
deleted file mode 100755
index 4b2e5e5..0000000
--- a/ingress/test.yaml
+++ /dev/null
@@ -1,80 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: nginx-ingress-test
- labels:
- example: ingress
-spec:
- selector:
- matchLabels:
- app: nginx-test
- replicas: 1 # Not much meaningful to have 2 pods if the content will be the same ...
- template:
- metadata:
- labels:
- example: ingress
- app: nginx-test
- spec:
- containers:
- - name: nginx-cont
- image: nginx
- ports:
- - containerPort: 80
- name: http
----
-apiVersion: v1
-kind: Service
-metadata:
- name: ingress-service
- labels:
- example: ingress
-spec:
- selector:
- app: nginx-test
- ports:
- - port: 80
- targetPort: http
- externalTrafficPolicy: Local
- type: NodePort
-
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: ingress-test
-# annotations:
-# nginx.ingress.kubernetes.io/rewrite-target: /
- labels:
- example: ingress
-spec:
- ingressClassName: ingress-example
- rules:
- - http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: ingress-service
- port:
- number: 80
-#---
-#apiVersion: networking.k8s.io/v1
-#kind: Ingress
-#metadata:
-# annotations:
-# kubernetes.io/ingress.class: istio
-# name: istio-ingress
-#spec:
-# rules:
-# #- host: *
-# - http:
-# paths:
-# - path: /
-# pathType: Prefix
-# backend:
-# service:
-# name: ingress-service
-# port:
-# number: 80
-# type: LoadBalancer
\ No newline at end of file
diff --git a/istio_2/README.md b/istio_2/README.md
deleted file mode 100755
index 095ba2e..0000000
--- a/istio_2/README.md
+++ /dev/null
@@ -1 +0,0 @@
-https://istio.io/latest/docs/tasks/traffic-management/ingress/ingress-control/
\ No newline at end of file
diff --git a/istio_2/file.yaml b/istio_2/file.yaml
deleted file mode 100755
index b46d444..0000000
--- a/istio_2/file.yaml
+++ /dev/null
@@ -1,43 +0,0 @@
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: httpbin
----
-apiVersion: v1
-kind: Service
-metadata:
- name: httpbin
- labels:
- app: httpbin
- service: httpbin
-spec:
- ports:
- - name: http
- port: 8000
- targetPort: 80
- selector:
- app: httpbin
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: httpbin
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: httpbin
- version: v1
- template:
- metadata:
- labels:
- app: httpbin
- version: v1
- spec:
- serviceAccountName: httpbin
- containers:
- - image: docker.io/kennethreitz/httpbin
- imagePullPolicy: IfNotPresent
- name: httpbin
- ports:
- - containerPort: 80
\ No newline at end of file
diff --git a/istio_2/file2.yaml b/istio_2/file2.yaml
deleted file mode 100755
index d4ec00a..0000000
--- a/istio_2/file2.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-apiVersion: networking.istio.io/v1alpha3
-kind: Gateway
-metadata:
- name: httpbin-gateway
-spec:
- # The selector matches the ingress gateway pod labels.
- # If you installed Istio using Helm following the standard documentation, this would be "istio=ingress"
- selector:
- istio: ingressgateway
- servers:
- - port:
- number: 80
- name: http
- protocol: HTTP
- hosts:
- - "httpbin.example.com"
----
-apiVersion: networking.istio.io/v1alpha3
-kind: VirtualService
-metadata:
- name: httpbin
-spec:
- hosts:
- - "httpbin.example.com"
- gateways:
- - httpbin-gateway
- http:
- - match:
- - uri:
- prefix: /status
- - uri:
- prefix: /delay
- route:
- - destination:
- port:
- number: 8000
- host: httpbin
\ No newline at end of file
diff --git a/istio_2/tmp2.yaml b/istio_2/tmp2.yaml
deleted file mode 100755
index 5e49e02..0000000
--- a/istio_2/tmp2.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
-apiVersion: gateway.networking.k8s.io/v1beta1
-kind: HTTPRoute
-metadata:
- name: http
- namespace: default
-spec:
- parentRefs:
- - name: gateway
- namespace: istio-ingress
- hostnames: ["httpbin.example.com"]
- rules:
- - matches:
- - path:
- type: PathPrefix
- value: /get
- - path:
- type: PathPrefix
- value: /headers
- filters:
- - type: URLRewrite
- urlRewrite:
-# hostname: "*"
- hostname: elsewhere.example
- path:
- type: ReplacePrefixMatch
-# replacePrefixMatch: /
- replacePrefixMatch: /fennel
-# - type: RequestHeaderModifier
-# requestHeaderModifier:
-# add:
-# - name: my-added-header
-# value: added-value
- backendRefs:
- - name: httpbin
- port: 8000
diff --git a/istio_3/README.md b/istio_3/README.md
deleted file mode 100755
index 6dde793..0000000
--- a/istio_3/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-## https://istio.io/latest/docs/examples/microservices-istio/setup-kubernetes-cluster/
-
-### Create namespaces
-
-```shell
-export NAMESPACE=tutorial
-kubectl create namespace $NAMESPACE
-```
-
-### Install istio demo
-
-
-```shell
-istioctl install --set profile=demo
-```
-
-
-### Install telemetry addons
-
-#### Grafana
-
-```shell
-kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/addons/grafana.yaml
-```
-
-#### Prometheus
-
-```shell
-kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/addons/prometheus.yaml
-```
-
-#### Kiali
-
-```shell
-kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/addons/kiali.yaml
-```
-
-#### Jaeger
-
-```shell
-kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/addons/jaeger.yaml
-```
-
-### Create ingress resources
-
-```shell
-kubectl apply ./gateway.yaml
-```
\ No newline at end of file
diff --git a/istio_3/ingress.yaml b/istio_3/ingress.yaml
deleted file mode 100755
index e2bea4f..0000000
--- a/istio_3/ingress.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: istio-system
- namespace: istio-system
- annotations:
- kubernetes.io/ingress.class: istio
-spec:
- rules:
- - host: my-istio-dashboard.io
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: grafana
- port:
- number: 3000
- - host: my-istio-tracing.io
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: tracing
- port:
- number: 9411
- - host: my-istio-logs-database.io
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: prometheus
- port:
- number: 9090
- - host: my-kiali.io
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: kiali
- port:
- number: 20001
diff --git a/istio_3/read_role.yaml b/istio_3/read_role.yaml
deleted file mode 100755
index 6b30d66..0000000
--- a/istio_3/read_role.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-kind: Role
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
- name: istio-system-access
- namespace: istio-system
-rules:
- - apiGroups: ["", "extensions", "apps"]
- resources: ["*"]
- verbs: ["get", "list"]
\ No newline at end of file
diff --git a/istio_a/README.md b/istio_a/README.md
deleted file mode 100755
index 14dd914..0000000
--- a/istio_a/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# https://istio.io/latest/docs/setup/getting-started/
-### https://istio.io/latest/docs/setup/additional-setup/config-profiles/
-
-
-```shell
-istioctl install --set profile=default -y
-```
-### https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/
-
-
-### ?
-
-https://istio.io/latest/docs/examples/microservices-istio/istio-ingress-gateway/
-
-```sh
-NAMESPACE=istio-test
-```
-
-### Wildcard hosts
-https://istio.io/latest/docs/tasks/traffic-management/egress/wildcard-egress-hosts/
-
-
-### ingress gateway
-
-https://istio.io/latest/docs/setup/additional-setup/gateway/
-
-## Documentation
-
-https://istio.io/latest/docs/reference/config/networking/virtual-service/#VirtualService
-
-
-## Dashboard
-### Kiali
-https://istio.io/latest/docs/ops/integrations/kiali/#installation
\ No newline at end of file
diff --git a/istio_a/default.yaml b/istio_a/default.yaml
deleted file mode 100755
index aff1be3..0000000
--- a/istio_a/default.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-apiVersion: networking.istio.io/v1beta1
-kind: Gateway
-metadata:
- name: bookinfo-gateway
-spec:
- # The selector matches the ingress gateway pod labels.
- # If you installed Istio using Helm following the standard documentation, this would be "istio=ingress"
- selector:
- istio: ingressgateway # use istio default controller
- servers:
- - port:
- number: 80
- name: http
- protocol: HTTP
- hosts:
- - "*"
----
-apiVersion: networking.istio.io/v1beta1
-kind: VirtualService
-metadata:
- name: bookinfo
-spec:
- hosts:
- - "*"
- gateways:
- - bookinfo-gateway
- http:
- - match:
- - uri:
- exact: /productpage
- - uri:
- prefix: /static
- - uri:
- exact: /login
-# - uri:
-# exact: /logout
-# - uri:
-# prefix: /api/v1/products
- rewrite:
- uri: /
- route:
- - destination:
- host: productpage
- port:
- number: 80
\ No newline at end of file
diff --git a/istio_a/default2.yaml b/istio_a/default2.yaml
deleted file mode 100755
index 209fac9..0000000
--- a/istio_a/default2.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: productpage
- labels:
- app: productpage
- service: productpage
-spec:
- ports:
- - port: 80
- name: http
- selector:
- app: productpage
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: bookinfo-productpage
- labels:
- account: productpage
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: productpage-v1
- labels:
- app: productpage
- version: v1
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: productpage
- version: v1
- template:
- metadata:
-# annotations:
-# prometheus.io/scrape: "true"
-# prometheus.io/port: "9080"
-# prometheus.io/path: "/metrics"
- labels:
- app: productpage
- version: v1
- spec:
- serviceAccountName: bookinfo-productpage
- containers:
- - name: nginx
- image: nginx:1.14.2
- ports:
- - containerPort: 80
- volumes:
- - name: tmp
- emptyDir: {}
\ No newline at end of file
diff --git a/metallib/README.md b/metallib/README.md
deleted file mode 100755
index 3113b58..0000000
--- a/metallib/README.md
+++ /dev/null
@@ -1,41 +0,0 @@
-[//]: # ()
-[//]: # (# https://levelup.gitconnected.com/step-by-step-slow-guide-kubernetes-cluster-on-raspberry-pi-4b-part-3-899fc270600e)
-
-[//]: # ()
-[//]: # ()
-[//]: # (kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/namespace.yaml)
-
-[//]: # (kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/metallb.yaml)
-
-[//]: # ()
-kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
-
-
-https://metallb.universe.tf/installation/
-
-https://metallb.universe.tf/configuration/_advanced_l2_configuration/
-
-https://mvallim.github.io/kubernetes-under-the-hood/documentation/kube-metallb.html
-
-
-
-```sh
-kubectl apply -f - << EOF
-apiVersion: v1
-kind: ConfigMap
-metadata:
- namespace: metallb-system
- name: config
-data:
- config: |
- address-pools:
- - name: default
- protocol: layer2
- addresses:
- - 192.168.1.50-192.168.1.130
-EOF
-```
-
-
-
-# https://github.com/metallb/metallb/blob/main/design/pool-configuration.md
\ No newline at end of file
diff --git a/nginx_ingress/README.md b/nginx_ingress/README.md
deleted file mode 100755
index 953a7f8..0000000
--- a/nginx_ingress/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
-##### https://github.com/istio/istio/tree/master/samples
-
-```shell
-$ kubectl get ingress
-NAME CLASS HOSTS ADDRESS PORTS AGE
-demo-localhost nginx demo.localdev.me 192.168.1.31 80 21h
-$ curl 192.168.1.31
-
-404 Not Found
-
-404 Not Found
-
nginx
-
-
-$ curl 192.168.1.31 -HHOST:demo.localdev.me
-It works!
-```
-
-
-https://kubernetes.github.io/ingress-nginx/user-guide/basic-usage/
-
-ingress-nginx
-
-https://docs.nginx.com/nginx-ingress-controller/
\ No newline at end of file
diff --git a/nginx_ingress/example.yaml b/nginx_ingress/example.yaml
deleted file mode 100755
index 2fb62c4..0000000
--- a/nginx_ingress/example.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: nginx-deployment
- #namespace: nginx-ingress-testing
- labels:
- environment: nginx-deployment
-spec:
- selector:
- matchLabels:
- name: nginx-service
- replicas: 1
- template:
- metadata:
- labels:
- name: nginx-service
- spec:
- containers:
- - name: nginxo
- image: nginx
- ports:
- - containerPort: 80
- name: http
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: ingress-myservicea
- #namespace: nginx-ingress-testing
-spec:
- rules:
- #- host: *
- - http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: nginx-deployment
- port:
- number: 80
- ingressClassName: nginx
-#---
-#apiVersion: networking.k8s.io/v1
-#kind: Ingress
-#metadata:
-# name: ingress-myserviceb
-# namespace: nginx-ingress-testing
-#spec:
-# rules:
-# - host: myserviceb.foo.org
-# http:
-# paths:
-# - path: /
-# pathType: Prefix
-# backend:
-# service:
-# name: myserviceb
-# port:
-# number: 80
-# ingressClassName: nginx
\ No newline at end of file
diff --git a/simple_nginx/README.md b/simple_nginx/README.md
deleted file mode 100755
index 7d84f7b..0000000
--- a/simple_nginx/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-https://kubernetes.io/docs/concepts/services-networking/ingress/
-
-https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/
-
-https://kubernetes.github.io/ingress-nginx/user-guide/basic-usage/
-
-https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
-
-https://docs.openshift.com/container-platform/4.9/networking/metallb/metallb-configure-services.html
-
-https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/
-
-
-https://levelup.gitconnected.com/step-by-step-slow-guide-kubernetes-cluster-on-raspberry-pi-4b-part-3-899fc270600e
\ No newline at end of file
diff --git a/simple_nginx/chess.yaml b/simple_nginx/chess.yaml
deleted file mode 100755
index 11de693..0000000
--- a/simple_nginx/chess.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: nginx-deployment
- labels:
- app: nginx
-spec:
- replicas: 3
- selector:
- matchLabels:
- app: nginx
- template:
- metadata:
- labels:
- app: nginx
- spec:
- containers:
- - name: nginx
- image: nginx:1.14.2
- ports:
- - containerPort: 80
\ No newline at end of file
diff --git a/simple_nginx/ingress.yaml b/simple_nginx/ingress.yaml
deleted file mode 100755
index c252270..0000000
--- a/simple_nginx/ingress.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-#apiVersion: v1
-#kind: Pod
-#metadata:
-# name: nginx
-# labels:
-# app.kubernetes.io/name: proxy
-#spec:
-# containers:
-# - name: nginx
-# image: nginx:stable
-# ports:
-# - containerPort: 80
-# name: http-web-svc
----
-apiVersion: v1
-kind: Service
-metadata:
- name: nginx-service
-spec:
- selector:
- app.kubernetes.io/name: proxy
- ports:
- - name: name-of-service-port
- protocol: TCP
- port: 80
- targetPort: http-web-svc
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: nginx-service
-spec:
- selector:
- matchLabels:
- app: nginx-backend
- replicas: 2 # tells deployment to run 2 pods matching the template
- template:
- metadata:
- labels:
- app: nginx
- spec:
- containers:
- - name: nginx
- image: nginx:1.14.2
- ports:
- - containerPort: 80
\ No newline at end of file
diff --git a/simple_nginx/ingtest.yaml b/simple_nginx/ingtest.yaml
deleted file mode 100755
index 784162a..0000000
--- a/simple_nginx/ingtest.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: ingress-resource-backend
-spec:
-# defaultBackend:
-# resource:
-# apiGroup: k8s.example.com
-# kind: StorageBucket
-# name: static-assets
- rules:
- - http:
- paths:
- - path: *
-# pathType: ImplementationSpecific
- backend:
- resource:
- apiGroup: k8s.example.com
- kind: StorageBucket
- name: icon-assets
diff --git a/simple_nginx/nginx_backend.yaml b/simple_nginx/nginx_backend.yaml
deleted file mode 100755
index b1c6b0b..0000000
--- a/simple_nginx/nginx_backend.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: nginx-deployment
-spec:
- selector:
- matchLabels:
- app: nginx-backend
- replicas: 2 # tells deployment to run 2 pods matching the template
- template:
- metadata:
- labels:
- app: nginx
- spec:
- containers:
- - name: nginx
- image: nginx:1.14.2
- ports:
- - containerPort: 80
\ No newline at end of file