Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CollectionPolicyReconciler ¶
type CollectionPolicyReconciler struct {
client.Client
Scheme *runtime.Scheme
Log logr.Logger
KEDAClient *kedaclient.Clientset
K8sClient *kubernetes.Clientset
DynamicClient *dynamic.DynamicClient
MetadataClient metadata.Interface
DiscoveryClient *discovery.DiscoveryClient
DakrClient transport.DakrClient
ApiExtensions *apiextensionsclientset.Clientset
CollectionManager *collector.CollectionManager
MpaServer *server.MpaServer
Sender transport.DirectSender
TelemetrySender *transport.TelemetrySender
TelemetryMetrics *collector.TelemetryMetrics
TelemetryLogger telemetry_logger.Logger
ZapLogger *zap.Logger
IsRunning bool
CurrentPolicyHash string
CurrentConfig *PolicyConfig
RestartInProgress bool
MpaServerPort int
HealthManager *health.HealthManager
// contains filtered or unexported fields
}
CollectionPolicyReconciler reconciles a CollectionPolicy object
func (*CollectionPolicyReconciler) Reconcile ¶
func (r *CollectionPolicyReconciler) Reconcile( ctx context.Context, req ctrl.Request, ) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*CollectionPolicyReconciler) SetupWithManager ¶
func (r *CollectionPolicyReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type EnvBasedController ¶
type EnvBasedController struct {
client.Client
Scheme *runtime.Scheme
Log logr.Logger
K8sClient kubernetes.Interface
DynamicClient *dynamic.DynamicClient
DiscoveryClient *discovery.DiscoveryClient
ApiExtensions *apiextensionsclientset.Clientset
Reconciler *CollectionPolicyReconciler
// contains filtered or unexported fields
}
EnvBasedController is a controller that uses environment variables instead of CRDs
func NewEnvBasedController ¶
func NewEnvBasedController( mgr ctrl.Manager, healthManager *health.HealthManager, reconcileInterval time.Duration, mpaServerPort int, ) (*EnvBasedController, error)
NewEnvBasedController creates a new environment-based controller
func (*EnvBasedController) NeedLeaderElection ¶
func (c *EnvBasedController) NeedLeaderElection() bool
NeedLeaderElection implements the LeaderElectionRunnable interface
type GPURuntimeResolver ¶ added in v0.1.0
type GPURuntimeResolver struct {
// contains filtered or unexported fields
}
GPURuntimeResolver keeps the managed GPU DaemonSet's RuntimeClass in sync with the RuntimeClass API when the DaemonSet opts into auto mode.
func NewGPURuntimeResolver ¶ added in v0.1.0
func NewGPURuntimeResolver( c client.Client, apiReader client.Reader, namespace string, interval time.Duration, healthManager *health.HealthManager, ) *GPURuntimeResolver
NewGPURuntimeResolver builds the resolver. apiReader must be an uncached reader (mgr.GetAPIReader()): the RuntimeClass read is served by a direct GET, which the narrow get-on-resourceName RBAC allows. The manager's cached client would instead back the read with a cluster-wide LIST+WATCH informer, which the resolver's RBAC intentionally forbids, so a cached read blocks forever on a cache that can never sync. client is used for the DaemonSet patch (and its already-permitted cached read).
func (*GPURuntimeResolver) NeedLeaderElection ¶ added in v0.1.0
func (r *GPURuntimeResolver) NeedLeaderElection() bool
NeedLeaderElection makes the resolver run only on the elected manager.
func (*GPURuntimeResolver) ReconcileOnce ¶ added in v0.1.0
func (r *GPURuntimeResolver) ReconcileOnce(ctx context.Context) error
ReconcileOnce resolves and, when necessary, merge-patches the managed GPU DaemonSet. Conflicts retry the entire transaction so every attempt computes desired state from a fresh DaemonSet read.
type PolicyConfig ¶
type PolicyConfig struct {
TargetNamespaces []string
ExcludedNamespaces []string
ExcludedPods []collector.ExcludedPod
ExcludedDeployments []collector.ExcludedDeployment
ExcludedStatefulSets []collector.ExcludedStatefulSet
ExcludedDaemonSets []collector.ExcludedDaemonSet
ExcludedServices []collector.ExcludedService
ExcludedPVCs []collector.ExcludedPVC
ExcludedEvents []collector.ExcludedEvent
ExcludedJobs []collector.ExcludedJob
ExcludedCronJobs []collector.ExcludedCronJob
ExcludedReplicationControllers []collector.ExcludedReplicationController
ExcludedIngresses []collector.ExcludedIngress
ExcludedNetworkPolicies []collector.ExcludedNetworkPolicy
ExcludedEndpoints []collector.ExcludedEndpoint
ExcludedServiceAccounts []collector.ExcludedServiceAccount
ExcludedLimitRanges []collector.ExcludedLimitRange
ExcludedResourceQuotas []collector.ExcludedResourceQuota
ExcludedHPAs []collector.ExcludedHPA
ExcludedVPAs []collector.ExcludedVPA
ExcludedRoles []collector.ExcludedRole
ExcludedRoleBindings []collector.ExcludedRoleBinding
ExcludedClusterRoles []string
ExcludedClusterRoleBindings []string
ExcludedPDBs []collector.ExcludedPDB
ExcludedPSPs []string
ExcludedCRDs []string
ExcludedReplicaSet []collector.ExcludedReplicaSet
ExcludedStorageClasses []string
ExcludedPVs []string
ExcludedIngressClasses []string
ExcludedNodes []string
ExcludedCRDGroups []string
WatchedCRDs []string
ExcludedCSINodes []string
ExcludedDatadogReplicaSets []collector.ExcludedDatadogExtendedDaemonSetReplicaSet
ExcludedArgoRollouts []collector.ExcludedArgoRollout
ExcludedKedaScaledJobs []collector.ExcludedScaledJob
ExcludedKedaScaledObjects []collector.ExcludedScaledObject
ExcludedCSIDrivers []string
ExcludedCSIStorageCapacities []collector.ExcludedCSIStorageCapacity
ExcludedVolumeAttachments []string
ExcludedKubeflowNotebooks []collector.ExcludedKubeflowNotebook
ExcludedVolcanoJobs []collector.ExcludedVolcanoJob
ExcludedSparkApplications []collector.ExcludedSparkApplication
ExcludedScheduledSparkApplications []collector.ExcludedScheduledSparkApplication
ExcludedCNPGClusters []collector.ExcludedCNPGCluster
DisabledCollectors []string
KubeContextName string
DakrURL string
ClusterToken string
DisableGPUMetrics bool
UpdateInterval time.Duration
NodeMetricsInterval time.Duration
ClusterSnapshotInterval time.Duration
BufferSize int
MaskSecretData bool
NumResourceProcessors int
NodeMetricsConcurrency int
NodemonRequestTimeout time.Duration
KubeletFallbackTimeout time.Duration
}
PolicyConfig holds the current configuration