apiVersion: apps/v1
kind: Deployment
metadata:
  # The id for this kubernetes object
  name: connectware-agent-deployment
  labels:
    # Attach labels for easy group selection
    app: protocol-mapper-agent
spec:
  replicas: 1
  selector:
    matchLabels:
      app: protocol-mapper-agent
  template:
    metadata:
      labels:
        app: protocol-mapper-agent
    spec:
      # Configure volumes used by the agent to store data across restarts
      volumes:
      - name: agent-data-volume
        emptyDir: {}
      containers:
        - name: protocol-mapper-agent
          # Container image. Watch out: Must use identical version tag to current Connectware version!
          image: registry.cybus.io/cybus/protocol-mapper:1.0.32
          env:
            # Make the protocol-mapper runs as an agent
          - name: CYBUS_AGENT_MODE
            value: "distributed"
            # Set the name of the agent. This must match the agentName used in the commissioning file.
          - name: CYBUS_AGENT_NAME
            value: "myAgent"
            # The IP address or hostname where the Connectware is running
          - name: CYBUS_MQTT_HOST
            value: "10.11.12.13"
          ports:
          # Expose the ports used by the agent.
          - containerPort: 443
          # Configure mount points
          volumeMounts:
          - mountPath: /data
            name: agent-data-volume
          # Configure resource limits
          resources:
            limits:
              cpu: 4000m
              memory: 4Gi
      # Kubernetes secret used to pull the images from the Cybus registry
      imagePullSecrets:
        - name: cybus-docker-registry
