v1alpha1

package
v0.10.2 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2021 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the dynatrace v1alpha1 API group +kubebuilder:object:generate=true +groupName=dynatrace.com

Index

Constants

View Source
const (
	// APITokenConditionType identifies the API Token validity condition
	APITokenConditionType string = "APIToken"

	// PaaSTokenConditionType identifies the PaaS Token validity condition
	PaaSTokenConditionType string = "PaaSToken"
)
View Source
const (
	// ReasonTokenReady is set when a token has passed verifications
	ReasonTokenReady string = "TokenReady"

	// ReasonTokenSecretNotFound is set when the referenced secret can't be found
	ReasonTokenSecretNotFound string = "TokenSecretNotFound"

	// ReasonTokenMissing is set when the field is missing on the secret
	ReasonTokenMissing string = "TokenMissing"

	// ReasonTokenUnauthorized is set when a token is unauthorized to query the Dynatrace API
	ReasonTokenUnauthorized string = "TokenUnauthorized"

	// ReasonTokenScopeMissing is set when the token is missing the required scope for the Dynatrace API
	ReasonTokenScopeMissing string = "TokenScopeMissing"

	// ReasonTokenError is set when an unknown error has been found when verifying the token
	ReasonTokenError string = "TokenError"
)

Possible reasons for ApiToken and PaaSToken conditions

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "dynatrace.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type BaseOneAgent

type BaseOneAgent interface {
	metav1.Object
	GetSpec() *BaseOneAgentSpec
	GetStatus() *BaseOneAgentStatus
}

+kubebuilder:object:generate:=false BaseOneAgent is implemented by OneAgent CRD types to ease access to common fields among all of them.

type BaseOneAgentSpec

type BaseOneAgentSpec struct {
	// Location of the Dynatrace API to connect to, including your specific environment ID
	// +kubebuilder:validation:Required
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="API URL"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:text"
	APIURL string `json:"apiUrl"`

	// Credentials for the OneAgent to connect back to Dynatrace.
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="API and PaaS Tokens"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:io.kubernetes:Secret"
	Tokens string `json:"tokens,omitempty"`

	// Disable certificate validation checks for installer download and API communication
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Skip Certificate Check"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	SkipCertCheck bool `json:"skipCertCheck,omitempty"`

	// If enabled, Istio on the cluster will be configured automatically to allow access to the Dynatrace environment
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Enable Istio automatic management"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	EnableIstio bool `json:"enableIstio,omitempty"`

	// Optional: Set custom proxy settings either directly or from a secret with the field 'proxy'
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Proxy"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
	Proxy *OneAgentProxy `json:"proxy,omitempty"`

	// Optional: Adds custom RootCAs from a configmap
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="TrustedCAs"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
	TrustedCAs string `json:"trustedCAs,omitempty"`

	// Optional: Adds the OneAgent to the given NetworkZone
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="NetworkZone"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
	NetworkZone string `json:"networkZone,omitempty"`

	// Defines if you want to use the immutable image or the installer
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Use immutable image"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	UseImmutableImage bool `json:"useImmutableImage,omitempty"`
}

BaseOneAgentSpec includes credentials common to the other OneAgent CRDs

func (*BaseOneAgentSpec) DeepCopy

func (in *BaseOneAgentSpec) DeepCopy() *BaseOneAgentSpec

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

func (*BaseOneAgentSpec) DeepCopyInto

func (in *BaseOneAgentSpec) DeepCopyInto(out *BaseOneAgentSpec)

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

type BaseOneAgentStatus

type BaseOneAgentStatus struct {
	// UpdatedTimestamp indicates when the instance was last updated
	// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Last Updated"
	// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors.x-descriptors="urn:alm:descriptor:text"
	UpdatedTimestamp metav1.Time `json:"updatedTimestamp,omitempty"`

	// Conditions includes status about the current state of the instance
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// LastAPITokenProbeTimestamp tracks when the last request for the API token validity was sent
	LastAPITokenProbeTimestamp *metav1.Time `json:"lastAPITokenProbeTimestamp,omitempty"`

	// LastPaaSTokenProbeTimestamp tracks when the last request for the PaaS token validity was sent
	LastPaaSTokenProbeTimestamp *metav1.Time `json:"lastPaaSTokenProbeTimestamp,omitempty"`

	// EnvironmentID contains the environment ID corresponding to the API URL
	EnvironmentID string `json:"environmentID,omitempty"`

	// Credentials used for the OneAgent to connect back to Dynatrace.
	// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="API and PaaS Tokens"
	// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors.x-descriptors="urn:alm:descriptor:text"
	Tokens string `json:"tokens,omitempty"`

	// UseImmutableImage is set when an immutable image is currently in use
	// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors.displayName="Using immutable image"
	// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	UseImmutableImage bool `json:"useImmutableImage,omitempty"`
}

