Skip to content

Service

Bases: DuploResourceV2

Duplocloud Service Resource

This resource is used to manage services in Duplocloud. Using the duploctl command line tool, you can manage services with actions:

Basic CLI Use
duploctl service <action>

Commands

apply

Apply a service.

Parameters:

--file, -f, --cli-input
A file to read the input from
FileType('r') action: YamlAction
--wait, -w
Wait for the operation to complete

bulk_update_image

Bulk Update Images

Bulk update the image of multiple services.

Basic CLI Use
duploctl service bulk_update_image -S <service-name-1> <image-name-1> -S <service-name-2> <image-name-2>

Returns:

Name Type Description
message dict

A message about success.

Parameters:

--serviceimage, -S <service> <image> repeatable
takes two arguments, a service name and an image:tag
str nargs: 2

create

Create a service.

Create a service in Duplocloud.

Basic CLI Use

duploctl service create --file service.yaml
Contents of the service.yaml file
Name: duploctl
DockerImage: nginx:latest
Replicas: 1
Cloud: 0
IsLBSyncedDeployment: true
AgentPlatform: 7
ReplicasMatchingAsgName: null
HPASpecs:
  maxReplicas: 3
  metrics:
  - resource:
      name: cpu
      target:
        averageUtilization: 80
        type: Utilization
    type: Resource
  minReplicas: 2
IsDaemonset: false
OtherDockerHostConfig: ''
OtherDockerConfig: '{"Env":null}'
NetworkId: default

Create and Wait

Use the global --wait flag to wait for the service to be created and all replicas in a ready status.

duploctl service create --file service.yaml --wait

Returns:

Name Type Description
message dict

Success message.

