dynakube

package
v1.4.0-rc.0 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2024 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Overview

+kubebuilder:object:generate=true +groupName=dynatrace.com +versionName=v1beta3

Index

Constants

View Source
const (
	TrustedCAKey = "certs"
	TLSCertKey   = "server.crt"
)
View Source
const (
	// MaxNameLength is the maximum length of a DynaKube's name, we tend to add suffixes to the name to avoid name collisions for resources related to the DynaKube. (example: dkName-activegate-<some-hash>)
	// The limit is necessary because kubernetes uses the name of some resources (ActiveGate StatefulSet) for the label value, which has a limit of 63 characters. (see https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set)
	MaxNameLength = 40

	// PullSecretSuffix is the suffix appended to the DynaKube name to n.
	PullSecretSuffix = "-pull-secret"
)
View Source
const (
	// TokenConditionType identifies the token validity condition.
	TokenConditionType string = "Tokens"

	// APITokenConditionType identifies the API Token validity condition.
	APITokenConditionType string = "APIToken"

	// PaaSTokenConditionType identifies the PaaS Token validity condition.
	PaaSTokenConditionType string = "PaaSToken"

	// DataIngestTokenConditionType identifies the DataIngest Token validity condition.
	DataIngestTokenConditionType string = "DataIngestToken"
)

TODO: Move these conditions related consts to a place where they are used, so we don't bloat this package further.

