Documentation
¶
Index ¶
- Constants
- type CRDInstance
- type CRDMetadata
- type CRDMetadataForwarder
- type CRDMetadataPayload
- type EnabledCRDKindsConfig
- type HelmMetadata
- type HelmMetadataForwarder
- type HelmMetadataPayload
- type HelmReleaseData
- type HelmReleaseMinimal
- type OperatorMetadata
- type OperatorMetadataForwarder
- type OperatorMetadataPayload
- type ReleaseEntry
- type ReleaseSnapshot
- type SharedMetadata
Constants ¶
const ( // default timeout for metadata operations DefaultOperationTimeout = 30 * time.Second )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CRDInstance ¶ added in v1.22.0
type CRDInstance struct {
Kind string `json:"kind"`
Name string `json:"name"`
Namespace string `json:"namespace"`
APIVersion string `json:"api_version"`
UID string `json:"uid"`
Spec interface{} `json:"spec"`
Labels map[string]string `json:"labels,omitempty"`
Annotations map[string]string `json:"annotations,omitempty"`
}
type CRDMetadata ¶ added in v1.22.0
type CRDMetadata struct {
// Shared
OperatorVersion string `json:"operator_version"`
KubernetesVersion string `json:"kubernetes_version"`
ClusterID string `json:"cluster_id"`
CRDKind string `json:"crd_kind"`
CRDName string `json:"crd_name"`
CRDNamespace string `json:"crd_namespace"`
CRDAPIVersion string `json:"crd_api_version"`
CRDUID string `json:"crd_uid"`
CRDSpecFull string `json:"crd_spec_full"`
CRDLabelsJSON string `json:"crd_labels,omitempty"`
CRDAnnotationsJSON string `json:"crd_annotations,omitempty"`
}
type CRDMetadataForwarder ¶ added in v1.22.0
type CRDMetadataForwarder struct {
// contains filtered or unexported fields
}
func NewCRDMetadataForwarder ¶ added in v1.22.0
func NewCRDMetadataForwarder(logger logr.Logger, k8sClient client.Reader, kubernetesVersion string, operatorVersion string, credsManager *config.CredentialManager, config EnabledCRDKindsConfig) *CRDMetadataForwarder
NewCRDMetadataForwarder creates a new instance of the CRD metadata forwarder
func (*CRDMetadataForwarder) Start ¶ added in v1.22.0
func (cmf *CRDMetadataForwarder) Start()
Start starts the CRD metadata forwarder
type CRDMetadataPayload ¶ added in v1.22.0
type CRDMetadataPayload struct {
UUID string `json:"uuid"`
Timestamp int64 `json:"timestamp"`
ClusterID string `json:"cluster_id"`
Metadata CRDMetadata `json:"datadog_operator_crd_metadata"`
}
type EnabledCRDKindsConfig ¶ added in v1.22.0
type EnabledCRDKindsConfig struct {
DatadogAgentEnabled bool
DatadogAgentInternalEnabled bool
DatadogAgentProfileEnabled bool
}
EnabledCRDsConfig specifies which CRD kinds are enabled for metadata collection
type HelmMetadata ¶ added in v1.21.0
type HelmMetadata struct {
// Shared
OperatorVersion string `json:"operator_version"`
KubernetesVersion string `json:"kubernetes_version"`
ClusterID string `json:"cluster_id"`
ChartName string `json:"chart_name"`
ChartReleaseName string `json:"chart_release_name"`
ChartAppVersion string `json:"chart_app_version"`
ChartVersion string `json:"chart_version"`
ChartNamespace string `json:"chart_namespace"`
ChartConfigMapUID string `json:"chart_configmap_uid"`
HelmProvidedConfiguration string `json:"helm_provided_configuration"` // User-provided values only
HelmFullConfiguration string `json:"helm_full_configuration"` // Includes defaults
}
type HelmMetadataForwarder ¶ added in v1.21.0
type HelmMetadataForwarder struct {
// contains filtered or unexported fields
}
func NewHelmMetadataForwarderWithManager ¶
func NewHelmMetadataForwarderWithManager(logger logr.Logger, mgr manager.Manager, k8sClient client.Reader, kubernetesVersion string, operatorVersion string, credsManager *config.CredentialManager) *HelmMetadataForwarder
NewHelmMetadataForwarderWithManager creates a new instance of the helm metadata forwarder
func (*HelmMetadataForwarder) NeedLeaderElection ¶
func (hmf *HelmMetadataForwarder) NeedLeaderElection() bool
NeedLeaderElection implements manager.LeaderElectionRunnable
func (*HelmMetadataForwarder) Start ¶ added in v1.21.0
func (hmf *HelmMetadataForwarder) Start(ctx context.Context) error
Start implements manager.Runnable interface It is called by the manager after the cache is synced but we don't need to initialize resources at start. Cache sends synthetic 'Add' events to the newly registered handler, see https://github.com/kubernetes/client-go/blob/v0.35.0/tools/cache/shared_informer.go#L693-L697 Errors are logged but do not prevent the operator from starting
type HelmMetadataPayload ¶ added in v1.21.0
type HelmMetadataPayload struct {
UUID string `json:"uuid"`
Timestamp int64 `json:"timestamp"`
ClusterID string `json:"cluster_id"`
Metadata HelmMetadata `json:"datadog_operator_helm_metadata"`
}
type HelmReleaseData ¶ added in v1.21.0
type HelmReleaseData struct {
ReleaseName string
Namespace string
ChartName string
ChartVersion string
AppVersion string
ConfigMapUID string
ProvidedValuesYAML string // User-provided values only
FullValuesYAML string // Includes defaults
Revision int
Status string
}
HelmReleaseData contains all data for a single Helm release
type HelmReleaseMinimal ¶ added in v1.21.0
type HelmReleaseMinimal struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
Info struct {
Status string `json:"status"`
} `json:"info"`
Config map[string]interface{} `json:"config"` // User-provided values only
Chart struct {
Metadata struct {
Name string `json:"name"`
Version string `json:"version"`
AppVersion string `json:"appVersion"`
} `json:"metadata"`
Values map[string]interface{} `json:"values"` // Defaults
} `json:"chart"`
Version int `json:"version"` // Revision number
}
HelmReleaseMinimal represents the minimal structure we care about from Helm release
type OperatorMetadata ¶
type OperatorMetadata struct {
// Shared
OperatorVersion string `json:"operator_version"`
KubernetesVersion string `json:"kubernetes_version"`
ClusterID string `json:"cluster_id"`
InstallMethodTool string `json:"install_method_tool"`
InstallMethodToolVersion string `json:"install_method_tool_version"`
IsLeader bool `json:"is_leader"`
DatadogAgentEnabled bool `json:"datadogagent_enabled"`
DatadogMonitorEnabled bool `json:"datadogmonitor_enabled"`
DatadogDashboardEnabled bool `json:"datadogdashboard_enabled"`
DatadogSLOEnabled bool `json:"datadogslo_enabled"`
DatadogGenericResourceEnabled bool `json:"datadoggenericresource_enabled"`
DatadogAgentProfileEnabled bool `json:"datadogagentprofile_enabled"`
DatadogAgentInternalEnabled bool `json:"datadogagentinternal_enabled"`
LeaderElectionEnabled bool `json:"leader_election_enabled"`
ExtendedDaemonSetEnabled bool `json:"extendeddaemonset_enabled"`
RemoteConfigEnabled bool `json:"remote_config_enabled"`
IntrospectionEnabled bool `json:"introspection_enabled"`
ConfigDDURL string `json:"config_dd_url"`
ConfigDDSite string `json:"config_site"`
ResourceCounts map[string]int `json:"resource_count"`
}
type OperatorMetadataForwarder ¶ added in v1.21.0
type OperatorMetadataForwarder struct {
OperatorMetadata OperatorMetadata
// contains filtered or unexported fields
}
func NewOperatorMetadataForwarder ¶ added in v1.21.0
func NewOperatorMetadataForwarder(logger logr.Logger, k8sClient client.Reader, kubernetesVersion, operatorVersion string, credsManager *config.CredentialManager) *OperatorMetadataForwarder
NewOperatorMetadataForwarder creates a new instance of the operator metadata forwarder
func (*OperatorMetadataForwarder) GetPayload ¶ added in v1.21.0
func (omf *OperatorMetadataForwarder) GetPayload(clusterUID string) []byte
func (*OperatorMetadataForwarder) Start ¶ added in v1.21.0
func (omf *OperatorMetadataForwarder) Start()
Start starts the operator metadata forwarder
type OperatorMetadataPayload ¶
type OperatorMetadataPayload struct {
UUID string `json:"uuid"`
Timestamp int64 `json:"timestamp"`
ClusterID string `json:"cluster_id"`
Metadata OperatorMetadata `json:"datadog_operator_metadata"`
}
type ReleaseEntry ¶
type ReleaseEntry struct {
// contains filtered or unexported fields
}
ReleaseEntry wraps a ReleaseSnapshot with a mutex for safe concurrent access
type ReleaseSnapshot ¶
type ReleaseSnapshot struct {
Release *HelmReleaseMinimal
ReleaseName string
Namespace string
ChartName string
ChartVersion string
AppVersion string
ConfigMapUID string
ProvidedValuesYAML string
FullValuesYAML string
Revision int
Status string
}
ReleaseSnapshot holds a snapshot of a Helm release
type SharedMetadata ¶ added in v1.21.0
type SharedMetadata struct {
// contains filtered or unexported fields
}
SharedMetadata contains the common metadata shared across all forwarders
func NewSharedMetadata ¶ added in v1.21.0
func NewSharedMetadata(logger logr.Logger, k8sClient client.Reader, kubernetesVersion string, operatorVersion string, credsManager *config.CredentialManager) *SharedMetadata
NewSharedMetadata creates a new instance of shared metadata
func (*SharedMetadata) GetHeaders ¶ added in v1.21.0
func (sm *SharedMetadata) GetHeaders(apiKey string) http.Header
GetBaseHeaders returns the common HTTP headers for API requests
func (*SharedMetadata) GetOrCreateClusterUID ¶ added in v1.21.0
func (sm *SharedMetadata) GetOrCreateClusterUID(ctx context.Context) (string, error)
GetOrCreateClusterUID retrieves the cluster UID from kube-system namespace