From 3f51219e82e16f550bc537baf65aa95c1e893dfc Mon Sep 17 00:00:00 2001 From: Xavi Garcia Date: Mon, 25 Mar 2024 15:58:59 +0100 Subject: [PATCH 1/2] Change frontend image path Signed-off-by: Xavi Garcia --- single-cluster/helm/templates/frontend-deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/single-cluster/helm/templates/frontend-deployment.yaml b/single-cluster/helm/templates/frontend-deployment.yaml index 6ef1ed3..9c8b689 100644 --- a/single-cluster/helm/templates/frontend-deployment.yaml +++ b/single-cluster/helm/templates/frontend-deployment.yaml @@ -16,7 +16,7 @@ spec: spec: containers: - name: php-redis - image: gcr.io/google-samples/gb-frontend:v5 + image: us-docker.pkg.dev/google-samples/containers/gke/gb-frontend:v5 resources: requests: cpu: 100m From d3302d3c4b410311982f42defb9f9922e3b97aed Mon Sep 17 00:00:00 2001 From: Xavi Garcia Date: Fri, 5 Apr 2024 09:45:14 +0200 Subject: [PATCH 2/2] Adds multi-gitrepo example Signed-off-by: Xavi Garcia --- single-cluster/multi-gitrepo/README.md | 20 ++++++++++++ .../multi-gitrepo/frontend/Chart.yaml | 5 +++ .../multi-gitrepo/frontend/README.md | 6 ++++ .../multi-gitrepo/frontend/fleet.yaml | 32 +++++++++++++++++++ .../templates/frontend-deployment.yaml | 25 +++++++++++++++ .../frontend/templates/frontend-service.yaml | 14 ++++++++ .../multi-gitrepo/frontend/values.yaml | 3 ++ .../multi-gitrepo/gitrepos/README.md | 4 +++ .../multi-gitrepo/gitrepos/frontend.yaml | 11 +++++++ .../multi-gitrepo/gitrepos/redis.yaml | 11 +++++++ single-cluster/multi-gitrepo/redis/Chart.yaml | 5 +++ single-cluster/multi-gitrepo/redis/README.md | 6 ++++ single-cluster/multi-gitrepo/redis/fleet.yaml | 32 +++++++++++++++++++ .../templates/redis-master-deployment.yaml | 27 ++++++++++++++++ .../redis/templates/redis-master-service.yaml | 16 ++++++++++ .../templates/redis-slave-deployment.yaml | 29 +++++++++++++++++ .../redis/templates/redis-slave-service.yaml | 19 +++++++++++ .../multi-gitrepo/redis/values.yaml | 3 ++ 18 files changed, 268 insertions(+) create mode 100644 single-cluster/multi-gitrepo/README.md create mode 100644 single-cluster/multi-gitrepo/frontend/Chart.yaml create mode 100644 single-cluster/multi-gitrepo/frontend/README.md create mode 100644 single-cluster/multi-gitrepo/frontend/fleet.yaml create mode 100644 single-cluster/multi-gitrepo/frontend/templates/frontend-deployment.yaml create mode 100644 single-cluster/multi-gitrepo/frontend/templates/frontend-service.yaml create mode 100644 single-cluster/multi-gitrepo/frontend/values.yaml create mode 100644 single-cluster/multi-gitrepo/gitrepos/README.md create mode 100644 single-cluster/multi-gitrepo/gitrepos/frontend.yaml create mode 100644 single-cluster/multi-gitrepo/gitrepos/redis.yaml create mode 100644 single-cluster/multi-gitrepo/redis/Chart.yaml create mode 100644 single-cluster/multi-gitrepo/redis/README.md create mode 100644 single-cluster/multi-gitrepo/redis/fleet.yaml create mode 100644 single-cluster/multi-gitrepo/redis/templates/redis-master-deployment.yaml create mode 100644 single-cluster/multi-gitrepo/redis/templates/redis-master-service.yaml create mode 100644 single-cluster/multi-gitrepo/redis/templates/redis-slave-deployment.yaml create mode 100644 single-cluster/multi-gitrepo/redis/templates/redis-slave-service.yaml create mode 100644 single-cluster/multi-gitrepo/redis/values.yaml diff --git a/single-cluster/multi-gitrepo/README.md b/single-cluster/multi-gitrepo/README.md new file mode 100644 index 0000000..b44bda0 --- /dev/null +++ b/single-cluster/multi-gitrepo/README.md @@ -0,0 +1,20 @@ +# Multi-GitRepo example + +This example will deploy the [Kubernetes sample guestbook](https://github.com/kubernetes/examples/tree/master/guestbook/) application using 2 different `GitRepo CRs`, splitting the frontend and the backend as different Helm charts. + +The initial `GitRepo` will point to a folder containing 2 `GitRepo` resources that will be deployed in cascade. + +The app will be deployed into the `fleet-helm-example` namespace. + +```yaml +kind: GitRepo +apiVersion: fleet.cattle.io/v1alpha1 +metadata: + name: multi-gitrepo + namespace: fleet-local +spec: + repo: https://github.com/rancher/fleet-examples + paths: + - single-cluster/multi-gitrepos/gitrepos +``` + diff --git a/single-cluster/multi-gitrepo/frontend/Chart.yaml b/single-cluster/multi-gitrepo/frontend/Chart.yaml new file mode 100644 index 0000000..7c4b2b5 --- /dev/null +++ b/single-cluster/multi-gitrepo/frontend/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: guestbook-frontend +description: Sample application frontend +version: 0.0.0 +appVersion: 0.0.0 diff --git a/single-cluster/multi-gitrepo/frontend/README.md b/single-cluster/multi-gitrepo/frontend/README.md new file mode 100644 index 0000000..f27a0c3 --- /dev/null +++ b/single-cluster/multi-gitrepo/frontend/README.md @@ -0,0 +1,6 @@ +# Multi-GitRepo example (frontend) + +This example will deploy the [Kubernetes sample guestbook](https://github.com/kubernetes/examples/tree/master/guestbook/) frontend application packaged as a Helm chart. +The app will be deployed into the `fleet-helm-example` namespace. +It will be deployed as part of the [multi-gitrepo](https://github.com/rancher/fleet-examples/single-cluster/multi-gitrepo) example. + diff --git a/single-cluster/multi-gitrepo/frontend/fleet.yaml b/single-cluster/multi-gitrepo/frontend/fleet.yaml new file mode 100644 index 0000000..2efb2e8 --- /dev/null +++ b/single-cluster/multi-gitrepo/frontend/fleet.yaml @@ -0,0 +1,32 @@ +# This file and all contents in it are OPTIONAL. + +# The namespace this chart will be installed and restricted to, +# if not specified the chart will be installed to "default" +namespace: fleet-helm-example + +# Custom helm options +helm: + # The release name to use. If empty a generated release name will be used + releaseName: guestbook-frontend + + # The directory of the chart in the repo. Also any valid go-getter supported + # URL can be used there is specify where to download the chart from. + # If repo below is set this value if the chart name in the repo + chart: "" + + # An https to a valid Helm repository to download the chart from + repo: "" + + # Used if repo is set to look up the version of the chart + version: "" + + # Force recreate resource that can not be updated + force: false + + # How long for helm to wait for the release to be active. If the value + # is less that or equal to zero, we will not wait in Helm + timeoutSeconds: 0 + + # Custom values that will be passed as values.yaml to the installation + values: + replicas: 2 diff --git a/single-cluster/multi-gitrepo/frontend/templates/frontend-deployment.yaml b/single-cluster/multi-gitrepo/frontend/templates/frontend-deployment.yaml new file mode 100644 index 0000000..9c8b689 --- /dev/null +++ b/single-cluster/multi-gitrepo/frontend/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: us-docker.pkg.dev/google-samples/containers/gke/gb-frontend:v5 + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 80 diff --git a/single-cluster/multi-gitrepo/frontend/templates/frontend-service.yaml b/single-cluster/multi-gitrepo/frontend/templates/frontend-service.yaml new file mode 100644 index 0000000..699670a --- /dev/null +++ b/single-cluster/multi-gitrepo/frontend/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/single-cluster/multi-gitrepo/frontend/values.yaml b/single-cluster/multi-gitrepo/frontend/values.yaml new file mode 100644 index 0000000..c6eaf7f --- /dev/null +++ b/single-cluster/multi-gitrepo/frontend/values.yaml @@ -0,0 +1,3 @@ +replication: true +replicas: 1 +serviceType: NodePort diff --git a/single-cluster/multi-gitrepo/gitrepos/README.md b/single-cluster/multi-gitrepo/gitrepos/README.md new file mode 100644 index 0000000..4ca9a3b --- /dev/null +++ b/single-cluster/multi-gitrepo/gitrepos/README.md @@ -0,0 +1,4 @@ +# Multi-GitRepo example (gitrepos) + +This folder contains the `GitRepo CRs` that will be deployed in the [multi-gitrepo](https://github.com/rancher/fleet-examples/single-cluster/multi-gitrepo) example. + diff --git a/single-cluster/multi-gitrepo/gitrepos/frontend.yaml b/single-cluster/multi-gitrepo/gitrepos/frontend.yaml new file mode 100644 index 0000000..32401c3 --- /dev/null +++ b/single-cluster/multi-gitrepo/gitrepos/frontend.yaml @@ -0,0 +1,11 @@ +kind: GitRepo +apiVersion: fleet.cattle.io/v1alpha1 +metadata: + name: multigitrepo-frontend + namespace: fleet-local +spec: + repo: https://github.com/0xavi0/fleet-examples + branch: multi-gitrepo + paths: + - single-cluster/multi-gitrepo/frontend + diff --git a/single-cluster/multi-gitrepo/gitrepos/redis.yaml b/single-cluster/multi-gitrepo/gitrepos/redis.yaml new file mode 100644 index 0000000..812dbdc --- /dev/null +++ b/single-cluster/multi-gitrepo/gitrepos/redis.yaml @@ -0,0 +1,11 @@ +kind: GitRepo +apiVersion: fleet.cattle.io/v1alpha1 +metadata: + name: multigitrepo-redis + namespace: fleet-local +spec: + repo: https://github.com/0xavi0/fleet-examples + branch: multi-gitrepo + paths: + - single-cluster/multi-gitrepo/redis + diff --git a/single-cluster/multi-gitrepo/redis/Chart.yaml b/single-cluster/multi-gitrepo/redis/Chart.yaml new file mode 100644 index 0000000..764f502 --- /dev/null +++ b/single-cluster/multi-gitrepo/redis/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: guestbook-redis +description: Sample application (redis) +version: 0.0.0 +appVersion: 0.0.0 diff --git a/single-cluster/multi-gitrepo/redis/README.md b/single-cluster/multi-gitrepo/redis/README.md new file mode 100644 index 0000000..b98293d --- /dev/null +++ b/single-cluster/multi-gitrepo/redis/README.md @@ -0,0 +1,6 @@ +# Helm Example + +This example will deploy the [Kubernetes sample guestbook](https://github.com/kubernetes/examples/tree/master/guestbook/) application backend packaged as a Helm chart. +The app will be deployed into the `fleet-helm-example` namespace. +It will be deployed as part of the [multi-gitrepo](https://github.com/rancher/fleet-examples/single-cluster/multi-gitrepo) example. + diff --git a/single-cluster/multi-gitrepo/redis/fleet.yaml b/single-cluster/multi-gitrepo/redis/fleet.yaml new file mode 100644 index 0000000..8120dda --- /dev/null +++ b/single-cluster/multi-gitrepo/redis/fleet.yaml @@ -0,0 +1,32 @@ +# This file and all contents in it are OPTIONAL. + +# The namespace this chart will be installed and restricted to, +# if not specified the chart will be installed to "default" +namespace: fleet-helm-example + +# Custom helm options +helm: + # The release name to use. If empty a generated release name will be used + releaseName: guestbook-redis + + # The directory of the chart in the repo. Also any valid go-getter supported + # URL can be used there is specify where to download the chart from. + # If repo below is set this value if the chart name in the repo + chart: "" + + # An https to a valid Helm repository to download the chart from + repo: "" + + # Used if repo is set to look up the version of the chart + version: "" + + # Force recreate resource that can not be updated + force: false + + # How long for helm to wait for the release to be active. If the value + # is less that or equal to zero, we will not wait in Helm + timeoutSeconds: 0 + + # Custom values that will be passed as values.yaml to the installation + values: + replicas: 2 diff --git a/single-cluster/multi-gitrepo/redis/templates/redis-master-deployment.yaml b/single-cluster/multi-gitrepo/redis/templates/redis-master-deployment.yaml new file mode 100644 index 0000000..d815405 --- /dev/null +++ b/single-cluster/multi-gitrepo/redis/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: registry.k8s.io/redis:e2e + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 diff --git a/single-cluster/multi-gitrepo/redis/templates/redis-master-service.yaml b/single-cluster/multi-gitrepo/redis/templates/redis-master-service.yaml new file mode 100644 index 0000000..a484014 --- /dev/null +++ b/single-cluster/multi-gitrepo/redis/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/single-cluster/multi-gitrepo/redis/templates/redis-slave-deployment.yaml b/single-cluster/multi-gitrepo/redis/templates/redis-slave-deployment.yaml new file mode 100644 index 0000000..0bb6020 --- /dev/null +++ b/single-cluster/multi-gitrepo/redis/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:v2 + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 +{{ end }} diff --git a/single-cluster/multi-gitrepo/redis/templates/redis-slave-service.yaml b/single-cluster/multi-gitrepo/redis/templates/redis-slave-service.yaml new file mode 100644 index 0000000..f826055 --- /dev/null +++ b/single-cluster/multi-gitrepo/redis/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/single-cluster/multi-gitrepo/redis/values.yaml b/single-cluster/multi-gitrepo/redis/values.yaml new file mode 100644 index 0000000..c6eaf7f --- /dev/null +++ b/single-cluster/multi-gitrepo/redis/values.yaml @@ -0,0 +1,3 @@ +replication: true +replicas: 1 +serviceType: NodePort