diff --git a/6.Addons/kustomize/base/deployment.yaml b/6.Addons/kustomize/base/deployment.yaml new file mode 100644 index 0000000..9f3f8ee --- /dev/null +++ b/6.Addons/kustomize/base/deployment.yaml @@ -0,0 +1,65 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: guestbook + labels: + app: &app frontend +spec: + replicas: 1 + selector: + matchLabels: + app: *app + template: + metadata: + labels: + app: *app + spec: + containers: + - name: guestbook-app + image: nginx + resources: + requests: + cpu: 100m + memory: 100Mi + env: + - name: DB_PASSWORD + valueFrom: + secretKeyRef: + name: secret + key: DB_PASSWORD + - name: FRUIT + valueFrom: + secretKeyRef: + name: secret + key: FRUIT + - name: ROUTER_PASSWORD + valueFrom: + secretKeyRef: + name: secret + key: ROUTER_PASSWORD + - name: VEGETABLE + valueFrom: + secretKeyRef: + name: secret + key: VEGETABLE + ports: + - containerPort: 80 + volumeMounts: + - name: config + mountPath: /mnt/config/config.ini + subPath: config.ini + readOnly: true + - name: secret + mountPath: /mnt/secret + readOnly: true + volumes: + - name: config + configMap: + name: config + defaultMode: 420 + - name: secret + secret: + secretName: secret + items: + - key: longsecret.txt + path: longsecret.txt diff --git a/6.Addons/kustomize/base/kustomization.yaml b/6.Addons/kustomize/base/kustomization.yaml new file mode 100644 index 0000000..c00e799 --- /dev/null +++ b/6.Addons/kustomize/base/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - service.yaml + - deployment.yaml + +configMapGenerator: +- name: config diff --git a/6.Addons/kustomize/base/service.yaml b/6.Addons/kustomize/base/service.yaml new file mode 100644 index 0000000..0f1d610 --- /dev/null +++ b/6.Addons/kustomize/base/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: guestbook + labels: + app: &app frontend +spec: + type: ClusterIP + ports: + - port: 80 + selector: + app: *app diff --git a/6.Addons/kustomize/overlays/dev/configmap.yaml b/6.Addons/kustomize/overlays/dev/configmap.yaml new file mode 100644 index 0000000..f9481ec --- /dev/null +++ b/6.Addons/kustomize/overlays/dev/configmap.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: config + labels: + app: guestbook +data: + config.ini: | + { + "a": "b", + "c": "d" + } diff --git a/6.Addons/kustomize/overlays/dev/foo.env b/6.Addons/kustomize/overlays/dev/foo.env new file mode 100644 index 0000000..a0d3fdd --- /dev/null +++ b/6.Addons/kustomize/overlays/dev/foo.env @@ -0,0 +1,2 @@ +ROUTER_PASSWORD=admin +DB_PASSWORD=iloveyou diff --git a/6.Addons/kustomize/overlays/dev/kustomization.yaml b/6.Addons/kustomize/overlays/dev/kustomization.yaml new file mode 100644 index 0000000..dc1edd9 --- /dev/null +++ b/6.Addons/kustomize/overlays/dev/kustomization.yaml @@ -0,0 +1,22 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ../../base +- namespace.yaml +namespace: dev +labels: +- includeSelectors: true + pairs: + env: dev +patches: +- path: configmap.yaml + +secretGenerator: +- name: secret + envs: + - foo.env + files: + - longsecret.txt + literals: + - FRUIT=apple + - VEGETABLE=carrot diff --git a/6.Addons/kustomize/overlays/dev/longsecret.txt b/6.Addons/kustomize/overlays/dev/longsecret.txt new file mode 100644 index 0000000..365e376 --- /dev/null +++ b/6.Addons/kustomize/overlays/dev/longsecret.txt @@ -0,0 +1,4 @@ +Lorem ipsum dolor sit amet, +consectetur adipiscing elit, +sed do eiusmod tempor incididunt +ut labore et dolore magna aliqua. diff --git a/6.Addons/kustomize/overlays/dev/namespace.yaml b/6.Addons/kustomize/overlays/dev/namespace.yaml new file mode 100644 index 0000000..8cab297 --- /dev/null +++ b/6.Addons/kustomize/overlays/dev/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: dev diff --git a/6.Addons/kustomize/overlays/prod/configmap.yaml b/6.Addons/kustomize/overlays/prod/configmap.yaml new file mode 100644 index 0000000..75861ba --- /dev/null +++ b/6.Addons/kustomize/overlays/prod/configmap.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: config + labels: + app: guestbook +data: + config.ini: | + { + "a": "123", + "c": "456" + } diff --git a/6.Addons/kustomize/overlays/prod/deployment.yaml b/6.Addons/kustomize/overlays/prod/deployment.yaml new file mode 100644 index 0000000..b0c7d4b --- /dev/null +++ b/6.Addons/kustomize/overlays/prod/deployment.yaml @@ -0,0 +1,19 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: guestbook +spec: + replicas: 4 + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + type: RollingUpdate + template: + spec: + containers: + - name: guestbook-app + resources: + requests: + cpu: 200m + memory: 200Mi diff --git a/6.Addons/kustomize/overlays/prod/foo.env b/6.Addons/kustomize/overlays/prod/foo.env new file mode 100644 index 0000000..f5842d5 --- /dev/null +++ b/6.Addons/kustomize/overlays/prod/foo.env @@ -0,0 +1,2 @@ +ROUTER_PASSWORD=123kjlnm,m12 +DB_PASSWORD=.k1j2h3lkjhlk1 diff --git a/6.Addons/kustomize/overlays/prod/kustomization.yaml b/6.Addons/kustomize/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..4dea7d7 --- /dev/null +++ b/6.Addons/kustomize/overlays/prod/kustomization.yaml @@ -0,0 +1,27 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ../../base +- namespace.yaml +namespace: prod +labels: +- includeSelectors: true + pairs: + env: prod +patches: +- path: deployment.yaml +- path: configmap.yaml +images: +- name: nginx + newName: httpd + newTag: "alpine3.17" + +secretGenerator: +- name: secret + envs: + - foo.env + files: + - longsecret.txt + literals: + - FRUIT=pinapple + - VEGETABLE=potato diff --git a/6.Addons/kustomize/overlays/prod/longsecret.txt b/6.Addons/kustomize/overlays/prod/longsecret.txt new file mode 100644 index 0000000..365e376 --- /dev/null +++ b/6.Addons/kustomize/overlays/prod/longsecret.txt @@ -0,0 +1,4 @@ +Lorem ipsum dolor sit amet, +consectetur adipiscing elit, +sed do eiusmod tempor incididunt +ut labore et dolore magna aliqua. diff --git a/6.Addons/kustomize/overlays/prod/namespace.yaml b/6.Addons/kustomize/overlays/prod/namespace.yaml new file mode 100644 index 0000000..5f325a9 --- /dev/null +++ b/6.Addons/kustomize/overlays/prod/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: prod diff --git a/6.Addons/myapp/configmap.yaml b/6.Addons/myapp/configmap.yaml new file mode 100644 index 0000000..7b4ce64 --- /dev/null +++ b/6.Addons/myapp/configmap.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: config + namespace: dev + labels: + app: guestbook +data: + config.ini: | + { + "a": "123", + "c": "456" + } diff --git a/6.Addons/myapp/deployment.yaml b/6.Addons/myapp/deployment.yaml new file mode 100644 index 0000000..8802a1f --- /dev/null +++ b/6.Addons/myapp/deployment.yaml @@ -0,0 +1,66 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: guestbook + namespace: dev + labels: + app: &app frontend +spec: + replicas: 1 + selector: + matchLabels: + app: *app + template: + metadata: + labels: + app: *app + spec: + containers: + - name: guestbook-app + image: nginx + resources: + requests: + cpu: 100m + memory: 100Mi + env: + - name: DB_PASSWORD + valueFrom: + secretKeyRef: + name: secret + key: DB_PASSWORD + - name: FRUIT + valueFrom: + secretKeyRef: + name: secret + key: FRUIT + - name: ROUTER_PASSWORD + valueFrom: + secretKeyRef: + name: secret + key: ROUTER_PASSWORD + - name: VEGETABLE + valueFrom: + secretKeyRef: + name: secret + key: VEGETABLE + ports: + - containerPort: 80 + volumeMounts: + - name: config + mountPath: /mnt/config/config.ini + subPath: config.ini + readOnly: true + - name: secret + mountPath: /mnt/secret + readOnly: true + volumes: + - name: config + configMap: + name: config + defaultMode: 420 + - name: secret + secret: + secretName: secret + items: + - key: longsecret.txt + path: longsecret.txt diff --git a/6.Addons/myapp/namespace.yaml b/6.Addons/myapp/namespace.yaml new file mode 100644 index 0000000..8cab297 --- /dev/null +++ b/6.Addons/myapp/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: dev diff --git a/6.Addons/myapp/service.yaml b/6.Addons/myapp/service.yaml new file mode 100644 index 0000000..64b7c86 --- /dev/null +++ b/6.Addons/myapp/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: guestbook + namespace: dev + labels: + app: &app frontend +spec: + type: ClusterIP + ports: + - port: 80 + selector: + app: *app