View Source
const (
	// ReasonTokenReady is set when a token has passed verifications.
	ReasonTokenReady string = "TokenReady"

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

Possible reasons for ApiToken and PaaSToken conditions.

View Source
const (
	AnnotationFeaturePrefix = "feature.dynatrace.com/"

	// General.
	AnnotationFeaturePublicRegistry = AnnotationFeaturePrefix + "public-registry"

	// Deprecated: AnnotationFeatureDisableActiveGateUpdates use AnnotationFeatureActiveGateUpdates instead.
	AnnotationFeatureDisableActiveGateUpdates = AnnotationFeaturePrefix + "disable-activegate-updates"
	// Deprecated: AnnotationFeatureActiveGateIgnoreProxy use AnnotationFeatureNoProxy instead.
	AnnotationFeatureActiveGateIgnoreProxy = AnnotationFeaturePrefix + "activegate-ignore-proxy"

	AnnotationFeatureActiveGateUpdates = AnnotationFeaturePrefix + "activegate-updates"

	AnnotationFeatureActiveGateAppArmor                   = AnnotationFeaturePrefix + "activegate-apparmor"
	AnnotationFeatureAutomaticK8sApiMonitoring            = AnnotationFeaturePrefix + "automatic-kubernetes-api-monitoring"
	AnnotationFeatureAutomaticK8sApiMonitoringClusterName = AnnotationFeaturePrefix + "automatic-kubernetes-api-monitoring-cluster-name"
	AnnotationFeatureK8sAppEnabled                        = AnnotationFeaturePrefix + "k8s-app-enabled"

	AnnotationFeatureNoProxy = AnnotationFeaturePrefix + "no-proxy"

	// Deprecated: AnnotationFeatureOneAgentIgnoreProxy use AnnotationFeatureNoProxy instead.
	AnnotationFeatureOneAgentIgnoreProxy = AnnotationFeaturePrefix + "oneagent-ignore-proxy"

	AnnotationFeatureOneAgentMaxUnavailable         = AnnotationFeaturePrefix + "oneagent-max-unavailable"
	AnnotationFeatureOneAgentInitialConnectRetry    = AnnotationFeaturePrefix + "oneagent-initial-connect-retry-ms"
	AnnotationFeatureRunOneAgentContainerPrivileged = AnnotationFeaturePrefix + "oneagent-privileged"

	AnnotationFeatureIgnoreUnknownState    = AnnotationFeaturePrefix + "ignore-unknown-state"
	AnnotationFeatureIgnoredNamespaces     = AnnotationFeaturePrefix + "ignored-namespaces"
	AnnotationFeatureAutomaticInjection    = AnnotationFeaturePrefix + "automatic-injection"
	AnnotationFeatureLabelVersionDetection = AnnotationFeaturePrefix + "label-version-detection"
	AnnotationInjectionFailurePolicy       = AnnotationFeaturePrefix + "injection-failure-policy"
	AnnotationFeatureInitContainerSeccomp  = AnnotationFeaturePrefix + "init-container-seccomp-profile"
	AnnotationFeatureEnforcementMode       = AnnotationFeaturePrefix + "enforcement-mode"

	// CSI.
	AnnotationFeatureMaxFailedCsiMountAttempts = AnnotationFeaturePrefix + "max-csi-mount-attempts"
	AnnotationFeatureMaxCsiMountTimeout        = AnnotationFeaturePrefix + "max-csi-mount-timeout"
	AnnotationFeatureReadOnlyCsiVolume         = AnnotationFeaturePrefix + "injection-readonly-volume"
)
View Source
const (
	DefaultMaxCsiMountTimeout               = "10m"
	DefaultMaxFailedCsiMountAttempts        = 10
	DefaultMinRequestThresholdMinutes       = 15
	IstioDefaultOneAgentInitialConnectRetry = 6000
)
View Source
const (
	OneAgentTenantSecretSuffix            = "-oneagent-tenant-secret"
	OneAgentConnectionInfoConfigMapSuffix = "-oneagent-connection-info"
	PodNameOsAgent                        = "oneagent"
	DefaultOneAgentImageRegistrySubPath   = "/linux/oneagent"
)
View Source
const (
	ProxyKey   = "proxy"
	NoProxyKey = "noProxy"
)
View Source
const MetadataPrefix string = "metadata.dynatrace.com/"

Variables

This section is empty.

Functions

func GetCacheValidMessage

func GetCacheValidMessage(functionName string, lastRequestTimestamp metav1.Time, timeout time.Duration) string

func MountAttemptsToTimeout

func MountAttemptsToTimeout(maxAttempts int) string

MountAttemptsToTimeout converts the (old) number of csi mount attempts into a time.Duration string. The converted value is based on the exponential backoff's algorithm. The output is string because it's main purpose is to convert the value of an annotation to another annotation.

func SetupWebhookWithManager

func SetupWebhookWithManager(mgr ctrl.Manager, validator admission.CustomValidator) error

Types

type AppInjectionSpec

type AppInjectionSpec struct {
	// Define resources requests and limits for the initContainer. For details, see Managing resources for containers
	// (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers).
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resource Requirements",order=15,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	InitResources *corev1.ResourceRequirements `json:"initResources,omitempty"`

	// Use a custom OneAgent CodeModule image to download binaries.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="CodeModulesImage",order=12,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:text"}
	CodeModulesImage string `json:"codeModulesImage,omitempty"`

	// Applicable only for applicationMonitoring or cloudNativeFullStack configuration types. The namespaces where you want Dynatrace Operator to inject.
	// For more information, see Configure monitoring for namespaces and pods (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/kubernetes/get-started-with-kubernetes-monitoring/dto-config-options-k8s#annotate).
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Namespace Selector",order=17,xDescriptors="urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Namespace"
	NamespaceSelector metav1.LabelSelector `json:"namespaceSelector,omitempty"`
}

func (*AppInjectionSpec) DeepCopy

func (in *AppInjectionSpec) DeepCopy() *AppInjectionSpec

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

func (*AppInjectionSpec) DeepCopyInto

func (in *AppInjectionSpec) DeepCopyInto(out *AppInjectionSpec)

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

type ApplicationMonitoringSpec

type ApplicationMonitoringSpec struct {

	// Use a specific OneAgent CodeModule version. Defaults to the latest version from the Dynatrace cluster.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OneAgent version",order=11,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:text"}
	Version string `json:"version,omitempty"`

	AppInjectionSpec `json:",inline"`
}

func (*ApplicationMonitoringSpec) DeepCopy

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

func (*ApplicationMonitoringSpec) DeepCopyInto

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

type CloudNativeFullStackSpec

type CloudNativeFullStackSpec struct {
	HostInjectSpec   `json:",inline"`
	AppInjectionSpec `json:",inline"`
}

func (*CloudNativeFullStackSpec) DeepCopy

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

func (*CloudNativeFullStackSpec) DeepCopyInto

func (in *CloudNativeFullStackSpec) DeepCopyInto(out *CloudNativeFullStackSpec)

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

type CodeModulesStatus

type CodeModulesStatus struct {
	status.VersionStatus `json:",inline"`
}

func (*CodeModulesStatus) DeepCopy

func (in *CodeModulesStatus) DeepCopy() *CodeModulesStatus

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

func (*CodeModulesStatus) DeepCopyInto

func (in *CodeModulesStatus) DeepCopyInto(out *CodeModulesStatus)

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

type CommunicationHostStatus

type CommunicationHostStatus struct {
	// Connection protocol
	Protocol string `json:"protocol,omitempty"`

	// Host domain
	Host string `json:"host,omitempty"`

	// Connection port
	Port uint32 `json:"port,omitempty"`
}

func (*CommunicationHostStatus) DeepCopy

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

func (*CommunicationHostStatus) DeepCopyInto

func (in *CommunicationHostStatus) DeepCopyInto(out *CommunicationHostStatus)

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

type DynaKube

type DynaKube struct {
	metav1.TypeMeta `json:",inline"`

	Status            DynaKubeStatus `json:"status,omitempty"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              DynaKubeSpec `json:"spec,omitempty"`
}

DynaKube is the Schema for the DynaKube API +k8s:openapi-gen=true +kubebuilder:storageversion +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=dynakubes,scope=Namespaced,categories=dynatrace,shortName={dk,dks} +kubebuilder:printcolumn:name="ApiUrl",type=string,JSONPath=`.spec.apiUrl` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +operator-sdk:csv:customresourcedefinitions:displayName="Dynatrace DynaKube" +operator-sdk:csv:customresourcedefinitions:resources={{StatefulSet,v1,},{DaemonSet,v1,},{Pod,v1,}}

func (*DynaKube) ActiveGate

func (dk *DynaKube) ActiveGate() *activegate.ActiveGate

func (*DynaKube) ActiveGateTLSCert

func (dk *DynaKube) ActiveGateTLSCert(ctx context.Context, kubeReader client.Reader) ([]byte, error)

func (*DynaKube) ApiRequestThreshold

func (dk *DynaKube) ApiRequestThreshold() time.Duration

func (*DynaKube) ApiUrl

func (dk *DynaKube) ApiUrl() string

ApiUrl is a getter for dk.Spec.APIURL.

func (*DynaKube) ApiUrlHost

func (dk *DynaKube) ApiUrlHost() string

ApiUrlHost returns the host of dk.Spec.APIURL E.g. if the APIURL is set to "https://my-tenant.dynatrace.com/api", it returns "my-tenant.dynatrace.com" If the URL cannot be parsed, it returns an empty string.

func (*DynaKube) ApplicationMonitoringMode

func (dk *DynaKube) ApplicationMonitoringMode() bool

ApplicationMonitoringMode returns true when application only section is used.

func (*DynaKube) ClassicFullStackMode

func (dk *DynaKube) ClassicFullStackMode() bool

ClassicFullStackMode returns true when classic fullstack section is used.

func (*DynaKube) CloudNativeFullstackMode

func (dk *DynaKube) CloudNativeFullstackMode() bool

CloudNativeFullstackMode returns true when cloud native fullstack section is used.

func (*DynaKube) CodeModulesImage

func (dk *DynaKube) CodeModulesImage() string

CodeModulesImage provides the image reference set in Status for the CodeModules. Format: repo@sha256:digest.

func (*DynaKube) CodeModulesVersion

func (dk *DynaKube) CodeModulesVersion() string

CodeModulesVersion provides version set in Status for the CodeModules.

func (*DynaKube) Conditions

func (dk *DynaKube) Conditions() *[]metav1.Condition

func (*DynaKube) CustomCodeModulesImage

func (dk *DynaKube) CustomCodeModulesImage() string

CustomCodeModulesImage provides the image reference for the CodeModules provided in the Spec.

func (*DynaKube) CustomCodeModulesVersion

func (dk *DynaKube) CustomCodeModulesVersion() string

CustomCodeModulesVersion provides the version for the CodeModules provided in the Spec.

func (*DynaKube) CustomOneAgentImage

func (dk *DynaKube) CustomOneAgentImage() string

CustomOneAgentImage provides the image reference for the OneAgent provided in the Spec.

func (*DynaKube) CustomOneAgentVersion

func (dk *DynaKube) CustomOneAgentVersion() string

CustomOneAgentVersion provides the version for the OneAgent provided in the Spec.

func (*DynaKube) DeepCopy

func (in *DynaKube) DeepCopy() *DynaKube

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

func (*DynaKube) DeepCopyInto

func (in *DynaKube) DeepCopyInto(out *DynaKube)

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

func (*DynaKube) DeepCopyObject

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

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

func (*DynaKube) DefaultOneAgentImage

func (dk *DynaKube) DefaultOneAgentImage(version string) string

DefaultOneAgentImage provides the image reference for the OneAgent from tenant registry.

func (*DynaKube) ExtensionsCollectorStatefulsetName

func (dk *DynaKube) ExtensionsCollectorStatefulsetName() string

func (*DynaKube) ExtensionsExecutionControllerStatefulsetName

func (dk *DynaKube) ExtensionsExecutionControllerStatefulsetName() string

func (*DynaKube) ExtensionsNeedsSelfSignedTLS

func (dk *DynaKube) ExtensionsNeedsSelfSignedTLS() bool

func (*DynaKube) ExtensionsTLSRefName

func (dk *DynaKube) ExtensionsTLSRefName() string

func (*DynaKube) ExtensionsTLSSecretName

func (dk *DynaKube) ExtensionsTLSSecretName() string

func (*DynaKube) ExtensionsTokenSecretName

func (dk *DynaKube) ExtensionsTokenSecretName() string

func (*DynaKube) FeatureActiveGateAppArmor

func (dk *DynaKube) FeatureActiveGateAppArmor() bool

FeatureActiveGateAppArmor is a feature flag to enable AppArmor in ActiveGate container.

func (*DynaKube) FeatureActiveGateIgnoreProxy

func (dk *DynaKube) FeatureActiveGateIgnoreProxy() bool

FeatureActiveGateIgnoreProxy is a feature flag to ignore the proxy for ActiveGate when set in CR.

func (*DynaKube) FeatureAgentInitialConnectRetry

func (dk *DynaKube) FeatureAgentInitialConnectRetry() int

FeatureAgentInitialConnectRetry is a feature flag to configure startup delay of standalone agents.

func (*DynaKube) FeatureAutomaticInjection

func (dk *DynaKube) FeatureAutomaticInjection() bool

FeatureAutomaticInjection controls OneAgent is injected to pods in selected namespaces automatically ("automatic-injection=true" or flag not set) or if pods need to be opted-in one by one ("automatic-injection=false").

func (*DynaKube) FeatureAutomaticKubernetesApiMonitoring

func (dk *DynaKube) FeatureAutomaticKubernetesApiMonitoring() bool

FeatureAutomaticKubernetesApiMonitoring is a feature flag to enable automatic kubernetes api monitoring, which ensures that settings for this kubernetes cluster exist in Dynatrace.

func (*DynaKube) FeatureAutomaticKubernetesApiMonitoringClusterName

func (dk *DynaKube) FeatureAutomaticKubernetesApiMonitoringClusterName() string

FeatureAutomaticKubernetesApiMonitoringClusterName is a feature flag to set custom cluster name for automatic-kubernetes-api-monitoring.

func (*DynaKube) FeatureDisableActiveGateUpdates

func (dk *DynaKube) FeatureDisableActiveGateUpdates() bool

FeatureDisableActiveGateUpdates is a feature flag to disable ActiveGate updates.

func (*DynaKube) FeatureEnableK8sAppEnabled

func (dk *DynaKube) FeatureEnableK8sAppEnabled() bool

FeatureEnableK8sAppEnabled is a feature flag to enable automatically enable current Kubernetes cluster for the Kubernetes app.

func (*DynaKube) FeatureEnforcementMode

func (dk *DynaKube) FeatureEnforcementMode() bool

FeatureEnforcementMode is a feature flag to control how the initContainer sets the tenantUUID to the container.conf file (always vs if oneAgent is present).

func (*DynaKube) FeatureIgnoreUnknownState

func (dk *DynaKube) FeatureIgnoreUnknownState() bool

FeatureIgnoreUnknownState is a feature flag that makes the operator inject into applications even when the dynakube is in an UNKNOWN state, this may cause extra host to appear in the tenant for each process.

func (*DynaKube) FeatureIgnoredNamespaces

func (dk *DynaKube) FeatureIgnoredNamespaces() []string

FeatureIgnoredNamespaces is a feature flag for ignoring certain namespaces. defaults to "[ \"^dynatrace$\", \"^kube-.*\", \"openshift(-.*)?\" ]".

func (*DynaKube) FeatureInitContainerSeccomp

func (dk *DynaKube) FeatureInitContainerSeccomp() bool

func (*DynaKube) FeatureInjectionFailurePolicy

func (dk *DynaKube) FeatureInjectionFailurePolicy() string

func (*DynaKube) FeatureLabelVersionDetection

func (dk *DynaKube) FeatureLabelVersionDetection() bool

FeatureLabelVersionDetection is a feature flag to enable injecting additional environment variables based on user labels.

func (*DynaKube) FeatureMaxCSIRetryTimeout

func (dk *DynaKube) FeatureMaxCSIRetryTimeout() time.Duration

func (*DynaKube) FeatureMaxFailedCsiMountAttempts

func (dk *DynaKube) FeatureMaxFailedCsiMountAttempts() int

func (*DynaKube) FeatureNoProxy

func (dk *DynaKube) FeatureNoProxy() string

FeatureNoProxy is a feature flag to set the NO_PROXY value to be used by the dtClient.

func (*DynaKube) FeatureOneAgentIgnoreProxy

func (dk *DynaKube) FeatureOneAgentIgnoreProxy() bool

FeatureOneAgentIgnoreProxy is a feature flag to ignore the proxy for oneAgents when set in CR.

func (*DynaKube) FeatureOneAgentMaxUnavailable

func (dk *DynaKube) FeatureOneAgentMaxUnavailable() int

FeatureOneAgentMaxUnavailable is a feature flag to configure maxUnavailable on the OneAgent DaemonSets rolling upgrades.

func (*DynaKube) FeatureOneAgentPrivileged

func (dk *DynaKube) FeatureOneAgentPrivileged() bool

func (*DynaKube) FeaturePublicRegistry

func (dk *DynaKube) FeaturePublicRegistry() bool

func (*DynaKube) FeatureReadOnlyCsiVolume

func (dk *DynaKube) FeatureReadOnlyCsiVolume() bool

func (*DynaKube) GetDynatraceApiRequestThreshold

func (dk *DynaKube) GetDynatraceApiRequestThreshold() uint16

func (*DynaKube) GetOneAgentEnvironment

func (dk *DynaKube) GetOneAgentEnvironment() []corev1.EnvVar

func (*DynaKube) HasProxy

func (dk *DynaKube) HasProxy() bool

func (*DynaKube) HostGroup

func (dk *DynaKube) HostGroup() string

func (*DynaKube) HostGroupAsParam

func (dk *DynaKube) HostGroupAsParam() string

func (*DynaKube) HostMonitoringMode

func (dk *DynaKube) HostMonitoringMode() bool

HostMonitoringMode returns true when host monitoring section is used.

func (*DynaKube) Hub

func (*DynaKube) Hub()

Hub tags this version as the 'source' of the conversion for controller runtime.

func (*DynaKube) ImagePullSecretReferences

func (dk *DynaKube) ImagePullSecretReferences() []corev1.LocalObjectReference

func (*DynaKube) InitResources

func (dk *DynaKube) InitResources() *corev1.ResourceRequirements

func (*DynaKube) IsCSIAvailable

func (dk *DynaKube) IsCSIAvailable() bool

func (*DynaKube) IsExtensionsEnabled

func (dk *DynaKube) IsExtensionsEnabled() bool

func (*DynaKube) IsOneAgentCommunicationRouteClear

func (dk *DynaKube) IsOneAgentCommunicationRouteClear() bool

func (*DynaKube) IsTokenScopeVerificationAllowed

func (dk *DynaKube) IsTokenScopeVerificationAllowed(timeProvider *timeprovider.Provider) bool

func (*DynaKube) KSPM

func (dk *DynaKube) KSPM() *kspm.Kspm

func (*DynaKube) LogMonitoring

func (dk *DynaKube) LogMonitoring() *logmonitoring.LogMonitoring

func (*DynaKube) MetadataEnrichmentEnabled

func (dk *DynaKube) MetadataEnrichmentEnabled() bool

func (*DynaKube) MetadataEnrichmentNamespaceSelector

func (dk *DynaKube) MetadataEnrichmentNamespaceSelector() *metav1.LabelSelector

func (*DynaKube) NeedAppInjection

func (dk *DynaKube) NeedAppInjection() bool

func (*DynaKube) NeedsActiveGateProxy

func (dk *DynaKube) NeedsActiveGateProxy() bool

func (*DynaKube) NeedsCustomNoProxy

func (dk *DynaKube) NeedsCustomNoProxy() bool

func (*DynaKube) NeedsOneAgent

func (dk *DynaKube) NeedsOneAgent() bool

NeedsOneAgent returns true when a feature requires OneAgent instances.

func (*DynaKube) NeedsOneAgentPrivileged

func (dk *DynaKube) NeedsOneAgentPrivileged() bool

func (*DynaKube) NeedsOneAgentProbe

func (dk *DynaKube) NeedsOneAgentProbe() bool

func (*DynaKube) NeedsOneAgentProxy

func (dk *DynaKube) NeedsOneAgentProxy() bool

func (*DynaKube) OneAgentConnectionInfoConfigMapName

func (dk *DynaKube) OneAgentConnectionInfoConfigMapName() string

func (*DynaKube) OneAgentDaemonsetName

func (dk *DynaKube) OneAgentDaemonsetName() string

func (*DynaKube) OneAgentEndpoints

func (dk *DynaKube) OneAgentEndpoints() string

func (*DynaKube) OneAgentImage

func (dk *DynaKube) OneAgentImage() string

OneAgentImage provides the image reference set in Status for the OneAgent. Format: repo@sha256:digest.

func (*DynaKube) OneAgentNamespaceSelector

func (dk *DynaKube) OneAgentNamespaceSelector() *metav1.LabelSelector

func (*DynaKube) OneAgentNodeSelector

func (dk *DynaKube) OneAgentNodeSelector() map[string]string

func (*DynaKube) OneAgentSecCompProfile

func (dk *DynaKube) OneAgentSecCompProfile() string

func (*DynaKube) OneAgentVersion

func (dk *DynaKube) OneAgentVersion() string

OneAgentVersion provides version set in Status for the OneAgent.

func (*DynaKube) OneagentTenantSecret

func (dk *DynaKube) OneagentTenantSecret() string

OneagentTenantSecret returns the name of the secret containing the token for the OneAgent.

func (*DynaKube) Proxy

func (dk *DynaKube) Proxy(ctx context.Context, kubeReader client.Reader) (string, error)

func (*DynaKube) PullSecretName

func (dk *DynaKube) PullSecretName() string

PullSecretName returns the name of the pull secret to be used for immutable images.

func (*DynaKube) PullSecretNames

func (dk *DynaKube) PullSecretNames() []string

PullSecretsNames returns the names of the pull secrets to be used for immutable images.

func (*DynaKube) ShouldAutoUpdateOneAgent

func (dk *DynaKube) ShouldAutoUpdateOneAgent() bool

ShouldAutoUpdateOneAgent returns true if the Operator should update OneAgent instances automatically.

func (*DynaKube) TenantUUIDFromApiUrl

func (dk *DynaKube) TenantUUIDFromApiUrl() (string, error)

func (*DynaKube) TenantUUIDFromConnectionInfoStatus

func (dk *DynaKube) TenantUUIDFromConnectionInfoStatus() (string, error)

func (*DynaKube) Tokens

func (dk *DynaKube) Tokens() string

Tokens returns the name of the Secret to be used for tokens.

func (*DynaKube) TrustedCAs

func (dk *DynaKube) TrustedCAs(ctx context.Context, kubeReader client.Reader) ([]byte, error)

func (*DynaKube) UpdateStatus

func (dk *DynaKube) UpdateStatus(ctx context.Context, client client.Client) error

func (*DynaKube) UseReadOnlyOneAgents

func (dk *DynaKube) UseReadOnlyOneAgents() bool

type DynaKubeList

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

DynaKubeList contains a list of DynaKube +kubebuilder:object:root=true

func (*DynaKubeList) DeepCopy

func (in *DynaKubeList) DeepCopy() *DynaKubeList

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

func (*DynaKubeList) DeepCopyInto

func (in *DynaKubeList) DeepCopyInto(out *DynaKubeList)

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

func (*DynaKubeList) DeepCopyObject

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

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

type DynaKubeSpec

type DynaKubeSpec struct {

	// Configuration for Metadata Enrichment.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Metadata Enrichment",order=9,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	MetadataEnrichment MetadataEnrichment `json:"metadataEnrichment,omitempty"`

	// Set custom proxy settings either directly or from a secret with the field proxy.
	// Note: Applies to Dynatrace Operator, ActiveGate, and OneAgents.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Proxy",order=3,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	Proxy *value.Source `json:"proxy,omitempty"`

	// General configuration about the LogMonitoring feature.
	// +kubebuilder:validation:Optional
	LogMonitoring *logmonitoring.Spec `json:"logMonitoring,omitempty"`

	// General configuration about the KSPM feature.
	// +kubebuilder:validation:Optional
	Kspm *kspm.Spec `json:"kspm,omitempty"`

	// Configuration for thresholding Dynatrace API requests.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Dynatrace API Request Threshold",order=9,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced"}
	DynatraceApiRequestThreshold *uint16 `json:"dynatraceApiRequestThreshold,omitempty"`

	// When an (empty) ExtensionsSpec is provided, the extensions related components (extensions controller and extensions collector)
	// are deployed by the operator.
	// +kubebuilder:validation:Optional
	Extensions *ExtensionsSpec `json:"extensions,omitempty"`

	// General configuration about OneAgent instances.
	// You can't enable more than one module (classicFullStack, cloudNativeFullStack, hostMonitoring, or applicationMonitoring).
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OneAgent",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
	OneAgent OneAgentSpec `json:"oneAgent,omitempty"`

	// Dynatrace apiUrl, including the /api path at the end. For SaaS, set YOUR_ENVIRONMENT_ID to your environment ID. For Managed, change the apiUrl address.
	// For instructions on how to determine the environment ID and how to configure the apiUrl address, see Environment ID (https://www.dynatrace.com/support/help/get-started/monitoring-environment/environment-id).
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=128
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="API URL",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
	APIURL string `json:"apiUrl"`

	// Name of the secret holding the tokens used for connecting to Dynatrace.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenant specific secrets",order=2,xDescriptors="urn:alm:descriptor:io.kubernetes:Secret"
	Tokens string `json:"tokens,omitempty"`

	// Adds custom RootCAs from a configmap. Put the certificate under certs within your configmap.
	// Note: Applies to Dynatrace Operator, OneAgent and ActiveGate.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Trusted CAs",order=6,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:io.kubernetes:ConfigMap"}
	TrustedCAs string `json:"trustedCAs,omitempty"`

	// Sets a network zone for the OneAgent and ActiveGate pods.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Network Zone",order=7,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:text"}
	NetworkZone string `json:"networkZone,omitempty"`

	// Defines a custom pull secret in case you use a private registry when pulling images from the Dynatrace environment.
	// To define a custom pull secret and learn about the expected behavior, see Configure customPullSecret
	// (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/kubernetes/get-started-with-kubernetes-monitoring/dto-config-options-k8s#custompullsecret).
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Custom PullSecret",order=8,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:io.kubernetes:Secret"}
	CustomPullSecret string `json:"customPullSecret,omitempty"`

	// +kubebuilder:validation:Optional
	Templates TemplatesSpec `json:"templates,omitempty"`

	// General configuration about ActiveGate instances.
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ActiveGate",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
	ActiveGate activegate.Spec `json:"activeGate,omitempty"`

	// Disable certificate check for the connection between Dynatrace Operator and the Dynatrace Cluster.
	// Set to true if you want to skip certification validation checks.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Skip Certificate Check",order=3,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	SkipCertCheck bool `json:"skipCertCheck,omitempty"`

	// When enabled, and if Istio is installed on the Kubernetes environment, Dynatrace Operator will create the corresponding
	// VirtualService and ServiceEntry objects to allow access to the Dynatrace Cluster from the OneAgent or ActiveGate.
	// Disabled by default.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable Istio automatic management",order=9,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	EnableIstio bool `json:"enableIstio,omitempty"`
}

DynaKubeSpec defines the desired state of DynaKube +k8s:openapi-gen=true

func (*DynaKubeSpec) DeepCopy

func (in *DynaKubeSpec) DeepCopy() *DynaKubeSpec

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

func (*DynaKubeSpec) DeepCopyInto

func (in *DynaKubeSpec) DeepCopyInto(out *DynaKubeSpec)

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

type DynaKubeStatus

type DynaKubeStatus struct {

	// Observed state of OneAgent
	OneAgent OneAgentStatus `json:"oneAgent,omitempty"`

	// Observed state of ActiveGate
	ActiveGate activegate.Status `json:"activeGate,omitempty"`

	// Observed state of Code Modules
	CodeModules CodeModulesStatus `json:"codeModules,omitempty"`

	// Observed state of Metadata-Enrichment
	MetadataEnrichment MetadataEnrichmentStatus `json:"metadataEnrichment,omitempty"`

	// Observed state of Kspm
	Kspm kspm.Status `json:"kspm,omitempty"`

	// 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"`

	// Observed state of Dynatrace API
	DynatraceApi DynatraceApiStatus `json:"dynatraceApi,omitempty"`

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

	// KubeSystemUUID contains the UUID of the current Kubernetes cluster
	KubeSystemUUID string `json:"kubeSystemUUID,omitempty"`

	// KubernetesClusterMEID contains the ID of the monitored entity that points to the Kubernetes cluster
	KubernetesClusterMEID string `json:"kubernetesClusterMEID,omitempty"`

	// KubernetesClusterName contains the display name (also know as label) of the monitored entity that points to the Kubernetes cluster
	KubernetesClusterName string `json:"kubernetesClusterName,omitempty"`

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

DynaKubeStatus defines the observed state of DynaKube +k8s:openapi-gen=true

func (*DynaKubeStatus) DeepCopy

func (in *DynaKubeStatus) DeepCopy() *DynaKubeStatus

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

func (*DynaKubeStatus) DeepCopyInto

func (in *DynaKubeStatus) DeepCopyInto(out *DynaKubeStatus)

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

func (*DynaKubeStatus) SetPhase

func (dk *DynaKubeStatus) SetPhase(phase status.DeploymentPhase) bool

SetPhase sets the status phase on the DynaKube object.

type DynatraceApiStatus

type DynatraceApiStatus struct {
	// Time of the last token request
	LastTokenScopeRequest metav1.Time `json:"lastTokenScopeRequest,omitempty"`
}

func (*DynatraceApiStatus) DeepCopy

func (in *DynatraceApiStatus) DeepCopy() *DynatraceApiStatus

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

func (*DynatraceApiStatus) DeepCopyInto

func (in *DynatraceApiStatus) DeepCopyInto(out *DynatraceApiStatus)

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

type EnrichmentRule

type EnrichmentRule struct {
	Type    EnrichmentRuleType `json:"type,omitempty"`
	Source  string             `json:"source,omitempty"`
	Target  string             `json:"target,omitempty"`
	Enabled bool               `json:"enabled,omitempty"`
}

func (*EnrichmentRule) DeepCopy

func (in *EnrichmentRule) DeepCopy() *EnrichmentRule

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

func (*EnrichmentRule) DeepCopyInto

func (in *EnrichmentRule) DeepCopyInto(out *EnrichmentRule)

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

func (EnrichmentRule) ToAnnotationKey

func (rule EnrichmentRule) ToAnnotationKey() string

type EnrichmentRuleType

type EnrichmentRuleType string
const (
	EnrichmentLabelRule      EnrichmentRuleType = "LABEL"
	EnrichmentAnnotationRule EnrichmentRuleType = "ANNOTATION"
)

type ExtensionExecutionControllerSpec

type ExtensionExecutionControllerSpec struct {

	// Defines storage device
	// +kubebuilder:validation:Optional
	PersistentVolumeClaim *corev1.PersistentVolumeClaimSpec `json:"persistentVolumeClaim,omitempty"`

	// Adds additional labels for the ExtensionExecutionController pods
	// +kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// Adds additional annotations to the ExtensionExecutionController pods
	Annotations map[string]string `json:"annotations,omitempty"`

	// Overrides the default image
	// +kubebuilder:validation:Optional
	ImageRef image.Ref `json:"imageRef,omitempty"`

	// +kubebuilder:validation:Optional
	TlsRefName string `json:"tlsRefName,omitempty"`

	// Defines name of ConfigMap containing custom configuration file
	// +kubebuilder:validation:Optional
	CustomConfig string `json:"customConfig,omitempty"`

	// Defines name of Secret containing certificates for custom extensions signature validation
	// +kubebuilder:validation:Optional
	CustomExtensionCertificates string `json:"customExtensionCertificates,omitempty"`

	// Define resources' requests and limits for single ExtensionExecutionController pod
	// +kubebuilder:validation:Optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Set tolerations for the ExtensionExecutionController pods
	// +kubebuilder:validation:Optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Adds TopologySpreadConstraints for the ExtensionExecutionController pods
	// +kubebuilder:validation:Optional
	TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
	// Selects EmptyDir volume to be storage device
	// +kubebuilder:validation:Optional
	UseEphemeralVolume bool `json:"useEphemeralVolume,omitempty"`
}

func (*ExtensionExecutionControllerSpec) DeepCopy

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

func (*ExtensionExecutionControllerSpec) DeepCopyInto

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

type ExtensionsSpec

type ExtensionsSpec struct {
}

+kubebuilder:validation:Optional

func (*ExtensionsSpec) DeepCopy

func (in *ExtensionsSpec) DeepCopy() *ExtensionsSpec

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

func (*ExtensionsSpec) DeepCopyInto

func (in *ExtensionsSpec) DeepCopyInto(out *ExtensionsSpec)

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

type HostInjectSpec

type HostInjectSpec struct {

	// Add custom OneAgent annotations.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Annotations",order=27,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:text"}
	Annotations map[string]string `json:"annotations,omitempty"`

	// Your defined labels for OneAgent pods in order to structure workloads as desired.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Labels",order=26,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:text"}
	Labels map[string]string `json:"labels,omitempty"`

	// Specify the node selector that controls on which nodes OneAgent will be deployed.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Node Selector",order=17,xDescriptors="urn:alm:descriptor:com.tectonic.ui:selector:Node"
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Disables automatic restarts of OneAgent pods in case a new version is available (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/kubernetes/get-started-with-kubernetes-monitoring#disable-auto).
	// Enabled by default.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Automatically update Agent",order=13,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	AutoUpdate *bool `json:"autoUpdate"`

	// Use a specific OneAgent version. Defaults to the latest version from the Dynatrace cluster.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OneAgent version",order=11,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:text"}
	Version string `json:"version,omitempty"`

	// Use a custom OneAgent image. Defaults to the latest image from the Dynatrace cluster.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Image",order=12,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:text"}
	Image string `json:"image,omitempty"`

	// Set the DNS Policy for OneAgent pods. For details, see Pods DNS Policy (https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="DNS Policy",order=24,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:text"}
	DNSPolicy corev1.DNSPolicy `json:"dnsPolicy,omitempty"`

	// Assign a priority class to the OneAgent pods. By default, no class is set.
	// For details, see Pod Priority and Preemption (https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/).
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Priority Class name",order=23,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:io.kubernetes:PriorityClass"}
	PriorityClassName string `json:"priorityClassName,omitempty"`

	// The SecComp Profile that will be configured in order to run in secure computing mode.
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OneAgent SecComp Profile",order=17,xDescriptors="urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Namespace"
	SecCompProfile string `json:"secCompProfile,omitempty"`

	// Resource settings for OneAgent container. Consumption of the OneAgent heavily depends on the workload to monitor. You can use the default settings in the CR.
	// Note: resource.requests shows the values needed to run; resource.limits shows the maximum limits for the pod.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resource Requirements",order=20,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:resourceRequirements"}
	OneAgentResources corev1.ResourceRequirements `json:"oneAgentResources,omitempty"`

	// Tolerations to include with the OneAgent DaemonSet. For details, see Taints and Tolerations (https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tolerations",order=18,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:hidden"}
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Set additional environment variables for the OneAgent pods.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OneAgent environment variable installer arguments",order=22,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:hidden"}
	Env []corev1.EnvVar `json:"env,omitempty"`

	// Set additional arguments to the OneAgent installer.
	// For available options, see Linux custom installation (https://www.dynatrace.com/support/help/setup-and-configuration/dynatrace-oneagent/installation-and-operation/linux/installation/customize-oneagent-installation-on-linux).
	// For the list of limitations, see Limitations (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/docker/set-up-dynatrace-oneagent-as-docker-container#limitations).
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OneAgent installer arguments",order=21,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:hidden"}
	// +listType=set
	Args []string `json:"args,omitempty"`
}

