Configure and apply Kubernetes resources

Octopus.KubernetesDeployContainers exported 2026-07-22 by Octopus Deploy belongs to ‘Kubernetes’ category.

Deploys Kubernetes resources such as Deployments, StatefulSets, DaemonSets, and Jobs with container images, services, ingresses, config maps, and secrets.

Parameters

When this step is included in a project’s deployment process, the parameters below can be set.

Resource Type

Octopus.Action.KubernetesContainers.DeploymentResourceType (required)

Select whether to deploy a Deployment, StatefulSet, DaemonSet, or Job.

Allowed values: Deployment, StatefulSet, DaemonSet, Job

Default: Deployment

Deployment name

Octopus.Action.KubernetesContainers.DeploymentName (required)

The name of the deployment resource. Must be unique, and is used by Kubernetes when updating an existing resource.

Example: my-deployment

Replicas

Octopus.Action.KubernetesContainers.Replicas

The number of pod replicas to create from this deployment.

Default: 1

Example: 3

Revision history limit

Octopus.Action.KubernetesContainers.RevisionHistoryLimit

The number of revisions to retain.

Example: 10

Progression deadline in seconds

Octopus.Action.KubernetesContainers.ProgressDeadlineSeconds

The maximum time in seconds for a deployment to make progress before it is considered to be failed.

Default: 600

Example: 600

Pod termination grace period in seconds

Octopus.Action.KubernetesContainers.TerminationGracePeriodSeconds

The time to wait for a pod to be terminated.

Default: 30

Labels

Octopus.Action.KubernetesContainers.DeploymentLabels

Labels applied to the deployment resource, pods managed by the deployment resource, the service, and the ingress. Provided as a JSON object of key-value pairs.

Example: {"app": "my-app"}

Deployment Strategy

Octopus.Action.KubernetesContainers.DeploymentStyle

How the deployment will be updated.

Allowed values: Recreate, RollingUpdate, BlueGreen

Default: RollingUpdate

Max Unavailable

Octopus.Action.KubernetesContainers.MaxUnavailable

When a RollingUpdate is used, this value indicates how many pods can be offline during an update.

Max Surge

Octopus.Action.KubernetesContainers.MaxSurge

When a RollingUpdate is used, this value indicates how many additional pods can be online during an update.

Containers

Octopus.Action.KubernetesContainers.Containers (required)

The details of the containers, including ports, environment variables, volume mounts, resource limits, probes, and lifecycle hooks. Provided as a JSON array.

Volumes

Octopus.Action.KubernetesContainers.CombinedVolumes

The details of the volumes available to the containers, including ConfigMap, Secret, EmptyDir, HostPath, PersistentVolumeClaim, and raw YAML volumes. Provided as a JSON array.

Pod Affinity

Octopus.Action.KubernetesContainers.PodAffinity

Pod affinity rules for scheduling. Provided as a JSON array.

Pod Anti-Affinity

Octopus.Action.KubernetesContainers.PodAntiAffinity

Pod anti-affinity rules for scheduling. Provided as a JSON array.

Node Affinity

Octopus.Action.KubernetesContainers.NodeAffinity

Node affinity rules for pod placement. Provided as a JSON array.

Tolerations

Octopus.Action.KubernetesContainers.Tolerations

Specifies which taints the pod can tolerate. Provided as a JSON array.

Node Selectors

Octopus.Action.KubernetesContainers.NodeSelectors

Node selectors for pod placement, as a JSON object of key-value pairs.

Deployment Annotations

Octopus.Action.KubernetesContainers.DeploymentAnnotations

Annotations applied to the deployment resource. Provided as a JSON object of key-value pairs.

Pod Annotations

Octopus.Action.KubernetesContainers.PodAnnotations

Annotations applied to the pod resource created by the deployment. Provided as a JSON object of key-value pairs.

Namespace

Octopus.Action.KubernetesContainers.Namespace

The Kubernetes namespace for the deployment.

Deployment Paused

Octopus.Action.KubernetesContainers.DeploymentPaused

Whether the deployment is paused.

Allowed values: True, False

Default: False

Pod Readiness Gates

Octopus.Action.KubernetesContainers.PodReadinessGates

Readiness gates assigned to a pod. Provided as a JSON array of condition types.

Pod Service Account Name

