common

package
v0.0.0-...-8ba3647 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AgentDeploymentNameLabelKey label key use to link a Resource to a DatadogAgent
	AgentDeploymentNameLabelKey = "agent.datadoghq.com/name"
	// AgentDeploymentComponentLabelKey label key use to know with component is it
	AgentDeploymentComponentLabelKey = "agent.datadoghq.com/component"
)

// Labels

View Source
const (
	CreateStrategyEnabled = "DD_DAP_CREATE_STRATEGY_ENABLED"
)

DatadogAgentProfile env var names

Variables

This section is empty.

Functions

This section is empty.

Types

type AgentContainerName

type AgentContainerName string

AgentContainerName is the name of a container inside an Agent component

const (
	// InitVolumeContainerName is the name of the Init Volume init container
	InitVolumeContainerName AgentContainerName = "init-volume"
	// InitConfigContainerName is the name of the Init config Volume init container
	InitConfigContainerName AgentContainerName = "init-config"
	// SeccompSetupContainerName is the name of the Seccomp Setup init container
	SeccompSetupContainerName AgentContainerName = "seccomp-setup"

	// UnprivilegedSingleAgentContainerName is the name of a container which may run
	// any combination of Core, Trace and Process Agent processes in a single container.
	UnprivilegedSingleAgentContainerName AgentContainerName = "unprivileged-single-agent"
	// CoreAgentContainerName is the name of the Core Agent container
	CoreAgentContainerName AgentContainerName = "agent"
	// TraceAgentContainerName is the name of the Trace Agent container
	TraceAgentContainerName AgentContainerName = "trace-agent"
	// ProcessAgentContainerName is the name of the Process Agent container
	ProcessAgentContainerName AgentContainerName = "process-agent"
	// SecurityAgentContainerName is the name of the Security Agent container
	SecurityAgentContainerName AgentContainerName = "security-agent"
	// SystemProbeContainerName is the name of the System Probe container
	SystemProbeContainerName AgentContainerName = "system-probe"
	// OtelAgent is the name of the OTel container
	OtelAgent AgentContainerName = "otel-agent"
	// AgentDataPlaneContainerName is the name of the Agent Data Plane container
	AgentDataPlaneContainerName AgentContainerName = "agent-data-plane"
	// AllContainers is used internally to reference all containers in the pod
	AllContainers AgentContainerName = "all"
	// ClusterAgentContainerName is the name of the Cluster Agent container
	ClusterAgentContainerName AgentContainerName = "cluster-agent"
	// ClusterChecksRunnersContainerName is the name of the Agent container in Cluster Checks Runners
	ClusterChecksRunnersContainerName AgentContainerName = "agent"

	// FIPSProxyContainerName is the name of the FIPS Proxy container
	FIPSProxyContainerName AgentContainerName = "fips-proxy"
)

type DatadogPodAutoscalerCondition

type DatadogPodAutoscalerCondition struct {
	// DatadogPodAutoscalerConditionType is the type of DatadogPodAutoscaler condition.
	Type DatadogPodAutoscalerConditionType `json:"type"`

	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`

	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`

	// The reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`

	// A human readable message indicating details about the transition.
	// +optional
	Message string `json:"message,omitempty"`
}

DatadogPodAutoscalerCondition describes the state of DatadogPodAutoscaler. +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerCondition) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerCondition.

func (*DatadogPodAutoscalerCondition) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerConditionType

type DatadogPodAutoscalerConditionType string

DatadogPodAutoscalerConditionType is the type used to represent a DatadogPodAutoscaler condition

