mirror of
https://github.com/stakater/Reloader.git
synced 2026-08-20 12:36:26 +00:00
47 lines
1.3 KiB
Go
47 lines
1.3 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"
|
|
)
|
|
|
|
// statefulSetAccessor implements PodTemplateAccessor for StatefulSet.
|
|
type statefulSetAccessor struct {
|
|
statefulset *appsv1.StatefulSet
|
|
}
|
|
|
|
func (a *statefulSetAccessor) GetPodTemplateSpec() *corev1.PodTemplateSpec {
|
|
return &a.statefulset.Spec.Template
|
|
}
|
|
|
|
func (a *statefulSetAccessor) GetObjectMeta() *metav1.ObjectMeta {
|
|
return &a.statefulset.ObjectMeta
|
|
}
|
|
|
|
// StatefulSetWorkload wraps a Kubernetes StatefulSet.
|
|
type StatefulSetWorkload struct {
|
|
*BaseWorkload[*appsv1.StatefulSet]
|
|
}
|
|
|
|
// NewStatefulSetWorkload creates a new StatefulSetWorkload.
|
|
func NewStatefulSetWorkload(s *appsv1.StatefulSet) *StatefulSetWorkload {
|
|
original := s.DeepCopy()
|
|
accessor := &statefulSetAccessor{statefulset: s}
|
|
return &StatefulSetWorkload{
|
|
BaseWorkload: NewBaseWorkload(s, original, accessor, KindStatefulSet),
|
|
}
|
|
}
|
|
|
|
// Ensure StatefulSetWorkload implements Workload.
|
|
var _ Workload = (*StatefulSetWorkload)(nil)
|
|
|
|
func (w *StatefulSetWorkload) DeepCopy() Workload {
|
|
return NewStatefulSetWorkload(w.Object().DeepCopy())
|
|
}
|
|
|
|
// GetStatefulSet returns the underlying StatefulSet for special handling.
|
|
func (w *StatefulSetWorkload) GetStatefulSet() *appsv1.StatefulSet {
|
|
return w.Object()
|
|
}
|