metadata

package
v1.22.0 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2026 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrEmptyHostName empty HostName error
	ErrEmptyHostName = errors.New("empty host name")
)

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 {
	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 NewHelmMetadataForwarder added in v1.21.0

func NewHelmMetadataForwarder(logger logr.Logger, k8sClient client.Reader, kubernetesVersion string, operatorVersion string, credsManager *config.CredentialManager) *HelmMetadataForwarder

NewHelmMetadataForwarder creates a new instance of the helm metadata forwarder

func (*HelmMetadataForwarder) Start added in v1.21.0

func (hmf *HelmMetadataForwarder) Start()

Start starts the helm metadata forwarder

type HelmMetadataPayload added in v1.21.0

type HelmMetadataPayload struct {
	Hostname  string       `json:"hostname"`
	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 {
	OperatorVersion               string         `json:"operator_version"`
	KubernetesVersion             string         `json:"kubernetes_version"`
	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"`
	ClusterID                     string         `json:"cluster_id"`
	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 {
	Hostname  string           `json:"hostname"`
	Timestamp int64            `json:"timestamp"`
	ClusterID string           `json:"cluster_id"`
	Metadata  OperatorMetadata `json:"datadog_operator_metadata"`
}

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() (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