metadata

package
v1.24.0-rc.2 Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2026 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
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 {
	*SharedMetadata
	// 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 {
	*SharedMetadata
	// 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 {
	*SharedMetadata

	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

Jump to

Keyboard shortcuts

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