Octopus.Action.KubernetesContainers.PodServiceAccountName

The pod service account name.

Pod Priority Class Name

Octopus.Action.KubernetesContainers.PriorityClassName

The priority class name of the pod.

Host Aliases

Octopus.Action.KubernetesContainers.HostAliases

Host aliases for the pod. Provided as a JSON array of IP and hostname mappings.

Pod Restart Policy

Octopus.Action.KubernetesContainers.RestartPolicy

The restart policy applied to all containers in the Pod.

Allowed values: Always, OnFailure, Never

Default: Always

DNS Policy

Octopus.Action.KubernetesContainers.DnsPolicy

The DNS policy for the pods in this deployment.

Allowed values: Default, ClusterFirst, ClusterFirstWithHostNet, None

DNS Config Nameservers

Octopus.Action.KubernetesContainers.DnsConfigNameservers

DNS policy config nameservers for the pod.

DNS Config Searches

Octopus.Action.KubernetesContainers.DnsConfigSearches

DNS policy config searches for the pod.

DNS Config Options

Octopus.Action.KubernetesContainers.DnsConfigOptions

DNS policy config options for the pod.

Host Networking

Octopus.Action.KubernetesContainers.HostNetwork

Whether the pod uses host networking.

Allowed values: True, False

Default: False

Pod Security FS Group

Octopus.Action.KubernetesContainers.PodSecurityFsGroup

The Pod Security fsGroup field.

Pod Security Run As Group

Octopus.Action.KubernetesContainers.PodSecurityRunAsGroup

The Pod Security runAsGroup field.

Pod Security Run As User

Octopus.Action.KubernetesContainers.PodSecurityRunAsUser

The Pod Security runAsUser field.

Pod Security Run As Non-Root

Octopus.Action.KubernetesContainers.PodSecurityRunAsNonRoot

The Pod Security runAsNonRoot field.

Allowed values: True, False

Pod Security SELinux Level

Octopus.Action.KubernetesContainers.PodSecuritySeLinuxLevel

The Pod Security SELinux level field.

Pod Security SELinux Role

Octopus.Action.KubernetesContainers.PodSecuritySeLinuxRole

The Pod Security SELinux role field.

Pod Security SELinux Type

Octopus.Action.KubernetesContainers.PodSecuritySeLinuxType

The Pod Security SELinux type field.

Pod Security SELinux User

Octopus.Action.KubernetesContainers.PodSecuritySeLinuxUser

The Pod Security SELinux user field.

Pod Security Sysctls

Octopus.Action.KubernetesContainers.PodSecuritySysctls

The Pod Security sysctls list.

Pod Security Supplemental Groups

Octopus.Action.KubernetesContainers.PodSecuritySupplementalGroups

The Pod Security supplemental groups as a comma-separated list.

Pod Management Policy

Octopus.Action.KubernetesContainers.PodManagementPolicy

The StatefulSet pod management policy.

Allowed values: OrderedReady, Parallel

Default: OrderedReady

Service Name Type

Octopus.Action.KubernetesContainers.ServiceNameType

The type of service that the StatefulSet is linked to. Can be None, External, or Managed.

Allowed values: None, External, Managed

StatefulSet Service Name

Octopus.Action.KubernetesContainers.StatefulSetServiceName

The name of the service that the StatefulSet is linked to.

Persistent Volume Claims

Octopus.Action.KubernetesContainers.PersistentVolumeClaims

Persistent volume claims for a StatefulSet. Provided as a JSON array.

Partition

Octopus.Action.KubernetesContainers.Partition

The deployment partition for a StatefulSet.

Min Ready Seconds

Octopus.Action.KubernetesContainers.MinReadySeconds

The minimum number of seconds for which a newly created pod should be ready.

Completions

Octopus.Action.KubernetesContainers.Completions

The number of pods to create for a Kubernetes Job.

Parallelism

Octopus.Action.KubernetesContainers.Parallelism

The number of pods that can run at the same time for a Kubernetes Job.

Backoff Limit

Octopus.Action.KubernetesContainers.BackoffLimit

The maximum number of pods that can be created for a Kubernetes Job when the job fails.

Active Deadline Seconds

Octopus.Action.KubernetesContainers.ActiveDeadlineSeconds

The number of seconds a Kubernetes Job should run.

TTL Seconds After Finished