func (*HostInjectSpec) DeepCopy

func (in *HostInjectSpec) DeepCopy() *HostInjectSpec

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

func (*HostInjectSpec) DeepCopyInto

func (in *HostInjectSpec) DeepCopyInto(out *HostInjectSpec)

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

type MetadataEnrichment

type MetadataEnrichment struct {
	// Enables MetadataEnrichment, `false` by default.
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="MetaDataEnrichment",xDescriptors="urn:alm:descriptor:com.tectonic.ui:selector:booleanSwitch"
	Enabled *bool `json:"enabled,omitempty"`

	// The namespaces where you want Dynatrace Operator to inject enrichment.
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Namespace Selector",xDescriptors="urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Namespace"
	NamespaceSelector metav1.LabelSelector `json:"namespaceSelector,omitempty"`
}

func (*MetadataEnrichment) DeepCopy

func (in *MetadataEnrichment) DeepCopy() *MetadataEnrichment

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

func (*MetadataEnrichment) DeepCopyInto

func (in *MetadataEnrichment) DeepCopyInto(out *MetadataEnrichment)

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

type MetadataEnrichmentStatus

type MetadataEnrichmentStatus struct {
	Rules []EnrichmentRule `json:"rules,omitempty"`
}

func (*MetadataEnrichmentStatus) DeepCopy

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

