From 52f655f881c35a4db1a8eaf6931179eca8c8b573 Mon Sep 17 00:00:00 2001 From: marcel-dempers Date: Sun, 5 Jul 2020 10:40:00 +1000 Subject: [PATCH] basics --- .../kustomize/application/configmap.yaml | 9 +++++ .../kustomize/application/deployment.yaml | 36 +++++++++++++++++ .../kustomize/application/kustomization.yaml | 5 +++ .../kustomize/application/namespace.yaml | 4 ++ kubernetes/kustomize/application/service.yaml | 16 ++++++++ .../development/kustomization.yaml | 7 ++++ .../development/replica_count.yaml | 6 +++ .../production/configs/config.json | 4 ++ .../environments/production/env.yaml | 12 ++++++ .../production/kustomization.yaml | 13 ++++++ .../production/replica_count.yaml | 6 +++ .../production/resource_limits.yaml | 16 ++++++++ kubernetes/kustomize/kustomization.yaml | 5 +++ kubernetes/kustomize/readme.md | 40 +++++++++++++++++++ 14 files changed, 179 insertions(+) create mode 100644 kubernetes/kustomize/application/configmap.yaml create mode 100644 kubernetes/kustomize/application/deployment.yaml create mode 100644 kubernetes/kustomize/application/kustomization.yaml create mode 100644 kubernetes/kustomize/application/namespace.yaml create mode 100644 kubernetes/kustomize/application/service.yaml create mode 100644 kubernetes/kustomize/environments/development/kustomization.yaml create mode 100644 kubernetes/kustomize/environments/development/replica_count.yaml create mode 100644 kubernetes/kustomize/environments/production/configs/config.json create mode 100644 kubernetes/kustomize/environments/production/env.yaml create mode 100644 kubernetes/kustomize/environments/production/kustomization.yaml create mode 100644 kubernetes/kustomize/environments/production/replica_count.yaml create mode 100644 kubernetes/kustomize/environments/production/resource_limits.yaml create mode 100644 kubernetes/kustomize/kustomization.yaml create mode 100644 kubernetes/kustomize/readme.md diff --git a/kubernetes/kustomize/application/configmap.yaml b/kubernetes/kustomize/application/configmap.yaml new file mode 100644 index 0000000..7037911 --- /dev/null +++ b/kubernetes/kustomize/application/configmap.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: example-config +data: + config.json: | + { + "environment" : "dev" + } diff --git a/kubernetes/kustomize/application/deployment.yaml b/kubernetes/kustomize/application/deployment.yaml new file mode 100644 index 0000000..a9bae4b --- /dev/null +++ b/kubernetes/kustomize/application/deployment.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: example-deploy + namespace: example + labels: + app: example-app + annotations: +spec: + selector: + matchLabels: + app: example-app + replicas: 2 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + template: + metadata: + labels: + app: example-app + spec: + containers: + - name: example-app + image: aimvector/python:1.0.0 + imagePullPolicy: Always + ports: + - containerPort: 5000 + volumeMounts: + - name: config-volume + mountPath: /configs/ + volumes: + - name: config-volume + configMap: + name: example-config \ No newline at end of file diff --git a/kubernetes/kustomize/application/kustomization.yaml b/kubernetes/kustomize/application/kustomization.yaml new file mode 100644 index 0000000..dd0ecda --- /dev/null +++ b/kubernetes/kustomize/application/kustomization.yaml @@ -0,0 +1,5 @@ +resources: + - namespace.yaml + - deployment.yaml + - service.yaml + - configmap.yaml \ No newline at end of file diff --git a/kubernetes/kustomize/application/namespace.yaml b/kubernetes/kustomize/application/namespace.yaml new file mode 100644 index 0000000..ba7903c --- /dev/null +++ b/kubernetes/kustomize/application/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: example \ No newline at end of file diff --git a/kubernetes/kustomize/application/service.yaml b/kubernetes/kustomize/application/service.yaml new file mode 100644 index 0000000..c688756 --- /dev/null +++ b/kubernetes/kustomize/application/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: example-service + namespace: example + labels: + app: example-app +spec: + type: LoadBalancer + selector: + app: example-app + ports: + - protocol: TCP + name: http + port: 80 + targetPort: 5000 \ No newline at end of file diff --git a/kubernetes/kustomize/environments/development/kustomization.yaml b/kubernetes/kustomize/environments/development/kustomization.yaml new file mode 100644 index 0000000..c5dcb7d --- /dev/null +++ b/kubernetes/kustomize/environments/development/kustomization.yaml @@ -0,0 +1,7 @@ +bases: + - ../../application +patches: + - replica_count.yaml +images: +- name: aimvector/python + newTag: 1.0.1 \ No newline at end of file diff --git a/kubernetes/kustomize/environments/development/replica_count.yaml b/kubernetes/kustomize/environments/development/replica_count.yaml new file mode 100644 index 0000000..d6bb2c9 --- /dev/null +++ b/kubernetes/kustomize/environments/development/replica_count.yaml @@ -0,0 +1,6 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: example-deploy +spec: + replicas: 4 \ No newline at end of file diff --git a/kubernetes/kustomize/environments/production/configs/config.json b/kubernetes/kustomize/environments/production/configs/config.json new file mode 100644 index 0000000..2d60ccf --- /dev/null +++ b/kubernetes/kustomize/environments/production/configs/config.json @@ -0,0 +1,4 @@ +{ + "environment" : "prod", + "new" : "123" + } \ No newline at end of file diff --git a/kubernetes/kustomize/environments/production/env.yaml b/kubernetes/kustomize/environments/production/env.yaml new file mode 100644 index 0000000..b886e29 --- /dev/null +++ b/kubernetes/kustomize/environments/production/env.yaml @@ -0,0 +1,12 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: example-deploy +spec: + template: + spec: + containers: + - name: example-app + env: + - name: ENVIRONMENT + value: Production \ No newline at end of file diff --git a/kubernetes/kustomize/environments/production/kustomization.yaml b/kubernetes/kustomize/environments/production/kustomization.yaml new file mode 100644 index 0000000..2ed2ae7 --- /dev/null +++ b/kubernetes/kustomize/environments/production/kustomization.yaml @@ -0,0 +1,13 @@ +bases: + - ../../application +patches: + - replica_count.yaml + - resource_limits.yaml +configMapGenerator: +- name: example-config + namespace: example + behavior: replace + files: + - configs/config.json +patchesStrategicMerge: + - env.yaml \ No newline at end of file diff --git a/kubernetes/kustomize/environments/production/replica_count.yaml b/kubernetes/kustomize/environments/production/replica_count.yaml new file mode 100644 index 0000000..ec63872 --- /dev/null +++ b/kubernetes/kustomize/environments/production/replica_count.yaml @@ -0,0 +1,6 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: example-deploy +spec: + replicas: 6 \ No newline at end of file diff --git a/kubernetes/kustomize/environments/production/resource_limits.yaml b/kubernetes/kustomize/environments/production/resource_limits.yaml new file mode 100644 index 0000000..518f71e --- /dev/null +++ b/kubernetes/kustomize/environments/production/resource_limits.yaml @@ -0,0 +1,16 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: example-deploy +spec: + template: + spec: + containers: + - name: example-app + resources: + requests: + memory: "64Mi" + cpu: "50m" + limits: + memory: "256Mi" + cpu: "500m" \ No newline at end of file diff --git a/kubernetes/kustomize/kustomization.yaml b/kubernetes/kustomize/kustomization.yaml new file mode 100644 index 0000000..e296040 --- /dev/null +++ b/kubernetes/kustomize/kustomization.yaml @@ -0,0 +1,5 @@ +resources: + - application/namespace.yaml + - application/deployment.yaml + - application/service.yaml + - application/configmap.yaml \ No newline at end of file diff --git a/kubernetes/kustomize/readme.md b/kubernetes/kustomize/readme.md new file mode 100644 index 0000000..ed4b345 --- /dev/null +++ b/kubernetes/kustomize/readme.md @@ -0,0 +1,40 @@ + +# The Basics +``` + +kubectl apply -f kubernetes/kustomize/application/namespace.yaml +kubectl apply -f kubernetes/kustomize/application/configmap.yaml +kubectl apply -f kubernetes/kustomize/application/deployment.yaml +kubectl apply -f kubernetes/kustomize/application/service.yaml + +# OR + +kubectl apply -f kubernetes/kustomize/application/ + +kubectl delete ns example + +``` + +# Kustomize + +## Build +``` +kubectl kustomize .\kubernetes\kustomize\ | kubectl apply -f - +# OR +kubectl apply -k .\kubernetes\kustomize\ + +kubectl delete ns example +``` + +## Overlays + +``` +kubectl kustomize .\kubernetes\kustomize\environments\production | kubectl apply -f - +# OR +kubectl apply -k .\kubernetes\kustomize\environments\production + +kubectl delete ns example +``` + + +