Modify PlayKubeReport to preserve pod->container mapping
Signed-off-by: Aditya Kamath <theunrealgeek@gmail.com>
This commit is contained in:
parent
ce7a9f0314
commit
478f296fb3
|
|
@ -92,8 +92,10 @@ func kube(cmd *cobra.Command, args []string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
for _, l := range report.Logs {
|
||||
fmt.Fprintf(os.Stderr, l)
|
||||
for _, pod := range report.Pods {
|
||||
for _, l := range pod.Logs {
|
||||
fmt.Fprintf(os.Stderr, l)
|
||||
}
|
||||
}
|
||||
|
||||
switch len(report.Pods) {
|
||||
|
|
@ -105,19 +107,19 @@ func kube(cmd *cobra.Command, args []string) error {
|
|||
fmt.Printf("Pods:\n")
|
||||
}
|
||||
for _, pod := range report.Pods {
|
||||
fmt.Println(pod)
|
||||
}
|
||||
fmt.Println(pod.ID)
|
||||
|
||||
switch len(report.Containers) {
|
||||
case 0:
|
||||
return nil
|
||||
case 1:
|
||||
fmt.Printf("Container:\n")
|
||||
default:
|
||||
fmt.Printf("Containers:\n")
|
||||
}
|
||||
for _, ctr := range report.Containers {
|
||||
fmt.Println(ctr)
|
||||
switch len(pod.Containers) {
|
||||
case 0:
|
||||
return nil
|
||||
case 1:
|
||||
fmt.Printf("Container:\n")
|
||||
default:
|
||||
fmt.Printf("Containers:\n")
|
||||
}
|
||||
for _, ctr := range pod.Containers {
|
||||
fmt.Println(ctr)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -26,12 +26,17 @@ type PlayKubeOptions struct {
|
|||
SeccompProfileRoot string
|
||||
}
|
||||
|
||||
// PlayKubeReport contains the results of running play kube.
|
||||
type PlayKubeReport struct {
|
||||
// Pods - the IDs of the created pods.
|
||||
Pods []string
|
||||
// PlayKubePods represents a single pod and associated containers created by play kube
|
||||
type PlayKubePod struct {
|
||||
ID string
|
||||
// Containers - the IDs of the containers running in the created pod.
|
||||
Containers []string
|
||||
// Logs - non-fatal erros and log messages while processing.
|
||||
Logs []string
|
||||
}
|
||||
|
||||
// PlayKubeReport contains the results of running play kube.
|
||||
type PlayKubeReport struct {
|
||||
// Pods - pods created by play kube.
|
||||
Pods []PlayKubePod
|
||||
}
|
||||
|
|
|
|||
|
|
@ -103,8 +103,6 @@ func (ic *ContainerEngine) playKubeDeployment(ctx context.Context, deploymentYAM
|
|||
return nil, errors.Wrapf(err, "Error encountered while bringing up pod %s", podName)
|
||||
}
|
||||
report.Pods = append(report.Pods, podReport.Pods...)
|
||||
report.Containers = append(report.Containers, podReport.Containers...)
|
||||
report.Logs = append(report.Logs, podReport.Logs...)
|
||||
}
|
||||
return &report, nil
|
||||
}
|
||||
|
|
@ -116,6 +114,7 @@ func (ic *ContainerEngine) playKubePod(ctx context.Context, podName string, podY
|
|||
podOptions []libpod.PodCreateOption
|
||||
registryCreds *types.DockerAuthConfig
|
||||
writer io.Writer
|
||||
playKubePod entities.PlayKubePod
|
||||
report entities.PlayKubeReport
|
||||
)
|
||||
|
||||
|
|
@ -125,7 +124,7 @@ func (ic *ContainerEngine) playKubePod(ctx context.Context, podName string, podY
|
|||
}
|
||||
for _, n := range podYAML.Spec.Containers {
|
||||
if n.Name == podName {
|
||||
report.Logs = append(report.Logs,
|
||||
playKubePod.Logs = append(playKubePod.Logs,
|
||||
fmt.Sprintf("a container exists with the same name (%q) as the pod in your YAML file; changing pod name to %s_pod\n", podName, podName))
|
||||
podName = fmt.Sprintf("%s_pod", podName)
|
||||
}
|
||||
|
|
@ -314,11 +313,13 @@ func (ic *ContainerEngine) playKubePod(ctx context.Context, podName string, podY
|
|||
}
|
||||
}
|
||||
|
||||
report.Pods = append(report.Pods, pod.ID())
|
||||
playKubePod.ID = pod.ID()
|
||||
for _, ctr := range containers {
|
||||
report.Containers = append(report.Containers, ctr.ID())
|
||||
playKubePod.Containers = append(playKubePod.Containers, ctr.ID())
|
||||
}
|
||||
|
||||
report.Pods = append(report.Pods, playKubePod)
|
||||
|
||||
return &report, nil
|
||||
}
|
||||
|
||||
|
|
@ -425,9 +426,12 @@ func kubeContainerToCreateConfig(ctx context.Context, containerYAML v1.Container
|
|||
containerConfig.ImageID = newImage.ID()
|
||||
containerConfig.Name = containerYAML.Name
|
||||
|
||||
if podName != "" {
|
||||
containerConfig.Name = fmt.Sprintf("%s-%s", podName, containerYAML.Name)
|
||||
// podName should be non-empty for Deployment objects to be able to create
|
||||
// multiple pods having containers with unique names
|
||||
if podName == "" {
|
||||
return nil, errors.Errorf("kubeContainerToCreateConfig got empty podName")
|
||||
}
|
||||
containerConfig.Name = fmt.Sprintf("%s-%s", podName, containerYAML.Name)
|
||||
|
||||
containerConfig.Tty = containerYAML.TTY
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue