From 80b2c097fe333fd43634753b574d4b5bdf155b82 Mon Sep 17 00:00:00 2001
From: baude <bbaude@redhat.com>
Date: Sun, 7 Apr 2019 13:38:58 -0500
Subject: podman-remote generate kube

Allow the ability to generate kube YAML from the podman remote-client.

Signed-off-by: baude <bbaude@redhat.com>
---
 pkg/adapter/runtime.go        | 29 +++++------------------------
 pkg/adapter/runtime_remote.go | 19 +++++++++++++++++++
 2 files changed, 24 insertions(+), 24 deletions(-)

(limited to 'pkg/adapter')

diff --git a/pkg/adapter/runtime.go b/pkg/adapter/runtime.go
index d45bdb56d..6aafed550 100644
--- a/pkg/adapter/runtime.go
+++ b/pkg/adapter/runtime.go
@@ -7,6 +7,7 @@ import (
 	"context"
 	"io"
 	"io/ioutil"
+	"k8s.io/api/core/v1"
 	"os"
 	"text/template"
 
@@ -404,27 +405,7 @@ func (r *LocalRuntime) Diff(c *cliconfig.DiffValues, to string) ([]archive.Chang
 	return r.Runtime.GetDiff("", to)
 }
 
-// func (r *LocalRuntime) joinContainerOrCreateRootlessUserNS(ctr *libpod.Container) (bool, int, error) {
-// 	if os.Geteuid() == 0 {
-// 		return false, 0, nil
-// 	}
-// 	s, err := ctr.State()
-// 	if err != nil {
-// 		return false, -1, err
-// 	}
-// 	opts := rootless.Opts{
-// 		Argument: ctr.ID(),
-// 	}
-// 	if s == libpod.ContainerStateRunning || s == libpod.ContainerStatePaused {
-// 		data, err := ioutil.ReadFile(ctr.Config().ConmonPidFile)
-// 		if err != nil {
-// 			return false, -1, errors.Wrapf(err, "Container %s cannot read conmon PID file %q", ctr.ID(), ctr.Config().ConmonPidFile)
-// 		}
-// 		conmonPid, err := strconv.Atoi(string(data))
-// 		if err != nil {
-// 			return false, -1, errors.Wrapf(err, "Container %s cannot parse PID %q", ctr.ID(), data)
-// 		}
-// 		return rootless.JoinDirectUserAndMountNSWithOpts(uint(conmonPid), &opts)
-// 	}
-// 	return rootless.BecomeRootInUserNSWithOpts(&opts)
-// }
+// GenerateKube creates kubernetes email from containers and pods
+func (r *LocalRuntime) GenerateKube(c *cliconfig.GenerateKubeValues) (*v1.Pod, *v1.Service, error) {
+	return shared.GenerateKube(c.InputArgs[0], c.Service, r.Runtime)
+}
diff --git a/pkg/adapter/runtime_remote.go b/pkg/adapter/runtime_remote.go
index 807a9ad8f..71f7380db 100644
--- a/pkg/adapter/runtime_remote.go
+++ b/pkg/adapter/runtime_remote.go
@@ -5,9 +5,11 @@ package adapter
 import (
 	"bufio"
 	"context"
+	"encoding/json"
 	"fmt"
 	"io"
 	"io/ioutil"
+	v1 "k8s.io/api/core/v1"
 	"os"
 	"strings"
 	"text/template"
@@ -858,3 +860,20 @@ func stringToChangeType(change string) archive.ChangeType {
 		return archive.ChangeModify
 	}
 }
+
+// GenerateKube creates kubernetes email from containers and pods
+func (r *LocalRuntime) GenerateKube(c *cliconfig.GenerateKubeValues) (*v1.Pod, *v1.Service, error) {
+	var (
+		pod     v1.Pod
+		service v1.Service
+	)
+	reply, err := iopodman.GenerateKube().Call(r.Conn, c.InputArgs[0], c.Service)
+	if err != nil {
+		return nil, nil, errors.Wrap(err, "unable to create kubernetes YAML")
+	}
+	if err := json.Unmarshal([]byte(reply.Pod), &pod); err != nil {
+		return nil, nil, err
+	}
+	err = json.Unmarshal([]byte(reply.Service), &service)
+	return &pod, &service, err
+}
-- 
cgit v1.2.3-54-g00ecf