const (
	// DatadogPodAutoscalerErrorCondition is true when a global error is encountered processing this DatadogPodAutoscaler.
	DatadogPodAutoscalerErrorCondition DatadogPodAutoscalerConditionType = "Error"

	// DatadogPodAutoscalerActiveCondition is true when the DatadogPodAutoscaler can be used for autoscaling.
	DatadogPodAutoscalerActiveCondition DatadogPodAutoscalerConditionType = "Active"

	// DatadogPodAutoscalerHorizontalAbleToRecommendCondition is true when a horizontal recommendation can be received from Datadog.
	DatadogPodAutoscalerHorizontalAbleToRecommendCondition DatadogPodAutoscalerConditionType = "HorizontalAbleToRecommend"

	// DatadogPodAutoscalerHorizontalAbleToScaleCondition is true when horizontal scaling is working correctly.
	DatadogPodAutoscalerHorizontalAbleToScaleCondition DatadogPodAutoscalerConditionType = "HorizontalAbleToScale"

	// DatadogPodAutoscalerHorizontalScalingLimitedCondition is true when horizontal scaling is limited by constraints.
	DatadogPodAutoscalerHorizontalScalingLimitedCondition DatadogPodAutoscalerConditionType = "HorizontalScalingLimited"

	// DatadogPodAutoscalerVerticalAbleToRecommendCondition is true when a vertical recommendation can be received from Datadog.
	DatadogPodAutoscalerVerticalAbleToRecommendCondition DatadogPodAutoscalerConditionType = "VerticalAbleToRecommend"

	// DatadogPodAutoscalerVerticalAbleToApply is true when the targetRef can be rolled out to pick up new resources.
	DatadogPodAutoscalerVerticalAbleToApply DatadogPodAutoscalerConditionType = "VerticalAbleToApply"
)

type DatadogPodAutoscalerConstraints

type DatadogPodAutoscalerConstraints struct {
	// MinReplicas is the lower limit for the number of pod replicas. Needs to be >= 1. Defaults to 1.
	// +kubebuilder:validation:Minimum=1
	MinReplicas *int32 `json:"minReplicas,omitempty"`

	// MaxReplicas is the upper limit for the number of POD replicas. Needs to be >= minReplicas.
	MaxReplicas int32 `json:"maxReplicas"`

	// Containers defines constraints for the containers.
	Containers []DatadogPodAutoscalerContainerConstraints `json:"containers,omitempty"`
}

DatadogPodAutoscalerConstraints defines constraints that should always be respected. +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerConstraints) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerConstraints.

func (*DatadogPodAutoscalerConstraints) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerContainerConstraints

type DatadogPodAutoscalerContainerConstraints struct {
	// Name is the name of the container. Can be "*" to apply to all containers.
	Name string `json:"name"`

	// Enabled, if false, allows one to disable resource autoscaling for the container. Defaults to true.
	Enabled *bool `json:"enabled,omitempty"`

	// Requests defines the constraints for the requests of the container.
	Requests *DatadogPodAutoscalerContainerResourceConstraints `json:"requests,omitempty"`
}

DatadogPodAutoscalerContainerConstraints defines constraints that should always be respected for a container. If no constraints are set, it enables resource scaling for all containers without any constraints. +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerContainerConstraints) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerContainerConstraints.

func (*DatadogPodAutoscalerContainerConstraints) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerContainerResourceConstraints

type DatadogPodAutoscalerContainerResourceConstraints struct {
	// MinAllowed is the lower limit for the requests of the container.
	// +optional
	MinAllowed corev1.ResourceList `json:"minAllowed,omitempty"`

	// MaxAllowed is the upper limit for the requests of the container.
	// +optional
	MaxAllowed corev1.ResourceList `json:"maxAllowed,omitempty"`
}

DatadogPodAutoscalerContainerResourceConstraints defines constraints for the resources recommended for a container. +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerContainerResourceConstraints) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerContainerResourceConstraints.

func (*DatadogPodAutoscalerContainerResourceConstraints) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerContainerResourceObjective

type DatadogPodAutoscalerContainerResourceObjective struct {
	// Name is the name of the resource.
	// +kubebuilder:validation:Enum:=cpu
	Name corev1.ResourceName `json:"name"`

	// Value is the value of the objective
	Value DatadogPodAutoscalerObjectiveValue `json:"value"`

	// Container is the name of the container.
	Container string `json:"container"`
}

DatadogPodAutoscalerContainerResourceObjective defines a container-level resource objective (for instance, CPU Utilization for container named "foo" at 80%) +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerContainerResourceObjective) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerContainerResourceObjective.

func (*DatadogPodAutoscalerContainerResourceObjective) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerContainerResources

type DatadogPodAutoscalerContainerResources struct {
	// Name is the name of the container
	Name string `json:"name"`

	// Limits describes the maximum amount of compute resources allowed.
	// +optional
	Limits corev1.ResourceList `json:"limits,omitempty"`

	// Requests describes the requested amount of compute resources.
	// +optional
	Requests corev1.ResourceList `json:"requests,omitempty"`
}

