package controllers import ( "fmt" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" seaweedv1 "github.com/seaweedfs/seaweedfs-operator/api/v1" ) func (r *SeaweedReconciler) createMasterService(m *seaweedv1.Seaweed, masterIndex int) *corev1.Service { labels := labelsForMaster(m.Name) labels["name"] = fmt.Sprintf("master-%d", masterIndex) dep := &corev1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: m.Name, Namespace: m.Namespace, }, Spec: corev1.ServiceSpec{ ClusterIP: "None", Ports: []corev1.ServicePort{ { Name: "swfs-master", Protocol: corev1.Protocol("TCP"), Port: 9333, TargetPort: intstr.IntOrString{ Type: intstr.Int, IntVal: 9333, }, }, { Name: "swfs-master-grpc", Protocol: corev1.Protocol("TCP"), Port: 19333, TargetPort: intstr.IntOrString{ Type: intstr.Int, IntVal: 19333, }, }, }, Selector: labels, }, } // Set master instance as the owner and controller // ctrl.SetControllerReference(m, dep, r.Scheme) return dep }