Description

Deployment Configs define the template for a pod and manages deploying new images or configuration changes. A single deployment configuration is usually analogous to a single micro-service. Can support many different deployment patterns, including full restart, customizable rolling updates, and fully custom behaviors, as well as pre- and post- deployment hooks. Each individual deployment is represented as a replication controller.

A deployment is "triggered" when its configuration is changed or a tag in an Image Stream is changed. Triggers can be disabled to allow manual control over a deployment. The "strategy" determines how the deployment is carried out and may be changed at any time. The `latestVersion` field is updated when a new deployment is triggered by any means.

Type

object

Required
  • spec

Specification

Property Type Description

.apiVersion

string

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

.kind

string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

.metadata

ObjectMeta meta/v1

.spec

object

DeploymentConfigSpec represents the desired state of the deployment.

.status

object

DeploymentConfigStatus represents the current deployment state.

.spec
Description

DeploymentConfigSpec represents the desired state of the deployment.

Type

object

Property Type Description

minReadySeconds

integer

MinReadySeconds is the minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)

paused

boolean

Paused indicates that the deployment config is paused resulting in no new deployments on template changes or changes in the template caused by other triggers.

replicas

integer

Replicas is the number of desired replicas.

revisionHistoryLimit

integer

RevisionHistoryLimit is the number of old ReplicationControllers to retain to allow for rollbacks. This field is a pointer to allow for differentiation between an explicit zero and not specified. Defaults to 10. (This only applies to DeploymentConfigs created via the new group API resource, not the legacy resource.)

selector

object (string)

Selector is a label query over pods that should match the Replicas count.

strategy

object

DeploymentStrategy describes how to perform a deployment.

template

PodTemplateSpec core/v1

Template is the object that describes the pod that will be created if insufficient replicas are detected.

test

boolean

Test ensures that this deployment config will have zero replicas except while a deployment is running. This allows the deployment config to be used as a continuous deployment test - triggering on images, running the deployment, and then succeeding or failing. Post strategy hooks and After actions can be used to integrate successful deployment with an action.

triggers

array

Triggers determine how updates to a DeploymentConfig result in new deployments. If no triggers are defined, a new deployment can only occur as a result of an explicit client update to the DeploymentConfig with a new LatestVersion. If null, defaults to having a config change trigger.

triggers[]

object

DeploymentTriggerPolicy describes a policy for a single trigger that results in a new deployment.

.spec.strategy
Description

DeploymentStrategy describes how to perform a deployment.

Type

object

Property Type Description

activeDeadlineSeconds

integer

ActiveDeadlineSeconds is the duration in seconds that the deployer pods for this deployment config may be active on a node before the system actively tries to terminate them.

annotations

object (string)

Annotations is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods.

customParams

object

CustomDeploymentStrategyParams are the input to the Custom deployment strategy.

labels

object (string)

Labels is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods.

recreateParams

object

RecreateDeploymentStrategyParams are the input to the Recreate deployment strategy.

resources

ResourceRequirements core/v1

Resources contains resource requirements to execute the deployment and any hooks.

rollingParams

object

RollingDeploymentStrategyParams are the input to the Rolling deployment strategy.

type

string

Type is the name of a deployment strategy.

.spec.strategy.customParams
Description

CustomDeploymentStrategyParams are the input to the Custom deployment strategy.

Type

object

Property Type Description

command

array (string)

Command is optional and overrides CMD in the container Image.

environment

array (EnvVar core/v1)

Environment holds the environment which will be given to the container for Image.

image

string

Image specifies a container image which can carry out a deployment.

.spec.strategy.recreateParams
Description

RecreateDeploymentStrategyParams are the input to the Recreate deployment strategy.

Type

object

Property Type Description

mid

object

LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.

post

object

LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.

pre

object

LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.

timeoutSeconds

integer

TimeoutSeconds is the time to wait for updates before giving up. If the value is nil, a default will be used.

.spec.strategy.recreateParams.mid
Description

LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.

Type

object

Required
  • failurePolicy

Property Type Description