+kubebuilder:object:generate=true

func (*DatadogPodAutoscalerContainerResources) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerContainerResources.

func (*DatadogPodAutoscalerContainerResources) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerHorizontalAction

type DatadogPodAutoscalerHorizontalAction struct {
	// Time is the timestamp of the action
	Time metav1.Time `json:"time"`

	// FromReplicas is the number of replicas before the action
	FromReplicas int32 `json:"replicas"`

	// ToReplicas is the effective number of replicas after the action
	ToReplicas int32 `json:"toReplicas"`

	// RecommendedReplicas is the original number of replicas recommended by Datadog
	RecommendedReplicas *int32 `json:"recommendedReplicas,omitempty"`

	// LimitedReason is the reason why the action was limited (that is ToReplicas != RecommendedReplicas)
	LimitedReason *string `json:"limitedReason,omitempty"`
}

DatadogPodAutoscalerHorizontalAction represents a horizontal action done by the controller +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerHorizontalAction) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerHorizontalAction.

func (*DatadogPodAutoscalerHorizontalAction) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerHorizontalStatus

type DatadogPodAutoscalerHorizontalStatus struct {
	// Target is the current target of the horizontal scaling
	Target *DatadogPodAutoscalerHorizontalTargetStatus `json:"target,omitempty"`

	// LastActions are the last successful actions done by the controller
	LastActions []DatadogPodAutoscalerHorizontalAction `json:"lastActions,omitempty"`
}

DatadogPodAutoscalerHorizontalStatus defines the status of the horizontal scaling +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerHorizontalStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerHorizontalStatus.

func (*DatadogPodAutoscalerHorizontalStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerHorizontalTargetStatus

type DatadogPodAutoscalerHorizontalTargetStatus struct {
	// Source is the source of the value used to scale the target workload
	Source DatadogPodAutoscalerValueSource `json:"source"`

	// GeneratedAt is the timestamp at which the recommendation was generated
	GeneratedAt metav1.Time `json:"generatedAt,omitempty"`

	// Replicas is the desired number of replicas for the workload
	Replicas int32 `json:"desiredReplicas"`
}

DatadogPodAutoscalerHorizontalTargetStatus defines the current target of the horizontal scaling +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerHorizontalTargetStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerHorizontalTargetStatus.

func (*DatadogPodAutoscalerHorizontalTargetStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerObjective

type DatadogPodAutoscalerObjective struct {
	// Type sets the type of the objective.
	Type DatadogPodAutoscalerObjectiveType `json:"type"`

	// PodResource allows to set a pod-level resource objective.
	PodResource *DatadogPodAutoscalerPodResourceObjective `json:"podResource,omitempty"`

	// ContainerResource allows to set a container-level resource objective.
	ContainerResource *DatadogPodAutoscalerContainerResourceObjective `json:"containerResource,omitempty"`
}

DatadogPodAutoscalerObjective defines the objectives to reach and maintain for the target workload. +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerObjective) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerObjective.

func (*DatadogPodAutoscalerObjective) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerObjectiveType

type DatadogPodAutoscalerObjectiveType string

DatadogPodAutoscalerObjectiveType defines the type of the objective. +kubebuilder:validation:Enum:=PodResource;ContainerResource

const (
	// DatadogPodAutoscalerPodResourceObjectiveType allows to set pod-level resource objectives.
	DatadogPodAutoscalerPodResourceObjectiveType DatadogPodAutoscalerObjectiveType = "PodResource"

	// DatadogPodAutoscalerContainerResourceObjectiveType allows to set container-level resource objectives.
	DatadogPodAutoscalerContainerResourceObjectiveType DatadogPodAutoscalerObjectiveType = "ContainerResource"
)

type DatadogPodAutoscalerObjectiveValue

type DatadogPodAutoscalerObjectiveValue struct {
	// Type specifies how the value is expressed (possible values: Utilization).
	Type DatadogPodAutoscalerObjectiveValueType `json:"type"`

	// Utilization defines a percentage of the target compared to requested workload
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=100
	Utilization *int32 `json:"utilization,omitempty"`
}

DatadogPodAutoscalerObjectiveValue defines the target value of the objective. +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerObjectiveValue) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerObjectiveValue.