Model: ReplicationController
{
  "$defs": {
    "CloudPlatform": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        10
      ],
      "title": "CloudPlatform",
      "type": "integer"
    },
    "Container": {
      "description": "Container",
      "properties": {
        "TenantId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tenantid"
        },
        "State": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "DockerId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Dockerid"
        },
        "InstanceId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Instanceid"
        },
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "Image": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Image"
        }
      },
      "title": "Container",
      "type": "object"
    },
    "ContainerImage": {
      "description": "ContainerImage",
      "properties": {
        "ContainerName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Containername"
        },
        "ImageName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Imagename"
        }
      },
      "title": "ContainerImage",
      "type": "object"
    },
    "ContainerImageHistoryRecord": {
      "description": "ContainerImageHistoryRecord",
      "properties": {
        "Image": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Image"
        },
        "InitContainerImages": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ContainerImage"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Initcontainerimages"
        },
        "AdditionalContainerImages": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ContainerImage"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Additionalcontainerimages"
        },
        "DeployedAt": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Deployedat"
        }
      },
      "title": "ContainerImageHistoryRecord",
      "type": "object"
    },
    "CustomData": {
      "description": "CustomData",
      "properties": {
        "Key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Key"
        },
        "Value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        }
      },
      "title": "CustomData",
      "type": "object"
    },
    "K8SWorkerOs": {
      "description": "    \n    ",
      "enum": [
        0,
        1
      ],
      "title": "K8SWorkerOs",
      "type": "integer"
    },
    "LBConfiguration": {
      "description": "LBConfiguration",
      "properties": {
        "TenantId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tenantid"
        },
        "State": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "ReplicationControllerName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Replicationcontrollername"
        },
        "Protocol": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Protocol"
        },
        "Port": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Port"
        },
        "Cloud": {
          "anyOf": [
            {
              "$ref": "#/$defs/CloudPlatform"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "VirtualIPAddress": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Virtualipaddress"
        },
        "DIPAddresses": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Dipaddresses"
        },
        "HostPort": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Hostport"
        },
        "IsInfraDeployment": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isinfradeployment"
        },
        "DnsName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Dnsname"
        },
        "SetIngressHealthCheck": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Setingresshealthcheck"
        },
        "FrontendIp": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Frontendip"
        },
        "CertificateArn": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Certificatearn"
        },
        "ExternalPort": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Externalport"
        },
        "IsInternal": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isinternal"
        },
        "UseEIPFromPool": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Useeipfrompool"
        },
        "EIPAllocationIds": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Eipallocationids"
        },
        "BeProtocolVersion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Beprotocolversion"
        },
        "AlpnPolicy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Alpnpolicy"
        },
        "CloudName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Cloudname"
        },
        "ForHealthCheck": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Forhealthcheck"
        },
        "HealthCheckUrl": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Healthcheckurl"
        },
        "IsNative": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isnative"
        },
        "LbType": {
          "anyOf": [
            {
              "$ref": "#/$defs/LBType"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "TgCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tgcount"
        },
        "HostNames": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Hostnames"
        },
        "ExternalTrafficPolicy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Externaltrafficpolicy"
        },
        "ExtraSelectorLabels": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/CustomData"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Extraselectorlabels"
        },
        "HealthCheckConfig": {
          "anyOf": [
            {
              "$ref": "#/$defs/LbHealthCheckConfig"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "LbIndex": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Lbindex"
        },
        "TgName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tgname"
        },
        "TgArn": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tgarn"
        },
        "CustomCidrs": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Customcidrs"
        },
        "AllowGlobalAccess": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Allowglobalaccess"
        },
        "IsReadOnly": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isreadonly"
        },
        "OriginalServiceName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Originalservicename"
        },
        "PublishNotReadyAddresses": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Publishnotreadyaddresses"
        },
        "SkipHttpToHttps": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Skiphttptohttps"
        },
        "GcpSettings": {
          "anyOf": [
            {
              "$ref": "#/$defs/LbSettings2"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "LBConfiguration",
      "type": "object"
    },
    "LBType": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "title": "LBType",
      "type": "integer"
    },
    "LbHealthCheckConfig": {
      "description": "LbHealthCheckConfig",
      "properties": {
        "HealthyThresholdCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Healthythresholdcount"
        },
        "UnhealthyThresholdCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Unhealthythresholdcount"
        },
        "HealthCheckTimeoutSeconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Healthchecktimeoutseconds"
        },
        "HealthCheckIntervalSeconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Healthcheckintervalseconds"
        },
        "HttpSuccessCode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Httpsuccesscode"
        },
        "GrpcSuccessCode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Grpcsuccesscode"
        },
        "HealthcheckPort": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Healthcheckport"
        }
      },
      "title": "LbHealthCheckConfig",
      "type": "object"
    },
    "LbSettings2": {
      "description": "LbSettings2",
      "properties": {
        "IpAddress": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ipaddress"
        },
        "BaseName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Basename"
        },
        "IsGlobal": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isglobal"
        },
        "ForwardingRuleUris": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Forwardingruleuris"
        },
        "EnableAccessLogs": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Enableaccesslogs"
        },
        "SessionAffinity": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sessionaffinity"
        },
        "TimeoutSec": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Timeoutsec"
        },
        "ConnectionDrainingTimeoutSec": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Connectiondrainingtimeoutsec"
        },
        "SecurityPolicyId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Securitypolicyid"
        },
        "HttpToHttpsRedirect": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Httptohttpsredirect"
        },
        "MaxRatePerEndpoint": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Maxrateperendpoint"
        }
      },
      "title": "LbSettings2",
      "type": "object"
    },
    "Platform": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8
      ],
      "title": "Platform",
      "type": "integer"
    },
    "PodInterface": {
      "description": "PodInterface",
      "properties": {
        "TenantId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tenantid"
        },
        "State": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "NetworkId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Networkid"
        },
        "IpAddress": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ipaddress"
        },
        "ExternalAddress": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Externaladdress"
        },
        "MacAddress": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Macaddress"
        }
      },
      "title": "PodInterface",
      "type": "object"
    },
    "PodTemplate": {
      "description": "PodTemplate",
      "properties": {
        "TenantId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tenantid"
        },
        "State": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "Containers": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Container"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Containers"
        },
        "InitContainers": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Container"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Initcontainers"
        },
        "Interfaces": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/PodInterface"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Interfaces"
        },
        "UserAccount": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Useraccount"
        },
        "AgentPlatform": {
          "anyOf": [
            {
              "$ref": "#/$defs/Platform"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "Volumes": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Volumes"
        },
        "Commands": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Commands"
        },
        "ApplicationUrl": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Applicationurl"
        },
        "SecondaryTenant": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Secondarytenant"
        },
        "ExtraConfig": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Extraconfig"
        },
        "OtherDockerConfig": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Otherdockerconfig"
        },
        "OtherDockerHostConfig": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Otherdockerhostconfig"
        },
        "DeviceIds": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Deviceids"
        },
        "BaseVersion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Baseversion"
        },
        "LbConfigsVersion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Lbconfigsversion"
        },
        "Cloud": {
          "anyOf": [
            {
              "$ref": "#/$defs/CloudPlatform"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "ImageUpdateTime": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Imageupdatetime"
        },
        "IsReadOnly": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isreadonly"
        },
        "RestartTime": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Restarttime"
        },
        "HelmReleaseName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Helmreleasename"
        },
        "LBConfigurations": {
          "anyOf": [
            {
              "additionalProperties": {
                "$ref": "#/$defs/LBConfiguration"
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Lbconfigurations"
        },
        "LBCCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Lbccount"
        },
        "AllocationTags": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Allocationtags"
        }
      },
      "title": "PodTemplate",
      "type": "object"
    },
    "ResourceQuantity": {
      "description": "ResourceQuantity",
      "properties": {
        "Format": {
          "anyOf": [
            {
              "$ref": "#/$defs/SuffixFormat"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "ResourceQuantity",
      "type": "object"
    },
    "SuffixFormat": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2
      ],
      "title": "SuffixFormat",
      "type": "integer"
    },
    "V1LabelSelector": {
      "description": "V1LabelSelector",
      "properties": {
        "matchExpressions": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/V1LabelSelectorRequirement"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Matchexpressions"
        },
        "matchLabels": {
          "anyOf": [
            {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Matchlabels"
        }
      },
      "title": "V1LabelSelector",
      "type": "object"
    },
    "V1LabelSelectorRequirement": {
      "description": "V1LabelSelectorRequirement",
      "properties": {
        "key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Key"
        },
        "operator": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Operator"
        },
        "values": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Values"
        }
      },
      "title": "V1LabelSelectorRequirement",
      "type": "object"
    },
    "V2CrossVersionObjectReference": {
      "description": "V2CrossVersionObjectReference",
      "properties": {
        "apiVersion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Apiversion"
        },
        "kind": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Kind"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        }
      },
      "title": "V2CrossVersionObjectReference",
      "type": "object"
    },
    "V2ExternalMetricSource": {
      "description": "V2ExternalMetricSource",
      "properties": {
        "metric": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricIdentifier"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "target": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricTarget"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2ExternalMetricSource",
      "type": "object"
    },
    "V2HorizontalPodAutoscalerSpec": {
      "description": "V2HorizontalPodAutoscalerSpec",
      "properties": {
        "maxReplicas": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Maxreplicas"
        },
        "metrics": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/V2MetricSpec"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Metrics"
        },
        "minReplicas": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Minreplicas"
        },
        "scaleTargetRef": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2CrossVersionObjectReference"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2HorizontalPodAutoscalerSpec",
      "type": "object"
    },
    "V2MetricIdentifier": {
      "description": "V2MetricIdentifier",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "selector": {
          "anyOf": [
            {
              "$ref": "#/$defs/V1LabelSelector"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2MetricIdentifier",
      "type": "object"
    },
    "V2MetricSpec": {
      "description": "V2MetricSpec",
      "properties": {
        "external": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2ExternalMetricSource"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "object": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2ObjectMetricSource"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "pods": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2PodsMetricSource"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "resource": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2ResourceMetricSource"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Type"
        }
      },
      "title": "V2MetricSpec",
      "type": "object"
    },
    "V2MetricTarget": {
      "description": "V2MetricTarget",
      "properties": {
        "averageUtilization": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Averageutilization"
        },
        "averageValue": {
          "anyOf": [
            {
              "$ref": "#/$defs/ResourceQuantity"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Type"
        },
        "value": {
          "anyOf": [
            {
              "$ref": "#/$defs/ResourceQuantity"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2MetricTarget",
      "type": "object"
    },
    "V2ObjectMetricSource": {
      "description": "V2ObjectMetricSource",
      "properties": {
        "describedObject": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2CrossVersionObjectReference"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "metric": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricIdentifier"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "target": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricTarget"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2ObjectMetricSource",
      "type": "object"
    },
    "V2PodsMetricSource": {
      "description": "V2PodsMetricSource",
      "properties": {
        "metric": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricIdentifier"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "target": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricTarget"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2PodsMetricSource",
      "type": "object"
    },
    "V2ResourceMetricSource": {
      "description": "V2ResourceMetricSource",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "target": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricTarget"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2ResourceMetricSource",
      "type": "object"
    }
  },
  "description": "ReplicationController",
  "properties": {
    "TenantId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tenantid"
    },
    "State": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "State"
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/CustomData"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tags"
    },
    "Name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "AppName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Appname"
    },
    "Index": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Index"
    },
    "Template": {
      "anyOf": [
        {
          "$ref": "#/$defs/PodTemplate"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "Replicas": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Replicas"
    },
    "ReplicasPrev": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Replicasprev"
    },
    "ReplicasActive": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Replicasactive"
    },
    "IsInfraDeployment": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isinfradeployment"
    },
    "DnsPrfx": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Dnsprfx"
    },
    "ElbDnsName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Elbdnsname"
    },
    "LbFrontendIp": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Lbfrontendip"
    },
    "LastDeployedBy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Lastdeployedby"
    },
    "LastDeployedAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Lastdeployedat"
    },
    "ContainerImageHistory": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ContainerImageHistoryRecord"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Containerimagehistory"
    },
    "HPASpecs": {
      "anyOf": [
        {
          "$ref": "#/$defs/V2HorizontalPodAutoscalerSpec"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "ForceStatefulSet": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Forcestatefulset"
    },
    "Fqdn": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Fqdn"
    },
    "FqdnEx": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Fqdnex"
    },
    "ParentDomain": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Parentdomain"
    },
    "IsLBSyncedDeployment": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Islbsynceddeployment"
    },
    "ReplicasMatchingAsgName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Replicasmatchingasgname"
    },
    "IsReplicaCollocationAllowed": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isreplicacollocationallowed"
    },
    "IsAnyHostAllowed": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isanyhostallowed"
    },
    "IsCloudCredsFromK8sServiceAccount": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Iscloudcredsfromk8Sserviceaccount"
    },
    "IsDaemonset": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isdaemonset"
    },
    "IsUniqueK8sNodeRequired": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isuniquek8Snoderequired"
    },
    "ShouldSpreadAcrossZones": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Shouldspreadacrosszones"
    },
    "IsMultiContainerHandled": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Ismulticontainerhandled"
    },
    "K8sWorkerOs": {
      "anyOf": [
        {
          "$ref": "#/$defs/K8SWorkerOs"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "title": "ReplicationController",
  "type": "object"
}

Parameters:

--file, -f, --cli-input
A file to read the input from
ReplicationController action: YamlAction

delete

Delete a service.

Delete a service in Duplocloud.

Basic CLI Use
duploctl service delete <service-name>

Returns:

Name Type Description
message dict

Success message.

Parameters:

name positional
The resource name
str

expose

Expose a service.

Exposes a service through a load balancer. Attaches a Duplocloud service lb configuration to the service.

Basic CLI Use
duploctl service expose <service-name> --lb-type applicationlb --container-port 80 --external-port 80                               --visibility public --mode docker-mode --health-check-url / --protocol http

Returns:

Type Description
dict

A success message indicating the exposure status.

Raises:

Type Description
DuploError

If the service could not be exposed.

Parameters:

name positional
The resource name
str
--container-port, --container-port
Container port
str
--external-port, --external-port
The external port
str
--lb-type, --lb-type
The type of load balancer. Valid options are [applicationlb, k8clusterip, k8nodeport, networklb, targetgrouponly].
str
applicationlb k8clusterip k8nodeport networklb targetgrouponly
--protocol, --protocol
The protocol
str
http https tcp udp tls
--visibility, --visibility
The visibility of load balancer. Valid options are "public" or "private". Default is public.
str default: public
public private
--mode, --mode
The mode of load balancer. Valid options are "docker-mode" or "native-app". Default is docker-mode.
str default: docker-mode
docker-mode native-app
--health-check-url, --health-check-url
The health check URL
str

find

Find a service by name.

First we try for the endpoint that gives one by name. Otherwise we default to finding it in the list.

Usage
duploctl service find <service-name>

Returns:

Name Type Description
service dict

The full object for a service.

Parameters:

name positional
The resource name
str

list

Retrieve a List of Service

cli usage
duploctl service list

Returns:

Name Type Description
list list

A list of Service.

logs

Service Logs

Get the logs for a service. This will be an aggregate of all logs from the pods. The pod names will be prefixed on each line.

Get the logs for a service.

Basic CLI Use
duploctl service logs <service-name>
Watch Logs

This command supports the global --wait. Waits and watches for new logs. As new logs come they are printed to the console. Use ctrl+c to stop watching.

duploctl service logs myapp --wait --loglevel INFO

Returns:

Name Type Description
logs dict

A big list of logs.

Parameters:

name positional
The resource name
str

pods

Get Pods

Get a list of all of the pods owned by this service.

Basic CLI Use
duploctl service pods <service-name>

Returns:

Name Type Description
message dict

A list of pods for the service.

Raises:

Type Description
DuploError

If the service could not be found.

Parameters:

name positional
The resource name
str

restart

Restart a service.

Restart a service. Cause kubernetes to do a full rollover of it's replicaset. This does honor the deployment strategy settings.

Basic CLI Use
duploctl service restart <service-name>
Wait for Restart

This command supports the global --wait. Waits for the desired count of pods to become ready.

duploctl service restart myapp --wait --loglevel INFO

Returns:

Name Type Description
message dict

A success message if the service was restarted successfully.

Raises:

Type Description
DuploError

If the service could not be restarted.

Parameters:

name positional
The resource name
str

rollback

Rollback Service

Roll back a service to a specific revision (if provided) or the last known good state.

Usage
duploctl service rollback <service-name>
duploctl service rollback <service-name> --to-revision 2

Returns:

Name Type Description
message dict

A success message indicating the rollback status.

Raises:

Type Description
DuploError

If the service could not be rollback.

Parameters:

name positional
The resource name
str
--revision, --to-revision
The revision to rollback to
int

start

Start a service.

Start a service.

Basic CLI Use
duploctl service start <service-name>
duploctl service start --all
duploctl service start --targets service1 service2 service3
Wait for Start

This command supports the global --wait. Waits for the desired count of pods to become ready.

duploctl service start myapp --wait --loglevel INFO

Returns:

Type Description
dict

A summary containing services that were started successfully and those that encountered errors.

Raises:

Type Description
DuploError

If the service could not be started.

Parameters:

name positional
The resource name
str
--all, --all
Boolean flag to select all. Defaults to False.
--targets, --targets
The list of targets
str nargs: +

stop

Stop a service.

Stop a service.

Basic CLI Use
duploctl service stop <service-name>
duploctl service stop --all
duploctl service stop --targets service1 service2 service3
Wait for Stop

This command supports the global --wait. Waits for all pods to disappear.

duploctl service stop myapp --wait --loglevel INFO

Returns:

Type Description
dict

A summary containing services that were stopped successfully and those that encountered errors.

Raises:

Type Description
DuploError

If the service could not be stopped.

Parameters:

name positional
The resource name
str
--all, --all
Boolean flag to select all. Defaults to False.
--targets, --targets
The list of targets
str nargs: +

update

Update a service.

Update the state of a service.

Basic CLI Use

Update the replicas to 3 for a service.

duploctl service update <service-name> --replace Replicas 3

Model: ReplicationController
{
  "$defs": {
    "CloudPlatform": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        10
      ],
      "title": "CloudPlatform",
      "type": "integer"
    },
    "Container": {
      "description": "Container",
      "properties": {
        "TenantId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tenantid"
        },
        "State": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "DockerId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Dockerid"
        },
        "InstanceId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Instanceid"
        },
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "Image": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Image"
        }
      },
      "title": "Container",
      "type": "object"
    },
    "ContainerImage": {
      "description": "ContainerImage",
      "properties": {
        "ContainerName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Containername"
        },
        "ImageName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Imagename"
        }
      },
      "title": "ContainerImage",
      "type": "object"
    },
    "ContainerImageHistoryRecord": {
      "description": "ContainerImageHistoryRecord",
      "properties": {
        "Image": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Image"
        },
        "InitContainerImages": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ContainerImage"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Initcontainerimages"
        },
        "AdditionalContainerImages": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ContainerImage"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Additionalcontainerimages"
        },
        "DeployedAt": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Deployedat"
        }
      },
      "title": "ContainerImageHistoryRecord",
      "type": "object"
    },
    "CustomData": {
      "description": "CustomData",
      "properties": {
        "Key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Key"
        },
        "Value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        }
      },
      "title": "CustomData",
      "type": "object"
    },
    "K8SWorkerOs": {
      "description": "    \n    ",
      "enum": [
        0,
        1
      ],
      "title": "K8SWorkerOs",
      "type": "integer"
    },
    "LBConfiguration": {
      "description": "LBConfiguration",
      "properties": {
        "TenantId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tenantid"
        },
        "State": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "ReplicationControllerName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Replicationcontrollername"
        },
        "Protocol": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Protocol"
        },
        "Port": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Port"
        },
        "Cloud": {
          "anyOf": [
            {
              "$ref": "#/$defs/CloudPlatform"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "VirtualIPAddress": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Virtualipaddress"
        },
        "DIPAddresses": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Dipaddresses"
        },
        "HostPort": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Hostport"
        },
        "IsInfraDeployment": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isinfradeployment"
        },
        "DnsName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Dnsname"
        },
        "SetIngressHealthCheck": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Setingresshealthcheck"
        },
        "FrontendIp": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Frontendip"
        },
        "CertificateArn": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Certificatearn"
        },
        "ExternalPort": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Externalport"
        },
        "IsInternal": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isinternal"
        },
        "UseEIPFromPool": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Useeipfrompool"
        },
        "EIPAllocationIds": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Eipallocationids"
        },
        "BeProtocolVersion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Beprotocolversion"
        },
        "AlpnPolicy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Alpnpolicy"
        },
        "CloudName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Cloudname"
        },
        "ForHealthCheck": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Forhealthcheck"
        },
        "HealthCheckUrl": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Healthcheckurl"
        },
        "IsNative": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isnative"
        },
        "LbType": {
          "anyOf": [
            {
              "$ref": "#/$defs/LBType"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "TgCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tgcount"
        },
        "HostNames": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Hostnames"
        },
        "ExternalTrafficPolicy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Externaltrafficpolicy"
        },
        "ExtraSelectorLabels": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/CustomData"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Extraselectorlabels"
        },
        "HealthCheckConfig": {
          "anyOf": [
            {
              "$ref": "#/$defs/LbHealthCheckConfig"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "LbIndex": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Lbindex"
        },
        "TgName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tgname"
        },
        "TgArn": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tgarn"
        },
        "CustomCidrs": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Customcidrs"
        },
        "AllowGlobalAccess": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Allowglobalaccess"
        },
        "IsReadOnly": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isreadonly"
        },
        "OriginalServiceName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Originalservicename"
        },
        "PublishNotReadyAddresses": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Publishnotreadyaddresses"
        },
        "SkipHttpToHttps": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Skiphttptohttps"
        },
        "GcpSettings": {
          "anyOf": [
            {
              "$ref": "#/$defs/LbSettings2"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "LBConfiguration",
      "type": "object"
    },
    "LBType": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "title": "LBType",
      "type": "integer"
    },
    "LbHealthCheckConfig": {
      "description": "LbHealthCheckConfig",
      "properties": {
        "HealthyThresholdCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Healthythresholdcount"
        },
        "UnhealthyThresholdCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Unhealthythresholdcount"
        },
        "HealthCheckTimeoutSeconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Healthchecktimeoutseconds"
        },
        "HealthCheckIntervalSeconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Healthcheckintervalseconds"
        },
        "HttpSuccessCode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Httpsuccesscode"
        },
        "GrpcSuccessCode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Grpcsuccesscode"
        },
        "HealthcheckPort": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Healthcheckport"
        }
      },
      "title": "LbHealthCheckConfig",
      "type": "object"
    },
    "LbSettings2": {
      "description": "LbSettings2",
      "properties": {
        "IpAddress": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ipaddress"
        },
        "BaseName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Basename"
        },
        "IsGlobal": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isglobal"
        },
        "ForwardingRuleUris": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Forwardingruleuris"
        },
        "EnableAccessLogs": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Enableaccesslogs"
        },
        "SessionAffinity": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sessionaffinity"
        },
        "TimeoutSec": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Timeoutsec"
        },
        "ConnectionDrainingTimeoutSec": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Connectiondrainingtimeoutsec"
        },
        "SecurityPolicyId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Securitypolicyid"
        },
        "HttpToHttpsRedirect": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Httptohttpsredirect"
        },
        "MaxRatePerEndpoint": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Maxrateperendpoint"
        }
      },
      "title": "LbSettings2",
      "type": "object"
    },
    "Platform": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8
      ],
      "title": "Platform",
      "type": "integer"
    },
    "PodInterface": {
      "description": "PodInterface",
      "properties": {
        "TenantId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tenantid"
        },
        "State": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "NetworkId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Networkid"
        },
        "IpAddress": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ipaddress"
        },
        "ExternalAddress": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Externaladdress"
        },
        "MacAddress": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Macaddress"
        }
      },
      "title": "PodInterface",
      "type": "object"
    },
    "PodTemplate": {
      "description": "PodTemplate",
      "properties": {
        "TenantId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tenantid"
        },
        "State": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "Containers": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Container"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Containers"
        },
        "InitContainers": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Container"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Initcontainers"
        },
        "Interfaces": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/PodInterface"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Interfaces"
        },
        "UserAccount": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Useraccount"
        },
        "AgentPlatform": {
          "anyOf": [
            {
              "$ref": "#/$defs/Platform"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "Volumes": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Volumes"
        },
        "Commands": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Commands"
        },
        "ApplicationUrl": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Applicationurl"
        },
        "SecondaryTenant": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Secondarytenant"
        },
        "ExtraConfig": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Extraconfig"
        },
        "OtherDockerConfig": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Otherdockerconfig"
        },
        "OtherDockerHostConfig": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Otherdockerhostconfig"
        },
        "DeviceIds": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Deviceids"
        },
        "BaseVersion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Baseversion"
        },
        "LbConfigsVersion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Lbconfigsversion"
        },
        "Cloud": {
          "anyOf": [
            {
              "$ref": "#/$defs/CloudPlatform"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "ImageUpdateTime": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Imageupdatetime"
        },
        "IsReadOnly": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isreadonly"
        },
        "RestartTime": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Restarttime"
        },
        "HelmReleaseName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Helmreleasename"
        },
        "LBConfigurations": {
          "anyOf": [
            {
              "additionalProperties": {
                "$ref": "#/$defs/LBConfiguration"
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Lbconfigurations"
        },
        "LBCCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Lbccount"
        },
        "AllocationTags": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Allocationtags"
        }
      },
      "title": "PodTemplate",
      "type": "object"
    },
    "ResourceQuantity": {
      "description": "ResourceQuantity",
      "properties": {
        "Format": {
          "anyOf": [
            {
              "$ref": "#/$defs/SuffixFormat"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "ResourceQuantity",
      "type": "object"
    },
    "SuffixFormat": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2
      ],
      "title": "SuffixFormat",
      "type": "integer"
    },
    "V1LabelSelector": {
      "description": "V1LabelSelector",
      "properties": {
        "matchExpressions": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/V1LabelSelectorRequirement"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Matchexpressions"
        },
        "matchLabels": {
          "anyOf": [
            {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Matchlabels"
        }
      },
      "title": "V1LabelSelector",
      "type": "object"
    },
    "V1LabelSelectorRequirement": {
      "description": "V1LabelSelectorRequirement",
      "properties": {
        "key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Key"
        },
        "operator": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Operator"
        },
        "values": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Values"
        }
      },
      "title": "V1LabelSelectorRequirement",
      "type": "object"
    },
    "V2CrossVersionObjectReference": {
      "description": "V2CrossVersionObjectReference",
      "properties": {
        "apiVersion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Apiversion"
        },
        "kind": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Kind"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        }
      },
      "title": "V2CrossVersionObjectReference",
      "type": "object"
    },
    "V2ExternalMetricSource": {
      "description": "V2ExternalMetricSource",
      "properties": {
        "metric": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricIdentifier"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "target": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricTarget"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2ExternalMetricSource",
      "type": "object"
    },
    "V2HorizontalPodAutoscalerSpec": {
      "description": "V2HorizontalPodAutoscalerSpec",
      "properties": {
        "maxReplicas": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Maxreplicas"
        },
        "metrics": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/V2MetricSpec"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Metrics"
        },
        "minReplicas": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Minreplicas"
        },
        "scaleTargetRef": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2CrossVersionObjectReference"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2HorizontalPodAutoscalerSpec",
      "type": "object"
    },
    "V2MetricIdentifier": {
      "description": "V2MetricIdentifier",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "selector": {
          "anyOf": [
            {
              "$ref": "#/$defs/V1LabelSelector"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2MetricIdentifier",
      "type": "object"
    },
    "V2MetricSpec": {
      "description": "V2MetricSpec",
      "properties": {
        "external": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2ExternalMetricSource"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "object": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2ObjectMetricSource"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "pods": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2PodsMetricSource"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "resource": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2ResourceMetricSource"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Type"
        }
      },
      "title": "V2MetricSpec",
      "type": "object"
    },
    "V2MetricTarget": {
      "description": "V2MetricTarget",
      "properties": {
        "averageUtilization": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Averageutilization"
        },
        "averageValue": {
          "anyOf": [
            {
              "$ref": "#/$defs/ResourceQuantity"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Type"
        },
        "value": {
          "anyOf": [
            {
              "$ref": "#/$defs/ResourceQuantity"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2MetricTarget",
      "type": "object"
    },
    "V2ObjectMetricSource": {
      "description": "V2ObjectMetricSource",
      "properties": {
        "describedObject": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2CrossVersionObjectReference"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "metric": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricIdentifier"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "target": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricTarget"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2ObjectMetricSource",
      "type": "object"
    },
    "V2PodsMetricSource": {
      "description": "V2PodsMetricSource",
      "properties": {
        "metric": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricIdentifier"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "target": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricTarget"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2PodsMetricSource",
      "type": "object"
    },
    "V2ResourceMetricSource": {
      "description": "V2ResourceMetricSource",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "target": {
          "anyOf": [
            {
              "$ref": "#/$defs/V2MetricTarget"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "V2ResourceMetricSource",
      "type": "object"
    }
  },
  "description": "ReplicationController",
  "properties": {
    "TenantId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tenantid"
    },
    "State": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "State"
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/CustomData"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tags"
    },
    "Name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "AppName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Appname"
    },
    "Index": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Index"
    },
    "Template": {
      "anyOf": [
        {
          "$ref": "#/$defs/PodTemplate"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "Replicas": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Replicas"
    },
    "ReplicasPrev": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Replicasprev"
    },
    "ReplicasActive": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Replicasactive"
    },
    "IsInfraDeployment": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isinfradeployment"
    },
    "DnsPrfx": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Dnsprfx"
    },
    "ElbDnsName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Elbdnsname"
    },
    "LbFrontendIp": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Lbfrontendip"
    },
    "LastDeployedBy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Lastdeployedby"
    },
    "LastDeployedAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Lastdeployedat"
    },
    "ContainerImageHistory": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ContainerImageHistoryRecord"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Containerimagehistory"
    },
    "HPASpecs": {
      "anyOf": [
        {
          "$ref": "#/$defs/V2HorizontalPodAutoscalerSpec"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "ForceStatefulSet": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Forcestatefulset"
    },
    "Fqdn": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Fqdn"
    },
    "FqdnEx": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Fqdnex"
    },
    "ParentDomain": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Parentdomain"
    },
    "IsLBSyncedDeployment": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Islbsynceddeployment"
    },
    "ReplicasMatchingAsgName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Replicasmatchingasgname"
    },
    "IsReplicaCollocationAllowed": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isreplicacollocationallowed"
    },
    "IsAnyHostAllowed": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isanyhostallowed"
    },
    "IsCloudCredsFromK8sServiceAccount": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Iscloudcredsfromk8Sserviceaccount"
    },
    "IsDaemonset": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isdaemonset"
    },
    "IsUniqueK8sNodeRequired": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isuniquek8Snoderequired"
    },
    "ShouldSpreadAcrossZones": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Shouldspreadacrosszones"
    },
    "IsMultiContainerHandled": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Ismulticontainerhandled"
    },
    "K8sWorkerOs": {
      "anyOf": [
        {
          "$ref": "#/$defs/K8SWorkerOs"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "title": "ReplicationController",
  "type": "object"
}

Parameters:

name positional
The resource name
str
--file, -f, --cli-input
A file to read the input from
ReplicationController action: YamlAction
--patches, --add, --remove, --copy, --replace, --test, --move
The json patch to apply
str action: JsonPatchAction

update_env

Update environment variables

Updates the environment variables of a service. If service has no environment variables set, use -strat replace to set new values. You may pass any number of --setvar flags to set multiple environment variables.

Basic CLI Use
duploctl service update_env <service-name> --strategy <replace,merge> --setvar <key> <value>

Example: Update all environment variables All variables for the service would be replaced by the variables in the command. This is a full state refresh.

duploctl service update_env myapp --strategy replace --setvar FOO bar --setvar MESSAGE "Hello?"

Add a new variable
duploctl service update_env myapp --strategy merge --setvar NEW_VAR "New Value"

Parameters:

name positional
The resource name
str
--setvar, -V <key> <value> repeatable
a key and value to set as an environment variable
str nargs: 2
--strategy, -strat
The merge strategy to use. Valid options are "merge" or "replace". Default is merge.
str default: merge
merge replace
--deletevar, -D repeatable
a key to delete from the environment variables
str

update_image

Update the image of a service.

Basic CLI Use
duploctl service update_image <service-name> <service-image>
duploctl service update_image <service-name> --container-image <side-car-container> <container-image>
duploctl service update_image <service-name> --init-container-image <init-container> <init-container-image>
Update Image and Wait

Waits till the desired count of pods all reach the running state with the new image.

duploctl service update_image myapp myimage:latest --wait --loglevel INFO

Returns:

Name Type Description
message dict

Success message

Parameters:

name positional
The resource name
str
image positional
The image to use
str
--container-image, --container-image <key> <value> repeatable
a key and value to set as a side-car container name and image
str nargs: 2
--init-container-image, --init-container-image <key> <value> repeatable
a key and value to set as an init container name and image
str nargs: 2

update_otherdockerconfig

Update Other Docker Config of a service.

Add a new secret reference to OtherDockerConfig:
duploctl service update_otherdockerconfig <service-name> --add EnvFrom/- '{"secretRef":{"name":"add-secret"}}'
Replace existing OtherDockerConfig:
duploctl service update_otherdockerconfig <service-name> --replace /EnvFrom/0/secretRef/name 'updated-secret'

Returns:

Name Type Description
message dict

Success message.

Parameters:

name positional
The resource name
str
--patches, --add, --remove, --copy, --replace, --test, --move
The json patch to apply
str action: JsonPatchAction

update_pod_label

Update pod labels

Updates the labels on the pod of a service. If service has no pod labels set, use -strat replace to set new values.

Basic CLI Use
duploctl service update_pod_label <service-name> --setvar env-key1 env-val1 --setvar env-key2 env-val2 --setvar env-key3 env-val3 --strategy merge --host $DUPLO_HOST --tenant $DUPLO_TENANT --token $DUPLO_TOKEN
duploctl service update_pod_label <service-name> --setvar env-key1 env-val1 --setvar env-key2 env-val2 --strategy replace --host $DUPLO_HOST --tenant $DUPLO_TENANT --token $DUPLO_TOKEN
duploctl service update_pod_label <service-name> --deletevar env-key1 --host $DUPLO_HOST --tenant $DUPLO_TENANT --token $DUPLO_TOKEN

Args: name: The name of the service to update. setvar: A list of key value pairs to set as environment variables. strategy: The merge strategy to use for env vars. Valid options are "merge" or "replace". Default is merge. deletevar: A list of keys to delete from the environment variables.

Returns:

Name Type Description
message

A message about success.

Parameters:

name positional
The resource name
str
--setvar, -V <key> <value> repeatable
a key and value to set as an environment variable
str nargs: 2
--strategy, -strat
The merge strategy to use. Valid options are "merge" or "replace". Default is merge.
str default: merge
merge replace
--deletevar, -D repeatable
a key to delete from the environment variables
str

update_replicas

Scale Service

Update the number of replicas for a service.

Basic CLI Use
duploctl service update_replicas <service-name> --replicas <replicas>
Wait for Scaling

The update replicas supports the global --wait flag. This will wait till the number of pods match the desired count.

duploctl service update_replicas myapp --replicas 99 --wait

Parameters:

name positional
The resource name
str
--replicas, -r
Number of replicas for service
int

Methods

current_replicaset

Get the current replicaset for a service.

Finds the name of the underlying replicaset for a named service.

info

This is not a cli command. It's primarily used internally but could be useful in a custom script.

Parameters:

Name Type Description Default
name str

The name of the service to get replicaset for.

required

Returns:

Type Description
str

The current replicaset for the service.

Raises:

Type Description
DuploError

If the service could not be found.

image_from_body

Get the image from a service body.

info

This is not a cli command. It's primarily used internally but could be useful in a custom script.

Parameters:

Name Type Description Default
body dict

The body of the service.

required

Returns:

Name Type Description
image str

The image for the service.

name_from_body

Service name from body.

Simply returns the services name given an entire service object.

info

This is not a cli command. It's primarily used internally but could be useful in a custom script.

Parameters:

Name Type Description Default
body dict

The service object.

required

Returns:

Name Type Description
name str

The name of the service.