skupper.network.services (1.2.1) — module

Update services based on provided services list

| "added in version" 1.2.0 of skupper.network"

Authors: Fernando Giorgetti (@fgiorgetti)

This plugin has a corresponding action plugin.

Install collection

Install with ansible-galaxy collection install skupper.network:==1.2.1


Add to requirements.yml

  collections:
    - name: skupper.network
      version: 1.2.1

Description

Updates the services defined by the respective site, based on the services list defined through the host variables

The services plugin will generate a list of services (or targets) to be created and deleted

If targets have changed then the create and delete lists will have just the name and respective targets (no spec)


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Updating services
  skupper.network.services:

Inputs

    
create:
    description:
    - List of service definitions to be created
    - This list will be populated automatically by the action plugin based on the I(services)
      definition
    - For more information on how to define services, read the I(skupper_service) role
      documentation
    elements: dict
    required: false
    suboptions:
      labels:
        description:
        - List of labels to be applied to the service
        - 'The format to use for each entry is: <key>=<value>'
        elements: str
        required: false
        type: list
      name:
        description:
        - Service name
        required: true
        type: str
      spec:
        description:
        - Service specification provided by the action plugin based on the I(services)
          definition
        required: true
        suboptions:
          aggregate:
            choices:
            - json
            - multipart
            description:
            - Strategy to aggregate http responses
            required: false
            type: str
          containerName:
            description:
            - Alternative container name to be used for proxy container
            - This option is only relevant on podman sites
            required: false
            type: str
          eventChannel:
            description:
            - If specified this service will be a channel for multicast events
            required: false
            type: bool
          generateTlsSecrets:
            description:
            - If enabled, service communication will be encrypted using TLS
            required: false
            type: bool
          hostIp:
            description:
            - Host IP to be bound to the proxy container port(s)
            - This option is only relevant on podman sites
            required: false
            type: str
          hostPorts:
            description:
            - List of ports to be mapped to the container port
            - 'Format for each entry is: <service-port>:<host-port>'
            - This option is only relevant on podman sites
            elements: str
            required: false
            type: list
          ports:
            description:
            - List of ports
            elements: int
            required: true
            type: list
          protocol:
            choices:
            - tcp
            - http
            - http2
            default: tcp
            description:
            - Protocol to use
            type: str
        type: dict
      targets:
        description:
        - List of targets that the respective service definition will be bound to
        elements: dict
        required: false
        suboptions:
          name:
            description:
            - Name or identification of the chosen resource type
            required: true
            type: str
          ports:
            description:
            - List of ports to be mapped to the from the service to the chosen target
            - 'Format for each entry is: <service-port>:<target-resource-port>'
            elements: str
            required: false
            type: list
          type:
            description:
            - Type of target to bind
            - 'Valid values for kubernetes: deployment, statefulset, service, deploymentconfig'
            - 'Valid values for podman: host'
            required: true
            type: str
        type: list
    type: list

delete:
    description:
    - List of services, labels or targets to be removed
    - This list will be populated automatically by the action plugin based on the I(services)
      definition
    - It also requires that the M(skupper.network.services_load) module is invoked first
    elements: dict
    required: false
    suboptions:
      labels:
        description:
        - List of labels to be removed from service
        - 'The format to use for each entry is: <key>-'
        elements: str
        required: false
        type: list
      name:
        description:
        - Service name to be deleted
        required: true
        type: str
      targets:
        description:
        - List of targets to unbind
        elements: dict
        required: false
        suboptions:
          name:
            description:
            - Name or identification of the chosen resource type
            required: true
            type: str
          type:
            description:
            - Type of target to bind
            - 'Valid values for kubernetes: deployment, statefulset, service, deploymentconfig'
            - 'Valid values for podman: host'
            required: true
            type: str
        type: list
    type: list

context:
    description:
    - KUBECONFIG context to use
    required: false
    type: str

hostname:
    description:
    - Ansible's inventory_hostname used to represent the given Skupper site
    - This is automatically provided by the action plugin
    required: false
    type: str

platform:
    description:
    - Platform to be used (kubernetes or podman)
    required: false
    type: str

namespace:
    description:
    - Kubernetes namespace to run the Skupper site
    required: false
    type: str

kubeconfig:
    description:
    - KUBECONFIG file to be used (defaults to ${HOME}/.kube/config)
    required: false
    type: str

podman_endpoint:
    description:
    - Podman endpoint to use when managing a Skupper site
    required: false
    type: str