- name: Deploy and expose application
  hosts: localhost
  gather_facts: no
  vars:
    animal: cow
  tasks:
  - name: Create a deployment
    kubernetes.core.k8s:
      definition:
        apiVersion: apps/v1
        kind: Deployment
        metadata:
          labels:
            app: animals
          name: animals
          namespace: default
        spec:
          replicas: 3
          selector:
            matchLabels:
              app: animals
          template:
            metadata:
              labels:
                app: animals
            spec:
              containers:
              - image: ghcr.io/cicd-tutorials/animals:{{ animal }}
                name: animals
  - name: Expose the deployment
    kubernetes.core.k8s:
      definition:
        apiVersion: v1
        kind: Service
        metadata:
          labels:
            app: animals
          name: animals
          namespace: default
        spec:
          ports:
          - port: 80
            protocol: TCP
            targetPort: 80
          selector:
            app: animals
          type: LoadBalancer