Octopus.Action.KubernetesContainers.TtlSecondsAfterFinished

The number of seconds after completion before a Kubernetes Job is cleaned up.

Service Name

Octopus.Action.KubernetesContainers.ServiceName

The name of the Kubernetes service resource.

Service Type

Octopus.Action.KubernetesContainers.ServiceType

The type of the Kubernetes service.

Allowed values: ClusterIP, NodePort, LoadBalancer

Default: ClusterIP

Service Ports

Octopus.Action.KubernetesContainers.ServicePorts

The details of the service ports. Provided as a JSON array.

Service Cluster IP

Octopus.Action.KubernetesContainers.ServiceClusterIp

The cluster IP address of the service.

Service Load Balancer IP

Octopus.Action.KubernetesContainers.ServiceLoadBalancerIp

The load balancer IP address of the service.

Service Annotations

Octopus.Action.KubernetesContainers.LoadBalancerAnnotations

Annotations associated with the Kubernetes service. Provided as a JSON object of key-value pairs.

Ingress Name

Octopus.Action.KubernetesContainers.IngressName

The name of the Kubernetes ingress resource.

Ingress Class Name

Octopus.Action.KubernetesContainers.IngressClassName

The name of the ingress class.

Ingress Annotations

Octopus.Action.KubernetesContainers.IngressAnnotations

Annotations applied to the ingress. Provided as a JSON array.

Ingress Rules

Octopus.Action.KubernetesContainers.IngressRules

The ingress rules. Provided as a JSON array of host and path configurations.

Ingress TLS Certificates

Octopus.Action.KubernetesContainers.IngressTlsCertificates

The ingress TLS certificate/host mappings. Provided as a JSON array.

Config Map Name

Octopus.Action.KubernetesContainers.ConfigMapName

The name of the ConfigMap resource.

Config Map Items

Octopus.Action.KubernetesContainers.ConfigMapValues

The ConfigMap resource values. Provided as a JSON object of key-value pairs.

Secret Name

Octopus.Action.KubernetesContainers.SecretName

The name of the Secret resource.

Secret Items

Octopus.Action.KubernetesContainers.SecretValues

The Secret resource values. Provided as a JSON object of key-value pairs.

Custom Resources

Octopus.Action.KubernetesContainers.CustomResourceYaml

Raw YAML for additional resources managed during a deployment.

Custom Resources File Name

Octopus.Action.KubernetesContainers.CustomResourceYamlFileName

The name of the file containing the Kubernetes custom resources.

Deployment Wait

Octopus.Action.KubernetesContainers.DeploymentWait

Controls the verification strategy for the deployment. ‘Wait’ uses the legacy rollout status check. ‘NoWait’ is used with the modern resource status check or no verification.

Allowed values: Wait, NoWait

Default: NoWait

Resource Status Check

Octopus.Action.Kubernetes.ResourceStatusCheck

Whether to verify that Kubernetes objects reached their desired state after deployment.

Allowed values: True, False

Default: True

Wait for Jobs

Octopus.Action.Kubernetes.WaitForJobs

Whether to wait for Kubernetes Jobs to complete during the step. Only applicable when the resource type is Job.

Allowed values: True, False

Default: False

Step Timeout

Octopus.Action.Kubernetes.DeploymentTimeout

The maximum time in seconds the step is allowed to run before being terminated.

Default: 180

Server-Side Apply

Octopus.Action.Kubernetes.ServerSideApply.Enabled

Whether to use server-side apply (—server-side) when calling kubectl apply.

Allowed values: True, False

Default: True

Force Conflicts

Octopus.Action.Kubernetes.ServerSideApply.ForceConflicts

Whether to forcefully overwrite conflicts (—force-conflicts) when using server-side apply.

Allowed values: True, False

Default: True

Optional features

Enable features by adding their IDs to Octopus.Action.EnabledFeatures (a comma-separated list).

Kubernetes Service Octopus.Features.KubernetesService

Create a Kubernetes Service to expose pods.

Octopus.Action.KubernetesContainers.ServiceName

Octopus.Action.KubernetesContainers.ServiceName

Name of the Service resource.

Octopus.Action.KubernetesContainers.ServiceType

Octopus.Action.KubernetesContainers.ServiceType

Type of Service.

Allowed values: ClusterIP, NodePort, LoadBalancer

