heat_template_version: rocky

description: Triggers a Mistral workflow for the deployment of Kubernetes

parameters:
  RoleNetIpMap:
    default: {}
    type: json
  ServiceData:
    default: {}
    description: Dictionary packing service data
    type: json
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.  This
                 mapping overrides those in ServiceNetMapDefaults.
    type: json
  DefaultPasswords:
    default: {}
    type: json
  RoleName:
    default: ''
    description: Role name on which the service is applied
    type: string
  RoleParameters:
    default: {}
    description: Parameters specific to the role
    type: json
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json

outputs:
  role_data:
    description: Role data for the Kubernetes Service
    value:
      # This service template essentially tags the nodes that we want
      # as workers. The actual installation is performed in
      # kubernetes-master service template.
      service_name: kubernetes_worker
      firewall_rules:
        '200 kubernetes-worker kubelet':
          dport:
            - 10250
            - 10255
          proto: tcp
        '200 kubernetes-worker external services':
          dport: '30000-32767'
        '200 kubernetes-worker flannel':
          dport:
            - 8285
            - 8472
          proto: udp
        '200 kubernetes-worker calico bgp':
          dport: 179
          proto: tcp
        '200 kubernetes-worker calico ipv4-in-ip':
          proto: ipv4
      upgrade_tasks: []
