Files
Reloader/internal/pkg/workload/daemonset.go
T

47 lines
1.2 KiB
Go

package workload
import (
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// daemonSetAccessor implements PodTemplateAccessor for DaemonSet.
type daemonSetAccessor struct {
daemonset *appsv1.DaemonSet
}
func (a *daemonSetAccessor) GetPodTemplateSpec() *corev1.PodTemplateSpec {
return &a.daemonset.Spec.Template
}
func (a *daemonSetAccessor) GetObjectMeta() *metav1.ObjectMeta {
return &a.daemonset.ObjectMeta
}
// DaemonSetWorkload wraps a Kubernetes DaemonSet.
type DaemonSetWorkload struct {
*BaseWorkload[*appsv1.DaemonSet]
}
// NewDaemonSetWorkload creates a new DaemonSetWorkload.
func NewDaemonSetWorkload(d *appsv1.DaemonSet) *DaemonSetWorkload {
original := d.DeepCopy()
accessor := &daemonSetAccessor{daemonset: d}
return &DaemonSetWorkload{
BaseWorkload: NewBaseWorkload(d, original, accessor, KindDaemonSet),
}
}
// Ensure DaemonSetWorkload implements Workload.
var _ Workload = (*DaemonSetWorkload)(nil)
func (w *DaemonSetWorkload) DeepCopy() Workload {
return NewDaemonSetWorkload(w.Object().DeepCopy())
}
// GetDaemonSet returns the underlying DaemonSet for special handling.
func (w *DaemonSetWorkload) GetDaemonSet() *appsv1.DaemonSet {
return w.Object()
}