diff --git a/samples/README.md b/samples/README.md index fb0fa912..bca12942 100644 --- a/samples/README.md +++ b/samples/README.md @@ -1,4 +1,4 @@ -# Reference applicatins +# Reference applications Reference apps are templates that show a complete app. You are able to clone and deploy any of these apps to try out various Project Radius functionality. diff --git a/samples/kubernetes/guestbook/README.md b/samples/kubernetes/guestbook/README.md new file mode 100644 index 00000000..ca3e74a7 --- /dev/null +++ b/samples/kubernetes/guestbook/README.md @@ -0,0 +1,5 @@ +# Kubernetes Guestbook application example + +This is an example containerized Guestbook application originally authored by the Kubernetes community for use in their own tutorial. The application's Kubernetes deployment manifests copied over from the Kubernetes source [repo](https://github.com/kubernetes/examples/tree/master/guestbook) are contained in the `deploy` directory. + +The Guestbook application consists of a web front end along with primary and secondary Redis containers for storage, all deployed with Kubernetes. For more information about the application and access its source code, see the [Kubernetes tutorial](https://kubernetes.io/docs/tutorials/stateless-application/guestbook/) and their [examples repo](https://github.com/kubernetes/examples/tree/master/guestbook). \ No newline at end of file diff --git a/samples/kubernetes/guestbook/deploy/frontend-deployment.yaml b/samples/kubernetes/guestbook/deploy/frontend-deployment.yaml new file mode 100644 index 00000000..2b08cc9d --- /dev/null +++ b/samples/kubernetes/guestbook/deploy/frontend-deployment.yaml @@ -0,0 +1,33 @@ +apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use extensions/v1beta1 +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 + env: + - name: GET_HOSTS_FROM + value: dns + # If your cluster config does not include a dns service, then to + # instead access environment variables to find service host + # info, comment out the 'value: dns' line above, and uncomment the + # line below: + # value: env + ports: + - containerPort: 80 diff --git a/samples/kubernetes/guestbook/deploy/frontend-service.yaml b/samples/kubernetes/guestbook/deploy/frontend-service.yaml new file mode 100644 index 00000000..dca33530 --- /dev/null +++ b/samples/kubernetes/guestbook/deploy/frontend-service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: frontend + labels: + app: guestbook + tier: frontend +spec: + # comment or delete the following line if you want to use a LoadBalancer + type: NodePort + # if your cluster supports it, uncomment the following to automatically create + # an external load-balanced IP for the frontend service. + # type: LoadBalancer + ports: + - port: 80 + selector: + app: guestbook + tier: frontend diff --git a/samples/kubernetes/guestbook/deploy/redis-master-deployment.yaml b/samples/kubernetes/guestbook/deploy/redis-master-deployment.yaml new file mode 100644 index 00000000..5a76f05d --- /dev/null +++ b/samples/kubernetes/guestbook/deploy/redis-master-deployment.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use extensions/v1beta1 +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 # or just image: redis + resources: + requests: + cpu: 100m + memory: 100Mi + ports: + - containerPort: 6379 diff --git a/samples/kubernetes/guestbook/deploy/redis-master-service.yaml b/samples/kubernetes/guestbook/deploy/redis-master-service.yaml new file mode 100644 index 00000000..a484014f --- /dev/null +++ b/samples/kubernetes/guestbook/deploy/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/samples/kubernetes/guestbook/deploy/redis-replica-deployment.yaml b/samples/kubernetes/guestbook/deploy/redis-replica-deployment.yaml new file mode 100644 index 00000000..c1e8ca31 --- /dev/null +++ b/samples/kubernetes/guestbook/deploy/redis-replica-deployment.yaml @@ -0,0 +1,35 @@ +apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use extensions/v1beta1 +kind: Deployment +metadata: + name: redis-replica +spec: + selector: + matchLabels: + app: redis + role: replica + tier: backend + replicas: 2 + template: + metadata: + labels: + app: redis + role: replica + tier: backend + spec: + containers: + - name: slave + image: gcr.io/google_samples/gb-redisslave:v1 + resources: + requests: + cpu: 100m + memory: 100Mi + env: + - name: GET_HOSTS_FROM + value: dns + # If your cluster config does not include a dns service, then to + # instead access an environment variable to find the master + # service's host, comment out the 'value: dns' line above, and + # uncomment the line below: + # value: env + ports: + - containerPort: 6379 diff --git a/samples/kubernetes/guestbook/deploy/redis-replica-service.yaml b/samples/kubernetes/guestbook/deploy/redis-replica-service.yaml new file mode 100644 index 00000000..90172bbf --- /dev/null +++ b/samples/kubernetes/guestbook/deploy/redis-replica-service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis-replica + labels: + app: redis + role: replica + tier: backend +spec: + ports: + - port: 6379 + selector: + app: redis + role: replica + tier: backend