Documentation
¶
Index ¶
- Constants
- type CustomDeploymentStrategyParams
- type DeploymentCause
- type DeploymentCauseImageTrigger
- type DeploymentConfig
- type DeploymentConfigList
- type DeploymentConfigRollback
- type DeploymentConfigRollbackSpec
- type DeploymentDetails
- type DeploymentStatus
- type DeploymentStrategy
- type DeploymentStrategyType
- type DeploymentTemplate
- type DeploymentTriggerImageChangeParams
- type DeploymentTriggerPolicy
- type DeploymentTriggerType
- type ExecNewPodHook
- type LifecycleHook
- type LifecycleHookFailurePolicy
- type RecreateDeploymentStrategyParams
- type RollingDeploymentStrategyParams
Constants ¶
const ( // DefaultRollingTimeoutSeconds is the default TimeoutSeconds for RollingDeploymentStrategyParams. DefaultRollingTimeoutSeconds int64 = 10 * 60 // DefaultRollingIntervalSeconds is the default IntervalSeconds for RollingDeploymentStrategyParams. DefaultRollingIntervalSeconds int64 = 1 // DefaultRollingUpdatePeriodSeconds is the default PeriodSeconds for RollingDeploymentStrategyParams. DefaultRollingUpdatePeriodSeconds int64 = 1 )
const ( // DeploymentConfigAnnotation is an annotation name used to correlate a deployment with the // DeploymentConfig on which the deployment is based. DeploymentConfigAnnotation = "openshift.io/deployment-config.name" // DeploymentAnnotation is an annotation on a deployer Pod. The annotation value is the name // of the deployment (a ReplicationController) on which the deployer Pod acts. DeploymentAnnotation = "openshift.io/deployment.name" // DeploymentPodAnnotation is an annotation on a deployment (a ReplicationController). The // annotation value is the name of the deployer Pod which will act upon the ReplicationController // to implement the deployment behavior. DeploymentPodAnnotation = "openshift.io/deployer-pod.name" // DeployerPodForDeploymentLabel is a label which groups pods related to a // deployment. The value is a deployment name. The deployer pod and hook pods // created by the internal strategies will have this label. Custom // strategies can apply this label to any pods they create, enabling // platform-provided cancellation and garbage collection support. DeployerPodForDeploymentLabel = "openshift.io/deployer-pod-for.name" // DeploymentStatusAnnotation is an annotation name used to retrieve the DeploymentPhase of // a deployment. DeploymentStatusAnnotation = "openshift.io/deployment.phase" // DeploymentEncodedConfigAnnotation is an annotation name used to retrieve specific encoded // DeploymentConfig on which a given deployment is based. DeploymentEncodedConfigAnnotation = "openshift.io/encoded-deployment-config" // DeploymentVersionAnnotation is an annotation on a deployment (a ReplicationController). The // annotation value is the LatestVersion value of the DeploymentConfig which was the basis for // the deployment. DeploymentVersionAnnotation = "openshift.io/deployment-config.latest-version" // DeploymentLabel is the name of a label used to correlate a deployment with the Pod created // to execute the deployment logic. // TODO: This is a workaround for upstream's lack of annotation support on PodTemplate. Once // annotations are available on PodTemplate, audit this constant with the goal of removing it. DeploymentLabel = "deployment" // DeploymentConfigLabel is the name of a label used to correlate a deployment with the // DeploymentConfigs on which the deployment is based. DeploymentConfigLabel = "deploymentconfig" // DesiredReplicasAnnotation represents the desired number of replicas for a // new deployment. // TODO: This should be made public upstream. DesiredReplicasAnnotation = "kubectl.kubernetes.io/desired-replicas" // DeploymentStatusReasonAnnotation represents the reason for deployment being in a given state // Used for specifying the reason for cancellation or failure of a deployment DeploymentStatusReasonAnnotation = "openshift.io/deployment.status-reason" // DeploymentCancelledAnnotation indicates that the deployment has been cancelled // The annotation value does not matter and its mere presence indicates cancellation DeploymentCancelledAnnotation = "openshift.io/deployment.cancelled" )
These constants represent keys used for correlating objects related to deployments.
const ( DeploymentCancelledByUser = "The deployment was cancelled by the user" DeploymentCancelledNewerDeploymentExists = "The deployment was cancelled as a newer deployment was found running" DeploymentFailedDeployerPodNoLongerExists = "The deployment failed as the deployer pod no longer exists" )
These constants represent the various reasons for cancelling a deployment or for a deployment being placed in a failed state
const DeploymentCancelledAnnotationValue = "true"
DeploymentCancelledAnnotationValue represents the value for the DeploymentCancelledAnnotation annotation that signifies that the deployment should be cancelled
const MaxDeploymentDurationSeconds int64 = 21600
MaxDeploymentDurationSeconds represents the maximum duration that a deployment is allowed to run This is set as the default value for ActiveDeadlineSeconds for the deployer pod Currently set to 6 hours
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CustomDeploymentStrategyParams ¶
type CustomDeploymentStrategyParams struct {
// Image specifies a Docker image which can carry out a deployment.
Image string
// Environment holds the environment which will be given to the container for Image.
Environment []kapi.EnvVar
// Command is optional and overrides CMD in the container Image.
Command []string
}
CustomDeploymentStrategyParams are the input to the Custom deployment strategy.
type DeploymentCause ¶
type DeploymentCause struct {
// Type is the type of the trigger that resulted in the creation of a new deployment
Type DeploymentTriggerType
// ImageTrigger contains the image trigger details, if this trigger was fired based on an image change
ImageTrigger *DeploymentCauseImageTrigger
}
DeploymentCause captures information about a particular cause of a deployment.
type DeploymentCauseImageTrigger ¶
type DeploymentCauseImageTrigger struct {
// RepositoryName is the identifier for a Docker image repository that was updated.
RepositoryName string
// Tag is the name of an image repository tag that is now pointing to a new image.
Tag string
}
DeploymentCauseImageTrigger contains information about a deployment caused by an image trigger
type DeploymentConfig ¶
type DeploymentConfig struct {
kapi.TypeMeta
kapi.ObjectMeta
// 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.
Triggers []DeploymentTriggerPolicy
// Template represents a desired deployment state and how to deploy it.
Template DeploymentTemplate
// LatestVersion is used to determine whether the current deployment associated with a DeploymentConfig
// is out of sync.
LatestVersion int
// Details are the reasons for the update to this deployment config.
// This could be based on a change made by the user or caused by an automatic trigger
Details *DeploymentDetails
}
DeploymentConfig represents a configuration for a single deployment (represented as a ReplicationController). It also contains details about changes which resulted in the current state of the DeploymentConfig. Each change to the DeploymentConfig which should result in a new deployment results in an increment of LatestVersion.
func (*DeploymentConfig) IsAnAPIObject ¶
func (*DeploymentConfig) IsAnAPIObject()
type DeploymentConfigList ¶
type DeploymentConfigList struct {
kapi.TypeMeta
kapi.ListMeta
// Items is a list of deployment configs
Items []DeploymentConfig
}
DeploymentConfigList is a collection of deployment configs.
func (*DeploymentConfigList) IsAnAPIObject ¶
func (*DeploymentConfigList) IsAnAPIObject()
type DeploymentConfigRollback ¶
type DeploymentConfigRollback struct {
kapi.TypeMeta
// Spec defines the options to rollback generation.
Spec DeploymentConfigRollbackSpec
}
DeploymentConfigRollback provides the input to rollback generation.
func (*DeploymentConfigRollback) IsAnAPIObject ¶
func (*DeploymentConfigRollback) IsAnAPIObject()
type DeploymentConfigRollbackSpec ¶
type DeploymentConfigRollbackSpec struct {
// From points to a ReplicationController which is a deployment.
From kapi.ObjectReference
// IncludeTriggers specifies whether to include config Triggers.
IncludeTriggers bool
// IncludeTemplate specifies whether to include the PodTemplateSpec.
IncludeTemplate bool
// IncludeReplicationMeta specifies whether to include the replica count and selector.
IncludeReplicationMeta bool
// IncludeStrategy specifies whether to include the deployment Strategy.
IncludeStrategy bool
}
DeploymentConfigRollbackSpec represents the options for rollback generation.
type DeploymentDetails ¶
type DeploymentDetails struct {
// Message is the user specified change message, if this deployment was triggered manually by the user
Message string
// Causes are extended data associated with all the causes for creating a new deployment
Causes []*DeploymentCause
}
DeploymentDetails captures information about the causes of a deployment.
type DeploymentStatus ¶
type DeploymentStatus string
DeploymentStatus describes the possible states a deployment can be in.
const ( // DeploymentStatusNew means the deployment has been accepted but not yet acted upon. DeploymentStatusNew DeploymentStatus = "New" // DeploymentStatusPending means the deployment been handed over to a deployment strategy, // but the strategy has not yet declared the deployment to be running. DeploymentStatusPending DeploymentStatus = "Pending" // DeploymentStatusRunning means the deployment strategy has reported the deployment as // being in-progress. DeploymentStatusRunning DeploymentStatus = "Running" // DeploymentStatusComplete means the deployment finished without an error. DeploymentStatusComplete DeploymentStatus = "Complete" // DeploymentStatusFailed means the deployment finished with an error. DeploymentStatusFailed DeploymentStatus = "Failed" )
type DeploymentStrategy ¶
type DeploymentStrategy struct {
// Type is the name of a deployment strategy.
Type DeploymentStrategyType
// CustomParams are the input to the Custom deployment strategy.
CustomParams *CustomDeploymentStrategyParams
// RecreateParams are the input to the Recreate deployment strategy.
RecreateParams *RecreateDeploymentStrategyParams
// RollingParams are the input to the Rolling deployment strategy.
RollingParams *RollingDeploymentStrategyParams
// Resources contains resource requirements to execute the deployment
Resources kapi.ResourceRequirements
}
DeploymentStrategy describes how to perform a deployment.
type DeploymentStrategyType ¶
type DeploymentStrategyType string
DeploymentStrategyType refers to a specific DeploymentStrategy implementation.
const ( // DeploymentStrategyTypeRecreate is a simple strategy suitable as a default. DeploymentStrategyTypeRecreate DeploymentStrategyType = "Recreate" // DeploymentStrategyTypeCustom is a user defined strategy. DeploymentStrategyTypeCustom DeploymentStrategyType = "Custom" // DeploymentStrategyTypeRolling uses the Kubernetes RollingUpdater. DeploymentStrategyTypeRolling DeploymentStrategyType = "Rolling" )
type DeploymentTemplate ¶
type DeploymentTemplate struct {
// Strategy describes how a deployment is executed.
Strategy DeploymentStrategy
// ControllerTemplate is the desired replication state the deployment works to materialize.
ControllerTemplate kapi.ReplicationControllerSpec
}
DeploymentTemplate contains all the necessary information to create a deployment from a DeploymentStrategy.
type DeploymentTriggerImageChangeParams ¶
type DeploymentTriggerImageChangeParams struct {
// Automatic means that the detection of a new tag value should result in a new deployment.
Automatic bool
// ContainerNames is used to restrict tag updates to the specified set of container names in a pod.
ContainerNames []string
// RepositoryName is the identifier for a Docker image repository to watch for changes.
// DEPRECATED: will be removed in v1beta3.
RepositoryName string
// From is a reference to a Docker image repository to watch for changes. This field takes
// precedence over RepositoryName, which is deprecated and will be removed in v1beta3. The
// Kind may be left blank, in which case it defaults to "ImageRepository". The "Name" is
// the only required subfield - if Namespace is blank, the namespace of the current deployment
// trigger will be used.
From kapi.ObjectReference
// Tag is the name of an image repository tag to watch for changes.
Tag string
// LastTriggeredImage is the last image to be triggered.
LastTriggeredImage string
}
DeploymentTriggerImageChangeParams represents the parameters to the ImageChange trigger.
type DeploymentTriggerPolicy ¶
type DeploymentTriggerPolicy struct {
// Type of the trigger
Type DeploymentTriggerType
// ImageChangeParams represents the parameters for the ImageChange trigger.
ImageChangeParams *DeploymentTriggerImageChangeParams
}
DeploymentTriggerPolicy describes a policy for a single trigger that results in a new deployment.
type DeploymentTriggerType ¶
type DeploymentTriggerType string
DeploymentTriggerType refers to a specific DeploymentTriggerPolicy implementation.
const ( // DeploymentTriggerManual is a placeholder implementation which does nothing. DeploymentTriggerManual DeploymentTriggerType = "Manual" // DeploymentTriggerOnImageChange will create new deployments in response to updated tags from // a Docker image repository. DeploymentTriggerOnImageChange DeploymentTriggerType = "ImageChange" // DeploymentTriggerOnConfigChange will create new deployments in response to changes to // the ControllerTemplate of a DeploymentConfig. DeploymentTriggerOnConfigChange DeploymentTriggerType = "ConfigChange" )
type ExecNewPodHook ¶
type ExecNewPodHook struct {
// Command is the action command and its arguments.
Command []string
// Env is a set of environment variables to supply to the hook pod's container.
Env []kapi.EnvVar
// ContainerName is the name of a container in the deployment pod template
// whose Docker image will be used for the hook pod's container.
ContainerName string
}
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 LifecycleHook ¶
type LifecycleHook struct {
// FailurePolicy specifies what action to take if the hook fails.
FailurePolicy LifecycleHookFailurePolicy
// ExecNewPod specifies the options for a lifecycle hook backed by a pod.
ExecNewPod *ExecNewPodHook
}
LifecycleHook defines a specific deployment lifecycle action.
type LifecycleHookFailurePolicy ¶
type LifecycleHookFailurePolicy string
LifecycleHookFailurePolicy describes possibles actions to take if a hook fails.
const ( // LifecycleHookFailurePolicyRetry means retry the hook until it succeeds. LifecycleHookFailurePolicyRetry LifecycleHookFailurePolicy = "Retry" // LifecycleHookFailurePolicyAbort means abort the deployment (if possible). LifecycleHookFailurePolicyAbort LifecycleHookFailurePolicy = "Abort" // LifecycleHookFailurePolicyIgnore means ignore failure and continue the deployment. LifecycleHookFailurePolicyIgnore LifecycleHookFailurePolicy = "Ignore" )
type RecreateDeploymentStrategyParams ¶
type RecreateDeploymentStrategyParams struct {
// Pre is a lifecycle hook which is executed before the strategy manipulates
// the deployment. All LifecycleHookFailurePolicy values are supported.
Pre *LifecycleHook
// Post is a lifecycle hook which is executed after the strategy has
// finished all deployment logic. The LifecycleHookFailurePolicyAbort policy
// is NOT supported.
Post *LifecycleHook
}
RecreateDeploymentStrategyParams are the input to the Recreate deployment strategy.
type RollingDeploymentStrategyParams ¶
type RollingDeploymentStrategyParams struct {
// UpdatePeriodSeconds is the time to wait between individual pod updates.
// If the value is nil, a default will be used.
UpdatePeriodSeconds *int64
// IntervalSeconds is the time to wait between polling deployment status
// after update. If the value is nil, a default will be used.
IntervalSeconds *int64
// TimeoutSeconds is the time to wait for updates before giving up. If the
// value is nil, a default will be used.
TimeoutSeconds *int64
// Pre is a lifecycle hook which is executed before the deployment process
// begins. All LifecycleHookFailurePolicy values are supported.
Pre *LifecycleHook
// Post is a lifecycle hook which is executed after the strategy has
// finished all deployment logic. The LifecycleHookFailurePolicyAbort policy
// is NOT supported.
Post *LifecycleHook
}
RollingDeploymentStrategyParams are the input to the Rolling deployment strategy.