Skip to content

Commit

Permalink
Merge pull request #133 from layer5io/kumarabd/feature/broker
Browse files Browse the repository at this point in the history
fix for minikube hyperkit
  • Loading branch information
kumarabd committed Feb 21, 2021
2 parents c1a7252 + 1723245 commit 566e233
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 17 deletions.
10 changes: 6 additions & 4 deletions controllers/broker_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"github.com/go-logr/logr"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"

Expand All @@ -35,9 +36,10 @@ import (
// BrokerReconciler reconciles a Broker object
type BrokerReconciler struct {
client.Client
Clientset *kubernetes.Clientset
Log logr.Logger
Scheme *runtime.Scheme
KubeConfig *rest.Config
Clientset *kubernetes.Clientset
Log logr.Logger
Scheme *runtime.Scheme
}

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

// Get broker endpoint
err = brokerpackage.GetEndpoint(ctx, baseResource, r.Clientset)
err = brokerpackage.GetEndpoint(ctx, baseResource, r.Clientset, r.KubeConfig.Host)
if err != nil {
return ctrl.Result{}, ErrGetEndpoint(err)
}
Expand Down
10 changes: 6 additions & 4 deletions controllers/meshsync_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"github.com/go-logr/logr"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"

Expand All @@ -36,9 +37,10 @@ import (
// MeshSyncReconciler reconciles a MeshSync object
type MeshSyncReconciler struct {
client.Client
Clientset *kubernetes.Clientset
Log logr.Logger
Scheme *runtime.Scheme
KubeConfig *rest.Config
Clientset *kubernetes.Clientset
Log logr.Logger
Scheme *runtime.Scheme
}

// +kubebuilder:rbac:groups=meshery.layer5.io,resources=meshsyncs,verbs=get;list;watch;create;update;patch;delete
Expand Down Expand Up @@ -99,7 +101,7 @@ func (r *MeshSyncReconciler) reconcileBrokerConfig(ctx context.Context, baseReso
if baseResource.Spec.Broker.Native != nullNativeResource {
brokerresource.ObjectMeta.Namespace = baseResource.Spec.Broker.Native.Namespace
brokerresource.ObjectMeta.Name = baseResource.Spec.Broker.Native.Name
err := brokerpackage.GetEndpoint(ctx, brokerresource, r.Clientset)
err := brokerpackage.GetEndpoint(ctx, brokerresource, r.Clientset, r.KubeConfig.Host)
if err != nil {
return ErrGetEndpoint(err)
}
Expand Down
18 changes: 10 additions & 8 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,19 +83,21 @@ func main() {
}

if err = (&controllers.MeshSyncReconciler{
Client: mgr.GetClient(),
Clientset: clientset,
Log: ctrl.Log,
Scheme: mgr.GetScheme(),
KubeConfig: mgr.GetConfig(),
Client: mgr.GetClient(),
Clientset: clientset,
Log: ctrl.Log,
Scheme: mgr.GetScheme(),
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "MeshSync")
os.Exit(1)
}
if err = (&controllers.BrokerReconciler{
Client: mgr.GetClient(),
Clientset: clientset,
Log: ctrl.Log,
Scheme: mgr.GetScheme(),
KubeConfig: mgr.GetConfig(),
Client: mgr.GetClient(),
Clientset: clientset,
Log: ctrl.Log,
Scheme: mgr.GetScheme(),
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "Broker")
os.Exit(1)
Expand Down
4 changes: 3 additions & 1 deletion pkg/broker/broker.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func CheckHealth(ctx context.Context, m *mesheryv1alpha1.Broker, client *kuberne
return nil
}

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

0 comments on commit 566e233

Please sign in to comment.