Merge pull request #1622 from stingshen/stingshen/nil_cluster_secret
check if cluster secretRef is nil before using it
This commit is contained in:
commit
73e24c2ac5
|
@ -191,14 +191,29 @@ func startClusterStatusController(ctx controllerscontext.Context) (enabled bool,
|
||||||
clusterPredicateFunc := predicate.Funcs{
|
clusterPredicateFunc := predicate.Funcs{
|
||||||
CreateFunc: func(createEvent event.CreateEvent) bool {
|
CreateFunc: func(createEvent event.CreateEvent) bool {
|
||||||
obj := createEvent.Object.(*clusterv1alpha1.Cluster)
|
obj := createEvent.Object.(*clusterv1alpha1.Cluster)
|
||||||
|
|
||||||
|
if obj.Spec.SecretRef == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
return obj.Spec.SyncMode == clusterv1alpha1.Push
|
return obj.Spec.SyncMode == clusterv1alpha1.Push
|
||||||
},
|
},
|
||||||
UpdateFunc: func(updateEvent event.UpdateEvent) bool {
|
UpdateFunc: func(updateEvent event.UpdateEvent) bool {
|
||||||
obj := updateEvent.ObjectNew.(*clusterv1alpha1.Cluster)
|
obj := updateEvent.ObjectNew.(*clusterv1alpha1.Cluster)
|
||||||
|
|
||||||
|
if obj.Spec.SecretRef == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
return obj.Spec.SyncMode == clusterv1alpha1.Push
|
return obj.Spec.SyncMode == clusterv1alpha1.Push
|
||||||
},
|
},
|
||||||
DeleteFunc: func(deleteEvent event.DeleteEvent) bool {
|
DeleteFunc: func(deleteEvent event.DeleteEvent) bool {
|
||||||
obj := deleteEvent.Object.(*clusterv1alpha1.Cluster)
|
obj := deleteEvent.Object.(*clusterv1alpha1.Cluster)
|
||||||
|
|
||||||
|
if obj.Spec.SecretRef == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
return obj.Spec.SyncMode == clusterv1alpha1.Push
|
return obj.Spec.SyncMode == clusterv1alpha1.Push
|
||||||
},
|
},
|
||||||
GenericFunc: func(genericEvent event.GenericEvent) bool {
|
GenericFunc: func(genericEvent event.GenericEvent) bool {
|
||||||
|
|
|
@ -121,11 +121,12 @@ func buildClusterConfig(clusterName string, client client.Client) (*rest.Config,
|
||||||
return nil, fmt.Errorf("the api endpoint of cluster %s is empty", clusterName)
|
return nil, fmt.Errorf("the api endpoint of cluster %s is empty", clusterName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if cluster.Spec.SecretRef == nil {
|
||||||
|
return nil, fmt.Errorf("cluster %s does not have a secret", clusterName)
|
||||||
|
}
|
||||||
|
|
||||||
secretNamespace := cluster.Spec.SecretRef.Namespace
|
secretNamespace := cluster.Spec.SecretRef.Namespace
|
||||||
secretName := cluster.Spec.SecretRef.Name
|
secretName := cluster.Spec.SecretRef.Name
|
||||||
if secretName == "" {
|
|
||||||
return nil, fmt.Errorf("cluster %s does not have a secret name", clusterName)
|
|
||||||
}
|
|
||||||
|
|
||||||
secret := &corev1.Secret{}
|
secret := &corev1.Secret{}
|
||||||
if err := client.Get(context.TODO(), types.NamespacedName{Namespace: secretNamespace, Name: secretName}, secret); err != nil {
|
if err := client.Get(context.TODO(), types.NamespacedName{Namespace: secretNamespace, Name: secretName}, secret); err != nil {
|
||||||
|
|
Loading…
Reference in New Issue