pkg/cmd/podidentity/k8s/localobject.go (41 lines of code) (raw):

package k8s import ( appsv1 "k8s.io/api/apps/v1" batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" "sigs.k8s.io/controller-runtime/pkg/client" ) type LocalObject interface { client.Object GetServiceAccountName() string SetServiceAccountName(name string) GetContainers() []corev1.Container SetContainers(containers []corev1.Container) GetInitContainers() []corev1.Container SetInitContainers(containers []corev1.Container) SetGVK() GetObject() client.Object ResetStatus() } func NewLocalObject(obj client.Object) LocalObject { switch obj.(type) { case *corev1.Pod: return newPodLocalObject(obj) case *appsv1.Deployment: return newDeploymentLocalObject(obj) case *appsv1.StatefulSet: return newStatefulSetLocalObject(obj) case *appsv1.DaemonSet: return newDaemonSetLocalObject(obj) case *appsv1.ReplicaSet: return newReplicaSetLocalObject(obj) case *corev1.ReplicationController: return newReplicationControllerLocalObject(obj) case *batchv1.CronJob: return newCronJobLocalObject(obj) case *batchv1.Job: return newJobLocalObject(obj) default: return nil } }