Skip to content

Commit 566e233

Browse files
authored
Merge pull request #133 from layer5io/kumarabd/feature/broker
fix for minikube hyperkit
2 parents c1a7252 + 1723245 commit 566e233

File tree

4 files changed

+25
-17
lines changed

4 files changed

+25
-17
lines changed

controllers/broker_controller.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/go-logr/logr"
2323
"k8s.io/apimachinery/pkg/runtime"
2424
"k8s.io/client-go/kubernetes"
25+
"k8s.io/client-go/rest"
2526
ctrl "sigs.k8s.io/controller-runtime"
2627
"sigs.k8s.io/controller-runtime/pkg/client"
2728

@@ -35,9 +36,10 @@ import (
3536
// BrokerReconciler reconciles a Broker object
3637
type BrokerReconciler struct {
3738
client.Client
38-
Clientset *kubernetes.Clientset
39-
Log logr.Logger
40-
Scheme *runtime.Scheme
39+
KubeConfig *rest.Config
40+
Clientset *kubernetes.Clientset
41+
Log logr.Logger
42+
Scheme *runtime.Scheme
4143
}
4244

4345
// +kubebuilder:rbac:groups=meshery.layer5.io,resources=brokers,verbs=get;list;watch;create;update;patch;delete
@@ -75,7 +77,7 @@ func (r *BrokerReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
7577
}
7678

7779
// Get broker endpoint
78-
err = brokerpackage.GetEndpoint(ctx, baseResource, r.Clientset)
80+
err = brokerpackage.GetEndpoint(ctx, baseResource, r.Clientset, r.KubeConfig.Host)
7981
if err != nil {
8082
return ctrl.Result{}, ErrGetEndpoint(err)
8183
}

controllers/meshsync_controller.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/go-logr/logr"
2323
"k8s.io/apimachinery/pkg/runtime"
2424
"k8s.io/client-go/kubernetes"
25+
"k8s.io/client-go/rest"
2526
ctrl "sigs.k8s.io/controller-runtime"
2627
"sigs.k8s.io/controller-runtime/pkg/client"
2728

@@ -36,9 +37,10 @@ import (
3637
// MeshSyncReconciler reconciles a MeshSync object
3738
type MeshSyncReconciler struct {
3839
client.Client
39-
Clientset *kubernetes.Clientset
40-
Log logr.Logger
41-
Scheme *runtime.Scheme
40+
KubeConfig *rest.Config
41+
Clientset *kubernetes.Clientset
42+
Log logr.Logger
43+
Scheme *runtime.Scheme
4244
}
4345

4446
// +kubebuilder:rbac:groups=meshery.layer5.io,resources=meshsyncs,verbs=get;list;watch;create;update;patch;delete
@@ -99,7 +101,7 @@ func (r *MeshSyncReconciler) reconcileBrokerConfig(ctx context.Context, baseReso
99101
if baseResource.Spec.Broker.Native != nullNativeResource {
100102
brokerresource.ObjectMeta.Namespace = baseResource.Spec.Broker.Native.Namespace
101103
brokerresource.ObjectMeta.Name = baseResource.Spec.Broker.Native.Name
102-
err := brokerpackage.GetEndpoint(ctx, brokerresource, r.Clientset)
104+
err := brokerpackage.GetEndpoint(ctx, brokerresource, r.Clientset, r.KubeConfig.Host)
103105
if err != nil {
104106
return ErrGetEndpoint(err)
105107
}

main.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,19 +83,21 @@ func main() {
8383
}
8484

8585
if err = (&controllers.MeshSyncReconciler{
86-
Client: mgr.GetClient(),
87-
Clientset: clientset,
88-
Log: ctrl.Log,
89-
Scheme: mgr.GetScheme(),
86+
KubeConfig: mgr.GetConfig(),
87+
Client: mgr.GetClient(),
88+
Clientset: clientset,
89+
Log: ctrl.Log,
90+
Scheme: mgr.GetScheme(),
9091
}).SetupWithManager(mgr); err != nil {
9192
setupLog.Error(err, "unable to create controller", "MeshSync")
9293
os.Exit(1)
9394
}
9495
if err = (&controllers.BrokerReconciler{
95-
Client: mgr.GetClient(),
96-
Clientset: clientset,
97-
Log: ctrl.Log,
98-
Scheme: mgr.GetScheme(),
96+
KubeConfig: mgr.GetConfig(),
97+
Client: mgr.GetClient(),
98+
Clientset: clientset,
99+
Log: ctrl.Log,
100+
Scheme: mgr.GetScheme(),
99101
}).SetupWithManager(mgr); err != nil {
100102
setupLog.Error(err, "unable to create controller", "Broker")
101103
os.Exit(1)

pkg/broker/broker.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func CheckHealth(ctx context.Context, m *mesheryv1alpha1.Broker, client *kuberne
7777
return nil
7878
}
7979

80-
func GetEndpoint(ctx context.Context, m *mesheryv1alpha1.Broker, client *kubernetes.Clientset) error {
80+
func GetEndpoint(ctx context.Context, m *mesheryv1alpha1.Broker, client *kubernetes.Clientset, host string) error {
8181
obj, err := client.CoreV1().Services(m.ObjectMeta.Namespace).Get(ctx, m.ObjectMeta.Name, metav1.GetOptions{})
8282
if err != nil {
8383
return ErrGettingResource(err)
@@ -96,6 +96,8 @@ func GetEndpoint(ctx context.Context, m *mesheryv1alpha1.Broker, client *kuberne
9696
if obj.Status.Size() > 0 && obj.Status.LoadBalancer.Size() > 0 && len(obj.Status.LoadBalancer.Ingress) > 0 && obj.Status.LoadBalancer.Ingress[0].Size() > 0 {
9797
if obj.Status.LoadBalancer.Ingress[0].IP == "" {
9898
m.Status.Endpoint.External = fmt.Sprintf("http://%s:4222", obj.Status.LoadBalancer.Ingress[0].Hostname)
99+
} else if obj.Status.LoadBalancer.Ingress[0].IP == obj.Spec.ClusterIP {
100+
m.Status.Endpoint.External = fmt.Sprintf("http://%s:4222", host)
99101
} else {
100102
m.Status.Endpoint.External = fmt.Sprintf("http://%s:4222", obj.Status.LoadBalancer.Ingress[0].IP)
101103
}

0 commit comments

Comments
 (0)