@@ -153,6 +153,74 @@ func TestGenerateDebugContainer(t *testing.T) {
153
153
},
154
154
},
155
155
},
156
+ {
157
+ name : "pod with init containers" ,
158
+ opts : & DebugOptions {
159
+ Image : "busybox" ,
160
+ PullPolicy : corev1 .PullIfNotPresent ,
161
+ },
162
+ pod : & corev1.Pod {
163
+ Spec : corev1.PodSpec {
164
+ InitContainers : []corev1.Container {
165
+ {
166
+ Name : "init-container-1" ,
167
+ },
168
+ {
169
+ Name : "init-container-2" ,
170
+ },
171
+ },
172
+ Containers : []corev1.Container {
173
+ {
174
+ Name : "debugger" ,
175
+ },
176
+ },
177
+ },
178
+ },
179
+ expected : & corev1.EphemeralContainer {
180
+ EphemeralContainerCommon : corev1.EphemeralContainerCommon {
181
+ Name : "debugger-1" ,
182
+ Image : "busybox" ,
183
+ ImagePullPolicy : "IfNotPresent" ,
184
+ TerminationMessagePolicy : "File" ,
185
+ },
186
+ },
187
+ },
188
+ {
189
+ name : "pod with ephemeral containers" ,
190
+ opts : & DebugOptions {
191
+ Image : "busybox" ,
192
+ PullPolicy : corev1 .PullIfNotPresent ,
193
+ },
194
+ pod : & corev1.Pod {
195
+ Spec : corev1.PodSpec {
196
+ Containers : []corev1.Container {
197
+ {
198
+ Name : "debugger" ,
199
+ },
200
+ },
201
+ EphemeralContainers : []corev1.EphemeralContainer {
202
+ {
203
+ EphemeralContainerCommon : corev1.EphemeralContainerCommon {
204
+ Name : "ephemeral-container-1" ,
205
+ },
206
+ },
207
+ {
208
+ EphemeralContainerCommon : corev1.EphemeralContainerCommon {
209
+ Name : "ephemeral-container-2" ,
210
+ },
211
+ },
212
+ },
213
+ },
214
+ },
215
+ expected : & corev1.EphemeralContainer {
216
+ EphemeralContainerCommon : corev1.EphemeralContainerCommon {
217
+ Name : "debugger-1" ,
218
+ Image : "busybox" ,
219
+ ImagePullPolicy : "IfNotPresent" ,
220
+ TerminationMessagePolicy : "File" ,
221
+ },
222
+ },
223
+ },
156
224
} {
157
225
t .Run (tc .name , func (t * testing.T ) {
158
226
tc .opts .IOStreams = genericclioptions .NewTestIOStreamsDiscard ()
@@ -590,6 +658,110 @@ func TestGeneratePodCopyWithDebugContainer(t *testing.T) {
590
658
},
591
659
},
592
660
},
661
+ {
662
+ name : "pod with init containers" ,
663
+ opts : & DebugOptions {
664
+ CopyTo : "debugger" ,
665
+ Image : "busybox" ,
666
+ PullPolicy : corev1 .PullIfNotPresent ,
667
+ },
668
+ pod : & corev1.Pod {
669
+ ObjectMeta : metav1.ObjectMeta {
670
+ Name : "target" ,
671
+ },
672
+ Spec : corev1.PodSpec {
673
+ InitContainers : []corev1.Container {
674
+ {
675
+ Name : "init-container-1" ,
676
+ },
677
+ {
678
+ Name : "init-container-2" ,
679
+ },
680
+ },
681
+ Containers : []corev1.Container {
682
+ {
683
+ Name : "debugger-1" ,
684
+ },
685
+ },
686
+ },
687
+ },
688
+ expected : & corev1.Pod {
689
+ ObjectMeta : metav1.ObjectMeta {
690
+ Name : "debugger" ,
691
+ },
692
+ Spec : corev1.PodSpec {
693
+ InitContainers : []corev1.Container {
694
+ {
695
+ Name : "init-container-1" ,
696
+ },
697
+ {
698
+ Name : "init-container-2" ,
699
+ },
700
+ },
701
+ Containers : []corev1.Container {
702
+ {
703
+ Name : "debugger-1" ,
704
+ },
705
+ {
706
+ Name : "debugger-2" ,
707
+ Image : "busybox" ,
708
+ ImagePullPolicy : corev1 .PullIfNotPresent ,
709
+ TerminationMessagePolicy : corev1 .TerminationMessageReadFile ,
710
+ },
711
+ },
712
+ },
713
+ },
714
+ },
715
+ {
716
+ name : "pod with ephemeral containers" ,
717
+ opts : & DebugOptions {
718
+ CopyTo : "debugger" ,
719
+ Image : "busybox" ,
720
+ PullPolicy : corev1 .PullIfNotPresent ,
721
+ },
722
+ pod : & corev1.Pod {
723
+ ObjectMeta : metav1.ObjectMeta {
724
+ Name : "target" ,
725
+ },
726
+ Spec : corev1.PodSpec {
727
+ Containers : []corev1.Container {
728
+ {
729
+ Name : "debugger-1" ,
730
+ },
731
+ },
732
+ EphemeralContainers : []corev1.EphemeralContainer {
733
+ {
734
+ EphemeralContainerCommon : corev1.EphemeralContainerCommon {
735
+ Name : "ephemeral-container-1" ,
736
+ },
737
+ },
738
+ {
739
+ EphemeralContainerCommon : corev1.EphemeralContainerCommon {
740
+ Name : "ephemeral-container-2" ,
741
+ },
742
+ },
743
+ },
744
+ },
745
+ },
746
+ expected : & corev1.Pod {
747
+ ObjectMeta : metav1.ObjectMeta {
748
+ Name : "debugger" ,
749
+ },
750
+ Spec : corev1.PodSpec {
751
+ Containers : []corev1.Container {
752
+ {
753
+ Name : "debugger-1" ,
754
+ },
755
+ {
756
+ Name : "debugger-2" ,
757
+ Image : "busybox" ,
758
+ ImagePullPolicy : corev1 .PullIfNotPresent ,
759
+ TerminationMessagePolicy : corev1 .TerminationMessageReadFile ,
760
+ },
761
+ },
762
+ },
763
+ },
764
+ },
593
765
{
594
766
name : "shared process namespace" ,
595
767
opts : & DebugOptions {
0 commit comments