forked from LaconicNetwork/kompose
kompose up for openshift
kompose --provider openshift up
This commit is contained in:
parent
776c94803f
commit
5e1a5cbb3b
@ -194,7 +194,7 @@ func Up(c *cli.Context) {
|
|||||||
t = new(openshift.OpenShift)
|
t = new(openshift.OpenShift)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Submit objects provider
|
//Submit objects to provider
|
||||||
errDeploy := t.Deploy(komposeObject, opt)
|
errDeploy := t.Deploy(komposeObject, opt)
|
||||||
if errDeploy != nil {
|
if errDeploy != nil {
|
||||||
logrus.Fatalf("Error while deploying application: %s", errDeploy)
|
logrus.Fatalf("Error while deploying application: %s", errDeploy)
|
||||||
|
|||||||
@ -18,18 +18,27 @@ package openshift
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
deployapi "github.com/openshift/origin/pkg/deploy/api"
|
"strings"
|
||||||
imageapi "github.com/openshift/origin/pkg/image/api"
|
|
||||||
|
|
||||||
"github.com/kubernetes-incubator/kompose/pkg/kobject"
|
"github.com/kubernetes-incubator/kompose/pkg/kobject"
|
||||||
"github.com/kubernetes-incubator/kompose/pkg/transformer/kubernetes"
|
"github.com/kubernetes-incubator/kompose/pkg/transformer/kubernetes"
|
||||||
|
|
||||||
|
"github.com/Sirupsen/logrus"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
|
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
|
|
||||||
"strings"
|
kclient "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
|
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
|
|
||||||
|
oclient "github.com/openshift/origin/pkg/client"
|
||||||
|
ocliconfig "github.com/openshift/origin/pkg/cmd/cli/config"
|
||||||
|
|
||||||
|
deployapi "github.com/openshift/origin/pkg/deploy/api"
|
||||||
|
imageapi "github.com/openshift/origin/pkg/image/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
type OpenShift struct {
|
type OpenShift struct {
|
||||||
@ -157,7 +166,60 @@ func (k *OpenShift) Transform(komposeObject kobject.KomposeObject, opt kobject.C
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (k *OpenShift) Deploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) error {
|
func (k *OpenShift) Deploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) error {
|
||||||
return errors.New("Not Implemented")
|
//Convert komposeObject
|
||||||
|
objects := k.Transform(komposeObject, opt)
|
||||||
|
|
||||||
|
fmt.Println("We are going to create OpenShift DeploymentConfigs and Services for your Dockerized application. \n" +
|
||||||
|
"If you need different kind of resources, use the 'kompose convert' and 'oc create -f' commands instead. \n")
|
||||||
|
|
||||||
|
// initialize OpenShift Client
|
||||||
|
loadingRules := ocliconfig.NewOpenShiftClientConfigLoadingRules()
|
||||||
|
overrides := &clientcmd.ConfigOverrides{}
|
||||||
|
oclientConfig, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, overrides).ClientConfig()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
oclient := oclient.NewOrDie(oclientConfig)
|
||||||
|
|
||||||
|
// initialize Kubernetes client
|
||||||
|
kfactory := kcmdutil.NewFactory(nil)
|
||||||
|
kclientConfig, err := kfactory.ClientConfig()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
kclient := kclient.NewOrDie(kclientConfig)
|
||||||
|
|
||||||
|
// get namespace from config
|
||||||
|
namespace, _, err := kfactory.DefaultNamespace()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, v := range objects {
|
||||||
|
switch t := v.(type) {
|
||||||
|
case *imageapi.ImageStream:
|
||||||
|
_, err := oclient.ImageStreams(namespace).Create(t)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
logrus.Infof("Successfully created ImageStream: %s", t.Name)
|
||||||
|
case *deployapi.DeploymentConfig:
|
||||||
|
_, err := oclient.DeploymentConfigs(namespace).Create(t)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
logrus.Infof("Successfully created deployment: %s", t.Name)
|
||||||
|
case *api.Service:
|
||||||
|
_, err := kclient.Services(namespace).Create(t)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
logrus.Infof("Successfully created service: %s", t.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Println("\nYour application has been deployed to OpenShift. You can run 'oc get dc,svc,is' for details.")
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (k *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) error {
|
func (k *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) error {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user