You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@submarine.apache.org by ka...@apache.org on 2021/07/06 07:33:57 UTC

[submarine] branch master updated: SUBMARINE-904. Create minio by submarine operator for single user

This is an automated email from the ASF dual-hosted git repository.

kaihsun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/submarine.git


The following commit(s) were added to refs/heads/master by this push:
     new 1249590  SUBMARINE-904. Create minio by submarine operator for single user
1249590 is described below

commit 1249590d78327f0cb239829cad5735b9e71097c7
Author: Kenchu123 <k8...@gmail.com>
AuthorDate: Mon Jul 5 20:21:17 2021 +0800

    SUBMARINE-904. Create minio by submarine operator for single user
    
    ### What is this PR for?
    
    Create minio by submarine operator for single user
    
    ### What type of PR is it?
    [Feature]
    
    ### Todos
    
    ### What is the Jira issue?
    
    https://issues.apache.org/jira/browse/SUBMARINE-904
    ### How should this be tested?
    
    ### Screenshots (if appropriate)
    
    https://user-images.githubusercontent.com/17617373/124442678-909aa000-ddaf-11eb-93a8-6a3551ab0889.mov
    
    ### Questions:
    * Do the license files need updating? No
    * Are there breaking changes for older versions? No
    * Does this need new documentation?
    
    No
    
    Author: Kenchu123 <k8...@gmail.com>
    
    Signed-off-by: Kai-Hsun Chen <ka...@apache.org>
    
    Closes #647 from Kenchu123/SUBMARINE-904 and squashes the following commits:
    
    cbec065c [Kenchu123] SUBMARINE-904. Regenerate api due to changing types
    5b1c63ea [Kenchu123] SUBMARINE-904. Run gofmt
    e89c78e9 [Kenchu123] SUBMARINE-904. Create minio by submarine operator
---
 submarine-cloud-v2/artifacts/examples/crd.yaml     |   7 ++
 .../artifacts/examples/example-submarine.yaml      |   3 +
 .../pkg/apis/submarine/v1alpha1/register.go        |  34 +++---
 .../pkg/apis/submarine/v1alpha1/types.go           |   6 ++
 .../submarine/v1alpha1/zz_generated.deepcopy.go    |  26 +++++
 submarine-cloud-v2/pkg/controller/controller.go    |  10 ++
 ...submarine_tensorboard.go => submarine_minio.go} | 117 +++++++++++----------
 .../pkg/controller/submarine_tensorboard.go        |   4 +-
 8 files changed, 131 insertions(+), 76 deletions(-)

diff --git a/submarine-cloud-v2/artifacts/examples/crd.yaml b/submarine-cloud-v2/artifacts/examples/crd.yaml
index ff231fa..50393ac 100644
--- a/submarine-cloud-v2/artifacts/examples/crd.yaml
+++ b/submarine-cloud-v2/artifacts/examples/crd.yaml
@@ -72,6 +72,13 @@ spec:
                   type: boolean
                 storageSize:
                   type: string
+            minio:
+              type: object
+              properties:
+                enabled:
+                  type: boolean
+                storageSize:
+                  type: string
             storage:
               type: object
               properties:
diff --git a/submarine-cloud-v2/artifacts/examples/example-submarine.yaml b/submarine-cloud-v2/artifacts/examples/example-submarine.yaml
index 22dc4b1..309c37f 100644
--- a/submarine-cloud-v2/artifacts/examples/example-submarine.yaml
+++ b/submarine-cloud-v2/artifacts/examples/example-submarine.yaml
@@ -35,6 +35,9 @@ spec:
   mlflow:
     enabled: true
     storageSize: "10Gi"
+  minio:
+    enabled: true
+    storageSize: "10Gi"
   storage:
     # storageType: "nfs"
     # nfsPath: "/"