BaseOneAgentStatus defines common files used by OneAgent CRDs

func (*BaseOneAgentStatus) DeepCopy

func (in *BaseOneAgentStatus) DeepCopy() *BaseOneAgentStatus

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

func (*BaseOneAgentStatus) DeepCopyInto

func (in *BaseOneAgentStatus) DeepCopyInto(out *BaseOneAgentStatus)

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

type OneAgent

type OneAgent struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec OneAgentSpec `json:"spec"`
	// +optional
	Status OneAgentStatus `json:"status"`
}

For full-stack monitoring, including complete APM and infrastructure layer observability. +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=oneagents,scope=Namespaced,categories=dynatrace +kubebuilder:printcolumn:name="ApiUrl",type=string,JSONPath=`.spec.apiUrl` +kubebuilder:printcolumn:name="Tokens",type=string,JSONPath=`.status.tokens` +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.status.version` +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +operator-sdk:gen-csv:customresourcedefinitions.displayName="Dynatrace OneAgent" +operator-sdk:gen-csv:customresourcedefinitions.resources=`DaemonSet,v1beta2,""` +operator-sdk:gen-csv:customresourcedefinitions.resources=`Pod,v1,""`

func (*OneAgent) DeepCopy

func (in *OneAgent) DeepCopy() *OneAgent

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

func (*OneAgent) DeepCopyInto

func (in *OneAgent) DeepCopyInto(out *OneAgent)

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

func (*OneAgent) DeepCopyObject

func (in *OneAgent) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OneAgent) GetOneAgentSpec

func (oa *OneAgent) GetOneAgentSpec() *OneAgentSpec

func (*OneAgent) GetOneAgentStatus

func (oa *OneAgent) GetOneAgentStatus() *OneAgentStatus

func (*OneAgent) GetSpec

func (oa *OneAgent) GetSpec() *BaseOneAgentSpec

GetSpec returns the corresponding BaseOneAgentSpec for the instance's Spec.

func (*OneAgent) GetStatus

func (oa *OneAgent) GetStatus() *BaseOneAgentStatus

GetStatus returns the corresponding BaseOneAgentStatus for the instance's Status.

type OneAgentAPM

type OneAgentAPM struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec OneAgentAPMSpec `json:"spec"`
	// +optional
	Status OneAgentAPMStatus `json:"status"`
}

For application-only monitoring used in lieu of full-stack OneAgent if node access is limited. +k8s:openapi-gen=true +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:subresource:status +kubebuilder:resource:path=oneagentapms,scope=Namespaced,categories=dynatrace +kubebuilder:printcolumn:name="ApiUrl",type=string,JSONPath=`.spec.apiUrl` +kubebuilder:printcolumn:name="Tokens",type=string,JSONPath=`.status.tokens` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +operator-sdk:gen-csv:customresourcedefinitions.displayName="Dynatrace OneAgent Application Monitoring"

func (*OneAgentAPM) DeepCopy

func (in *OneAgentAPM) DeepCopy() *OneAgentAPM

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

func (*OneAgentAPM) DeepCopyInto

func (in *OneAgentAPM) DeepCopyInto(out *OneAgentAPM)

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

func (*OneAgentAPM) DeepCopyObject

func (in *OneAgentAPM) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OneAgentAPM) GetSpec

func (oa *OneAgentAPM) GetSpec() *BaseOneAgentSpec

GetSpec returns the corresponding BaseOneAgentSpec for the instance's Spec.

func (*OneAgentAPM) GetStatus

func (oa *OneAgentAPM) GetStatus() *BaseOneAgentStatus

GetStatus returns the corresponding BaseOneAgentStatus for the instance's Status.

type OneAgentAPMList

type OneAgentAPMList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OneAgentAPM `json:"items"`
}

OneAgentAPMList contains a list of OneAgentAPM +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*OneAgentAPMList) DeepCopy

func (in *OneAgentAPMList) DeepCopy() *OneAgentAPMList

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

func (*OneAgentAPMList) DeepCopyInto

func (in *OneAgentAPMList) DeepCopyInto(out *OneAgentAPMList)

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

func (*OneAgentAPMList) DeepCopyObject

func (in *OneAgentAPMList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OneAgentAPMSpec

type OneAgentAPMSpec struct {
	BaseOneAgentSpec `json:",inline"`

	// Optional: Custom code modules OneAgent docker image
	// In case you have the docker image for the oneagent in a custom docker registry you need to provide it here
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=false
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonicx.ui:text"
	Image string `json:"image,omitempty"`

	// Optional: The version of the oneagent to be used
	// Default (if nothing set): latest
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Agent version"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonicx.ui:text"
	AgentVersion string `json:"agentVersion,omitempty"`

	// Optional: define resources requests and limits for the initContainer
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Resource Requirements"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:resourceRequirements"
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Optional: defines the C standard library used
	// Can be set to "musl" to use musl instead of glibc
	// If set to anything else but "musl", glibc is used
	// If a pod is annotated with the "oneagent.dynatrace.com/flavor" annotation, the value from the annotation will be used
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="C standard Library"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:select:default,urn:alm:descriptor:com.tectonic.ui:select:musl"
	Flavor string `json:"flavor,omitempty"`
}

OneAgentAPMSpec defines the desired state of OneAgentAPM +k8s:openapi-gen=true

func (*OneAgentAPMSpec) DeepCopy

func (in *OneAgentAPMSpec) DeepCopy() *OneAgentAPMSpec

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

func (*OneAgentAPMSpec) DeepCopyInto

func (in *OneAgentAPMSpec) DeepCopyInto(out *OneAgentAPMSpec)

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

type OneAgentAPMStatus

type OneAgentAPMStatus struct {
	BaseOneAgentStatus `json:",inline"`
}

OneAgentAPMStatus defines the observed state of OneAgentAPM

func (*OneAgentAPMStatus) DeepCopy

func (in *OneAgentAPMStatus) DeepCopy() *OneAgentAPMStatus

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

func (*OneAgentAPMStatus) DeepCopyInto

func (in *OneAgentAPMStatus) DeepCopyInto(out *OneAgentAPMStatus)

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

type OneAgentInstance

type OneAgentInstance struct {
	PodName   string `json:"podName,omitempty"`
	Version   string `json:"version,omitempty"`
	IPAddress string `json:"ipAddress,omitempty"`
}

func (*OneAgentInstance) DeepCopy

func (in *OneAgentInstance) DeepCopy() *OneAgentInstance

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

func (*OneAgentInstance) DeepCopyInto

func (in *OneAgentInstance) DeepCopyInto(out *OneAgentInstance)

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

type OneAgentList

type OneAgentList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OneAgent `json:"items"`
}

OneAgentList contains a list of OneAgent

func (*OneAgentList) DeepCopy

func (in *OneAgentList) DeepCopy() *OneAgentList

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

func (*OneAgentList) DeepCopyInto

func (in *OneAgentList) DeepCopyInto(out *OneAgentList)

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

func (*OneAgentList) DeepCopyObject

func (in *OneAgentList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OneAgentPhaseType

type OneAgentPhaseType string
const (
	Running   OneAgentPhaseType = "Running"
	Deploying OneAgentPhaseType = "Deploying"
	Error     OneAgentPhaseType = "Error"
)

type OneAgentProxy

type OneAgentProxy struct {
	Value     string `json:"value,omitempty"`
	ValueFrom string `json:"valueFrom,omitempty"`
}

func (*OneAgentProxy) DeepCopy

func (in *OneAgentProxy) DeepCopy() *OneAgentProxy

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

func (*OneAgentProxy) DeepCopyInto

func (in *OneAgentProxy) DeepCopyInto(out *OneAgentProxy)

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

type OneAgentSpec

type OneAgentSpec struct {
	BaseOneAgentSpec `json:",inline"`

	// Node selector to control the selection of nodes (optional)
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Node Selector"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:selector:Node"
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Optional: set tolerations for the OneAgent pods
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Tolerations"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:io.kubernetes:Tolerations"
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Optional: Defines the time to wait until OneAgent pod is ready after update - default 300 sec
	// +kubebuilder:validation:Minimum=0
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Wait seconds until ready"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:number"
	WaitReadySeconds *uint16 `json:"waitReadySeconds,omitempty"`

	// Optional: the Dynatrace installer container image
	// Defaults to docker.io/dynatrace/oneagent:latest for Kubernetes and to registry.connect.redhat.com/dynatrace/oneagent for OpenShift
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
	Image string `json:"image,omitempty"`

	// Optional: If specified, indicates the OneAgent version to use
	// Defaults to latest
	// Example: {major.minor.release} - 1.200.0
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="OneAgent version"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:text"
	AgentVersion string `json:"agentVersion,omitempty"`

	// Optional: Pull secret for your private registry
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Custom PullSecret"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:text"
	CustomPullSecret string `json:"customPullSecret,omitempty"`

	// Optional: define resources requests and limits for single pods
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Resource Requirements"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:resourceRequirements"
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Work in progress
	// Disables automatic injection into applications
	// OneAgentAPM together with the webhook will then do the injection
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=false
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Webhook injection"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	WebhookInjection bool `json:"webhookInjection,omitempty"`

	// Optional: Arguments to the OneAgent installer
	// +listType=set
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="OneAgent installer arguments"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
	Args []string `json:"args,omitempty"`

	// Optional: List of environment variables to set for the installer
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="OneAgent environment variable installer arguments"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
	Env []corev1.EnvVar `json:"env,omitempty"`

	// Optional: If specified, indicates the pod's priority. Name must be defined by creating a PriorityClass object with that
	// name. If not specified the setting will be removed from the DaemonSet.
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Priority Class name"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:io.kubernetes:PriorityClass"
	PriorityClassName string `json:"priorityClassName,omitempty"`

	// Disable automatic restarts of OneAgent pods in case a new version is available
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Disable Agent update"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	DisableAgentUpdate bool `json:"disableAgentUpdate,omitempty"`

	// Optional: Sets DNS Policy for the OneAgent pods
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="DNS Policy"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
	DNSPolicy corev1.DNSPolicy `json:"dnsPolicy,omitempty"`

	// Optional: set custom Service Account Name used with OneAgent pods
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Service Account name"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:io.kubernetes:ServiceAccount"
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// Optional: Adds additional labels for the OneAgent pods
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Labels"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
	Labels map[string]string `json:"labels,omitempty"`

	// Optional: Runs the OneAgent Pods as unprivileged (Early Adopter)
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Use unprivileged mode"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	UseUnprivilegedMode *bool `json:"useUnprivilegedMode,omitempty"`
}

OneAgentSpec defines the desired state of OneAgent +k8s:openapi-gen=true

func (*OneAgentSpec) DeepCopy

func (in *OneAgentSpec) DeepCopy() *OneAgentSpec

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

func (*OneAgentSpec) DeepCopyInto

func (in *OneAgentSpec) DeepCopyInto(out *OneAgentSpec)

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

type OneAgentStatus

type OneAgentStatus struct {
	BaseOneAgentStatus `json:",inline"`

	// Dynatrace version being used.
	// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Version"
	// +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors.x-descriptors="urn:alm:descriptor:text"
	Version string `json:"version,omitempty"`

	Instances map[string]OneAgentInstance `json:"instances,omitempty"`

	// Defines the current state (Running, Updating, Error, ...)
	Phase OneAgentPhaseType `json:"phase,omitempty"`

	// LastUpdateProbeTimestamp defines the last timestamp when the querying for updates have been done
	LastUpdateProbeTimestamp *metav1.Time `json:"lastUpdateProbeTimestamp,omitempty"`

	// ImageHash contains the hash for the latest immutable image seen.
	ImageHash string `json:"imageHash,omitempty"`

	// ImageVersion contains the version for the latest immutable image seen.
	ImageVersion string `json:"imageVersion,omitempty"`

	// LastImageVersionProbeTimestamp keeps track of the last time the Operator looked at the image version
	LastImageVersionProbeTimestamp *metav1.Time `json:"lastImageVersionProbeTimestamp,omitempty"`
}

OneAgentStatus defines the observed state of OneAgent +k8s:openapi-gen=true

func (*OneAgentStatus) DeepCopy

func (in *OneAgentStatus) DeepCopy() *OneAgentStatus

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

func (*OneAgentStatus) DeepCopyInto

func (in *OneAgentStatus) DeepCopyInto(out *OneAgentStatus)

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

func (*OneAgentStatus) SetPhase

func (oa *OneAgentStatus) SetPhase(phase OneAgentPhaseType) bool

SetPhase sets the status phase on the OneAgent object

func (*OneAgentStatus) SetPhaseOnError

func (oa *OneAgentStatus) SetPhaseOnError(err error) bool

SetPhaseOnError fills the phase with the Error value in case of any error

Jump to

Keyboard shortcuts

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