execNewPod

object

ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.

failurePolicy

string

FailurePolicy specifies what action to take if the hook fails.

tagImages

array

TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.

tagImages[]

object

TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.

.spec.strategy.recreateParams.mid.execNewPod
Description

ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.

Type

object

Required
  • command

  • containerName

Property Type Description

command

array (string)

Command is the action command and its arguments.

containerName

string

ContainerName is the name of a container in the deployment pod template whose container image will be used for the hook pod’s container.

env

array (EnvVar core/v1)

Env is a set of environment variables to supply to the hook pod’s container.

volumes

array (string)

Volumes is a list of named volumes from the pod template which should be copied to the hook pod. Volumes names not found in pod spec are ignored. An empty list means no volumes will be copied.

.spec.strategy.recreateParams.mid.tagImages
Description

TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.

Type

array

.spec.strategy.recreateParams.mid.tagImages[]
Description

TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.

Type

object

Required
  • containerName

  • to

Property Type Description

containerName

string

ContainerName is the name of a container in the deployment config whose image value will be used as the source of the tag. If there is only a single container this value will be defaulted to the name of that container.

to

ObjectReference core/v1

To is the target ImageStreamTag to set the container’s image onto.

.spec.strategy.recreateParams.post
Description

LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.

Type

object

Required
  • failurePolicy

Property Type Description

execNewPod

object

ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.

failurePolicy

string

FailurePolicy specifies what action to take if the hook fails.

tagImages

array

TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.

tagImages[]

object

TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.

.spec.strategy.recreateParams.post.execNewPod
Description

ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.

Type

object

Required
  • command

  • containerName

Property Type Description

command

array (string)

Command is the action command and its arguments.

containerName

string

ContainerName is the name of a container in the deployment pod template whose container image will be used for the hook pod’s container.

env

array (EnvVar core/v1)

Env is a set of environment variables to supply to the hook pod’s container.

volumes

array (string)

Volumes is a list of named volumes from the pod template which should be copied to the hook pod. Volumes names not found in pod spec are ignored. An empty list means no volumes will be copied.

.spec.strategy.recreateParams.post.tagImages
Description

TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.

Type

array

.spec.strategy.recreateParams.post.tagImages[]
Description

TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.

Type

object

Required
  • containerName

  • to

Property Type Description

containerName

string

ContainerName is the name of a container in the deployment config whose image value will be used as the source of the tag. If there is only a single container this value will be defaulted to the name of that container.

to

ObjectReference core/v1

To is the target ImageStreamTag to set the container’s image onto.

.spec.strategy.recreateParams.pre
Description

LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.

Type

object

Required
  • failurePolicy

Property Type Description

execNewPod

object

ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.

failurePolicy

string

FailurePolicy specifies what action to take if the hook fails.

tagImages

array

TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.

tagImages[]

object

TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.

.spec.strategy.recreateParams.pre.execNewPod
Description

ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.

Type

object

Required
  • command

  • containerName

Property Type Description

command

array (string)

Command is the action command and its arguments.

containerName

string

ContainerName is the name of a container in the deployment pod template whose container image will be used for the hook pod’s container.

env

array (EnvVar core/v1)

Env is a set of environment variables to supply to the hook pod’s container.

volumes

array (string)

Volumes is a list of named volumes from the pod template which should be copied to the hook pod. Volumes names not found in pod spec are ignored. An empty list means no volumes will be copied.

.spec.strategy.recreateParams.pre.tagImages
Description

TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.

Type

array

.spec.strategy.recreateParams.pre.tagImages[]
Description

TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.

Type

object

Required
  • containerName

  • to

Property Type Description

containerName

string

ContainerName is the name of a container in the deployment config whose image value will be used as the source of the tag. If there is only a single container this value will be defaulted to the name of that container.

to

ObjectReference core/v1

To is the target ImageStreamTag to set the container’s image onto.

.spec.strategy.rollingParams
Description

RollingDeploymentStrategyParams are the input to the Rolling deployment strategy.

Type

object

Property Type Description

intervalSeconds

