in src/app/backend/resource/controller/controller.go [65:107]
func NewResourceController(ref meta.OwnerReference, namespace string, client client.Interface) (
ResourceController, error) {
switch strings.ToLower(ref.Kind) {
case api.ResourceKindJob:
job, err := client.BatchV1().Jobs(namespace).Get(context.TODO(), ref.Name, meta.GetOptions{})
if err != nil {
return nil, err
}
return JobController(*job), nil
case api.ResourceKindPod:
pod, err := client.CoreV1().Pods(namespace).Get(context.TODO(), ref.Name, meta.GetOptions{})
if err != nil {
return nil, err
}
return PodController(*pod), nil
case api.ResourceKindReplicaSet:
rs, err := client.AppsV1().ReplicaSets(namespace).Get(context.TODO(), ref.Name, meta.GetOptions{})
if err != nil {
return nil, err
}
return ReplicaSetController(*rs), nil
case api.ResourceKindReplicationController:
rc, err := client.CoreV1().ReplicationControllers(namespace).Get(context.TODO(), ref.Name, meta.GetOptions{})
if err != nil {
return nil, err
}
return ReplicationControllerController(*rc), nil
case api.ResourceKindDaemonSet:
ds, err := client.AppsV1().DaemonSets(namespace).Get(context.TODO(), ref.Name, meta.GetOptions{})
if err != nil {
return nil, err
}
return DaemonSetController(*ds), nil
case api.ResourceKindStatefulSet:
ss, err := client.AppsV1().StatefulSets(namespace).Get(context.TODO(), ref.Name, meta.GetOptions{})
if err != nil {
return nil, err
}
return StatefulSetController(*ss), nil
default:
return nil, fmt.Errorf("unknown reference kind: %s", ref.Kind)
}
}