├── README.md ├── base ├── deployment.yaml ├── kustomization.yaml └── service.yaml └── overlays ├── dev ├── deployment-dev.yaml ├── kustomization.yaml └── service-dev.yaml ├── generators ├── deployment.yaml ├── files │ └── index.html ├── kustomization.yaml └── service.yaml └── prod ├── deployment-prod.yaml ├── kustomization.yaml └── service-prod.yaml /README.md: -------------------------------------------------------------------------------- 1 | # kustomize 2 | kustomize Examples 3 | -------------------------------------------------------------------------------- /base/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: web-deployment 5 | spec: 6 | replicas: 1 7 | selector: 8 | matchLabels: 9 | app: web 10 | template: 11 | metadata: 12 | labels: 13 | app: web 14 | spec: 15 | containers: 16 | - name: nginx 17 | image: nginx:1.14.2 18 | ports: 19 | - containerPort: 80 20 | -------------------------------------------------------------------------------- /base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | 8 | -------------------------------------------------------------------------------- /base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: web-service 5 | spec: 6 | selector: 7 | app: web 8 | ports: 9 | - name: http 10 | port: 80 11 | -------------------------------------------------------------------------------- /overlays/dev/deployment-dev.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: web-deployment 5 | spec: 6 | replicas: 2 # Update the replica count to 3 7 | template: 8 | spec: 9 | containers: 10 | - name: nginx 11 | resources: 12 | limits: 13 | cpu: "200m" # Lower CPU limit to 200m (0.2 CPU cores) 14 | memory: "256Mi" # Lower memory limit to 256 MiB 15 | requests: 16 | cpu: "100m" # Lower CPU request to 100m (0.1 CPU cores) 17 | memory: "128Mi" 18 | -------------------------------------------------------------------------------- /overlays/dev/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | 7 | patches: 8 | - path: deployment-dev.yaml 9 | - path: service-dev.yaml 10 | 11 | generatorOptions: 12 | labels: 13 | fruit: apple 14 | 15 | configMapGenerator: 16 | - name: index-html-configmap 17 | behavior: replace 18 | files: 19 | - index-dev.html 20 | -------------------------------------------------------------------------------- /overlays/dev/service-dev.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: web-service 5 | spec: 6 | type: NodePort 7 | -------------------------------------------------------------------------------- /overlays/generators/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: web-deployment 5 | spec: 6 | replicas: 3 7 | template: 8 | spec: 9 | containers: 10 | - name: nginx 11 | resources: 12 | limits: 13 | cpu: "200m" 14 | memory: "256Mi" 15 | requests: 16 | cpu: "100m" 17 | memory: "128Mi" 18 | volumeMounts: 19 | - name: nginx-index-file 20 | mountPath: /usr/share/nginx/html/ 21 | volumes: 22 | - name: nginx-index-file 23 | configMap: 24 | name: index-html-configmap 25 | 26 | -------------------------------------------------------------------------------- /overlays/generators/files/index.html: -------------------------------------------------------------------------------- 1 | 2 |

Welcome

3 |
4 |

Hi! This is a Generated Configmap Index file

5 | 6 | -------------------------------------------------------------------------------- /overlays/generators/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | 7 | patches: 8 | - path: deployment.yaml 9 | - path: service.yaml 10 | 11 | generatorOptions: 12 | labels: 13 | app: web-service 14 | # disableNameSuffixHash: true 15 | 16 | configMapGenerator: 17 | - name: index-html-configmap 18 | behavior: create 19 | files: 20 | - files/index.html 21 | -------------------------------------------------------------------------------- /overlays/generators/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: web-service 5 | spec: 6 | type: NodePort 7 | -------------------------------------------------------------------------------- /overlays/prod/deployment-prod.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: web-deployment 5 | spec: 6 | replicas: 4 # Update the replica count to 3 7 | template: 8 | spec: 9 | containers: 10 | - name: nginx 11 | resources: 12 | limits: 13 | cpu: "1" # Lower CPU limit to 200m (0.2 CPU cores) 14 | memory: "1Gi" # Lower memory limit to 256 MiB 15 | requests: 16 | cpu: "500m" # Lower CPU request to 100m (0.1 CPU cores) 17 | memory: "512Mi" # Lower memory request to 128 MiB 18 | strategy: 19 | type: RollingUpdate 20 | rollingUpdate: 21 | maxSurge: 1 22 | maxUnavailable: 1 23 | -------------------------------------------------------------------------------- /overlays/prod/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | 7 | patches: 8 | - path: deployment-prod.yaml 9 | - path: service-prod.yaml 10 | -------------------------------------------------------------------------------- /overlays/prod/service-prod.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: web-service 5 | spec: 6 | ports: 7 | - name: https 8 | port: 443 9 | targetPort: 443 10 | --------------------------------------------------------------------------------