diff --git a/controllers/controller_filer_service.go b/controllers/controller_filer_service.go index 6f8fddd..dbd05e4 100644 --- a/controllers/controller_filer_service.go +++ b/controllers/controller_filer_service.go @@ -34,7 +34,7 @@ func (r *SeaweedReconciler) createFilerService(m *seaweedv1.Seaweed) *corev1.Ser }, }, { - Name: "swfs-volume-grpc", + Name: "swfs-filer-grpc", Protocol: corev1.Protocol("TCP"), Port: 18888, TargetPort: intstr.IntOrString{ @@ -42,6 +42,15 @@ func (r *SeaweedReconciler) createFilerService(m *seaweedv1.Seaweed) *corev1.Ser IntVal: 18888, }, }, + { + Name: "swfs-s3", + Protocol: corev1.Protocol("TCP"), + Port: 8333, + TargetPort: intstr.IntOrString{ + Type: intstr.Int, + IntVal: 8333, + }, + }, }, Selector: labels, }, diff --git a/controllers/controller_filer_statefulset.go b/controllers/controller_filer_statefulset.go index 3278c27..5e05c11 100644 --- a/controllers/controller_filer_statefulset.go +++ b/controllers/controller_filer_statefulset.go @@ -73,7 +73,7 @@ func (r *SeaweedReconciler) createFilerStatefulSet(m *seaweedv1.Seaweed) *appsv1 Command: []string{ "/bin/sh", "-ec", - fmt.Sprintf("weed filer -port=8888 %s %s", + fmt.Sprintf("weed filer -port=8888 %s %s -s3", fmt.Sprintf("-ip=$(POD_NAME).%s-filer", m.Name), fmt.Sprintf("-peers=%s-master-0.%s-master:9333,%s-master-1.%s-master:9333,%s-master-2.%s-master:9333", m.Name, m.Name, m.Name, m.Name, m.Name, m.Name), @@ -87,6 +87,13 @@ func (r *SeaweedReconciler) createFilerStatefulSet(m *seaweedv1.Seaweed) *appsv1 { ContainerPort: 18888, }, + { + ContainerPort: 8333, + Name: "swfs-s3", + }, + { + ContainerPort: 18333, + }, }, /* ReadinessProbe: &corev1.Probe{ diff --git a/controllers/controller_s3.go b/controllers/controller_s3.go deleted file mode 100644 index 9995af8..0000000 --- a/controllers/controller_s3.go +++ /dev/null @@ -1,82 +0,0 @@ -package controllers - -import ( - "context" - - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/types" - ctrl "sigs.k8s.io/controller-runtime" - - seaweedv1 "github.com/seaweedfs/seaweedfs-operator/api/v1" -) - -func (r *SeaweedReconciler) ensureS3Servers(seaweedCR *seaweedv1.Seaweed) (done bool, result ctrl.Result, err error) { - _ = context.Background() - _ = r.Log.WithValues("seaweed", seaweedCR.Name) - - if done, result, err = r.ensureS3Deployment(seaweedCR); done { - return - } - - if done, result, err = r.ensureS3Service(seaweedCR); done { - return - } - - return -} - -func (r *SeaweedReconciler) ensureS3Deployment(seaweedCR *seaweedv1.Seaweed) (bool, ctrl.Result, error) { - ctx := context.Background() - log := r.Log.WithValues("sw-s3-statefulset", seaweedCR.Name) - - s3Deployment := &appsv1.Deployment{} - err := r.Get(ctx, types.NamespacedName{Name: seaweedCR.Name + "-s3", Namespace: seaweedCR.Namespace}, s3Deployment) - if err != nil && errors.IsNotFound(err) { - // Define a new deployment - dep := r.createS3Deployment(seaweedCR) - log.Info("Creating a new s3 deployment", "Namespace", dep.Namespace, "Name", dep.Name) - err = r.Create(ctx, dep) - if err != nil { - log.Error(err, "Failed to create new s3 statefulset", "Namespace", dep.Namespace, "Name", dep.Name) - return ReconcileResult(err) - } - // Deployment created successfully - return and requeue - return ReconcileResult(err) - } else if err != nil { - log.Error(err, "Failed to get s3 statefulset") - return ReconcileResult(err) - } - log.Info("Get s3 stateful set " + s3Deployment.Name) - return ReconcileResult(err) -} - -func (r *SeaweedReconciler) ensureS3Service(seaweedCR *seaweedv1.Seaweed) (bool, ctrl.Result, error) { - ctx := context.Background() - log := r.Log.WithValues("sw-filer-service", seaweedCR.Name) - - s3Service := &corev1.Service{} - err := r.Get(ctx, types.NamespacedName{Name: seaweedCR.Name + "-s3", Namespace: seaweedCR.Namespace}, s3Service) - if err != nil && errors.IsNotFound(err) { - // Define a new deployment - dep := r.createS3Service(seaweedCR) - log.Info("Creating a new s3 service", "Namespace", dep.Namespace, "Name", dep.Name) - err = r.Create(ctx, dep) - if err != nil { - log.Error(err, "Failed to create new s3 service", "Namespace", dep.Namespace, "Name", dep.Name) - return ReconcileResult(err) - } - // Deployment created successfully - return and requeue - return ReconcileResult(err) - } else if err != nil { - log.Error(err, "Failed to get s3 server service") - return ReconcileResult(err) - } - log.Info("Get s3 service " + s3Service.Name) - return ReconcileResult(err) -} - -func labelsForS3(name string) map[string]string { - return map[string]string{"app": "seaweedfs", "role": "s3", "name": name} -} diff --git a/controllers/controller_s3_deployment.go b/controllers/controller_s3_deployment.go deleted file mode 100644 index 1f05996..0000000 --- a/controllers/controller_s3_deployment.go +++ /dev/null @@ -1,123 +0,0 @@ -package controllers - -import ( - "fmt" - - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - seaweedv1 "github.com/seaweedfs/seaweedfs-operator/api/v1" -) - -func (r *SeaweedReconciler) createS3Deployment(m *seaweedv1.Seaweed) *appsv1.Deployment { - labels := labelsForS3(m.Name) - replicas := int32(m.Spec.S3Count) - enableServiceLinks := false - - dep := &appsv1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: m.Name + "-s3", - Namespace: m.Namespace, - }, - Spec: appsv1.DeploymentSpec{ - Replicas: &replicas, - Selector: &metav1.LabelSelector{ - MatchLabels: labels, - }, - Template: corev1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: labels, - }, - Spec: corev1.PodSpec{ - EnableServiceLinks: &enableServiceLinks, - Containers: []corev1.Container{{ - Name: "seaweedfs", - Image: "chrislusf/seaweedfs:latest", - ImagePullPolicy: corev1.PullIfNotPresent, - Env: []corev1.EnvVar{ - { - Name: "POD_IP", - ValueFrom: &corev1.EnvVarSource{ - FieldRef: &corev1.ObjectFieldSelector{ - FieldPath: "status.podIP", - }, - }, - }, - { - Name: "POD_NAME", - ValueFrom: &corev1.EnvVarSource{ - FieldRef: &corev1.ObjectFieldSelector{ - FieldPath: "metadata.name", - }, - }, - }, - { - Name: "NAMESPACE", - ValueFrom: &corev1.EnvVarSource{ - FieldRef: &corev1.ObjectFieldSelector{ - FieldPath: "metadata.namespace", - }, - }, - }, - }, - Command: []string{ - "/bin/sh", - "-ec", - fmt.Sprintf("weed s3 -port=8333 %s", - fmt.Sprintf("-filer=$(POD_NAME).%s-filer:8888", m.Name), - ), - }, - Ports: []corev1.ContainerPort{ - { - ContainerPort: 8333, - Name: "swfs-s3", - }, - { - ContainerPort: 18333, - }, - }, - /* - ReadinessProbe: &corev1.Probe{ - Handler: corev1.Handler{ - HTTPGet: &corev1.HTTPGetAction{ - Path: "/cluster/status", - Port: intstr.IntOrString{ - Type: 0, - IntVal: 9333, - }, - Scheme: "http", - }, - }, - InitialDelaySeconds: 5, - TimeoutSeconds: 0, - PeriodSeconds: 15, - SuccessThreshold: 2, - FailureThreshold: 100, - }, - LivenessProbe: &corev1.Probe{ - Handler: corev1.Handler{ - HTTPGet: &corev1.HTTPGetAction{ - Path: "/cluster/status", - Port: intstr.IntOrString{ - Type: 0, - IntVal: 9333, - }, - Scheme: "http", - }, - }, - InitialDelaySeconds: 20, - TimeoutSeconds: 0, - PeriodSeconds: 10, - SuccessThreshold: 1, - FailureThreshold: 6, - }, - - */ - }}, - }, - }, - }, - } - return dep -} diff --git a/controllers/controller_s3_service.go b/controllers/controller_s3_service.go deleted file mode 100644 index 4265a86..0000000 --- a/controllers/controller_s3_service.go +++ /dev/null @@ -1,36 +0,0 @@ -package controllers - -import ( - 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) createS3Service(m *seaweedv1.Seaweed) *corev1.Service { - labels := labelsForS3(m.Name) - - dep := &corev1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: m.Name + "-s3", - Namespace: m.Namespace, - Labels: labels, - }, - Spec: corev1.ServiceSpec{ - Ports: []corev1.ServicePort{ - { - Name: "swfs-s3", - Protocol: corev1.Protocol("TCP"), - Port: 8333, - TargetPort: intstr.IntOrString{ - Type: intstr.Int, - IntVal: 8333, - }, - }, - }, - Selector: labels, - }, - } - return dep -} diff --git a/controllers/seaweed_controller.go b/controllers/seaweed_controller.go index 570ce02..05587a2 100644 --- a/controllers/seaweed_controller.go +++ b/controllers/seaweed_controller.go @@ -73,10 +73,6 @@ func (r *SeaweedReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) { return result, err } - if done, result, err = r.ensureS3Servers(seaweedCR); done { - return result, err - } - return ctrl.Result{}, nil }