Octopus.Action.KubernetesContainers.ServicePorts

Octopus.Action.KubernetesContainers.ServicePorts

JSON array of service port definitions.

Octopus.Action.KubernetesContainers.ServiceClusterIp

Octopus.Action.KubernetesContainers.ServiceClusterIp

Cluster IP address for the Service.

Octopus.Action.KubernetesContainers.ServiceLoadBalancerIp

Octopus.Action.KubernetesContainers.ServiceLoadBalancerIp

Load balancer IP for LoadBalancer type services.

Octopus.Action.KubernetesContainers.LoadBalancerAnnotations

Octopus.Action.KubernetesContainers.LoadBalancerAnnotations

JSON object of annotations for the Service.

Kubernetes Ingress Octopus.Features.KubernetesIngress

Create a Kubernetes Ingress to route external traffic.

Octopus.Action.KubernetesContainers.IngressName

Octopus.Action.KubernetesContainers.IngressName

Name of the Ingress resource.

Octopus.Action.KubernetesContainers.IngressClassName

Octopus.Action.KubernetesContainers.IngressClassName

Ingress class name.

Octopus.Action.KubernetesContainers.IngressRules

Octopus.Action.KubernetesContainers.IngressRules

JSON array of ingress rules (hosts, paths, backends).

Octopus.Action.KubernetesContainers.IngressAnnotations

Octopus.Action.KubernetesContainers.IngressAnnotations

JSON object of ingress annotations.

Octopus.Action.KubernetesContainers.IngressTlsCertificates

Octopus.Action.KubernetesContainers.IngressTlsCertificates

JSON array of TLS certificate/host mappings.

Kubernetes ConfigMap Octopus.Features.KubernetesConfigMap

Create a Kubernetes ConfigMap resource.

Octopus.Action.KubernetesContainers.ConfigMapName

Octopus.Action.KubernetesContainers.ConfigMapName

Name of the ConfigMap resource.

Octopus.Action.KubernetesContainers.ConfigMapValues

Octopus.Action.KubernetesContainers.ConfigMapValues

JSON object of key-value pairs for the ConfigMap data.

Kubernetes Secret Octopus.Features.KubernetesSecret

Create a Kubernetes Secret resource.

Octopus.Action.KubernetesContainers.SecretName

Octopus.Action.KubernetesContainers.SecretName

Name of the Secret resource.

Octopus.Action.KubernetesContainers.SecretValues

Octopus.Action.KubernetesContainers.SecretValues

JSON object of key-value pairs for the Secret data.

Kubernetes Custom Resource Octopus.Features.KubernetesCustomResource

Deploy additional Kubernetes resources defined as raw YAML.

Octopus.Action.KubernetesContainers.CustomResourceYaml

Octopus.Action.KubernetesContainers.CustomResourceYaml

Raw YAML content for custom resources.

Step configuration using OCL

Example in Octopus Configuration Language (OCL):

step "deploy-k8s-containers" {
    name = "Deploy K8s Containers"
    properties = {
        Octopus.Action.TargetRoles = "k8s-cluster"
    }

    action {
        action_type = "Octopus.KubernetesDeployContainers"
        properties = {
            Octopus.Action.Kubernetes.DeploymentTimeout = "180"
            Octopus.Action.Kubernetes.ResourceStatusCheck = "True"
            Octopus.Action.KubernetesContainers.Containers = "[{\"Name\":\"myapp\",\"PackageId\":\"myapp\"}]"
            Octopus.Action.KubernetesContainers.DeploymentName = "myapp"
            Octopus.Action.KubernetesContainers.DeploymentResourceType = "Deployment"
            Octopus.Action.KubernetesContainers.DeploymentStyle = "RollingUpdate"
            Octopus.Action.KubernetesContainers.Namespace = "default"
            Octopus.Action.KubernetesContainers.Replicas = "1"
            Octopus.Action.Package.DownloadOnTentacle = "False"
            Octopus.Action.Package.FeedId = "docker-hub"
            Octopus.Action.Package.PackageId = "myapp"
            Octopus.Action.RunOnServer = "false"
        }

        packages {
            acquisition_location = "Server"
            feed = "docker-hub"
            package_id = "myapp"
        }
    }
}

Page updated on Wednesday, July 22, 2026