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/05/15 01:38:38 UTC
[submarine] branch master updated: SUBMARINE 819. Create namespace
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 9463906 SUBMARINE 819. Create namespace for single user
9463906 is described below
commit 94639069d3fd6b1f1c993669f24d2928ca0873a8
Author: Kenchu123 <k8...@gmail.com>
AuthorDate: Sat May 15 02:26:45 2021 +0800
SUBMARINE 819. Create namespace for single user
### What is this PR for?
Create a namespace `submarine-user-test` of submarine for single user
### What type of PR is it?
[Feature]
### Todos
### What is the Jira issue?
https://issues.apache.org/jira/projects/SUBMARINE/issues/SUBMARINE-819
### How should this be tested?
Create submarine:
```bash
cd submarine-cloud-v2
kubectl create ns submarine-operator-test
kubectl apply -f artifacts/example/crd.yaml
kubectl apply -f artifacts/examples/example-submarine.yaml -n submarine-operator-test
go builld -o submarine-operator
./submarine-operator
kubectl port-forward --address 0.0.0.0 service/traefik 32080:80 -n submarine-user-test
```
Delete submarine:
```bash
kubectl delete submarine example-submarine -n submarine-operator-test
```
### Screenshots (if appropriate)
https://user-images.githubusercontent.com/17617373/118001859-b1c7ad00-b379-11eb-8651-a829e90c050a.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 #586 from Kenchu123/SUBMARINE-819 and squashes the following commits:
c398d72c [Kenchu123] SUBMARINE-819. Remove some klog line and add comment
88951cc5 [Kenchu123] SUBMARINE-819. Place create namespace in ADD
8be2d897 [Kenchu123] SUBMARINE-819. Create new namespace submarine-user-test
---
submarine-cloud-v2/controller.go | 30 ++++++++++++++++++++++--------
submarine-cloud-v2/main.go | 11 ++++++-----
2 files changed, 28 insertions(+), 13 deletions(-)
diff --git a/submarine-cloud-v2/controller.go b/submarine-cloud-v2/controller.go
index bf54e36..863de53 100644
--- a/submarine-cloud-v2/controller.go
+++ b/submarine-cloud-v2/controller.go
@@ -1069,6 +1069,7 @@ func (c *Controller) syncHandler(workqueueItem WorkQueueItem) error {
utilruntime.HandleError(fmt.Errorf("Invalid resource key: %s", key))
return nil
}
+ newNamespace := "submarine-user-test"
klog.Info("syncHandler: ", key, " / ", action)
@@ -1089,8 +1090,15 @@ func (c *Controller) syncHandler(workqueueItem WorkQueueItem) error {
b, err := json.MarshalIndent(submarine.Spec, "", " ")
fmt.Println(string(b))
+ // create submarine in a new namespace
+ nsSpec := &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: newNamespace}}
+ _, err = c.kubeclientset.CoreV1().Namespaces().Create(context.TODO(), nsSpec, metav1.CreateOptions{})
+ if err != nil {
+ return err
+ }
+
// Install subcharts
- c.newSubCharts(namespace)
+ c.newSubCharts(newNamespace)
// Create submarine-server
serverImage := submarine.Spec.Server.Image
@@ -1098,31 +1106,31 @@ func (c *Controller) syncHandler(workqueueItem WorkQueueItem) error {
if serverImage == "" {
serverImage = "apache/submarine:server-" + submarine.Spec.Version
}
- err = c.newSubmarineServer(namespace, serverImage, serverReplicas)
+ err = c.newSubmarineServer(newNamespace, serverImage, serverReplicas)
if err != nil {
return err
}
// Create Submarine Database
- err = c.newSubmarineDatabase(namespace, &submarine.Spec)
+ err = c.newSubmarineDatabase(newNamespace, &submarine.Spec)
if err != nil {
return err
}
// Create ingress
- err = c.newIngress(namespace)
+ err = c.newIngress(newNamespace)
if err != nil {
return err
}
// Create RBAC
- err = c.newSubmarineServerRBAC(namespace)
+ err = c.newSubmarineServerRBAC(newNamespace)
if err != nil {
return err
}
// Create Submarine Tensorboard
- err = c.newSubmarineTensorboard(namespace, &submarine.Spec)
+ err = c.newSubmarineTensorboard(newNamespace, &submarine.Spec)
if err != nil {
return err
}
@@ -1134,18 +1142,24 @@ func (c *Controller) syncHandler(workqueueItem WorkQueueItem) error {
c.charts = nil
// Delete namespace: Delete all namespaced resources, ex: POD, Deployment, ... etc.
+ err = c.kubeclientset.CoreV1().Namespaces().Delete(context.TODO(), newNamespace, metav1.DeleteOptions{})
+ if err != nil {
+ return err
+ }
+ klog.Info("Delete Namespace: ", newNamespace)
+
err = c.kubeclientset.CoreV1().Namespaces().Delete(context.TODO(), namespace, metav1.DeleteOptions{})
if err != nil {
return err
}
// Delete non-namespaced resources (ex: PersistentVolume)
- err = c.kubeclientset.CoreV1().PersistentVolumes().Delete(context.TODO(), "submarine-database-pv--"+namespace, metav1.DeleteOptions{})
+ err = c.kubeclientset.CoreV1().PersistentVolumes().Delete(context.TODO(), "submarine-database-pv--"+newNamespace, metav1.DeleteOptions{})
if err != nil {
return err
}
- err = c.kubeclientset.CoreV1().PersistentVolumes().Delete(context.TODO(), "submarine-tensorboard-pv--"+namespace, metav1.DeleteOptions{})
+ err = c.kubeclientset.CoreV1().PersistentVolumes().Delete(context.TODO(), "submarine-tensorboard-pv--"+newNamespace, metav1.DeleteOptions{})
if err != nil {
return err
}
diff --git a/submarine-cloud-v2/main.go b/submarine-cloud-v2/main.go
index 47236e9..1f1d1fb 100644
--- a/submarine-cloud-v2/main.go
+++ b/submarine-cloud-v2/main.go
@@ -19,17 +19,18 @@ package main
import (
"flag"
- kubeinformers "k8s.io/client-go/informers"
- "k8s.io/client-go/kubernetes"
- "k8s.io/client-go/rest"
- "k8s.io/client-go/tools/clientcmd"
- "k8s.io/klog/v2"
"os"
clientset "submarine-cloud-v2/pkg/generated/clientset/versioned"
informers "submarine-cloud-v2/pkg/generated/informers/externalversions"
"submarine-cloud-v2/pkg/signals"
"time"
+ kubeinformers "k8s.io/client-go/informers"
+ "k8s.io/client-go/kubernetes"
+ "k8s.io/client-go/rest"
+ "k8s.io/client-go/tools/clientcmd"
+ "k8s.io/klog/v2"
+
traefikclientset "github.com/traefik/traefik/v2/pkg/provider/kubernetes/crd/generated/clientset/versioned"
traefikinformers "github.com/traefik/traefik/v2/pkg/provider/kubernetes/crd/generated/informers/externalversions"
)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@submarine.apache.org
For additional commands, e-mail: dev-help@submarine.apache.org