Skip to content

Commit

Permalink
Adding --controller flag in up & down
Browse files Browse the repository at this point in the history
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
  • Loading branch information
surajnarwade committed Nov 14, 2017
1 parent b6eddd7 commit c061f05
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 2 deletions.
9 changes: 7 additions & 2 deletions cmd/down.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,18 @@ limitations under the License.
package cmd

import (
"strings"

"github.com/kubernetes/kompose/pkg/app"
"github.com/kubernetes/kompose/pkg/kobject"
"github.com/spf13/cobra"
)

// TODO: comment
var (
DownNamespace string
DownOpt kobject.ConvertOptions
DownNamespace string
DownController string
DownOpt kobject.ConvertOptions
)

var downCmd = &cobra.Command{
Expand All @@ -39,6 +42,7 @@ var downCmd = &cobra.Command{
InputFiles: GlobalFiles,
Provider: GlobalProvider,
Namespace: DownNamespace,
Controller: strings.ToLower(DownController),
IsNamespaceFlag: cmd.Flags().Lookup("namespace").Changed,
}

Expand All @@ -52,5 +56,6 @@ var downCmd = &cobra.Command{

func init() {
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)
}
4 changes: 4 additions & 0 deletions cmd/up.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"github.com/kubernetes/kompose/pkg/app"
"github.com/kubernetes/kompose/pkg/kobject"
"github.com/spf13/cobra"
"strings"
)

// TODO: comment
Expand All @@ -35,6 +36,7 @@ var (
UpBuild string
UpBuildBranch string
UpBuildRepo string
UpController string
)

var upCmd = &cobra.Command{
Expand All @@ -60,6 +62,7 @@ var upCmd = &cobra.Command{
InsecureRepository: UpInsecureRepo,
BuildBranch: UpBuildBranch,
BuildRepo: UpBuildRepo,
Controller: strings.ToLower(UpController),
IsNamespaceFlag: cmd.Flags().Lookup("namespace").Changed,
}

Expand All @@ -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(&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(&UpController, "controller", "", `Set the output controller ("deployment"|"daemonSet"|"replicationController")`)
upCmd.Flags().MarkHidden("insecure-repository")
upCmd.Flags().MarkHidden("build-repo")
upCmd.Flags().MarkHidden("build-branch")
Expand Down
65 changes: 65 additions & 0 deletions pkg/transformer/kubernetes/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -797,6 +797,21 @@ func (k *Kubernetes) Deploy(komposeObject kobject.KomposeObject, opt kobject.Con
return err
}
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:
_, err := client.Services(namespace).Create(t)
if err != nil {
Expand Down Expand Up @@ -893,6 +908,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:
//delete svc
svc, err := client.Services(namespace).List(options)
Expand Down

0 comments on commit c061f05

Please sign in to comment.