diff --git a/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/register.go b/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/register.go
index d30ff88..9326443 100644
--- a/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/register.go
+++ b/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/register.go
@@ -1,19 +1,19 @@
- /*
-  * Licensed to the Apache Software Foundation (ASF) under one or more
-  * contributor license agreements.  See the NOTICE file distributed with
-  * this work for additional information regarding copyright ownership.
-  * The ASF licenses this file to You under the Apache License, Version 2.0
-  * (the "License"); you may not use this file except in compliance with
-  * the License.  You may obtain a copy of the License at
-  *
-  *    http://www.apache.org/licenses/LICENSE-2.0
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 package v1alpha1
 
@@ -24,7 +24,7 @@ import (
 )
 
 const (
-	GroupName = "submarine.k8s.io"
+	GroupName    = "submarine.k8s.io"
 	GroupVersion = "v1alpha1"
 )
 
diff --git a/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/types.go b/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/types.go
index 40b7da5..f44314b 100644
--- a/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/types.go
+++ b/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/types.go
@@ -54,6 +54,11 @@ type SubmarineMlflow struct {
 	StorageSize string `json:"storageSize"`
 }
 
+type SubmarineMinio struct {
+	Enabled     *bool  `json:"enabled"`
+	StorageSize string `json:"storageSize"`
+}
+
 type SubmarineStorage struct {
 	StorageType string `json:"storageType"`
 	HostPath    string `json:"hostPath"`
@@ -68,6 +73,7 @@ type SubmarineSpec struct {
 	Database    *SubmarineDatabase    `json:"database"`
 	Tensorboard *SubmarineTensorboard `json:"tensorboard"`
 	Mlflow      *SubmarineMlflow      `json:"mlflow"`
+	Minio       *SubmarineMinio       `json:"minio"`
 	Storage     *SubmarineStorage     `json:"storage"`
 }
 
diff --git a/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/zz_generated.deepcopy.go b/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/zz_generated.deepcopy.go
index 513db09..597f6c8 100644
--- a/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/zz_generated.deepcopy.go
+++ b/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/zz_generated.deepcopy.go
@@ -108,6 +108,27 @@ func (in *SubmarineList) DeepCopyObject() runtime.Object {
 }
 
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SubmarineMinio) DeepCopyInto(out *SubmarineMinio) {
+	*out = *in
+	if in.Enabled != nil {
+		in, out := &in.Enabled, &out.Enabled
+		*out = new(bool)
+		**out = **in
+	}
+	return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineMinio.
+func (in *SubmarineMinio) DeepCopy() *SubmarineMinio {
+	if in == nil {
+		return nil
+	}
+	out := new(SubmarineMinio)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *SubmarineMlflow) DeepCopyInto(out *SubmarineMlflow) {
 	*out = *in
 	if in.Enabled != nil {
@@ -172,6 +193,11 @@ func (in *SubmarineSpec) DeepCopyInto(out *SubmarineSpec) {
 		*out = new(SubmarineMlflow)
 		(*in).DeepCopyInto(*out)
 	}
+	if in.Minio != nil {
+		in, out := &in.Minio, &out.Minio
+		*out = new(SubmarineMinio)
+		(*in).DeepCopyInto(*out)
+	}
 	if in.Storage != nil {
 		in, out := &in.Storage, &out.Storage
 		*out = new(SubmarineStorage)
diff --git a/submarine-cloud-v2/pkg/controller/controller.go b/submarine-cloud-v2/pkg/controller/controller.go
index bc9eaab..1b7122d 100644
--- a/submarine-cloud-v2/pkg/controller/controller.go
+++ b/submarine-cloud-v2/pkg/controller/controller.go
@@ -67,6 +67,7 @@ const (
 	databaseName                = "submarine-database"
 	tensorboardName             = "submarine-tensorboard"
 	mlflowName                  = "submarine-mlflow"
+	minioName                   = "submarine-minio"
 	ingressName                 = serverName + "-ingress"
 	databasePvNamePrefix        = databaseName + "-pv"
 	databasePvcName             = databaseName + "-pvc"
@@ -78,6 +79,10 @@ const (
 	mlflowPvcName               = mlflowName + "-pvc"
 	mlflowServiceName           = mlflowName + "-service"
 	mlflowIngressRouteName      = mlflowName + "-ingressroute"
+	minioPvNamePrefix           = minioName + "-pv"
+	minioPvcName                = minioName + "-pvc"
+	minioServiceName            = minioName + "-service"
+	minioIngressRouteName       = minioName + "-ingressroute"
 )
 
 // PersistentVolumes are not namespaced resources, so we add the namespace as a
@@ -490,6 +495,11 @@ func (c *Controller) syncHandler(workqueueItem WorkQueueItem) error {
 			return err
 		}
 
+		err = c.createSubmarineMinio(submarine)
+		if err != nil {
+			return err
+		}
+
 		err = c.updateSubmarineStatus(submarine, serverDeployment, databaseDeployment)
 		if err != nil {
 			return err
diff --git a/submarine-cloud-v2/pkg/controller/submarine_tensorboard.go b/submarine-cloud-v2/pkg/controller/submarine_minio.go
similarity index 75%
copy from submarine-cloud-v2/pkg/controller/submarine_tensorboard.go
copy to submarine-cloud-v2/pkg/controller/submarine_minio.go
index f9bfaaf..031104c 100644
--- a/submarine-cloud-v2/pkg/controller/submarine_tensorboard.go
+++ b/submarine-cloud-v2/pkg/controller/submarine_minio.go
@@ -34,7 +34,7 @@ import (
 	traefikv1alpha1 "github.com/traefik/traefik/v2/pkg/provider/kubernetes/crd/traefik/v1alpha1"
 )
 
-func newSubmarineTensorboardPersistentVolume(submarine *v1alpha1.Submarine) *corev1.PersistentVolume {
+func newSubmarineMinioPersistentVolume(submarine *v1alpha1.Submarine) *corev1.PersistentVolume {
 	var persistentVolumeSource corev1.PersistentVolumeSource
 	switch submarine.Spec.Storage.StorageType {
 	case "nfs":
@@ -55,7 +55,7 @@ func newSubmarineTensorboardPersistentVolume(submarine *v1alpha1.Submarine) *cor
 	}
 	return &corev1.PersistentVolume{
 		ObjectMeta: metav1.ObjectMeta{
-			Name: pvName(tensorboardPvNamePrefix, submarine.Namespace),
+			Name: pvName(minioPvNamePrefix, submarine.Namespace),
 			OwnerReferences: []metav1.OwnerReference{
 				*metav1.NewControllerRef(submarine, v1alpha1.SchemeGroupVersion.WithKind("Submarine")),
 			},
@@ -65,18 +65,18 @@ func newSubmarineTensorboardPersistentVolume(submarine *v1alpha1.Submarine) *cor
 				corev1.ReadWriteMany,
 			},
 			Capacity: corev1.ResourceList{
-				corev1.ResourceStorage: resource.MustParse(submarine.Spec.Tensorboard.StorageSize),
+				corev1.ResourceStorage: resource.MustParse(submarine.Spec.Minio.StorageSize),
 			},
 			PersistentVolumeSource: persistentVolumeSource,
 		},
 	}
 }
 
-func newSubmarineTensorboardPersistentVolumeClaim(submarine *v1alpha1.Submarine) *corev1.PersistentVolumeClaim {
+func newSubmarineMinioPersistentVolumeClaim(submarine *v1alpha1.Submarine) *corev1.PersistentVolumeClaim {
 	storageClassName := ""
 	return &corev1.PersistentVolumeClaim{
 		ObjectMeta: metav1.ObjectMeta{
-			Name: tensorboardPvcName,
+			Name: minioPvcName,
 			OwnerReferences: []metav1.OwnerReference{
 				*metav1.NewControllerRef(submarine, v1alpha1.SchemeGroupVersion.WithKind("Submarine")),
 			},
@@ -87,19 +87,19 @@ func newSubmarineTensorboardPersistentVolumeClaim(submarine *v1alpha1.Submarine)
 			},
 			Resources: corev1.ResourceRequirements{
 				Requests: corev1.ResourceList{
-					corev1.ResourceStorage: resource.MustParse(submarine.Spec.Tensorboard.StorageSize),
+					corev1.ResourceStorage: resource.MustParse(submarine.Spec.Minio.StorageSize),
 				},
 			},
-			VolumeName:       pvName(tensorboardPvNamePrefix, submarine.Namespace),
+			VolumeName:       pvName(minioPvNamePrefix, submarine.Namespace),
 			StorageClassName: &storageClassName,
 		},
 	}
 }
 
-func newSubmarineTensorboardDeployment(submarine *v1alpha1.Submarine) *appsv1.Deployment {
+func newSubmarineMinioDeployment(submarine *v1alpha1.Submarine) *appsv1.Deployment {
 	return &appsv1.Deployment{
 		ObjectMeta: metav1.ObjectMeta{
-			Name: tensorboardName,
+			Name: minioName,
 			OwnerReferences: []metav1.OwnerReference{
 				*metav1.NewControllerRef(submarine, v1alpha1.SchemeGroupVersion.WithKind("Submarine")),
 			},
@@ -107,45 +107,47 @@ func newSubmarineTensorboardDeployment(submarine *v1alpha1.Submarine) *appsv1.De
 		Spec: appsv1.DeploymentSpec{
 			Selector: &metav1.LabelSelector{
 				MatchLabels: map[string]string{
-					"app": tensorboardName + "-pod",
+					"app": minioName + "-pod",
 				},
 			},
 			Template: corev1.PodTemplateSpec{
 				ObjectMeta: metav1.ObjectMeta{
 					Labels: map[string]string{
-						"app": tensorboardName + "-pod",
+						"app": minioName + "-pod",
 					},
 				},
 				Spec: corev1.PodSpec{
 					Containers: []corev1.Container{
 						{
-							Name:  tensorboardName + "-container",
-							Image: "tensorflow/tensorflow:1.11.0",
-							Command: []string{
-								"tensorboard",
-								"--logdir=/logs",
-								"--path_prefix=/tensorboard",
-							},
+							Name:            minioName + "-container",
+							Image:           "minio/minio:latest",
 							ImagePullPolicy: "IfNotPresent",
+							Args: []string{
+								"server",
+								"/data",
+							},
+							Env: []corev1.EnvVar{
+								{
+									Name:  "MINIO_ACCESS_KEY",
+									Value: "submarine_minio",
+								},
+								{
+									Name:  "MINIO_SECRET_KEY",
+									Value: "submarine_minio",
+								},
+							},
+							// TODO env
 							Ports: []corev1.ContainerPort{
 								{
-									ContainerPort: 6006,
+									ContainerPort: 9000,
 								},
 							},
 							VolumeMounts: []corev1.VolumeMount{
 								{
-									MountPath: "/logs",
+									MountPath: "/data",
 									Name:      "volume",
-									SubPath:   tensorboardName,
-								},
-							},
-							ReadinessProbe: &corev1.Probe{
-								Handler: corev1.Handler {
-									TCPSocket: &corev1.TCPSocketAction {
-										Port: intstr.FromInt(6006),
-									},
+									SubPath:   minioName,
 								},
-								PeriodSeconds: 10,
 							},
 						},
 					},
@@ -154,7 +156,7 @@ func newSubmarineTensorboardDeployment(submarine *v1alpha1.Submarine) *appsv1.De
 							Name: "volume",
 							VolumeSource: corev1.VolumeSource{
 								PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{
-									ClaimName: tensorboardPvcName,
+									ClaimName: minioPvcName,
 								},
 							},
 						},
@@ -165,33 +167,34 @@ func newSubmarineTensorboardDeployment(submarine *v1alpha1.Submarine) *appsv1.De
 	}
 }
 
-func newSubmarineTensorboardService(submarine *v1alpha1.Submarine) *corev1.Service {
+func newSubmarineMinioService(submarine *v1alpha1.Submarine) *corev1.Service {
 	return &corev1.Service{
 		ObjectMeta: metav1.ObjectMeta{
-			Name: tensorboardServiceName,
+			Name: minioServiceName,
 			OwnerReferences: []metav1.OwnerReference{
 				*metav1.NewControllerRef(submarine, v1alpha1.SchemeGroupVersion.WithKind("Submarine")),
 			},
 		},
 		Spec: corev1.ServiceSpec{
+			Type: corev1.ServiceTypeClusterIP,
 			Selector: map[string]string{
-				"app": tensorboardName + "-pod",
+				"app": minioName + "-pod",
 			},
 			Ports: []corev1.ServicePort{
 				{
 					Protocol:   "TCP",
-					Port:       8080,
-					TargetPort: intstr.FromInt(6006),
+					Port:       9000,
+					TargetPort: intstr.FromInt(9000),
 				},
 			},
 		},
 	}
 }
 
-func newSubmarineTensorboardIngressRoute(submarine *v1alpha1.Submarine) *traefikv1alpha1.IngressRoute {
+func newSubmarineMinioIngressRoute(submarine *v1alpha1.Submarine) *traefikv1alpha1.IngressRoute {
 	return &traefikv1alpha1.IngressRoute{
 		ObjectMeta: metav1.ObjectMeta{
-			Name: tensorboardName + "-ingressroute",
+			Name: minioIngressRouteName,
 			OwnerReferences: []metav1.OwnerReference{
 				*metav1.NewControllerRef(submarine, v1alpha1.SchemeGroupVersion.WithKind("Submarine")),
 			},
@@ -203,13 +206,13 @@ func newSubmarineTensorboardIngressRoute(submarine *v1alpha1.Submarine) *traefik
 			Routes: []traefikv1alpha1.Route{
 				{
 					Kind:  "Rule",
-					Match: "PathPrefix(`/tensorboard`)",
+					Match: "PathPrefix(`/minio`)",
 					Services: []traefikv1alpha1.Service{
 						{
 							LoadBalancerSpec: traefikv1alpha1.LoadBalancerSpec{
 								Kind: "Service",
-								Name: tensorboardServiceName,
-								Port: 8080,
+								Name: minioServiceName,
+								Port: 9000,
 							},
 						},
 					},
@@ -219,23 +222,23 @@ func newSubmarineTensorboardIngressRoute(submarine *v1alpha1.Submarine) *traefik
 	}
 }
 
-// createSubmarineTensorboard is a function to create submarine-tensorboard.
-// Reference: https://github.com/apache/submarine/blob/master/helm-charts/submarine/templates/submarine-tensorboard.yaml
-func (c *Controller) createSubmarineTensorboard(submarine *v1alpha1.Submarine) error {
-	klog.Info("[createSubmarineTensorboard]")
+// createSubmarineMinio is a function to create submarine-minio.
+// Reference: https://github.com/apache/submarine/blob/master/helm-charts/submarine/templates/submarine-minio.yaml
+func (c *Controller) createSubmarineMinio(submarine *v1alpha1.Submarine) error {
+	klog.Info("[createSubmarineMinio]")
 
 	// Step 1: Create PersistentVolume
 	// PersistentVolumes are not namespaced resources, so we add the namespace
 	// as a suffix to distinguish them
-	pv, err := c.persistentvolumeLister.Get(pvName(tensorboardPvNamePrefix, submarine.Namespace))
+	pv, err := c.persistentvolumeLister.Get(pvName(minioPvNamePrefix, submarine.Namespace))
 
 	// If the resource doesn't exist, we'll create it
 	if errors.IsNotFound(err) {
-		pv, err = c.kubeclientset.CoreV1().PersistentVolumes().Create(context.TODO(), newSubmarineTensorboardPersistentVolume(submarine), metav1.CreateOptions{})
+		pv, err = c.kubeclientset.CoreV1().PersistentVolumes().Create(context.TODO(), newSubmarineMinioPersistentVolume(submarine), metav1.CreateOptions{})
 		if err != nil {
 			klog.Info(err)
 		}
-		klog.Info("	Create PersistentVolume: ", pv.Name)
+		klog.Info(" Create PersistentVolume: ", pv.Name)
 	}
 
 	// If an error occurs during Get/Create, we'll requeue the item so we can
@@ -252,16 +255,16 @@ func (c *Controller) createSubmarineTensorboard(submarine *v1alpha1.Submarine) e
 	}
 
 	// Step 2: Create PersistentVolumeClaim
-	pvc, err := c.persistentvolumeclaimLister.PersistentVolumeClaims(submarine.Namespace).Get(tensorboardPvcName)
+	pvc, err := c.persistentvolumeclaimLister.PersistentVolumeClaims(submarine.Namespace).Get(minioPvcName)
 	// If the resource doesn't exist, we'll create it
 	if errors.IsNotFound(err) {
 		pvc, err = c.kubeclientset.CoreV1().PersistentVolumeClaims(submarine.Namespace).Create(context.TODO(),
-			newSubmarineTensorboardPersistentVolumeClaim(submarine),
+			newSubmarineMinioPersistentVolumeClaim(submarine),
 			metav1.CreateOptions{})
 		if err != nil {
 			klog.Info(err)
 		}
-		klog.Info("	Create PersistentVolumeClaim: ", pvc.Name)
+		klog.Info(" Create PersistentVolumeClaim: ", pvc.Name)
 	}
 	// If an error occurs during Get/Create, we'll requeue the item so we can
 	// attempt processing again later. This could have been caused by a
@@ -277,13 +280,13 @@ func (c *Controller) createSubmarineTensorboard(submarine *v1alpha1.Submarine) e
 	}
 
 	// Step 3: Create Deployment
-	deployment, err := c.deploymentLister.Deployments(submarine.Namespace).Get(tensorboardName)
+	deployment, err := c.deploymentLister.Deployments(submarine.Namespace).Get(minioName)
 	if errors.IsNotFound(err) {
-		deployment, err = c.kubeclientset.AppsV1().Deployments(submarine.Namespace).Create(context.TODO(), newSubmarineTensorboardDeployment(submarine), metav1.CreateOptions{})
+		deployment, err = c.kubeclientset.AppsV1().Deployments(submarine.Namespace).Create(context.TODO(), newSubmarineMinioDeployment(submarine), metav1.CreateOptions{})
 		if err != nil {
 			klog.Info(err)
 		}
-		klog.Info("	Create Deployment: ", deployment.Name)
+		klog.Info(" Create Deployment: ", deployment.Name)
 	}
 	// If an error occurs during Get/Create, we'll requeue the item so we can
 	// attempt processing again later. This could have been caused by a
@@ -299,10 +302,10 @@ func (c *Controller) createSubmarineTensorboard(submarine *v1alpha1.Submarine) e
 	}
 
 	// Step 4: Create Service
-	service, err := c.serviceLister.Services(submarine.Namespace).Get(tensorboardServiceName)
+	service, err := c.serviceLister.Services(submarine.Namespace).Get(minioServiceName)
 	// If the resource doesn't exist, we'll create it
 	if errors.IsNotFound(err) {
-		service, err = c.kubeclientset.CoreV1().Services(submarine.Namespace).Create(context.TODO(), newSubmarineTensorboardService(submarine), metav1.CreateOptions{})
+		service, err = c.kubeclientset.CoreV1().Services(submarine.Namespace).Create(context.TODO(), newSubmarineMinioService(submarine), metav1.CreateOptions{})
 		if err != nil {
 			klog.Info(err)
 		}
@@ -322,10 +325,10 @@ func (c *Controller) createSubmarineTensorboard(submarine *v1alpha1.Submarine) e
 	}
 
 	// Step 5: Create IngressRoute
-	ingressroute, err := c.ingressrouteLister.IngressRoutes(submarine.Namespace).Get(tensorboardIngressRouteName)
+	ingressroute, err := c.ingressrouteLister.IngressRoutes(submarine.Namespace).Get(minioIngressRouteName)
 	// If the resource doesn't exist, we'll create it
 	if errors.IsNotFound(err) {
-		ingressroute, err = c.traefikclientset.TraefikV1alpha1().IngressRoutes(submarine.Namespace).Create(context.TODO(), newSubmarineTensorboardIngressRoute(submarine), metav1.CreateOptions{})
+		ingressroute, err = c.traefikclientset.TraefikV1alpha1().IngressRoutes(submarine.Namespace).Create(context.TODO(), newSubmarineMinioIngressRoute(submarine), metav1.CreateOptions{})
 		if err != nil {
 			klog.Info(err)
 		}
diff --git a/submarine-cloud-v2/pkg/controller/submarine_tensorboard.go b/submarine-cloud-v2/pkg/controller/submarine_tensorboard.go
index f9bfaaf..9c487ad 100644
--- a/submarine-cloud-v2/pkg/controller/submarine_tensorboard.go
+++ b/submarine-cloud-v2/pkg/controller/submarine_tensorboard.go
@@ -140,8 +140,8 @@ func newSubmarineTensorboardDeployment(submarine *v1alpha1.Submarine) *appsv1.De
 								},
 							},
 							ReadinessProbe: &corev1.Probe{
-								Handler: corev1.Handler {
-									TCPSocket: &corev1.TCPSocketAction {
+								Handler: corev1.Handler{
+									TCPSocket: &corev1.TCPSocketAction{
 										Port: intstr.FromInt(6006),
 									},
 								},

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@submarine.apache.org
For additional commands, e-mail: dev-help@submarine.apache.org