func (*DatadogPodAutoscalerObjectiveValue) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerObjectiveValueType

type DatadogPodAutoscalerObjectiveValueType string

DatadogPodAutoscalerObjectiveValueType specifies the type of objective value. kubebuilder:validation:Enum:=Utilization

const (
	// DatadogPodAutoscalerUtilizationObjectiveValueType declares an objective based on a Utilization (percentage, 0-100).
	DatadogPodAutoscalerUtilizationObjectiveValueType DatadogPodAutoscalerObjectiveValueType = "Utilization"
)

type DatadogPodAutoscalerOwner

type DatadogPodAutoscalerOwner string

DatadogPodAutoscalerOwner defines the source of truth for this object (local or remote) +kubebuilder:validation:Enum:=Local;Remote

const (
	// DatadogPodAutoscalerLocalOwner states that this `DatadogPodAutoscaler` object is created/managed outside of the Datadog app.
	DatadogPodAutoscalerLocalOwner DatadogPodAutoscalerOwner = "Local"

	// DatadogPodAutoscalerRemoteOwner states that this `DatadogPodAutoscaler` object is created/managed in the Datadog app.
	DatadogPodAutoscalerRemoteOwner DatadogPodAutoscalerOwner = "Remote"
)

type DatadogPodAutoscalerPodResourceObjective

type DatadogPodAutoscalerPodResourceObjective struct {
	// Name is the name of the resource.
	// +kubebuilder:validation:Enum:=cpu
	Name corev1.ResourceName `json:"name"`

	// Value is the value of the objective.
	Value DatadogPodAutoscalerObjectiveValue `json:"value"`
}

DatadogPodAutoscalerPodResourceObjective defines a pod-level resource objective (for instance, CPU Utilization at 80%) For pod-level objectives, resources are the sum of all containers resources. Utilization is computed from sum(usage) / sum(requests). +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerPodResourceObjective) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerPodResourceObjective.

func (*DatadogPodAutoscalerPodResourceObjective) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerScalingPolicy

type DatadogPodAutoscalerScalingPolicy struct {
	// Strategy is used to specify which policy should be used.
	// If not set, the default value Max is used.
	// +optional
	Strategy *DatadogPodAutoscalerScalingStrategySelect `json:"strategy,omitempty"`

	// Rules is a list of potential scaling polices which can be used during scaling.
	// At least one policy must be specified, otherwise the DatadogPodAutoscalerScalingPolicy will be discarded as invalid
	// +listType=atomic
	// +optional
	Rules []DatadogPodAutoscalerScalingRule `json:"rules,omitempty"`

	// StabilizationWindowSeconds is the number of seconds the controller should lookback at previous recommendations
	// before deciding to apply a new one. Defaults to 0.
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=1800
	StabilizationWindowSeconds int32 `json:"stabilizationWindowSeconds,omitempty"`
}

DatadogPodAutoscalerScalingPolicy defines the policy to scale the target workload. +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerScalingPolicy) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerScalingPolicy.

func (*DatadogPodAutoscalerScalingPolicy) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerScalingRule

type DatadogPodAutoscalerScalingRule struct {
	// Type is used to specify the scaling policy.
	Type DatadogPodAutoscalerScalingRuleType `json:"type"`

	// Value contains the amount of change which is permitted by the policy.
	// Setting it to 0 will prevent any scaling in this direction.
	// +kubebuilder:validation:Minimum=0
	Value int32 `json:"value"`

	// PeriodSeconds specifies the window of time for which the policy should hold true.
	// PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=1800
	PeriodSeconds int32 `json:"periodSeconds"`
}

DatadogPodAutoscalerScalingRule defines rules for horizontal scaling that should be true for a certain amount of time. +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerScalingRule) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerScalingRule.

func (*DatadogPodAutoscalerScalingRule) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerScalingRuleType

type DatadogPodAutoscalerScalingRuleType string

DatadogPodAutoscalerScalingRuleType defines how a scaling rule value should be interpreted. +kubebuilder:validation:Enum:=Pods;Percent

