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:
parent
a194e59651
commit
126d9820c4
@ -17,6 +17,8 @@ limitations under the License.
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/kubernetes/kompose/pkg/app"
|
||||
"github.com/kubernetes/kompose/pkg/kobject"
|
||||
"github.com/spf13/cobra"
|
||||
@ -24,8 +26,9 @@ import (
|
||||
|
||||
// TODO: comment
|
||||
var (
|
||||
DownNamespace string
|
||||
DownOpt kobject.ConvertOptions
|
||||
DownNamespace string
|
||||
DownController string
|
||||
DownOpt kobject.ConvertOptions
|
||||
)
|
||||
|
||||
var downCmd = &cobra.Command{
|
||||
@ -39,6 +42,7 @@ var downCmd = &cobra.Command{
|
||||
InputFiles: GlobalFiles,
|
||||
Provider: GlobalProvider,
|
||||
Namespace: DownNamespace,
|
||||
Controller: strings.ToLower(DownController),
|
||||
IsNamespaceFlag: cmd.Flags().Lookup("namespace").Changed,
|
||||
}
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ import (
|
||||
"github.com/kubernetes/kompose/pkg/app"
|
||||
"github.com/kubernetes/kompose/pkg/kobject"
|
||||
"github.com/spf13/cobra"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// TODO: comment
|
||||
@ -35,6 +36,7 @@ var (
|
||||
UpBuild string
|
||||
UpBuildBranch string
|
||||
UpBuildRepo string
|
||||
UpController string
|
||||
)
|
||||
|
||||
var upCmd = &cobra.Command{
|
||||
@ -60,6 +62,7 @@ var upCmd = &cobra.Command{
|
||||
InsecureRepository: UpInsecureRepo,
|
||||
BuildBranch: UpBuildBranch,
|
||||
BuildRepo: UpBuildRepo,
|
||||
Controller: strings.ToLower(UpController),
|
||||
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(&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")
|
||||
|
||||
@ -805,6 +805,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 {
|
||||
@ -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:
|
||||
//delete svc
|
||||
svc, err := client.Services(namespace).List(options)
|
||||
|
||||
@ -103,6 +103,19 @@ test_k8s() {
|
||||
sleep 2 # Sleep for k8s to catch up to deployment
|
||||
echo -e "\n${RED}kompose down -f $f ${NC}\n"
|
||||
./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
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user