% podman-generate-kube(1) ## NAME podman-generate-kube - Generate Kubernetes YAML based on a pod or container ## SYNOPSIS **podman generate kube** [*options*] *container* | *pod* ## DESCRIPTION **podman generate kube** will generate Kubernetes Pod YAML (v1 specification) from a Podman container or pod. Whether the input is for a container or pod, Podman will always generate the specification as a Pod. The input may be in the form of a pod or container name or ID. Note that the generated Kubernetes YAML file can be used to re-run the deployment via podman-play-kube(1). ## OPTIONS: **--filename**, **-f**=**filename** Output to the given file, instead of STDOUT. If the file already exists, `generate kube` will refuse to replace it and return an error. **--service**, **-s** Generate a Kubernetes service object in addition to the Pods. Used to generate a Service specification for the corresponding Pod output. In particular, if the object has portmap bindings, the service specification will include a NodePort declaration to expose the service. A random port is assigned by Podman in the specification. ## Examples Create Kubernetes Pod YAML for a container called `some-mariadb` . ``` $ sudo podman generate kube some-mariadb # Generation of Kubenetes YAML is still under development! # # Save the output of this file and use kubectl create -f to import # it into Kubernetes. # # Created with podman-0.11.2-dev apiVersion: v1 kind: Pod metadata: creationTimestamp: 2018-12-03T19:07:59Z labels: app: some-mariadb name: some-mariadb-libpod spec: containers: - command: - docker-entrypoint.sh - mysqld env: - name: PATH value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - name: TERM value: xterm - name: HOSTNAME - name: container value: podman - name: GOSU_VERSION value: "1.10" - name: GPG_KEYS value: "199369E5404BD5FC7D2FE43BCBCB082A1BB943DB \t177F4010FE56CA3336300305F1656F24C74CD1D8 \t430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A \t4D1BB29D63D98E422B2113B19334A25F8507EFA5" - name: MARIADB_MAJOR value: "10.3" - name: MARIADB_VERSION value: 1:10.3.10+maria~bionic - name: MYSQL_ROOT_PASSWORD value: x image: quay.io/baude/demodb:latest name: some-mariadb ports: - containerPort: 3306 hostPort: 36533 protocol: TCP resources: {} securityContext: allowPrivilegeEscalation: true privileged: false readOnlyRootFilesystem: false tty: true workingDir: / status: {} ``` Create Kubernetes Pod YAML for a pod called `demoweb` and include a service. ``` $ sudo podman generate kube -s demoweb # Generation of Kubernetes YAML is still under development! # # Save the output of this file and use kubectl create -f to import # it into Kubernetes. # # Created with podman-0.12.2-dev apiVersion: v1 kind: Pod metadata: creationTimestamp: 2018-12-18T15:16:06Z labels: app: demoweb name: demoweb-libpod spec: containers: - command: - python3 - /root/code/graph.py env: - name: PATH value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - name: TERM value: xterm - name: HOSTNAME - name: container value: podman image: quay.io/baude/demoweb:latest name: practicalarchimedes resources: {} securityContext: allowPrivilegeEscalation: true capabilities: {} privileged: false readOnlyRootFilesystem: false tty: true workingDir: /root/code status: {} --- apiVersion: v1 kind: Service metadata: creationTimestamp: 2018-12-18T15:16:06Z labels: app: demoweb name: demoweb-libpod spec: ports: - name: "8050" nodePort: 31269 port: 8050 protocol: TCP targetPort: 0 selector: app: demoweb type: NodePort status: loadBalancer: {} ``` ## SEE ALSO podman(1), podman-container(1), podman-pod(1), podman-play-kube(1) ## HISTORY December 2018, Originally compiled by Brent Baude (bbaude at redhat dot com)