Service
Commands
apply
Apply a service.
Parameters:
--file, -f, --cli-input
--wait, -w
bulk_update_image
Bulk Update Images
Bulk update the image of multiple services.
Basic CLI Use
Returns:
| Name | Type | Description |
|---|---|---|
message |
dict
|
A message about success. |
Parameters:
--serviceimage, -S
repeatable
create
Create a service.
Create a service in Duplocloud.
Basic CLI Use
Contents of theservice.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.
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
delete
expose
Expose a service.
Exposes a service through a load balancer. Attaches a Duplocloud service lb configuration to the service.
Basic CLI Use
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
--container-port, --container-port
--external-port, --external-port
--lb-type, --lb-type
applicationlb
k8clusterip
k8nodeport
networklb
targetgrouponly
--protocol, --protocol
http
https
tcp
udp
tls
--visibility, --visibility
public
private
--mode, --mode
docker-mode
native-app
--health-check-url, --health-check-url
find
list
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.
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.
Returns:
| Name | Type | Description |
|---|---|---|
logs |
dict
|
A big list of logs. |
Parameters:
name
positional
pods
Get Pods
Get a list of all of the pods owned by this service.
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
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.
Wait for Restart
This command supports the global --wait. Waits for the desired count of pods to become ready.
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
rollback
Rollback Service
Roll back a service to a specific revision (if provided) or the last known good state.
Usage
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
--revision, --to-revision
start
Start a service.
Start a service.
Basic CLI Use
Wait for Start
This command supports the global --wait. Waits for the desired count of pods to become ready.
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
--all, --all
--targets, --targets
stop
Stop a service.
Stop a service.
Basic CLI Use
Wait for Stop
This command supports the global --wait. Waits for all pods to disappear.
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
--all, --all
--targets, --targets
update
Update a service.
Update the state of a service.
Basic CLI Use
Update the replicas to 3 for a service.
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
--file, -f, --cli-input
--patches, --add, --remove, --copy, --replace, --test, --move
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
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.
Parameters:
name
positional
--setvar, -V
repeatable
--strategy, -strat
merge
replace
--deletevar, -D
repeatable
update_image
Update the image of a service.
Basic CLI Use
Update Image and Wait
Waits till the desired count of pods all reach the running state with the new image.
Returns:
| Name | Type | Description |
|---|---|---|
message |
dict
|
Success message |
Parameters:
name
positional
image
positional
--container-image, --container-image
repeatable
--init-container-image, --init-container-image
repeatable
update_otherdockerconfig
Update Other Docker Config of a service.
Add a new secret reference to OtherDockerConfig:
Replace existing OtherDockerConfig:
Returns:
| Name | Type | Description |
|---|---|---|
message |
dict
|
Success message. |
Parameters:
name
positional
--patches, --add, --remove, --copy, --replace, --test, --move
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
--setvar, -V
repeatable
--strategy, -strat
merge
replace
--deletevar, -D
repeatable
update_replicas
Scale Service
Update the number of replicas for a service.
Wait for Scaling
The update replicas supports the global --wait flag. This will wait till the number of pods match the desired count.
Parameters:
name
positional
--replicas, -r
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. |