const (
	// DatadogPodAutoscalerPodsScalingRuleType specifies a change in the absolute number of pods compared to the starting number of pods.
	DatadogPodAutoscalerPodsScalingRuleType DatadogPodAutoscalerScalingRuleType = "Pods"

	// DatadogPodAutoscalerPercentScalingRuleType specifies a relative amount of change compared to the starting number of pods.
	DatadogPodAutoscalerPercentScalingRuleType DatadogPodAutoscalerScalingRuleType = "Percent"
)

type DatadogPodAutoscalerScalingStrategySelect

type DatadogPodAutoscalerScalingStrategySelect string

DatadogPodAutoscalerScalingStrategySelect is used to specify which policy should be used while scaling in a certain direction +kubebuilder:validation:Enum:=Max;Min;Disabled

const (
	// DatadogPodAutoscalerMaxChangeStrategySelect selects the policy with the highest possible change.
	DatadogPodAutoscalerMaxChangeStrategySelect DatadogPodAutoscalerScalingStrategySelect = "Max"

	// DatadogPodAutoscalerMinChangeStrategySelect selects the policy with the lowest possible change.
	DatadogPodAutoscalerMinChangeStrategySelect DatadogPodAutoscalerScalingStrategySelect = "Min"

	// DatadogPodAutoscalerDisabledStrategySelect disables the scaling in this direction.
	DatadogPodAutoscalerDisabledStrategySelect DatadogPodAutoscalerScalingStrategySelect = "Disabled"
)

type DatadogPodAutoscalerStatus

type DatadogPodAutoscalerStatus struct {
	// Vertical is the status of the vertical scaling, if activated.
	// +optional
	Vertical *DatadogPodAutoscalerVerticalStatus `json:"vertical,omitempty"`

	// Horizontal is the status of the horizontal scaling, if activated.
	// +optional
	Horizontal *DatadogPodAutoscalerHorizontalStatus `json:"horizontal,omitempty"`

	// CurrentReplicas is the current number of pods for the targetRef observed by the controller.
	// +optional
	CurrentReplicas *int32 `json:"currentReplicas,omitempty"`

	// Conditions describe the current state of the DatadogPodAutoscaler operations.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []DatadogPodAutoscalerCondition `json:"conditions,omitempty"`
}

DatadogPodAutoscalerStatus defines the observed state of DatadogPodAutoscaler +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerStatus.

func (*DatadogPodAutoscalerStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerUpdatePolicy

type DatadogPodAutoscalerUpdatePolicy struct {
	// Strategy defines the mode of the update policy.
	Strategy DatadogPodAutoscalerUpdateStrategy `json:"strategy,omitempty"`
}

DatadogPodAutoscalerUpdatePolicy defines the policy to update the target workload. +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerUpdatePolicy) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerUpdatePolicy.

func (*DatadogPodAutoscalerUpdatePolicy) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerUpdateStrategy

type DatadogPodAutoscalerUpdateStrategy string

DatadogPodAutoscalerUpdateStrategy defines the mode of the update policy. +kubebuilder:validation:Enum:=Auto;Disabled

const (
	// DatadogPodAutoscalerAutoUpdateStrategy is the default mode.
	DatadogPodAutoscalerAutoUpdateStrategy DatadogPodAutoscalerUpdateStrategy = "Auto"

	// DatadogPodAutoscalerDisabledUpdateStrategy will disable the update of the target workload.
	DatadogPodAutoscalerDisabledUpdateStrategy DatadogPodAutoscalerUpdateStrategy = "Disabled"
)

type DatadogPodAutoscalerValueSource

type DatadogPodAutoscalerValueSource string

DatadogPodAutoscalerValueSource defines the source of the value used to scale the target workload.

const (
	// DatadogPodAutoscalerAutoscalingValueSource is a recommendation that comes from active autoscaling.
	DatadogPodAutoscalerAutoscalingValueSource DatadogPodAutoscalerValueSource = "Autoscaling"

	// DatadogPodAutoscalerManualValueSource is a recommendation that comes from manually applying a recommendation.
	DatadogPodAutoscalerManualValueSource DatadogPodAutoscalerValueSource = "Manual"

	// DatadogPodAutoscalerLocalValueSource is a recommendation that comes from the local fallback.
	DatadogPodAutoscalerLocalValueSource DatadogPodAutoscalerValueSource = "Local"
)

type DatadogPodAutoscalerVerticalAction

