From 56bca25f648a951c2f8fd6db4981e4a4f040ca4e Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Mon, 31 Aug 2020 22:55:17 -0700 Subject: [PATCH] Initial Commit --- README.md | 10 +++++++ helm/README.md | 11 +++++++ helm/chart/Chart.yaml | 5 ++++ helm/chart/templates/frontend-deployment.yaml | 25 ++++++++++++++++ helm/chart/templates/frontend-service.yaml | 14 +++++++++ .../templates/redis-master-deployment.yaml | 27 +++++++++++++++++ .../chart/templates/redis-master-service.yaml | 16 ++++++++++ .../templates/redis-slave-deployment.yaml | 29 +++++++++++++++++++ helm/chart/templates/redis-slave-service.yaml | 19 ++++++++++++ helm/chart/values.yaml | 3 ++ helm/fleet.yaml | 23 +++++++++++++++ kustomize/README.md | 10 +++++++ kustomize/fleet.yaml | 22 ++++++++++++++ .../kustomize/base/frontend-deployment.yaml | 25 ++++++++++++++++ .../kustomize/base/frontend-service.yaml | 14 +++++++++ kustomize/kustomize/base/kustomization.yaml | 7 +++++ .../base/redis-master-deployment.yaml | 27 +++++++++++++++++ .../kustomize/base/redis-master-service.yaml | 16 ++++++++++ .../base/redis-slave-deployment.yaml | 27 +++++++++++++++++ .../kustomize/base/redis-slave-service.yaml | 15 ++++++++++ kustomize/kustomize/kustomization.yaml | 2 ++ .../kustomize/overlays/dev/kustomization.yaml | 5 ++++ .../overlays/dev/redis-slave-deployment.yaml | 6 ++++ .../overlays/dev/redis-slave-service.yaml | 7 +++++ .../overlays/prod/frontend-deployment.yaml | 6 ++++ .../overlays/prod/frontend-service.yaml | 6 ++++ .../overlays/prod/kustomization.yaml | 5 ++++ .../overlays/test/frontend-deployment.yaml | 6 ++++ .../overlays/test/kustomization.yaml | 4 +++ manifests/README.md | 10 +++++++ manifests/fleet.yaml | 23 +++++++++++++++ manifests/manifests/frontend-deployment.yaml | 25 ++++++++++++++++ manifests/manifests/frontend-service.yaml | 14 +++++++++ .../manifests/redis-master-deployment.yaml | 27 +++++++++++++++++ manifests/manifests/redis-master-service.yaml | 16 ++++++++++ .../manifests/redis-slave-deployment.yaml | 27 +++++++++++++++++ manifests/manifests/redis-slave-service.yaml | 15 ++++++++++ .../manifests/redis-slave-deployment.yaml | 0 .../manifests/redis-slave-service_patch.yaml | 3 ++ .../manifests/frontend-deployment_patch.yaml | 2 ++ .../manifests/frontend-service_patch.yaml | 2 ++ simple/README.md | 4 +++ simple/manifests/frontend-deployment.yaml | 25 ++++++++++++++++ simple/manifests/frontend-service.yaml | 14 +++++++++ simple/manifests/redis-master-deployment.yaml | 27 +++++++++++++++++ simple/manifests/redis-master-service.yaml | 16 ++++++++++ simple/manifests/redis-slave-deployment.yaml | 27 +++++++++++++++++ simple/manifests/redis-slave-service.yaml | 15 ++++++++++ 48 files changed, 684 insertions(+) create mode 100644 README.md create mode 100644 helm/README.md create mode 100644 helm/chart/Chart.yaml create mode 100644 helm/chart/templates/frontend-deployment.yaml create mode 100644 helm/chart/templates/frontend-service.yaml create mode 100644 helm/chart/templates/redis-master-deployment.yaml create mode 100644 helm/chart/templates/redis-master-service.yaml create mode 100644 helm/chart/templates/redis-slave-deployment.yaml create mode 100644 helm/chart/templates/redis-slave-service.yaml create mode 100644 helm/chart/values.yaml create mode 100644 helm/fleet.yaml create mode 100644 kustomize/README.md create mode 100644 kustomize/fleet.yaml create mode 100644 kustomize/kustomize/base/frontend-deployment.yaml create mode 100644 kustomize/kustomize/base/frontend-service.yaml create mode 100644 kustomize/kustomize/base/kustomization.yaml create mode 100644 kustomize/kustomize/base/redis-master-deployment.yaml create mode 100644 kustomize/kustomize/base/redis-master-service.yaml create mode 100644 kustomize/kustomize/base/redis-slave-deployment.yaml create mode 100644 kustomize/kustomize/base/redis-slave-service.yaml create mode 100644 kustomize/kustomize/kustomization.yaml create mode 100644 kustomize/kustomize/overlays/dev/kustomization.yaml create mode 100644 kustomize/kustomize/overlays/dev/redis-slave-deployment.yaml create mode 100644 kustomize/kustomize/overlays/dev/redis-slave-service.yaml create mode 100644 kustomize/kustomize/overlays/prod/frontend-deployment.yaml create mode 100644 kustomize/kustomize/overlays/prod/frontend-service.yaml create mode 100644 kustomize/kustomize/overlays/prod/kustomization.yaml create mode 100644 kustomize/kustomize/overlays/test/frontend-deployment.yaml create mode 100644 kustomize/kustomize/overlays/test/kustomization.yaml create mode 100644 manifests/README.md create mode 100644 manifests/fleet.yaml create mode 100644 manifests/manifests/frontend-deployment.yaml create mode 100644 manifests/manifests/frontend-service.yaml create mode 100644 manifests/manifests/redis-master-deployment.yaml create mode 100644 manifests/manifests/redis-master-service.yaml create mode 100644 manifests/manifests/redis-slave-deployment.yaml create mode 100644 manifests/manifests/redis-slave-service.yaml create mode 100644 manifests/overlays/noreplication/manifests/redis-slave-deployment.yaml create mode 100644 manifests/overlays/noreplication/manifests/redis-slave-service_patch.yaml create mode 100644 manifests/overlays/scale3/manifests/frontend-deployment_patch.yaml create mode 100644 manifests/overlays/servicelb/manifests/frontend-service_patch.yaml create mode 100644 simple/README.md create mode 100644 simple/manifests/frontend-deployment.yaml create mode 100644 simple/manifests/frontend-service.yaml create mode 100644 simple/manifests/redis-master-deployment.yaml create mode 100644 simple/manifests/redis-master-service.yaml create mode 100644 simple/manifests/redis-slave-deployment.yaml create mode 100644 simple/manifests/redis-slave-service.yaml diff --git a/README.md b/README.md new file mode 100644 index 0000000..96635b5 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Fleet Examples + +This repository contains examples of how to use Fleet using different approaches. + +| Example | Description | +|-------------|-------------| +| [simple](simple/) | The minimally viable repo to deploy raw Kubernetes resources | +| [manifest](manifest/) | A full example of using raw Kubernetes YAML and customizing it per target cluster | +| [helm](helm/) | A full example of using Helm and customizing it per target cluster | +| [kustomize](kustomize/) | A full example of using Kustomize and customizing it per target cluster | \ No newline at end of file diff --git a/helm/README.md b/helm/README.md new file mode 100644 index 0000000..8912576 --- /dev/null +++ b/helm/README.md @@ -0,0 +1,11 @@ +# Helm Example + +This example will deploy the [Kubernetes sample guestbook](https://github.com/kubernetes/examples/tree/master/guestbook/) application as +packaged as a Helm chart. +The app will be deployed into the `fleet-helm-example` namespace. + +The application will be customized as follows per environment: + +* Dev clusters: Only the redis leader is deployed and not the followers. +* Test clusters: Scale the front deployment to 3 +* Prod clusters: Scale the front deployment to 3 and set the service type to LoadBalancer \ No newline at end of file diff --git a/helm/chart/Chart.yaml b/helm/chart/Chart.yaml new file mode 100644 index 0000000..faafbaf --- /dev/null +++ b/helm/chart/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: guestbook +description: Sample application +version: 0.0.0 +appVersion: 0.0.0 diff --git a/helm/chart/templates/frontend-deployment.yaml b/helm/chart/templates/frontend-deployment.yaml new file mode 100644 index 0000000..5ed1992 --- /dev/null +++ b/helm/chart/templates/frontend-deployment.yaml @@ -0,0 +1,25 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend +spec: + selector: + matchLabels: + app: guestbook + tier: frontend + replicas: {{ .Values.replicas }} + template: + metadata: + labels: + app: guestbook + tier: frontend + spec: + containers: + - name: php-redis + image: gcr.io/google-samples/gb-frontend:v4 + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 80 diff --git a/helm/chart/templates/frontend-service.yaml b/helm/chart/templates/frontend-service.yaml new file mode 100644 index 0000000..699670a --- /dev/null +++ b/helm/chart/templates/frontend-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: frontend + labels: + app: guestbook + tier: frontend +spec: + type: "{{ .Values.serviceType }}" + ports: + - port: 80 + selector: + app: guestbook + tier: frontend diff --git a/helm/chart/templates/redis-master-deployment.yaml b/helm/chart/templates/redis-master-deployment.yaml new file mode 100644 index 0000000..d675715 --- /dev/null +++ b/helm/chart/templates/redis-master-deployment.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis-master +spec: + selector: + matchLabels: + app: redis + role: master + tier: backend + replicas: 1 + template: + metadata: + labels: + app: redis + role: master + tier: backend + spec: + containers: + - name: master + image: redis + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 diff --git a/helm/chart/templates/redis-master-service.yaml b/helm/chart/templates/redis-master-service.yaml new file mode 100644 index 0000000..a484014 --- /dev/null +++ b/helm/chart/templates/redis-master-service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis-master + labels: + app: redis + role: master + tier: backend +spec: + ports: + - port: 6379 + targetPort: 6379 + selector: + app: redis + role: master + tier: backend diff --git a/helm/chart/templates/redis-slave-deployment.yaml b/helm/chart/templates/redis-slave-deployment.yaml new file mode 100644 index 0000000..aed1759 --- /dev/null +++ b/helm/chart/templates/redis-slave-deployment.yaml @@ -0,0 +1,29 @@ +{{ if .Values.replication }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis-slave +spec: + selector: + matchLabels: + app: redis + role: slave + tier: backend + replicas: 2 + template: + metadata: + labels: + app: redis + role: slave + tier: backend + spec: + containers: + - name: slave + image: gcr.io/google_samples/gb-redisslave:v1 + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 +{{ end }} diff --git a/helm/chart/templates/redis-slave-service.yaml b/helm/chart/templates/redis-slave-service.yaml new file mode 100644 index 0000000..f826055 --- /dev/null +++ b/helm/chart/templates/redis-slave-service.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis-slave + labels: + app: redis + role: slave + tier: backend +spec: + ports: + - port: 6379 + selector: + app: redis + {{ if .Values.replication }} + role: slave + {{ else }} + role: master + {{ end }} + tier: backend diff --git a/helm/chart/values.yaml b/helm/chart/values.yaml new file mode 100644 index 0000000..c6eaf7f --- /dev/null +++ b/helm/chart/values.yaml @@ -0,0 +1,3 @@ +replication: true +replicas: 1 +serviceType: NodePort diff --git a/helm/fleet.yaml b/helm/fleet.yaml new file mode 100644 index 0000000..553d4f5 --- /dev/null +++ b/helm/fleet.yaml @@ -0,0 +1,23 @@ +namespace: fleet-helm-example +targets: +- name: dev + values: + replication: false + clusterSelector: + matchLabels: + env: dev + +- name: test + values: + replicas: 3 + clusterSelector: + matchLabels: + env: test + +- name: prod + values: + serviceType: LoadBalancer + replicas: 3 + clusterSelector: + matchLabels: + env: prod diff --git a/kustomize/README.md b/kustomize/README.md new file mode 100644 index 0000000..8d53c19 --- /dev/null +++ b/kustomize/README.md @@ -0,0 +1,10 @@ +# Helm Example + +This example will deploy the [Kubernetes sample guestbook](https://github.com/kubernetes/examples/tree/master/guestbook/) application +using kustomize. The app will be deployed into the `fleet-kustomize-example` namespace. + +The application will be customized as follows per environment: + +* Dev clusters: Only the redis leader is deployed and not the followers. +* Test clusters: Scale the front deployment to 3 +* Prod clusters: Scale the front deployment to 3 and set the service type to LoadBalancer \ No newline at end of file diff --git a/kustomize/fleet.yaml b/kustomize/fleet.yaml new file mode 100644 index 0000000..2fb8c12 --- /dev/null +++ b/kustomize/fleet.yaml @@ -0,0 +1,22 @@ +namespace: fleet-kustomize-example +targets: +- name: dev + clusterSelector: + matchLabels: + env: dev + # NOTE: This directory is always relative to ./kustomize + kustomizeDir: overlays/dev + +- name: test + clusterSelector: + matchLabels: + env: test + # NOTE: This directory is always relative to ./kustomize + kustomizeDir: overlays/test + +- name: prod + clusterSelector: + matchLabels: + env: prod + # NOTE: This directory is always relative to ./kustomize + kustomizeDir: overlays/prod diff --git a/kustomize/kustomize/base/frontend-deployment.yaml b/kustomize/kustomize/base/frontend-deployment.yaml new file mode 100644 index 0000000..a56d48e --- /dev/null +++ b/kustomize/kustomize/base/frontend-deployment.yaml @@ -0,0 +1,25 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend +spec: + selector: + matchLabels: + app: guestbook + tier: frontend + replicas: 1 + template: + metadata: + labels: + app: guestbook + tier: frontend + spec: + containers: + - name: php-redis + image: gcr.io/google-samples/gb-frontend:v4 + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 80 diff --git a/kustomize/kustomize/base/frontend-service.yaml b/kustomize/kustomize/base/frontend-service.yaml new file mode 100644 index 0000000..e488acb --- /dev/null +++ b/kustomize/kustomize/base/frontend-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: frontend + labels: + app: guestbook + tier: frontend +spec: + type: NodePort + ports: + - port: 80 + selector: + app: guestbook + tier: frontend diff --git a/kustomize/kustomize/base/kustomization.yaml b/kustomize/kustomize/base/kustomization.yaml new file mode 100644 index 0000000..491cedc --- /dev/null +++ b/kustomize/kustomize/base/kustomization.yaml @@ -0,0 +1,7 @@ +resources: +- frontend-deployment.yaml +- frontend-service.yaml +- redis-master-deployment.yaml +- redis-master-service.yaml +- redis-slave-deployment.yaml +- redis-slave-service.yaml diff --git a/kustomize/kustomize/base/redis-master-deployment.yaml b/kustomize/kustomize/base/redis-master-deployment.yaml new file mode 100644 index 0000000..d675715 --- /dev/null +++ b/kustomize/kustomize/base/redis-master-deployment.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis-master +spec: + selector: + matchLabels: + app: redis + role: master + tier: backend + replicas: 1 + template: + metadata: + labels: + app: redis + role: master + tier: backend + spec: + containers: + - name: master + image: redis + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 diff --git a/kustomize/kustomize/base/redis-master-service.yaml b/kustomize/kustomize/base/redis-master-service.yaml new file mode 100644 index 0000000..a484014 --- /dev/null +++ b/kustomize/kustomize/base/redis-master-service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis-master + labels: + app: redis + role: master + tier: backend +spec: + ports: + - port: 6379 + targetPort: 6379 + selector: + app: redis + role: master + tier: backend diff --git a/kustomize/kustomize/base/redis-slave-deployment.yaml b/kustomize/kustomize/base/redis-slave-deployment.yaml new file mode 100644 index 0000000..dfdcd00 --- /dev/null +++ b/kustomize/kustomize/base/redis-slave-deployment.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis-slave +spec: + selector: + matchLabels: + app: redis + role: slave + tier: backend + replicas: 2 + template: + metadata: + labels: + app: redis + role: slave + tier: backend + spec: + containers: + - name: slave + image: gcr.io/google_samples/gb-redisslave:v1 + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 diff --git a/kustomize/kustomize/base/redis-slave-service.yaml b/kustomize/kustomize/base/redis-slave-service.yaml new file mode 100644 index 0000000..238fd63 --- /dev/null +++ b/kustomize/kustomize/base/redis-slave-service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis-slave + labels: + app: redis + role: slave + tier: backend +spec: + ports: + - port: 6379 + selector: + app: redis + role: slave + tier: backend diff --git a/kustomize/kustomize/kustomization.yaml b/kustomize/kustomize/kustomization.yaml new file mode 100644 index 0000000..c662605 --- /dev/null +++ b/kustomize/kustomize/kustomization.yaml @@ -0,0 +1,2 @@ +resources: +- overlays/dev diff --git a/kustomize/kustomize/overlays/dev/kustomization.yaml b/kustomize/kustomize/overlays/dev/kustomization.yaml new file mode 100644 index 0000000..3e70f16 --- /dev/null +++ b/kustomize/kustomize/overlays/dev/kustomization.yaml @@ -0,0 +1,5 @@ +resources: +- ../../base +patches: +- redis-slave-deployment.yaml +- redis-slave-service.yaml diff --git a/kustomize/kustomize/overlays/dev/redis-slave-deployment.yaml b/kustomize/kustomize/overlays/dev/redis-slave-deployment.yaml new file mode 100644 index 0000000..238ee8c --- /dev/null +++ b/kustomize/kustomize/overlays/dev/redis-slave-deployment.yaml @@ -0,0 +1,6 @@ +kind: Deployment +apiVersion: apps/v1 +metadata: + name: redis-slave +spec: + replicas: 0 diff --git a/kustomize/kustomize/overlays/dev/redis-slave-service.yaml b/kustomize/kustomize/overlays/dev/redis-slave-service.yaml new file mode 100644 index 0000000..d2a93da --- /dev/null +++ b/kustomize/kustomize/overlays/dev/redis-slave-service.yaml @@ -0,0 +1,7 @@ +kind: Service +apiVersion: v1 +metadata: + name: redis-slave +spec: + selector: + role: master diff --git a/kustomize/kustomize/overlays/prod/frontend-deployment.yaml b/kustomize/kustomize/overlays/prod/frontend-deployment.yaml new file mode 100644 index 0000000..f62f81c --- /dev/null +++ b/kustomize/kustomize/overlays/prod/frontend-deployment.yaml @@ -0,0 +1,6 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend +spec: + replicas: 3 diff --git a/kustomize/kustomize/overlays/prod/frontend-service.yaml b/kustomize/kustomize/overlays/prod/frontend-service.yaml new file mode 100644 index 0000000..a93ecd6 --- /dev/null +++ b/kustomize/kustomize/overlays/prod/frontend-service.yaml @@ -0,0 +1,6 @@ +kind: Service +apiVersion: v1 +metadata: + name: frontend +spec: + type: LoadBalancer diff --git a/kustomize/kustomize/overlays/prod/kustomization.yaml b/kustomize/kustomize/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..d5efb3b --- /dev/null +++ b/kustomize/kustomize/overlays/prod/kustomization.yaml @@ -0,0 +1,5 @@ +resources: +- ../../base +patches: +- frontend-deployment.yaml +- frontend-service.yaml diff --git a/kustomize/kustomize/overlays/test/frontend-deployment.yaml b/kustomize/kustomize/overlays/test/frontend-deployment.yaml new file mode 100644 index 0000000..f62f81c --- /dev/null +++ b/kustomize/kustomize/overlays/test/frontend-deployment.yaml @@ -0,0 +1,6 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend +spec: + replicas: 3 diff --git a/kustomize/kustomize/overlays/test/kustomization.yaml b/kustomize/kustomize/overlays/test/kustomization.yaml new file mode 100644 index 0000000..aa9cad8 --- /dev/null +++ b/kustomize/kustomize/overlays/test/kustomization.yaml @@ -0,0 +1,4 @@ +resources: +- ../../base +patches: +- frontend-deployment.yaml diff --git a/manifests/README.md b/manifests/README.md new file mode 100644 index 0000000..7394d46 --- /dev/null +++ b/manifests/README.md @@ -0,0 +1,10 @@ +# Manifests Example + +This example will deploy the [Kubernetes sample guestbook](https://github.com/kubernetes/examples/tree/master/guestbook/) application. +The app will be deployed into the `fleet-manifest-example` namespace. + +The application will be customized as follows per environment: + +* Dev clusters: Only the redis leader is deployed and not the followers. +* Test clusters: Scale the front deployment to 3 +* Prod clusters: Scale the front deployment to 3 and set the service type to LoadBalancer \ No newline at end of file diff --git a/manifests/fleet.yaml b/manifests/fleet.yaml new file mode 100644 index 0000000..b899707 --- /dev/null +++ b/manifests/fleet.yaml @@ -0,0 +1,23 @@ +namespace: fleet-manifest-example +targets: +- name: dev + clusterSelector: + matchLabels: + env: dev + overlays: + - noreplication + +- name: test + clusterSelector: + matchLabels: + env: test + overlays: + - scale3 + +- name: prod + clusterSelector: + matchLabels: + env: prod + overlays: + - servicelb + - scale3 diff --git a/manifests/manifests/frontend-deployment.yaml b/manifests/manifests/frontend-deployment.yaml new file mode 100644 index 0000000..a56d48e --- /dev/null +++ b/manifests/manifests/frontend-deployment.yaml @@ -0,0 +1,25 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend +spec: + selector: + matchLabels: + app: guestbook + tier: frontend + replicas: 1 + template: + metadata: + labels: + app: guestbook + tier: frontend + spec: + containers: + - name: php-redis + image: gcr.io/google-samples/gb-frontend:v4 + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 80 diff --git a/manifests/manifests/frontend-service.yaml b/manifests/manifests/frontend-service.yaml new file mode 100644 index 0000000..e488acb --- /dev/null +++ b/manifests/manifests/frontend-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: frontend + labels: + app: guestbook + tier: frontend +spec: + type: NodePort + ports: + - port: 80 + selector: + app: guestbook + tier: frontend diff --git a/manifests/manifests/redis-master-deployment.yaml b/manifests/manifests/redis-master-deployment.yaml new file mode 100644 index 0000000..d675715 --- /dev/null +++ b/manifests/manifests/redis-master-deployment.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis-master +spec: + selector: + matchLabels: + app: redis + role: master + tier: backend + replicas: 1 + template: + metadata: + labels: + app: redis + role: master + tier: backend + spec: + containers: + - name: master + image: redis + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 diff --git a/manifests/manifests/redis-master-service.yaml b/manifests/manifests/redis-master-service.yaml new file mode 100644 index 0000000..a484014 --- /dev/null +++ b/manifests/manifests/redis-master-service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis-master + labels: + app: redis + role: master + tier: backend +spec: + ports: + - port: 6379 + targetPort: 6379 + selector: + app: redis + role: master + tier: backend diff --git a/manifests/manifests/redis-slave-deployment.yaml b/manifests/manifests/redis-slave-deployment.yaml new file mode 100644 index 0000000..dfdcd00 --- /dev/null +++ b/manifests/manifests/redis-slave-deployment.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis-slave +spec: + selector: + matchLabels: + app: redis + role: slave + tier: backend + replicas: 2 + template: + metadata: + labels: + app: redis + role: slave + tier: backend + spec: + containers: + - name: slave + image: gcr.io/google_samples/gb-redisslave:v1 + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 diff --git a/manifests/manifests/redis-slave-service.yaml b/manifests/manifests/redis-slave-service.yaml new file mode 100644 index 0000000..238fd63 --- /dev/null +++ b/manifests/manifests/redis-slave-service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis-slave + labels: + app: redis + role: slave + tier: backend +spec: + ports: + - port: 6379 + selector: + app: redis + role: slave + tier: backend diff --git a/manifests/overlays/noreplication/manifests/redis-slave-deployment.yaml b/manifests/overlays/noreplication/manifests/redis-slave-deployment.yaml new file mode 100644 index 0000000..e69de29 diff --git a/manifests/overlays/noreplication/manifests/redis-slave-service_patch.yaml b/manifests/overlays/noreplication/manifests/redis-slave-service_patch.yaml new file mode 100644 index 0000000..855b279 --- /dev/null +++ b/manifests/overlays/noreplication/manifests/redis-slave-service_patch.yaml @@ -0,0 +1,3 @@ +spec: + selector: + role: master diff --git a/manifests/overlays/scale3/manifests/frontend-deployment_patch.yaml b/manifests/overlays/scale3/manifests/frontend-deployment_patch.yaml new file mode 100644 index 0000000..3684bbd --- /dev/null +++ b/manifests/overlays/scale3/manifests/frontend-deployment_patch.yaml @@ -0,0 +1,2 @@ +spec: + replicas: 3 diff --git a/manifests/overlays/servicelb/manifests/frontend-service_patch.yaml b/manifests/overlays/servicelb/manifests/frontend-service_patch.yaml new file mode 100644 index 0000000..06ee70a --- /dev/null +++ b/manifests/overlays/servicelb/manifests/frontend-service_patch.yaml @@ -0,0 +1,2 @@ +spec: + type: LoadBalancer diff --git a/simple/README.md b/simple/README.md new file mode 100644 index 0000000..6809d46 --- /dev/null +++ b/simple/README.md @@ -0,0 +1,4 @@ +# Simple Example + +This example will deploy the [Kubernetes sample guestbook](https://github.com/kubernetes/examples/tree/master/guestbook/) application. +The app will be deployed into the `default` namespace. \ No newline at end of file diff --git a/simple/manifests/frontend-deployment.yaml b/simple/manifests/frontend-deployment.yaml new file mode 100644 index 0000000..b164120 --- /dev/null +++ b/simple/manifests/frontend-deployment.yaml @@ -0,0 +1,25 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend +spec: + selector: + matchLabels: + app: guestbook + tier: frontend + replicas: 3 + template: + metadata: + labels: + app: guestbook + tier: frontend + spec: + containers: + - name: php-redis + image: gcr.io/google-samples/gb-frontend:v4 + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 80 diff --git a/simple/manifests/frontend-service.yaml b/simple/manifests/frontend-service.yaml new file mode 100644 index 0000000..e488acb --- /dev/null +++ b/simple/manifests/frontend-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: frontend + labels: + app: guestbook + tier: frontend +spec: + type: NodePort + ports: + - port: 80 + selector: + app: guestbook + tier: frontend diff --git a/simple/manifests/redis-master-deployment.yaml b/simple/manifests/redis-master-deployment.yaml new file mode 100644 index 0000000..d675715 --- /dev/null +++ b/simple/manifests/redis-master-deployment.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis-master +spec: + selector: + matchLabels: + app: redis + role: master + tier: backend + replicas: 1 + template: + metadata: + labels: + app: redis + role: master + tier: backend + spec: + containers: + - name: master + image: redis + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 diff --git a/simple/manifests/redis-master-service.yaml b/simple/manifests/redis-master-service.yaml new file mode 100644 index 0000000..a484014 --- /dev/null +++ b/simple/manifests/redis-master-service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis-master + labels: + app: redis + role: master + tier: backend +spec: + ports: + - port: 6379 + targetPort: 6379 + selector: + app: redis + role: master + tier: backend diff --git a/simple/manifests/redis-slave-deployment.yaml b/simple/manifests/redis-slave-deployment.yaml new file mode 100644 index 0000000..dfdcd00 --- /dev/null +++ b/simple/manifests/redis-slave-deployment.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis-slave +spec: + selector: + matchLabels: + app: redis + role: slave + tier: backend + replicas: 2 + template: + metadata: + labels: + app: redis + role: slave + tier: backend + spec: + containers: + - name: slave + image: gcr.io/google_samples/gb-redisslave:v1 + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 diff --git a/simple/manifests/redis-slave-service.yaml b/simple/manifests/redis-slave-service.yaml new file mode 100644 index 0000000..238fd63 --- /dev/null +++ b/simple/manifests/redis-slave-service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis-slave + labels: + app: redis + role: slave + tier: backend +spec: + ports: + - port: 6379 + selector: + app: redis + role: slave + tier: backend