You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@submarine.apache.org by pi...@apache.org on 2021/08/28 06:43:11 UTC
[submarine] branch master updated: SUBMARINE-997. Redefinition of
submarine CRD
This is an automated email from the ASF dual-hosted git repository.
pingsutw 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 1ae1b7a SUBMARINE-997. Redefinition of submarine CRD
1ae1b7a is described below
commit 1ae1b7a4ec6ee0a4fe26e4b6afdb63b2d4e81c84
Author: MortalHappiness <b0...@ntu.edu.tw>
AuthorDate: Fri Aug 27 15:04:29 2021 +0800
SUBMARINE-997. Redefinition of submarine CRD
### What is this PR for?
Since we use StorageClass to replace PersistentVolume in the operator, we need to redefine the submarine CRD.
### What type of PR is it?
[Improvement]
### Todos
### What is the Jira issue?
https://issues.apache.org/jira/projects/SUBMARINE/issues/SUBMARINE-997
### How should this be tested?
### Screenshots (if appropriate)
### Questions:
* Do the license files need updating? No
* Are there breaking changes for older versions? No
* Does this need new documentation? No
Author: MortalHappiness <b0...@ntu.edu.tw>
Signed-off-by: Kevin <pi...@apache.org>
Closes #725 from MortalHappiness/SUBMARINE-997 and squashes the following commits:
60afc1ff [MortalHappiness] SUBMARINE-997. Redefinition of submarine CRD
---
submarine-cloud-v2/README.md | 1 -
.../artifacts/examples/example-submarine.yaml | 6 --
.../helm-charts/submarine-operator/crds/crd.yaml | 12 ----
.../pkg/apis/submarine/v1alpha1/types.go | 30 ++++-----
.../submarine/v1alpha1/zz_generated.deepcopy.go | 71 ++++++++--------------
submarine-cloud-v2/pkg/controller/controller.go | 7 ---
6 files changed, 36 insertions(+), 91 deletions(-)
diff --git a/submarine-cloud-v2/README.md b/submarine-cloud-v2/README.md
index 4b7fbbc..e8f2b0f 100644
--- a/submarine-cloud-v2/README.md
+++ b/submarine-cloud-v2/README.md
@@ -53,7 +53,6 @@ make
./submarine-operator
# Step3: Deploy a Submarine
-kubectl apply -f helm-charts/submarine-operator/crds/crd.yaml
kubectl create ns submarine-user-test
kubectl apply -n submarine-user-test -f artifacts/examples/example-submarine.yaml
diff --git a/submarine-cloud-v2/artifacts/examples/example-submarine.yaml b/submarine-cloud-v2/artifacts/examples/example-submarine.yaml
index 788741c..37145e8 100644
--- a/submarine-cloud-v2/artifacts/examples/example-submarine.yaml
+++ b/submarine-cloud-v2/artifacts/examples/example-submarine.yaml
@@ -38,9 +38,3 @@ spec:
minio:
enabled: true
storageSize: "10Gi"
- storage:
- # storageType: "nfs"
- # nfsPath: "/"
- # nfsIP: "10.96.0.2"
- storageType: "host"
- hostPath: "/tmp/submarine/host"
diff --git a/submarine-cloud-v2/helm-charts/submarine-operator/crds/crd.yaml b/submarine-cloud-v2/helm-charts/submarine-operator/crds/crd.yaml
index bd7be82..48fa7e8 100644
--- a/submarine-cloud-v2/helm-charts/submarine-operator/crds/crd.yaml
+++ b/submarine-cloud-v2/helm-charts/submarine-operator/crds/crd.yaml
@@ -79,15 +79,3 @@ spec:
type: boolean
storageSize:
type: string
- storage:
- type: object
- properties:
- storageType:
- type: string
- pattern: "^(host|nfs)$"
- hostPath:
- type: string
- nfsPath:
- type: string
- nfsIP:
- type: string
diff --git a/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/types.go b/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/types.go
index 3fb2830..a1cc489 100644
--- a/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/types.go
+++ b/submarine-cloud-v2/pkg/apis/submarine/v1alpha1/types.go
@@ -32,49 +32,41 @@ type Submarine struct {
Status SubmarineStatus `json:"status"`
}
-type SubmarineServer struct {
+type SubmarineServerSpec struct {
Image string `json:"image"`
Replicas *int32 `json:"replicas"`
}
-type SubmarineDatabase struct {
+type SubmarineDatabaseSpec struct {
Image string `json:"image"`
Replicas *int32 `json:"replicas"`
StorageSize string `json:"storageSize"`
MysqlRootPasswordSecret string `json:"mysqlRootPasswordSecret"`
}
-type SubmarineTensorboard struct {
+type SubmarineTensorboardSpec struct {
Enabled *bool `json:"enabled"`
StorageSize string `json:"storageSize"`
}
-type SubmarineMlflow struct {
+type SubmarineMlflowSpec struct {
Enabled *bool `json:"enabled"`
StorageSize string `json:"storageSize"`
}
-type SubmarineMinio struct {
+type SubmarineMinioSpec struct {
Enabled *bool `json:"enabled"`
StorageSize string `json:"storageSize"`
}
-type SubmarineStorage struct {
- StorageType string `json:"storageType"`
- HostPath string `json:"hostPath"`
- NfsPath string `json:"nfsPath"`
- NfsIP string `json:"nfsIP"`
-}
-
// SubmarineSpec is the spec for a Submarine resource
type SubmarineSpec struct {
- Version string `json:"version"`
- Server *SubmarineServer `json:"server"`
- Database *SubmarineDatabase `json:"database"`
- Tensorboard *SubmarineTensorboard `json:"tensorboard"`
- Mlflow *SubmarineMlflow `json:"mlflow"`
- Minio *SubmarineMinio `json:"minio"`
- Storage *SubmarineStorage `json:"storage"`
+ Version string `json:"version"`
+ Server *SubmarineServerSpec `json:"server"`
+ Database *SubmarineDatabaseSpec `json:"database"`
+ Tensorboard *SubmarineTensorboardSpec `json:"tensorboard"`
+ Mlflow *SubmarineMlflowSpec `json:"mlflow"`
+ Minio *SubmarineMinioSpec `json:"minio"`
}
// SubmarineStateType represents the type of the current state of a submarine.
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 ee083d3..fe813e3 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
@@ -54,7 +54,7 @@ func (in *Submarine) DeepCopyObject() runtime.Object {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SubmarineDatabase) DeepCopyInto(out *SubmarineDatabase) {
+func (in *SubmarineDatabaseSpec) DeepCopyInto(out *SubmarineDatabaseSpec) {
*out = *in
if in.Replicas != nil {
in, out := &in.Replicas, &out.Replicas
@@ -64,12 +64,12 @@ func (in *SubmarineDatabase) DeepCopyInto(out *SubmarineDatabase) {
return
}
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineDatabase.
-func (in *SubmarineDatabase) DeepCopy() *SubmarineDatabase {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineDatabaseSpec.
+func (in *SubmarineDatabaseSpec) DeepCopy() *SubmarineDatabaseSpec {
if in == nil {
return nil
}
- out := new(SubmarineDatabase)
+ out := new(SubmarineDatabaseSpec)
in.DeepCopyInto(out)
return out
}
@@ -108,7 +108,7 @@ 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) {
+func (in *SubmarineMinioSpec) DeepCopyInto(out *SubmarineMinioSpec) {
*out = *in
if in.Enabled != nil {
in, out := &in.Enabled, &out.Enabled
@@ -118,18 +118,18 @@ func (in *SubmarineMinio) DeepCopyInto(out *SubmarineMinio) {
return
}
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineMinio.
-func (in *SubmarineMinio) DeepCopy() *SubmarineMinio {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineMinioSpec.
+func (in *SubmarineMinioSpec) DeepCopy() *SubmarineMinioSpec {
if in == nil {
return nil
}
- out := new(SubmarineMinio)
+ out := new(SubmarineMinioSpec)
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) {
+func (in *SubmarineMlflowSpec) DeepCopyInto(out *SubmarineMlflowSpec) {
*out = *in
if in.Enabled != nil {
in, out := &in.Enabled, &out.Enabled
@@ -139,18 +139,18 @@ func (in *SubmarineMlflow) DeepCopyInto(out *SubmarineMlflow) {
return
}
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineMlflow.
-func (in *SubmarineMlflow) DeepCopy() *SubmarineMlflow {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineMlflowSpec.
+func (in *SubmarineMlflowSpec) DeepCopy() *SubmarineMlflowSpec {
if in == nil {
return nil
}
- out := new(SubmarineMlflow)
+ out := new(SubmarineMlflowSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SubmarineServer) DeepCopyInto(out *SubmarineServer) {
+func (in *SubmarineServerSpec) DeepCopyInto(out *SubmarineServerSpec) {
*out = *in
if in.Replicas != nil {
in, out := &in.Replicas, &out.Replicas
@@ -160,12 +160,12 @@ func (in *SubmarineServer) DeepCopyInto(out *SubmarineServer) {
return
}
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineServer.
-func (in *SubmarineServer) DeepCopy() *SubmarineServer {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineServerSpec.
+func (in *SubmarineServerSpec) DeepCopy() *SubmarineServerSpec {
if in == nil {
return nil
}
- out := new(SubmarineServer)
+ out := new(SubmarineServerSpec)
in.DeepCopyInto(out)
return out
}
@@ -175,34 +175,29 @@ func (in *SubmarineSpec) DeepCopyInto(out *SubmarineSpec) {
*out = *in
if in.Server != nil {
in, out := &in.Server, &out.Server
- *out = new(SubmarineServer)
+ *out = new(SubmarineServerSpec)
(*in).DeepCopyInto(*out)
}
if in.Database != nil {
in, out := &in.Database, &out.Database
- *out = new(SubmarineDatabase)
+ *out = new(SubmarineDatabaseSpec)
(*in).DeepCopyInto(*out)
}
if in.Tensorboard != nil {
in, out := &in.Tensorboard, &out.Tensorboard
- *out = new(SubmarineTensorboard)
+ *out = new(SubmarineTensorboardSpec)
(*in).DeepCopyInto(*out)
}
if in.Mlflow != nil {
in, out := &in.Mlflow, &out.Mlflow
- *out = new(SubmarineMlflow)
+ *out = new(SubmarineMlflowSpec)
(*in).DeepCopyInto(*out)
}
if in.Minio != nil {
in, out := &in.Minio, &out.Minio
- *out = new(SubmarineMinio)
+ *out = new(SubmarineMinioSpec)
(*in).DeepCopyInto(*out)
}
- if in.Storage != nil {
- in, out := &in.Storage, &out.Storage
- *out = new(SubmarineStorage)
- **out = **in
- }
return
}
@@ -250,23 +245,7 @@ func (in *SubmarineStatus) DeepCopy() *SubmarineStatus {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SubmarineStorage) DeepCopyInto(out *SubmarineStorage) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineStorage.
-func (in *SubmarineStorage) DeepCopy() *SubmarineStorage {
- if in == nil {
- return nil
- }
- out := new(SubmarineStorage)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *SubmarineTensorboard) DeepCopyInto(out *SubmarineTensorboard) {
+func (in *SubmarineTensorboardSpec) DeepCopyInto(out *SubmarineTensorboardSpec) {
*out = *in
if in.Enabled != nil {
in, out := &in.Enabled, &out.Enabled
@@ -276,12 +255,12 @@ func (in *SubmarineTensorboard) DeepCopyInto(out *SubmarineTensorboard) {
return
}
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineTensorboard.
-func (in *SubmarineTensorboard) DeepCopy() *SubmarineTensorboard {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubmarineTensorboardSpec.
+func (in *SubmarineTensorboardSpec) DeepCopy() *SubmarineTensorboardSpec {
if in == nil {
return nil
}
- out := new(SubmarineTensorboard)
+ out := new(SubmarineTensorboardSpec)
in.DeepCopyInto(out)
return out
}
diff --git a/submarine-cloud-v2/pkg/controller/controller.go b/submarine-cloud-v2/pkg/controller/controller.go
index e965416..0fe6244 100644
--- a/submarine-cloud-v2/pkg/controller/controller.go
+++ b/submarine-cloud-v2/pkg/controller/controller.go
@@ -591,13 +591,6 @@ func (c *Controller) validateSubmarine(submarine *v1alpha1.Submarine) error {
return err
}
- // Check storage type
- storageType := submarine.Spec.Storage.StorageType
- if storageType != "nfs" && storageType != "host" {
- err = fmt.Errorf("invalid storageType '%s' found in submarine spec, nothing will be created. Valid storage types are 'nfs' and 'host'", storageType)
- return err
- }
-
return nil
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@submarine.apache.org
For additional commands, e-mail: dev-help@submarine.apache.org