Skip to content

Infrastructure

Bases: DuploResourceV2

Duplocloud Infrastructure Resource

The infrastructure resource provides a set of commands to manage infrastructures in the Duplo system. An infrastructure defines the underlying cloud environment including VPC, subnets, and Kubernetes clusters.

Basic CLI Use
duploctl infrastructure <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

create

Create Infrastructure

Create a new infrastructure. When used with the --wait flag, the command will poll until the infrastructure reaches a Complete provisioning status.

Basic CLI Use
duploctl infrastructure create --file infra.yaml
Infrastructure Body

Contents of the infra.yaml file

EnableK8Cluster: false
EnableECSCluster: false
AzCount: 2
Vnet:
  SubnetCidr: 22
Cloud: 0
Region: us-east-2

Create One Liner
echo """
EnableK8Cluster: false
EnableECSCluster: false
AzCount: 2
Vnet:
  SubnetCidr: 22
Cloud: 0
Region: us-east-2

""" | duploctl infrastructure create -f -

Returns:

Name Type Description
message

A success message.

Model: Infrastructure
{
  "$defs": {
    "AksAadConfig": {
      "description": "AksAadConfig",
      "properties": {
        "IsAzureRbacEnabled": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isazurerbacenabled"
        },
        "IsManagedAadEnabled": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ismanagedaadenabled"
        },
        "TenantId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tenantid"
        },
        "AdminGroupObjectIds": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Admingroupobjectids"
        }
      },
      "title": "AksAadConfig",
      "type": "object"
    },
    "CloudPlatform": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        10
      ],
      "title": "CloudPlatform",
      "type": "integer"
    },
    "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"
    },
    "ImportVpcConfig": {
      "description": "ImportVpcConfig",
      "properties": {
        "PrivateSubnets": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Privatesubnets"
        },
        "PublicSubnets": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Publicsubnets"
        },
        "VpcId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Vpcid"
        },
        "EnableMasterVpcPeering": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Enablemastervpcpeering"
        }
      },
      "title": "ImportVpcConfig",
      "type": "object"
    },
    "InfraType": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2
      ],
      "title": "InfraType",
      "type": "integer"
    },
    "InfrastructureAksConfig": {
      "description": "InfrastructureAksConfig",
      "properties": {
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "AksUrl": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Aksurl"
        },
        "ApiServerToken": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Apiservertoken"
        },
        "CreateAndManage": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Createandmanage"
        },
        "PrivateCluster": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Privatecluster"
        },
        "K8sVersion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "K8Sversion"
        },
        "VmSize": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Vmsize"
        },
        "State": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "NetworkPlugin": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Networkplugin"
        },
        "NodeResourceGroup": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Noderesourcegroup"
        },
        "OutboundType": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Outboundtype"
        },
        "EnableAutoScaling": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Enableautoscaling"
        },
        "NodeCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Nodecount"
        },
        "MaxCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Maxcount"
        },
        "MinCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Mincount"
        },
        "MaxPods": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Maxpods"
        },
        "EnableWorkloadIdentity": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Enableworkloadidentity"
        },
        "EnableBlobCsiDriver": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Enableblobcsidriver"
        },
        "DisableRunCommand": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Disableruncommand"
        },
        "AddCriticalTaintToSystemAgentPool": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Addcriticaltainttosystemagentpool"
        },
        "SystemAgentPoolTaints": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Systemagentpooltaints"
        },
        "EnableImageCleaner": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Enableimagecleaner"
        },
        "ImageCleanerIntervalInDays": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Imagecleanerintervalindays"
        },
        "PricingTier": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Pricingtier"
        },
        "LinuxAdminUsername": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Linuxadminusername"
        },
        "LinuxSshPublicKey": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Linuxsshpublickey"
        },
        "AadConfig": {
          "anyOf": [
            {
              "$ref": "#/$defs/AksAadConfig"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "InfrastructureAksConfig",
      "type": "object"
    },
    "InfrastructureLogAnalyticsConfig": {
      "description": "InfrastructureLogAnalyticsConfig",
      "properties": {
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "ResourceGroup": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Resourcegroup"
        },
        "SharedKey": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sharedkey"
        },
        "CustomerId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Customerid"
        }
      },
      "title": "InfrastructureLogAnalyticsConfig",
      "type": "object"
    },
    "InfrastructureP2SCert": {
      "description": "InfrastructureP2SCert",
      "properties": {
        "GatewayName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Gatewayname"
        },
        "UniqueCertName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Uniquecertname"
        },
        "CertName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Certname"
        },
        "RootCertName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Rootcertname"
        },
        "Email": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Email"
        },
        "Status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Status"
        }
      },
      "title": "InfrastructureP2SCert",
      "type": "object"
    },
    "InfrastructureRecoveryServicesVault": {
      "description": "InfrastructureRecoveryServicesVault",
      "properties": {
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "ResourceGroup": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Resourcegroup"
        }
      },
      "title": "InfrastructureRecoveryServicesVault",
      "type": "object"
    },
    "InfrastructureSg": {
      "description": "InfrastructureSg",
      "properties": {
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "SystemId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Systemid"
        },
        "Rules": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/InfrastructureSgRule"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Rules"
        },
        "ReadOnly": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Readonly"
        },
        "SgType": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sgtype"
        },
        "SubnetName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Subnetname"
        }
      },
      "title": "InfrastructureSg",
      "type": "object"
    },
    "InfrastructureSgRule": {
      "description": "InfrastructureSgRule",
      "properties": {
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "SrcRuleType": {
          "anyOf": [
            {
              "$ref": "#/$defs/SgRuleType"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "SrcAddressPrefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Srcaddressprefix"
        },
        "DstRuleType": {
          "anyOf": [
            {
              "$ref": "#/$defs/SgRuleType"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "DstAddressPrefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Dstaddressprefix"
        },
        "SourcePortRange": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sourceportrange"
        },
        "DestinationPortRange": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Destinationportrange"
        },
        "Protocol": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Protocol"
        },
        "Direction": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Direction"
        },
        "RuleAction": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ruleaction"
        },
        "NSGName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Nsgname"
        },
        "Priority": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Priority"
        }
      },
      "title": "InfrastructureSgRule",
      "type": "object"
    },
    "InfrastructureSubnet": {
      "description": "InfrastructureSubnet",
      "properties": {
        "AddressPrefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Addressprefix"
        },
        "NameEx": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Nameex"
        },
        "Id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "SubnetType": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Subnettype"
        },
        "Zone": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Zone"
        },
        "Tags": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Tag"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tags"
        },
        "ServiceEndpoints": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Serviceendpoints"
        },
        "IsolatedNetwork": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Isolatednetwork"
        },
        "Region": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Region"
        }
      },
      "title": "InfrastructureSubnet",
      "type": "object"
    },
    "InfrastructureVnet": {
      "description": "InfrastructureVnet",
      "properties": {
        "AddressPrefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Addressprefix"
        },
        "SubnetCidr": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Subnetcidr"
        },
        "Subnets": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/InfrastructureSubnet"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Subnets"
        },
        "SecurityGroups": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/InfrastructureSg"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Securitygroups"
        },
        "P2SRootCerts": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/InfrastructureP2SCert"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "P2Srootcerts"
        },
        "CustomPublicSubnetCidrs": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Custompublicsubnetcidrs"
        },
        "CustomPrivateSubnetCidrs": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Customprivatesubnetcidrs"
        },
        "Id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "VNetRgName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Vnetrgname"
        }
      },
      "title": "InfrastructureVnet",
      "type": "object"
    },
    "K8sVendor": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2
      ],
      "title": "K8sVendor",
      "type": "integer"
    },
    "OnPremConfig": {
      "description": "OnPremConfig",
      "properties": {
        "OnPremK8Config": {
          "anyOf": [
            {
              "$ref": "#/$defs/OnPremK8Config"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "Datacenter": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Datacenter"
        }
      },
      "title": "OnPremConfig",
      "type": "object"
    },
    "OnPremEKSConfig": {
      "description": "OnPremEKSConfig",
      "properties": {
        "PrivateSubnets": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Privatesubnets"
        },
        "PublicSubnets": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Publicsubnets"
        },
        "VpcId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Vpcid"
        },
        "IngressSecurityGroupIds": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ingresssecuritygroupids"
        }
      },
      "title": "OnPremEKSConfig",
      "type": "object"
    },
    "OnPremK8Config": {
      "description": "OnPremK8Config",
      "properties": {
        "Name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "ClusterEndpoint": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Clusterendpoint"
        },
        "ApiToken": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Apitoken"
        },
        "CertificateAuthorityDataBase64": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Certificateauthoritydatabase64"
        },
        "Vendor": {
          "anyOf": [
            {
              "$ref": "#/$defs/K8sVendor"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "OnPremEKSConfig": {
          "anyOf": [
            {
              "$ref": "#/$defs/OnPremEKSConfig"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "OnPremK8Config",
      "type": "object"
    },
    "PeerSubnet": {
      "description": "PeerSubnet",
      "properties": {
        "InfraName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Infraname"
        },
        "SubnetName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Subnetname"
        }
      },
      "title": "PeerSubnet",
      "type": "object"
    },
    "SgRuleType": {
      "description": "    \n    ",
      "enum": [
        0,
        1,
        2
      ],
      "title": "SgRuleType",
      "type": "integer"
    },
    "Tag": {
      "description": "Tag",
      "properties": {
        "Key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Key"
        },
        "Value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        }
      },
      "title": "Tag",
      "type": "object"
    }
  },
  "description": "Infrastructure",
  "properties": {
    "Name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "Accountid": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Accountid"
    },
    "Cloud": {
      "anyOf": [
        {
          "$ref": "#/$defs/CloudPlatform"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "Vnet": {
      "anyOf": [
        {
          "$ref": "#/$defs/InfrastructureVnet"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "AksConfig": {
      "anyOf": [
        {
          "$ref": "#/$defs/InfrastructureAksConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "OnPremConfig": {
      "anyOf": [
        {
          "$ref": "#/$defs/OnPremConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "ImportVpcConfig": {
      "anyOf": [
        {
          "$ref": "#/$defs/ImportVpcConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "LogAnalyticsConfig": {
      "anyOf": [
        {
          "$ref": "#/$defs/InfrastructureLogAnalyticsConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "RecoveryVaultConfig": {
      "anyOf": [
        {
          "$ref": "#/$defs/InfrastructureRecoveryServicesVault"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "Region": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Region"
    },
    "AzCount": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Azcount"
    },
    "EnableK8Cluster": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Enablek8Cluster"
    },
    "DisableNatCreation": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Disablenatcreation"
    },
    "ClusterIpv4Cidr": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Clusteripv4Cidr"
    },
    "IsServerlessKubernetes": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Isserverlesskubernetes"
    },
    "EnableECSCluster": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Enableecscluster"
    },
    "EnableContainerInsights": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Enablecontainerinsights"
    },
    "CustomData": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/CustomData"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Customdata"
    },
    "VpcPeers": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Vpcpeers"
    },
    "VpcPeerSubnets": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/PeerSubnet"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Vpcpeersubnets"
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/CustomData"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tags"
    },
    "Type": {
      "anyOf": [
        {
          "$ref": "#/$defs/InfraType"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "HubName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hubname"
    },
    "PlanCreated": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Plancreated"
    },
    "ProvisioningStatus": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Provisioningstatus"
    }
  },
  "title": "Infrastructure",
  "type": "object"
}

Parameters:

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

delete

Delete Infrastructure

Delete an infrastructure by name.

Basic CLI Use
duploctl infrastructure delete <name>

Returns:

Name Type Description
message

A success message.

Parameters:

name positional
The resource name
str

eks_config

EKS Configuration

Retrieve EKS session credentials for the current user scoped to an infrastructure plan.

Basic CLI Use
duploctl infrastructure eks_config --plan <plan-name>

Returns:

Name Type Description
eks_config

The EKS cluster configuration and credentials.

Parameters:

--plan, -P
The plan name.
str env: $DUPLO_PLAN

faults

Infrastructure Faults

Retrieve a list of all faults across infrastructures in the Duplo system.

Basic CLI Use
duploctl infrastructure faults <name>

Returns:

Name Type Description
faults list

A list of infrastructure faults.

Parameters:

name positional
The resource name
str

find

Find Infrastructure

Find an infrastructure by name.

Basic CLI Use
duploctl infrastructure find <name>

Returns:

Name Type Description
infrastructure

The infrastructure object.

Raises:

Type Description
DuploNotFound

If the infrastructure does not exist. Raised by the HTTP client layer when the API returns a 404 response.

Parameters:

name positional
The resource name
str

list

List Infrastructures

Retrieve a list of all infrastructures in the Duplo system.

Basic CLI Use
duploctl infrastructure list

Returns:

Name Type Description
infrastructures list

A list of all infrastructures.

update

Update Infrastructure

Infrastructure fields are immutable after creation; this command validates that the caller is not attempting to change any field and returns a success message when the infrastructure already exists with the expected configuration.

Basic CLI Use
duploctl infrastructure update <name> --file infra.yaml

Returns:

Name Type Description
message dict

A success message indicating the infrastructure exists.

Raises:

Type Description
DuploNotFound

If the infrastructure does not exist. This is raised by find() via the HTTP client layer on a 404 response, and intentionally allowed to bubble up so that apply() can catch it and branch to create() instead.

DuploError

If any fields in the body differ from the existing infrastructure (all fields are immutable).

Parameters:

name positional
The resource name
str
--file, -f, --cli-input
A file to read the input from
FileType('r') action: YamlAction