apiVersion: v1
kind: List
items:
- apiVersion: v1
  kind: Service
  metadata:
    name: redis-master
    labels:
      app: redis
      tier: backend
      role: master
  spec:
    ports:
    # the port that this service should serve on
    - port: 6379
      targetPort: 6379
    selector:
      app: redis
      tier: backend
      role: master
- apiVersion: v1
  kind: ReplicationController
  metadata:
    name: redis-master
    # these labels can be applied automatically
    # from the labels in the pod template if not set
    labels:
      app: redis
      role: master
      tier: backend
  spec:
    # this replicas value is default
    # modify it according to your case
    replicas: 1
    # selector can be applied automatically
    # from the labels in the pod template if not set
    # selector:
    #   app: guestbook
    #   role: master
    #   tier: backend
    template:
      metadata:
        labels:
          app: redis
          role: master
          tier: backend
      spec:
        containers:
        - name: master
          image: redis
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
          ports:
          - containerPort: 6379
- apiVersion: v1
  kind: Service
  metadata:
    name: redis-slave
    labels:
      app: redis
      tier: backend
      role: slave
  spec:
    ports:
    # the port that this service should serve on
    - port: 6379
    selector:
      app: redis
      tier: backend
      role: slave
- apiVersion: v1
  kind: ReplicationController
  metadata:
    name: redis-slave
    # these labels can be applied automatically
    # from the labels in the pod template if not set
    labels:
      app: redis
      role: slave
      tier: backend
  spec:
    # this replicas value is default
    # modify it according to your case
    replicas: 2
    # selector can be applied automatically
    # from the labels in the pod template if not set
    # selector:
    #   app: guestbook
    #   role: slave
    #   tier: backend
    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
          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
- apiVersion: v1
  kind: Service
  metadata:
    name: frontend
    labels:
      app: guestbook
      tier: frontend
  spec:
    # if your cluster supports it, uncomment the following to automatically create
    # an external load-balanced IP for the frontend service.
    # type: LoadBalancer
    ports:
    # the port that this service should serve on
    - port: 80
    selector:
      app: guestbook
      tier: frontend
- apiVersion: v1
  kind: ReplicationController
  metadata:
    name: frontend
    # these labels can be applied automatically
    # from the labels in the pod template if not set
    labels:
      app: guestbook
      tier: frontend
  spec:
    # this replicas value is default
    # modify it according to your case
    replicas: 3
    # selector can be applied automatically
    # from the labels in the pod template if not set
    # selector:
    #   app: guestbook
    #   tier: frontend
    template:
      metadata:
        labels:
          app: guestbook
          tier: frontend
      spec:
        containers:
        - name: php-redis
          image: gcr.io/google_samples/gb-frontend:v3
          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