forked from LaconicNetwork/kompose
Adding --controller flag in up & down
To make `kompose up` & `kompose convert` equal in feature, This PR will add `--controller` flag for `kompose up` as well as `kompose down` so that user experience will be the same for `up` & `convert` Resolves #798 since we are adding `--controller` to `up` and `down`, So respective code to deploy and undeploy also being added for `daemonset` and `replicationcontroller` Added tests for `--controller`
This commit is contained in:
+7
-2
@@ -17,6 +17,8 @@ limitations under the License.
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/kubernetes/kompose/pkg/app"
|
"github.com/kubernetes/kompose/pkg/app"
|
||||||
"github.com/kubernetes/kompose/pkg/kobject"
|
"github.com/kubernetes/kompose/pkg/kobject"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
@@ -24,8 +26,9 @@ import (
|
|||||||
|
|
||||||
// TODO: comment
|
// TODO: comment
|
||||||
var (
|
var (
|
||||||
DownNamespace string
|
DownNamespace string
|
||||||
DownOpt kobject.ConvertOptions
|
DownController string
|
||||||
|
DownOpt kobject.ConvertOptions
|
||||||
)
|
)
|
||||||
|
|
||||||
var downCmd = &cobra.Command{
|
var downCmd = &cobra.Command{
|
||||||
@@ -39,6 +42,7 @@ var downCmd = &cobra.Command{
|
|||||||
InputFiles: GlobalFiles,
|
InputFiles: GlobalFiles,
|
||||||
Provider: GlobalProvider,
|
Provider: GlobalProvider,
|
||||||
Namespace: DownNamespace,
|
Namespace: DownNamespace,
|
||||||
|
Controller: strings.ToLower(DownController),
|
||||||
IsNamespaceFlag: cmd.Flags().Lookup("namespace").Changed,
|
IsNamespaceFlag: cmd.Flags().Lookup("namespace").Changed,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,5 +56,6 @@ var downCmd = &cobra.Command{
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
downCmd.Flags().StringVar(&DownNamespace, "namespace", "default", " Specify Namespace to deploy your application")
|
downCmd.Flags().StringVar(&DownNamespace, "namespace", "default", " Specify Namespace to deploy your application")
|
||||||
|
downCmd.Flags().StringVar(&DownController, "controller", "", `Set the output controller ("deployment"|"daemonSet"|"replicationController")`)
|
||||||
RootCmd.AddCommand(downCmd)
|
RootCmd.AddCommand(downCmd)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import (
|
|||||||
"github.com/kubernetes/kompose/pkg/app"
|
"github.com/kubernetes/kompose/pkg/app"
|
||||||
"github.com/kubernetes/kompose/pkg/kobject"
|
"github.com/kubernetes/kompose/pkg/kobject"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO: comment
|
// TODO: comment
|
||||||
@@ -35,6 +36,7 @@ var (
|
|||||||
UpBuild string
|
UpBuild string
|
||||||
UpBuildBranch string
|
UpBuildBranch string
|
||||||
UpBuildRepo string
|
UpBuildRepo string
|
||||||
|
UpController string
|
||||||
)
|
)
|
||||||
|
|
||||||
var upCmd = &cobra.Command{
|
var upCmd = &cobra.Command{
|
||||||
@@ -60,6 +62,7 @@ var upCmd = &cobra.Command{
|
|||||||
InsecureRepository: UpInsecureRepo,
|
InsecureRepository: UpInsecureRepo,
|
||||||
BuildBranch: UpBuildBranch,
|
BuildBranch: UpBuildBranch,
|
||||||
BuildRepo: UpBuildRepo,
|
BuildRepo: UpBuildRepo,
|
||||||
|
Controller: strings.ToLower(UpController),
|
||||||
IsNamespaceFlag: cmd.Flags().Lookup("namespace").Changed,
|
IsNamespaceFlag: cmd.Flags().Lookup("namespace").Changed,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,6 +82,7 @@ func init() {
|
|||||||
upCmd.Flags().StringVar(&UpBuild, "build", "local", `Set the type of build ("local"|"build-config" (OpenShift only)|"none")`)
|
upCmd.Flags().StringVar(&UpBuild, "build", "local", `Set the type of build ("local"|"build-config" (OpenShift only)|"none")`)
|
||||||
upCmd.Flags().StringVar(&UpBuildRepo, "build-repo", "", "Specify source repository for buildconfig (default remote origin)")
|
upCmd.Flags().StringVar(&UpBuildRepo, "build-repo", "", "Specify source repository for buildconfig (default remote origin)")
|
||||||
upCmd.Flags().StringVar(&UpBuildBranch, "build-branch", "", "Specify repository branch to use for buildconfig (default master)")
|
upCmd.Flags().StringVar(&UpBuildBranch, "build-branch", "", "Specify repository branch to use for buildconfig (default master)")
|
||||||
|
upCmd.Flags().StringVar(&UpController, "controller", "", `Set the output controller ("deployment"|"daemonSet"|"replicationController")`)
|
||||||
upCmd.Flags().MarkHidden("insecure-repository")
|
upCmd.Flags().MarkHidden("insecure-repository")
|
||||||
upCmd.Flags().MarkHidden("build-repo")
|
upCmd.Flags().MarkHidden("build-repo")
|
||||||
upCmd.Flags().MarkHidden("build-branch")
|
upCmd.Flags().MarkHidden("build-branch")
|
||||||
|
|||||||
@@ -805,6 +805,21 @@ func (k *Kubernetes) Deploy(komposeObject kobject.KomposeObject, opt kobject.Con
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Infof("Successfully created Deployment: %s", t.Name)
|
log.Infof("Successfully created Deployment: %s", t.Name)
|
||||||
|
|
||||||
|
case *extensions.DaemonSet:
|
||||||
|
_, err := client.DaemonSets(namespace).Create(t)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
log.Infof("Successfully created DaemonSet: %s", t.Name)
|
||||||
|
|
||||||
|
case *api.ReplicationController:
|
||||||
|
_, err := client.ReplicationControllers(namespace).Create(t)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
log.Infof("Successfully created ReplicationController: %s", t.Name)
|
||||||
|
|
||||||
case *api.Service:
|
case *api.Service:
|
||||||
_, err := client.Services(namespace).Create(t)
|
_, err := client.Services(namespace).Create(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -901,6 +916,56 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case *extensions.DaemonSet:
|
||||||
|
//delete deployment
|
||||||
|
daemonset, err := client.DaemonSets(namespace).List(options)
|
||||||
|
if err != nil {
|
||||||
|
errorList = append(errorList, err)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
for _, l := range daemonset.Items {
|
||||||
|
if reflect.DeepEqual(l.Labels, komposeLabel) {
|
||||||
|
rpDaemonset, err := kubectl.ReaperFor(extensions.Kind("DaemonSet"), client)
|
||||||
|
if err != nil {
|
||||||
|
errorList = append(errorList, err)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
//FIXME: gracePeriod is nil
|
||||||
|
err = rpDaemonset.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
|
||||||
|
if err != nil {
|
||||||
|
errorList = append(errorList, err)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
log.Infof("Successfully deleted DaemonSet: %s", t.Name)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case *api.ReplicationController:
|
||||||
|
//delete deployment
|
||||||
|
replicationController, err := client.ReplicationControllers(namespace).List(options)
|
||||||
|
if err != nil {
|
||||||
|
errorList = append(errorList, err)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
for _, l := range replicationController.Items {
|
||||||
|
if reflect.DeepEqual(l.Labels, komposeLabel) {
|
||||||
|
rpReplicationController, err := kubectl.ReaperFor(api.Kind("ReplicationController"), client)
|
||||||
|
if err != nil {
|
||||||
|
errorList = append(errorList, err)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
//FIXME: gracePeriod is nil
|
||||||
|
err = rpReplicationController.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
|
||||||
|
if err != nil {
|
||||||
|
errorList = append(errorList, err)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
log.Infof("Successfully deleted ReplicationController: %s", t.Name)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
case *api.Service:
|
case *api.Service:
|
||||||
//delete svc
|
//delete svc
|
||||||
svc, err := client.Services(namespace).List(options)
|
svc, err := client.Services(namespace).List(options)
|
||||||
|
|||||||
@@ -103,6 +103,19 @@ test_k8s() {
|
|||||||
sleep 2 # Sleep for k8s to catch up to deployment
|
sleep 2 # Sleep for k8s to catch up to deployment
|
||||||
echo -e "\n${RED}kompose down -f $f ${NC}\n"
|
echo -e "\n${RED}kompose down -f $f ${NC}\n"
|
||||||
./kompose down -f $f
|
./kompose down -f $f
|
||||||
|
echo -e "\nTesting controller=daemonset key\n"
|
||||||
|
echo -e "\n${RED}kompose up -f $f --controller=daemonset ${NC}\n"
|
||||||
|
./kompose up -f $f --controller=daemonset
|
||||||
|
sleep 2 # Sleep for k8s to catch up to deployment
|
||||||
|
echo -e "\n${RED}kompose down -f $f --controller=daemonset ${NC}\n"
|
||||||
|
./kompose down -f $f --controller=daemonset
|
||||||
|
echo -e "\nTesting controller=replicationcontroller key\n"
|
||||||
|
echo -e "\n${RED}kompose up -f $f --controller=replicationcontroller ${NC}\n"
|
||||||
|
./kompose up -f $f --controller=replicationcontroller
|
||||||
|
sleep 2 # Sleep for k8s to catch up to deployment
|
||||||
|
echo -e "\n${RED}kompose down -f $f --controller=replicationcontroller ${NC}\n"
|
||||||
|
./kompose down -f $f --controller=replicationcontroller
|
||||||
|
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user