<p>I want to custom a loadbalancer-controller by client-go, now I just try to set a address for the service, but it not work.
This is my code：</p>

<pre><code>func (c *Controller) syncToStdout(key string) error {
    obj, exists, err := c.indexer.GetByKey(key)
    if err != nil {
        klog.Errorf("Fetching object with key %s from store failed with %v", key, err)
        return err
    }

    if !exists {
        fmt.Printf("Pod %s does not exist anymore%s\n", key)
    } else {
        service := obj.(*v1.Service)
        if service.ObjectMeta.Annotations["service.beta.kubernetes.io/netease-cloud"] == "nlb" {
            klog.Info("service belong to NLB, name = ", service.GetName())
            // [0].IP = "10.123.234.213";
            service.Status.LoadBalancer.Ingress = []v1.LoadBalancerIngress{{IP: "10.123.234.213"}}
            _, _ = clientset.CoreV1().Services(v1.NamespaceDefault).Update(service)
            klog.Info("service belong to NLB, service = ", service)
        } else {
            klog.Info("service not belong to NLB, name = ", service.GetName())
        }
    }
    return nil
}
</code></pre>

<p>Then I get the service config, the ip not be set.</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/netease-cloud: nlb
  creationTimestamp: "2019-11-29T07:39:41Z"
  name: httpd-service
  namespace: default
  resourceVersion: "480971"
  selfLink: /api/v1/namespaces/default/services/httpd-service
  uid: 3000dddd-3d56-4989-af41-6d6a9bab7565
spec:
  clusterIP: 10.108.100.92
  externalTrafficPolicy: Cluster
  ports:
  - nodePort: 30000
    port: 8080
    protocol: TCP
    targetPort: 80
  selector:
    app: httpd
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer: {}
</code></pre>

<p>How can I set a ip for LoadBalancer Service?</p>

Bill Jay
<p>use <code>clientset.CoreV1().Services(v1.NamespaceDefault).UpdateStatus(service)</code> can solve it.</p>