integer

IntervalSeconds is the time to wait between polling deployment status after update. If the value is nil, a default will be used.

maxSurge

IntOrString util/intstr

MaxSurge is the maximum number of pods that can be scheduled above the original number of pods. Value can be an absolute number (ex: 5) or a percentage of total pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up.

This cannot be 0 if MaxUnavailable is 0. By default, 25% is used.

Example: when this is set to 30%, the new RC can be scaled up by 30% immediately when the rolling update starts. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of original pods.

maxUnavailable

IntOrString util/intstr

MaxUnavailable is the maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total pods at the start of update (ex: 10%). Absolute number is calculated from percentage by rounding down.

This cannot be 0 if MaxSurge is 0. By default, 25% is used.

Example: when this is set to 30%, the old RC can be scaled down by 30% immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that at least 70% of original number of pods are available at all times during the update.

post

object

LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.

pre

object

LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.

timeoutSeconds

integer

TimeoutSeconds is the time to wait for updates before giving up. If the value is nil, a default will be used.

updatePeriodSeconds

integer

UpdatePeriodSeconds is the time to wait between individual pod updates. If the value is nil, a default will be used.

.spec.strategy.rollingParams.post
Description

LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.

Type

object

Required
  • failurePolicy

Property Type Description

execNewPod

object

ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.

failurePolicy

string

FailurePolicy specifies what action to take if the hook fails.

tagImages

array

TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.

tagImages[]

object

TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.

.spec.strategy.rollingParams.post.execNewPod
Description

ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.

Type

object

Required
  • command

  • containerName

Property Type Description

command

array (string)

Command is the action command and its arguments.

containerName

string

ContainerName is the name of a container in the deployment pod template whose container image will be used for the hook pod’s container.

env

array (EnvVar core/v1)

Env is a set of environment variables to supply to the hook pod’s container.

volumes

array (string)

Volumes is a list of named volumes from the pod template which should be copied to the hook pod. Volumes names not found in pod spec are ignored. An empty list means no volumes will be copied.

.spec.strategy.rollingParams.post.tagImages
Description

TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.

Type

array

.spec.strategy.rollingParams.post.tagImages[]
Description

TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.

Type

object

Required
  • containerName

  • to

Property Type Description

containerName

string

ContainerName is the name of a container in the deployment config whose image value will be used as the source of the tag. If there is only a single container this value will be defaulted to the name of that container.

to

ObjectReference core/v1

To is the target ImageStreamTag to set the container’s image onto.

.spec.strategy.rollingParams.pre
Description

LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.

Type

object

Required
  • failurePolicy

Property Type Description

execNewPod

object

ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.

failurePolicy

string

FailurePolicy specifies what action to take if the hook fails.

tagImages

array

TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.

tagImages[]

object

TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.

.spec.strategy.rollingParams.pre.execNewPod
Description

ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.

Type

object

Required
  • command

  • containerName

Property Type Description

command

array (string)

Command is the action command and its arguments.

containerName

string

ContainerName is the name of a container in the deployment pod template whose container image will be used for the hook pod’s container.

env

array (EnvVar core/v1)

Env is a set of environment variables to supply to the hook pod’s container.

volumes

array (string)

Volumes is a list of named volumes from the pod template which should be copied to the hook pod. Volumes names not found in pod spec are ignored. An empty list means no volumes will be copied.

.spec.strategy.rollingParams.pre.tagImages
Description

TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.

Type

array

.spec.strategy.rollingParams.pre.tagImages[]
Description

TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.

Type

object

Required
  • containerName

  • to

Property Type Description

containerName

string

ContainerName is the name of a container in the deployment config whose image value will be used as the source of the tag. If there is only a single container this value will be defaulted to the name of that container.

to

ObjectReference core/v1

To is the target ImageStreamTag to set the container’s image onto.

.spec.triggers
Description

Triggers determine how updates to a DeploymentConfig result in new deployments. If no triggers are defined, a new deployment can only occur as a result of an explicit client update to the DeploymentConfig with a new LatestVersion. If null, defaults to having a config change trigger.

