summaryrefslogtreecommitdiff
path: root/pkg/api
diff options
context:
space:
mode:
authorNiall Crowe <nicrowe@redhat.com>2022-08-04 09:02:54 +0100
committerNiall Crowe <nicrowe@redhat.com>2022-08-11 16:58:24 +0100
commitd856fb43e11b3a4a93b423d330ce3435afddde4b (patch)
treeb5533938756de79d6340e3a5802ac1a1700fd142 /pkg/api
parent92bbae40de3c48ee6b4692ab9e4d7cc14db242bb (diff)
downloadpodman-d856fb43e11b3a4a93b423d330ce3435afddde4b.tar.gz
podman-d856fb43e11b3a4a93b423d330ce3435afddde4b.tar.bz2
podman-d856fb43e11b3a4a93b423d330ce3435afddde4b.zip
Add "podman kube generate" command
"podman kube generate" creates Kubernetes YAML from Podman containers, pods or volumes. Users will still be able to use "podman generate kube" as an alias of "kube generate". Signed-off-by: Niall Crowe <nicrowe@redhat.com>
Diffstat (limited to 'pkg/api')
-rw-r--r--pkg/api/handlers/libpod/kube.go4
-rw-r--r--pkg/api/server/register_kube.go (renamed from pkg/api/server/register_play.go)35
-rw-r--r--pkg/api/server/server.go2
3 files changed, 39 insertions, 2 deletions
diff --git a/pkg/api/handlers/libpod/kube.go b/pkg/api/handlers/libpod/kube.go
index 6cad58795..5c891b707 100644
--- a/pkg/api/handlers/libpod/kube.go
+++ b/pkg/api/handlers/libpod/kube.go
@@ -121,3 +121,7 @@ func KubePlayDown(w http.ResponseWriter, r *http.Request) {
}
utils.WriteResponse(w, http.StatusOK, report)
}
+
+func KubeGenerate(w http.ResponseWriter, r *http.Request) {
+ GenerateKube(w, r)
+}
diff --git a/pkg/api/server/register_play.go b/pkg/api/server/register_kube.go
index 76e150504..0c3cd1d04 100644
--- a/pkg/api/server/register_play.go
+++ b/pkg/api/server/register_kube.go
@@ -7,7 +7,7 @@ import (
"github.com/gorilla/mux"
)
-func (s *APIServer) registerPlayHandlers(r *mux.Router) error {
+func (s *APIServer) registerKubeHandlers(r *mux.Router) error {
// swagger:operation POST /libpod/play/kube libpod PlayKubeLibpod
// ---
// tags:
@@ -78,5 +78,38 @@ func (s *APIServer) registerPlayHandlers(r *mux.Router) error {
// $ref: "#/responses/internalError"
r.HandleFunc(VersionedPath("/libpod/play/kube"), s.APIHandler(libpod.PlayKubeDown)).Methods(http.MethodDelete)
r.HandleFunc(VersionedPath("/libpod/kube/play"), s.APIHandler(libpod.KubePlayDown)).Methods(http.MethodDelete)
+ // swagger:operation GET /libpod/generate/kube libpod GenerateKubeLibpod
+ // ---
+ // tags:
+ // - containers
+ // - pods
+ // summary: Generate a Kubernetes YAML file.
+ // description: Generate Kubernetes YAML based on a pod or container.
+ // parameters:
+ // - in: query
+ // name: names
+ // type: array
+ // items:
+ // type: string
+ // required: true
+ // description: Name or ID of the container or pod.
+ // - in: query
+ // name: service
+ // type: boolean
+ // default: false
+ // description: Generate YAML for a Kubernetes service object.
+ // produces:
+ // - text/vnd.yaml
+ // - application/json
+ // responses:
+ // 200:
+ // description: Kubernetes YAML file describing pod
+ // schema:
+ // type: string
+ // format: binary
+ // 500:
+ // $ref: "#/responses/internalError"
+ r.HandleFunc(VersionedPath("/libpod/generate/kube"), s.APIHandler(libpod.GenerateKube)).Methods(http.MethodGet)
+ r.HandleFunc(VersionedPath("/libpod/kube/generate"), s.APIHandler(libpod.KubeGenerate)).Methods(http.MethodGet)
return nil
}
diff --git a/pkg/api/server/server.go b/pkg/api/server/server.go
index 5482a8ec2..39423dabe 100644
--- a/pkg/api/server/server.go
+++ b/pkg/api/server/server.go
@@ -130,7 +130,7 @@ func newServer(runtime *libpod.Runtime, listener net.Listener, opts entities.Ser
server.registerMonitorHandlers,
server.registerNetworkHandlers,
server.registerPingHandlers,
- server.registerPlayHandlers,
+ server.registerKubeHandlers,
server.registerPluginsHandlers,
server.registerPodsHandlers,
server.registerSecretHandlers,