func (*MetadataEnrichmentStatus) DeepCopyInto

func (in *MetadataEnrichmentStatus) DeepCopyInto(out *MetadataEnrichmentStatus)

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

type OneAgentConnectionInfoStatus

type OneAgentConnectionInfoStatus struct {
	// Information for communicating with the tenant
	communication.ConnectionInfo `json:",inline"`

	// List of communication hosts
	CommunicationHosts []CommunicationHostStatus `json:"communicationHosts,omitempty"`
}

func (*OneAgentConnectionInfoStatus) DeepCopy

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

func (*OneAgentConnectionInfoStatus) DeepCopyInto

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

type OneAgentInstance

type OneAgentInstance struct {
	// Name of the OneAgent pod
	PodName string `json:"podName,omitempty"`

	// IP address of the pod
	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 OneAgentMode

type OneAgentMode string

type OneAgentSpec

type OneAgentSpec struct {
	// Has a single OneAgent per node via DaemonSet.
	// Injection is performed via the same OneAgent DaemonSet.
	// +nullable
	ClassicFullStack *HostInjectSpec `json:"classicFullStack,omitempty"`

	// Has a single OneAgent per node via DaemonSet.
	// dynatrace-webhook injects into application pods based on labeled namespaces.
	// Has a CSI driver per node via DaemonSet to provide binaries to pods.
	// +nullable
	CloudNativeFullStack *CloudNativeFullStackSpec `json:"cloudNativeFullStack,omitempty"`

	// dynatrace-webhook injects into application pods based on labeled namespaces.
	// Has an optional CSI driver per node via DaemonSet to provide binaries to pods.
	// +nullable
	ApplicationMonitoring *ApplicationMonitoringSpec `json:"applicationMonitoring,omitempty"`

	// Has a single OneAgent per node via DaemonSet.
	// Doesn't inject into application pods.
	// +nullable
	HostMonitoring *HostInjectSpec `json:"hostMonitoring,omitempty"`

	// Sets a host group for OneAgent.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Host Group",order=5,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:advanced","urn:alm:descriptor:com.tectonic.ui:text"}
	HostGroup string `json:"hostGroup,omitempty"`
}

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 {
	status.VersionStatus `json:",inline"`

	// List of deployed OneAgent instances
	Instances map[string]OneAgentInstance `json:"instances,omitempty"`

	// Time of the last instance status update
	LastInstanceStatusUpdate *metav1.Time `json:"lastInstanceStatusUpdate,omitempty"`

	// Commands used for OneAgent's readiness probe
	// +kubebuilder:validation:Type=object
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	Healthcheck *containerv1.HealthConfig `json:"healthcheck,omitempty"`

	// Information about OneAgent's connections
	ConnectionInfoStatus OneAgentConnectionInfoStatus `json:"connectionInfoStatus,omitempty"`
}

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.

type OpenTelemetryCollectorSpec

type OpenTelemetryCollectorSpec struct {

	// Adds additional labels for the OtelCollector pods
	// +kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// Adds additional annotations to the OtelCollector pods
	// +kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Number of replicas for your OtelCollector
	// +kubebuilder:validation:Optional
	Replicas *int32 `json:"replicas"`

	// Overrides the default image
	// +kubebuilder:validation:Optional
	ImageRef image.Ref `json:"imageRef,omitempty"`

	// +kubebuilder:validation:Optional
	TlsRefName string `json:"tlsRefName,omitempty"`

	// Define resources' requests and limits for single OtelCollector pod
	// +kubebuilder:validation:Optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Set tolerations for the OtelCollector pods
	// +kubebuilder:validation:Optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Adds TopologySpreadConstraints for the OtelCollector pods
	// +kubebuilder:validation:Optional
	TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
}

func (*OpenTelemetryCollectorSpec) DeepCopy

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

func (*OpenTelemetryCollectorSpec) DeepCopyInto

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

type TemplatesSpec

type TemplatesSpec struct {
	// Low-level configuration options for the LogMonitoring feature.
	// +kubebuilder:validation:Optional
	LogMonitoring *logmonitoring.TemplateSpec `json:"logMonitoring,omitempty"`
	// +kubebuilder:validation:Optional
	KspmNodeConfigurationCollector kspm.NodeConfigurationCollectorSpec `json:"kspmNodeConfigurationCollector,omitempty"`
	// +kubebuilder:validation:Optional
	OpenTelemetryCollector OpenTelemetryCollectorSpec `json:"openTelemetryCollector,omitempty"`
	// +kubebuilder:validation:Optional
	ExtensionExecutionController ExtensionExecutionControllerSpec `json:"extensionExecutionController,omitempty"`
}

func (*TemplatesSpec) DeepCopy

func (in *TemplatesSpec) DeepCopy() *TemplatesSpec

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

func (*TemplatesSpec) DeepCopyInto

func (in *TemplatesSpec) DeepCopyInto(out *TemplatesSpec)

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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