type DatadogPodAutoscalerVerticalAction struct {
	// Time is the timestamp of the action
	Time metav1.Time `json:"time"`

	// Version is the version of the recommendation used for the action
	Version string `json:"version"`

	// Type is the type of action
	Type DatadogPodAutoscalerVerticalActionType `json:"type"`
}

DatadogPodAutoscalerVerticalAction represents a vertical action done by the controller +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerVerticalAction) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerVerticalAction.

func (*DatadogPodAutoscalerVerticalAction) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerVerticalActionType

type DatadogPodAutoscalerVerticalActionType string

DatadogPodAutoscalerVerticalActionType represents the type of action done by the controller

const (
	// DatadogPodAutoscalerRolloutTriggeredVerticalActionType is the action when the controller triggers a rollout of the targetRef
	DatadogPodAutoscalerRolloutTriggeredVerticalActionType DatadogPodAutoscalerVerticalActionType = "RolloutTriggered"
)

type DatadogPodAutoscalerVerticalStatus

type DatadogPodAutoscalerVerticalStatus struct {
	// Target is the current target of the vertical scaling
	Target *DatadogPodAutoscalerVerticalTargetStatus `json:"target,omitempty"`

	// LastAction is the last successful action done by the controller
	LastAction *DatadogPodAutoscalerVerticalAction `json:"lastAction,omitempty"`
}

DatadogPodAutoscalerVerticalStatus defines the status of the vertical scaling +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerVerticalStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerVerticalStatus.

func (*DatadogPodAutoscalerVerticalStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatadogPodAutoscalerVerticalTargetStatus

type DatadogPodAutoscalerVerticalTargetStatus struct {
	// Source is the source of the value used to scale the target resource
	Source DatadogPodAutoscalerValueSource `json:"source"`

	// GeneratedAt is the timestamp at which the recommendation was generated
	GeneratedAt metav1.Time `json:"generatedAt,omitempty"`

	// Version is the current version of the received recommendation
	Version string `json:"version"`

	// Scaled is the current number of pods having desired resources
	Scaled *int32 `json:"scaled,omitempty"`

	// DesiredResources is the desired resources for containers
	DesiredResources []DatadogPodAutoscalerContainerResources `json:"desiredResources"`

	// PodCPURequest is the sum of CPU requests for all containers (used for display)
	PodCPURequest resource.Quantity `json:"podCPURequest"`

	// PodMemoryRequest is the sum of memory requests for all containers (used for display)
	PodMemoryRequest resource.Quantity `json:"podMemoryRequest"`
}

DatadogPodAutoscalerVerticalTargetStatus defines the current target of the vertical scaling +kubebuilder:object:generate=true

func (*DatadogPodAutoscalerVerticalTargetStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatadogPodAutoscalerVerticalTargetStatus.

func (*DatadogPodAutoscalerVerticalTargetStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RollingUpdate

type RollingUpdate struct {
	// The maximum number of pods that can be unavailable during the update.
	// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
	// Refer to the Kubernetes API documentation for additional details..
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`

	// MaxSurge behaves differently based on the Kubernetes resource. Refer to the
	// Kubernetes API documentation for additional details.
	MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"`
}

RollingUpdate describes how to replace existing pods with new ones. +k8s:openapi-gen=true +kubebuilder:object:generate=true

func (*RollingUpdate) DeepCopy

func (in *RollingUpdate) DeepCopy() *RollingUpdate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdate.

func (*RollingUpdate) DeepCopyInto

func (in *RollingUpdate) DeepCopyInto(out *RollingUpdate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UpdateStrategy

type UpdateStrategy struct {
	// Type can be "RollingUpdate" or "OnDelete" for DaemonSets and "RollingUpdate"
	// or "Recreate" for Deployments
	Type string `json:"type,omitempty"`
	// Configure the rolling update strategy of the Deployment or DaemonSet.
	RollingUpdate *RollingUpdate `json:"rollingUpdate,omitempty"`
}

The deployment strategy to use to replace existing pods with new ones. +k8s:openapi-gen=true +kubebuilder:object:generate=true

func (*UpdateStrategy) DeepCopy

func (in *UpdateStrategy) DeepCopy() *UpdateStrategy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateStrategy.

func (*UpdateStrategy) DeepCopyInto

func (in *UpdateStrategy) DeepCopyInto(out *UpdateStrategy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL