mirror of
https://github.com/containers/podman
synced 2024-10-21 01:34:37 +00:00
generate service object inline
no longer require the service object be output to a different file; we should be doing this inline with the pods for user convenience. Signed-off-by: baude <bbaude@redhat.com>
This commit is contained in:
parent
510b5a81dc
commit
0702e71ca5
|
@ -17,7 +17,7 @@ var (
|
|||
containerKubeFlags = []cli.Flag{
|
||||
cli.BoolFlag{
|
||||
Name: "service, s",
|
||||
Usage: "only generate YAML for kubernetes service object",
|
||||
Usage: "generate YAML for kubernetes service object",
|
||||
},
|
||||
}
|
||||
containerKubeDescription = "Generate Kubernetes Pod YAML"
|
||||
|
@ -36,13 +36,14 @@ var (
|
|||
// generateKubeYAMLCmdgenerates or replays kube
|
||||
func generateKubeYAMLCmd(c *cli.Context) error {
|
||||
var (
|
||||
podYAML *v1.Pod
|
||||
container *libpod.Container
|
||||
err error
|
||||
output []byte
|
||||
pod *libpod.Pod
|
||||
mashalledBytes []byte
|
||||
servicePorts []v1.ServicePort
|
||||
podYAML *v1.Pod
|
||||
container *libpod.Container
|
||||
err error
|
||||
output []byte
|
||||
pod *libpod.Pod
|
||||
marshalledPod []byte
|
||||
marshalledService []byte
|
||||
servicePorts []v1.ServicePort
|
||||
)
|
||||
|
||||
if rootless.IsRootless() {
|
||||
|
@ -79,11 +80,13 @@ func generateKubeYAMLCmd(c *cli.Context) error {
|
|||
|
||||
if c.Bool("service") {
|
||||
serviceYAML := libpod.GenerateKubeServiceFromV1Pod(podYAML, servicePorts)
|
||||
mashalledBytes, err = yaml.Marshal(serviceYAML)
|
||||
} else {
|
||||
// Marshall the results
|
||||
mashalledBytes, err = yaml.Marshal(podYAML)
|
||||
marshalledService, err = yaml.Marshal(serviceYAML)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
// Marshall the results
|
||||
marshalledPod, err = yaml.Marshal(podYAML)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -96,7 +99,11 @@ func generateKubeYAMLCmd(c *cli.Context) error {
|
|||
# Created with podman-%s
|
||||
`
|
||||
output = append(output, []byte(fmt.Sprintf(header, podmanVersion.Version))...)
|
||||
output = append(output, mashalledBytes...)
|
||||
output = append(output, marshalledPod...)
|
||||
if c.Bool("service") {
|
||||
output = append(output, []byte("---\n")...)
|
||||
output = append(output, marshalledService...)
|
||||
}
|
||||
// Output the v1.Pod with the v1.Container
|
||||
fmt.Println(string(output))
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ random port is assigned by Podman in the specification.
|
|||
# OPTIONS:
|
||||
|
||||
**s** **--service**
|
||||
Generate a service file for the resulting Pod YAML.
|
||||
Generate a Kubernetes service object in addition to the Pods.
|
||||
|
||||
## Examples ##
|
||||
|
||||
|
@ -82,31 +82,63 @@ spec:
|
|||
status: {}
|
||||
```
|
||||
|
||||
Create Kubernetes service YAML for a container called `some-mariabdb`
|
||||
Create Kubernetes Pod YAML for a pod called `demoweb` and include a service.
|
||||
```
|
||||
$ sudo podman generate kube -s some-mariadb
|
||||
# Generation of Kubenetes YAML is still under development!
|
||||
$ 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.11.2-dev
|
||||
# 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-03T19:08:24Z
|
||||
creationTimestamp: 2018-12-18T15:16:06Z
|
||||
labels:
|
||||
app: some-mariadb
|
||||
name: some-mariadb-libpod
|
||||
app: demoweb
|
||||
name: demoweb-libpod
|
||||
spec:
|
||||
ports:
|
||||
- name: "3306"
|
||||
nodePort: 30929
|
||||
port: 3306
|
||||
- name: "8050"
|
||||
nodePort: 31269
|
||||
port: 8050
|
||||
protocol: TCP
|
||||
targetPort: 0
|
||||
selector:
|
||||
app: some-mariadb
|
||||
app: demoweb
|
||||
type: NodePort
|
||||
status:
|
||||
loadBalancer: {}
|
||||
|
|
Loading…
Reference in a new issue