Type

array

.spec.triggers[]
Description

DeploymentTriggerPolicy describes a policy for a single trigger that results in a new deployment.

Type

object

Property Type Description

imageChangeParams

object

DeploymentTriggerImageChangeParams represents the parameters to the ImageChange trigger.

type

string

Type of the trigger

.spec.triggers[].imageChangeParams
Description

DeploymentTriggerImageChangeParams represents the parameters to the ImageChange trigger.

Type

object

Required
  • from

Property Type Description

automatic

boolean

Automatic means that the detection of a new tag value should result in an image update inside the pod template.

containerNames

array (string)

ContainerNames is used to restrict tag updates to the specified set of container names in a pod. If multiple triggers point to the same containers, the resulting behavior is undefined. Future API versions will make this a validation error. If ContainerNames does not point to a valid container, the trigger will be ignored. Future API versions will make this a validation error.

from

ObjectReference core/v1

From is a reference to an image stream tag to watch for changes. From.Name is the only required subfield - if From.Namespace is blank, the namespace of the current deployment trigger will be used.

lastTriggeredImage

string

LastTriggeredImage is the last image to be triggered.

.status
Description

DeploymentConfigStatus represents the current deployment state.

Type

object

Required
  • latestVersion

  • observedGeneration

  • replicas

  • updatedReplicas

  • availableReplicas

  • unavailableReplicas

Property Type Description

availableReplicas

integer

AvailableReplicas is the total number of available pods targeted by this deployment config.

conditions

array

Conditions represents the latest available observations of a deployment config’s current state.

conditions[]

object

DeploymentCondition describes the state of a deployment config at a certain point.

details

object

DeploymentDetails captures information about the causes of a deployment.

latestVersion

integer

LatestVersion is used to determine whether the current deployment associated with a deployment config is out of sync.

observedGeneration

integer

ObservedGeneration is the most recent generation observed by the deployment config controller.

readyReplicas

integer

Total number of ready pods targeted by this deployment.

replicas

integer

Replicas is the total number of pods targeted by this deployment config.

unavailableReplicas

integer

UnavailableReplicas is the total number of unavailable pods targeted by this deployment config.

updatedReplicas

integer

UpdatedReplicas is the total number of non-terminated pods targeted by this deployment config that have the desired template spec.

.status.conditions
Description

Conditions represents the latest available observations of a deployment config's current state.

Type

array

.status.conditions[]
Description

DeploymentCondition describes the state of a deployment config at a certain point.

Type

object

Required
  • type

  • status

Property Type Description

lastTransitionTime

Time meta/v1

The last time the condition transitioned from one status to another.

lastUpdateTime

Time meta/v1

The last time this condition was updated.

message

string

A human readable message indicating details about the transition.

reason

string

The reason for the condition’s last transition.

status

string

Status of the condition, one of True, False, Unknown.

type

string

Type of deployment condition.

.status.details
Description

DeploymentDetails captures information about the causes of a deployment.

Type

object

Required
  • causes

Property Type Description

causes

array

Causes are extended data associated with all the causes for creating a new deployment

causes[]

object

DeploymentCause captures information about a particular cause of a deployment.

message

string

Message is the user specified change message, if this deployment was triggered manually by the user

.status.details.causes
Description

Causes are extended data associated with all the causes for creating a new deployment

Type

array

.status.details.causes[]
Description

DeploymentCause captures information about a particular cause of a deployment.

Type

object

Required
  • type

Property Type Description

imageTrigger

object

DeploymentCauseImageTrigger represents details about the cause of a deployment originating from an image change trigger

type

string

Type of the trigger that resulted in the creation of a new deployment

.status.details.causes[].imageTrigger
Description

DeploymentCauseImageTrigger represents details about the cause of a deployment originating from an image change trigger

Type

object

Required
  • from

Property Type Description

from

ObjectReference core/v1

From is a reference to the changed object which triggered a deployment. The field may have the kinds DockerImage, ImageStreamTag, or ImageStreamImage.