mirror of https://github.com/k3s-io/k3s
Merge pull request #36615 from timstclair/cri-attach-tty
Automatic merge from submit-queue [CRI] Add TTY flag to AttachRequest Follow up from https://github.com/kubernetes/kubernetes/pull/35661 For https://github.com/kubernetes/kubernetes/issues/29579 - Add TTY to the CRI AttachRequest - Moves responsibility from the runtime shim to the Kubelet for populating the TTY bool in the request based on the container spec /cc @euank @feiskyer @kubernetes/sig-nodepull/6/head
commit
5960761b9b
|
@ -2267,7 +2267,7 @@ type ExecRequest struct {
|
|||
ContainerId *string `protobuf:"bytes,1,opt,name=container_id,json=containerId" json:"container_id,omitempty"`
|
||||
// Command to execute.
|
||||
Cmd []string `protobuf:"bytes,2,rep,name=cmd" json:"cmd,omitempty"`
|
||||
// Whether use tty.
|
||||
// Whether to exec the command in a TTY.
|
||||
Tty *bool `protobuf:"varint,3,opt,name=tty" json:"tty,omitempty"`
|
||||
// Whether to stream stdin.
|
||||
Stdin *bool `protobuf:"varint,4,opt,name=stdin" json:"stdin,omitempty"`
|
||||
|
@ -2329,7 +2329,10 @@ type AttachRequest struct {
|
|||
// ID of the container to which to attach.
|
||||
ContainerId *string `protobuf:"bytes,1,opt,name=container_id,json=containerId" json:"container_id,omitempty"`
|
||||
// Whether to stream stdin.
|
||||
Stdin *bool `protobuf:"varint,2,opt,name=stdin" json:"stdin,omitempty"`
|
||||
Stdin *bool `protobuf:"varint,2,opt,name=stdin" json:"stdin,omitempty"`
|
||||
// Whether the process being attached is running in a TTY.
|
||||
// This must match the TTY setting in the ContainerConfig.
|
||||
Tty *bool `protobuf:"varint,3,opt,name=tty" json:"tty,omitempty"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
}
|
||||
|
||||
|
@ -2352,6 +2355,13 @@ func (m *AttachRequest) GetStdin() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func (m *AttachRequest) GetTty() bool {
|
||||
if m != nil && m.Tty != nil {
|
||||
return *m.Tty
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type AttachResponse struct {
|
||||
// Fully qualified URL of the attach streaming server.
|
||||
Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
|
||||
|
@ -3837,11 +3847,11 @@ var _ImageService_serviceDesc = grpc.ServiceDesc{
|
|||
}
|
||||
|
||||
var fileDescriptorApi = []byte{
|
||||
// 3365 bytes of a gzipped FileDescriptorProto
|
||||
// 3369 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x3a, 0xdb, 0x72, 0x1b, 0xc7,
|
||||
0xb1, 0x04, 0x40, 0x82, 0x40, 0x83, 0x00, 0xc1, 0x21, 0x45, 0x42, 0xa0, 0x25, 0x51, 0x6b, 0x49,
|
||||
0x96, 0x64, 0x5b, 0xc7, 0xe2, 0x39, 0xc7, 0x3a, 0x96, 0x2d, 0xd9, 0x30, 0x49, 0xfb, 0xd0, 0x92,
|
||||
0x20, 0x7a, 0x21, 0x39, 0x76, 0xf9, 0x61, 0xb3, 0xc2, 0x0e, 0xc1, 0x95, 0x80, 0xdd, 0xf5, 0xee,
|
||||
0x96, 0x64, 0x5b, 0xc7, 0xe2, 0x39, 0xc7, 0x3a, 0x96, 0x2d, 0xd9, 0x30, 0x49, 0xbb, 0x68, 0x49,
|
||||
0x10, 0xbd, 0x90, 0x7c, 0xec, 0xf8, 0x61, 0xb3, 0xc2, 0x0e, 0xc1, 0x95, 0x80, 0xdd, 0xf5, 0xee,
|
||||
0x80, 0x16, 0xf3, 0x05, 0x79, 0x48, 0xaa, 0xf2, 0xea, 0xa7, 0xa4, 0x52, 0xa9, 0x72, 0x25, 0x79,
|
||||
0x4b, 0x55, 0xaa, 0xf2, 0x0f, 0xa9, 0x7c, 0x40, 0x3e, 0x21, 0x7f, 0x91, 0x9a, 0xdb, 0xee, 0xcc,
|
||||
0x5e, 0x28, 0x52, 0x76, 0xc5, 0x7a, 0xdb, 0xe9, 0xe9, 0xe9, 0xe9, 0xdb, 0xf4, 0x74, 0xf7, 0x2c,
|
||||
|
@ -3987,66 +3997,66 @@ var fileDescriptorApi = []byte{
|
|||
0x4c, 0x89, 0x2f, 0x98, 0x62, 0x24, 0xe0, 0x38, 0x0c, 0x99, 0xd4, 0x1c, 0x8e, 0xc3, 0x50, 0x77,
|
||||
0xdb, 0x8a, 0xee, 0xb6, 0xc6, 0x53, 0x68, 0xd0, 0x0d, 0x7e, 0x10, 0xfb, 0x22, 0x85, 0xad, 0x24,
|
||||
0x29, 0x6c, 0x9c, 0x09, 0xcf, 0x2a, 0x99, 0xb0, 0xb1, 0x01, 0x0b, 0x7c, 0x2f, 0x21, 0x48, 0x1b,
|
||||
0x2a, 0xd3, 0x70, 0x2c, 0xed, 0x36, 0x0d, 0xc7, 0xc6, 0xff, 0x43, 0xb3, 0x47, 0x88, 0x3d, 0x3c,
|
||||
0x38, 0x05, 0x3f, 0xf1, 0x5e, 0x65, 0x75, 0x2f, 0x03, 0x5a, 0x92, 0x52, 0xe1, 0x6e, 0x7d, 0x40,
|
||||
0x7b, 0x7e, 0x48, 0x3e, 0xf1, 0xc3, 0x6f, 0xed, 0xd0, 0x39, 0x5d, 0xce, 0x8a, 0x60, 0x56, 0xfc,
|
||||
0x5f, 0x50, 0xb9, 0x3a, 0x67, 0xb2, 0x6f, 0xe3, 0x0d, 0x58, 0xd6, 0xe8, 0x15, 0x6e, 0x7c, 0x0b,
|
||||
0x1a, 0x2c, 0x2a, 0x88, 0xec, 0xe8, 0xaa, 0xda, 0x01, 0x3b, 0x2e, 0x74, 0xd0, 0xca, 0x97, 0x86,
|
||||
0x7d, 0x06, 0x8f, 0x63, 0xf4, 0x5b, 0xa9, 0x44, 0x62, 0x45, 0x5f, 0x9f, 0x4a, 0x22, 0xbe, 0x2b,
|
||||
0xc1, 0x1c, 0x83, 0x67, 0x82, 0xf4, 0x3a, 0xad, 0xf4, 0x03, 0xdf, 0x22, 0xf6, 0x28, 0xfe, 0x65,
|
||||
0x83, 0x02, 0x1e, 0xd9, 0xa3, 0x88, 0xfd, 0x71, 0x42, 0x27, 0x1d, 0x77, 0x84, 0x23, 0x22, 0xff,
|
||||
0xdb, 0x68, 0x50, 0xd8, 0x36, 0x07, 0x51, 0x95, 0x44, 0xee, 0x2f, 0x78, 0x86, 0x30, 0x6b, 0xb2,
|
||||
0x6f, 0xf9, 0xb0, 0xcc, 0x63, 0x2d, 0x7b, 0x58, 0xee, 0x42, 0x2d, 0xd5, 0xe3, 0x88, 0xc7, 0xc6,
|
||||
0x07, 0x80, 0x54, 0xf1, 0x84, 0xfe, 0xae, 0x40, 0x95, 0x49, 0x2f, 0x6f, 0xb3, 0x96, 0x2e, 0x9f,
|
||||
0x29, 0x66, 0x8d, 0xbb, 0x80, 0xb8, 0xc2, 0xb4, 0x1b, 0xec, 0xe4, 0xca, 0x7d, 0x1f, 0x96, 0xb5,
|
||||
0xf5, 0xf1, 0x93, 0xa1, 0x46, 0x20, 0xbd, 0xbb, 0x58, 0xfc, 0x8f, 0x12, 0x40, 0x6f, 0x4a, 0x0e,
|
||||
0x44, 0x6d, 0xaf, 0x4a, 0x59, 0xd2, 0xa5, 0xa4, 0x73, 0x81, 0x1d, 0x45, 0xdf, 0xfa, 0xa1, 0x4c,
|
||||
0xd1, 0xe2, 0x31, 0xab, 0xcb, 0xa7, 0xe4, 0x40, 0xf6, 0xee, 0xe8, 0x37, 0xba, 0x0c, 0x2d, 0xfe,
|
||||
0x53, 0x8d, 0x65, 0x3b, 0x4e, 0x88, 0xa3, 0x48, 0x34, 0xf1, 0x9a, 0x1c, 0xda, 0xe3, 0x40, 0x8a,
|
||||
0xe6, 0x3a, 0xd8, 0x23, 0x2e, 0x39, 0xb2, 0x88, 0xff, 0x0c, 0x7b, 0x22, 0xf9, 0x6a, 0x4a, 0xe8,
|
||||
0x23, 0x0a, 0xa4, 0x68, 0x21, 0x1e, 0xb9, 0x11, 0x09, 0x25, 0x9a, 0xec, 0x34, 0x09, 0x28, 0x43,
|
||||
0x33, 0xbe, 0x2f, 0x41, 0x7b, 0x6f, 0x3a, 0x1e, 0x73, 0x21, 0x4f, 0xab, 0x4b, 0xf4, 0x86, 0x90,
|
||||
0xa3, 0x9c, 0xea, 0xe4, 0x25, 0x2a, 0x12, 0xc2, 0xfd, 0xf0, 0x4a, 0x6e, 0x19, 0x96, 0x14, 0x46,
|
||||
0x45, 0x11, 0x72, 0x17, 0x10, 0xaf, 0x4f, 0x5e, 0x8e, 0x7f, 0xe3, 0x0c, 0x2c, 0x6b, 0xeb, 0x05,
|
||||
0xd9, 0xeb, 0xd0, 0x14, 0xef, 0x6f, 0xc2, 0xce, 0x67, 0xa1, 0x46, 0x83, 0xc5, 0xd0, 0x75, 0x64,
|
||||
0x5f, 0x76, 0x3e, 0xf0, 0x9d, 0x2d, 0xd7, 0x09, 0x8d, 0x3e, 0x34, 0x4d, 0x4e, 0x5e, 0xe0, 0xde,
|
||||
0x81, 0x96, 0x78, 0xad, 0xb3, 0xb4, 0xf7, 0xec, 0xa4, 0x89, 0xa8, 0xd1, 0x36, 0x9b, 0x9e, 0x3a,
|
||||
0x34, 0xbe, 0x86, 0xee, 0xe3, 0xc0, 0xa1, 0xd9, 0x8e, 0x4a, 0x55, 0x8a, 0x76, 0x07, 0xe4, 0x7f,
|
||||
0x5d, 0x45, 0xc4, 0xf5, 0x65, 0xcd, 0x50, 0x1d, 0x1a, 0xe7, 0x60, 0x3d, 0x97, 0xb8, 0x90, 0x3b,
|
||||
0x80, 0x76, 0x32, 0xe1, 0xb8, 0xb2, 0x1d, 0xcd, 0xda, 0xcc, 0x25, 0xa5, 0xcd, 0xbc, 0x1a, 0x5f,
|
||||
0xa1, 0x3c, 0x18, 0x8b, 0x91, 0x92, 0xd5, 0x54, 0x8a, 0xb2, 0x9a, 0x59, 0x2d, 0xab, 0x31, 0x3e,
|
||||
0x8b, 0xb5, 0x27, 0x52, 0xca, 0xf7, 0x58, 0x5e, 0xcb, 0xf7, 0x96, 0x91, 0xe0, 0x6c, 0x8e, 0x70,
|
||||
0x1c, 0xc3, 0x54, 0x90, 0x8d, 0x45, 0x68, 0x6a, 0x31, 0xc1, 0xf8, 0x08, 0x5a, 0xa9, 0x43, 0x7e,
|
||||
0x23, 0x75, 0xf7, 0x67, 0xd4, 0xa6, 0xdf, 0xfc, 0xd7, 0x5f, 0x83, 0x9a, 0xfc, 0xfd, 0x0c, 0xcd,
|
||||
0x43, 0xe5, 0xd1, 0xd6, 0x5e, 0x7b, 0x86, 0x7e, 0x3c, 0xde, 0xde, 0x6b, 0x97, 0xae, 0xdf, 0x86,
|
||||
0xc5, 0xd4, 0xcb, 0x12, 0x5a, 0x82, 0xe6, 0xa0, 0xd7, 0xdf, 0xfe, 0xf8, 0xe1, 0x97, 0x96, 0xb9,
|
||||
0xd3, 0xdb, 0xfe, 0xaa, 0x3d, 0x83, 0x56, 0xa0, 0x2d, 0x41, 0xfd, 0x87, 0x8f, 0x38, 0xb4, 0x74,
|
||||
0xfd, 0x19, 0xb4, 0xf4, 0xe4, 0x16, 0x9d, 0x81, 0xa5, 0xad, 0x87, 0xfd, 0x47, 0xbd, 0xdd, 0xfe,
|
||||
0x8e, 0x69, 0x6d, 0x99, 0x3b, 0xbd, 0x47, 0x3b, 0xdb, 0xed, 0x19, 0x1d, 0x6c, 0x3e, 0xee, 0xf7,
|
||||
0x77, 0xfb, 0x9f, 0xb6, 0x4b, 0x94, 0x6a, 0x02, 0xde, 0xf9, 0x72, 0x97, 0x22, 0x97, 0x75, 0xe4,
|
||||
0xc7, 0xfd, 0x7b, 0xfd, 0x87, 0x3f, 0xeb, 0xb7, 0x2b, 0x9b, 0x7f, 0x6a, 0x40, 0x4b, 0x0a, 0x88,
|
||||
0x43, 0xd6, 0x0f, 0xbd, 0x0b, 0xf3, 0xf2, 0xcf, 0xc0, 0x24, 0xdd, 0xd6, 0x7f, 0x63, 0xec, 0x76,
|
||||
0xb2, 0x13, 0xc2, 0x51, 0x66, 0xd0, 0x1e, 0x33, 0x9c, 0xf2, 0x8a, 0x77, 0x4e, 0x55, 0x65, 0xe6,
|
||||
0x99, 0xb0, 0x7b, 0xbe, 0x68, 0x3a, 0xa6, 0x38, 0xa0, 0xd6, 0x52, 0x7f, 0xa7, 0x40, 0xc9, 0x9a,
|
||||
0xdc, 0xdf, 0x34, 0xba, 0x17, 0x0a, 0xe7, 0x63, 0xa2, 0x5f, 0x41, 0x3b, 0xfd, 0x23, 0x05, 0x4a,
|
||||
0xfa, 0xda, 0x05, 0x3f, 0x69, 0x74, 0x2f, 0x1e, 0x83, 0xa1, 0x92, 0xce, 0xfc, 0x72, 0xb0, 0x51,
|
||||
0xfc, 0x68, 0x9c, 0x21, 0x5d, 0xf4, 0x12, 0xcd, 0x55, 0xa1, 0xbf, 0xbe, 0x21, 0xf5, 0xa1, 0x3f,
|
||||
0xe7, 0x15, 0x56, 0x51, 0x45, 0xfe, 0xb3, 0x9d, 0x31, 0x83, 0xbe, 0x80, 0xc5, 0x54, 0x2b, 0x0c,
|
||||
0x25, 0xab, 0xf2, 0x1b, 0x7b, 0xdd, 0x8d, 0x62, 0x04, 0xdd, 0x6e, 0x6a, 0xa3, 0x4b, 0xb3, 0x5b,
|
||||
0x4e, 0xf7, 0x4c, 0xb3, 0x5b, 0x6e, 0x87, 0x8c, 0xb9, 0x97, 0xd6, 0xce, 0x52, 0xdc, 0x2b, 0xaf,
|
||||
0x77, 0xd6, 0x3d, 0x5f, 0x34, 0xad, 0x8a, 0x9f, 0x6a, 0x65, 0x29, 0xe2, 0xe7, 0x77, 0xc8, 0xba,
|
||||
0x1b, 0xc5, 0x08, 0x69, 0x5b, 0x25, 0x25, 0x7a, 0xca, 0x56, 0x99, 0x8e, 0x50, 0xca, 0x56, 0xd9,
|
||||
0xda, 0x5e, 0xd8, 0x2a, 0x55, 0x6b, 0x5f, 0x28, 0x2c, 0x53, 0xb2, 0xb6, 0xca, 0xaf, 0x7c, 0x8c,
|
||||
0x19, 0xd4, 0x83, 0x9a, 0xac, 0x33, 0x50, 0x72, 0xba, 0x53, 0xc5, 0x4d, 0xf7, 0x6c, 0xce, 0x4c,
|
||||
0x4c, 0xe2, 0x7f, 0x61, 0x96, 0x42, 0xd1, 0x8a, 0x86, 0x24, 0x97, 0x9e, 0x49, 0x41, 0xe3, 0x65,
|
||||
0xef, 0x43, 0x95, 0x27, 0xea, 0x28, 0x89, 0xb9, 0x5a, 0x0d, 0xd0, 0x5d, 0xcb, 0xc0, 0xe3, 0xc5,
|
||||
0x9f, 0xf1, 0xbf, 0x85, 0x45, 0xc6, 0x8d, 0xd6, 0xb5, 0x7f, 0xf4, 0xf4, 0xbc, 0xbe, 0xfb, 0x5a,
|
||||
0xfe, 0x64, 0x4c, 0xeb, 0x09, 0x2c, 0xe7, 0x5c, 0x81, 0x28, 0x69, 0x0b, 0x15, 0xdf, 0xbe, 0xdd,
|
||||
0x4b, 0xc7, 0x23, 0xa9, 0xc2, 0x0a, 0xab, 0xad, 0xaa, 0xae, 0xae, 0x18, 0x6b, 0x2d, 0x03, 0x97,
|
||||
0x8b, 0x37, 0xff, 0x5a, 0x86, 0x05, 0x9e, 0xa8, 0x88, 0x50, 0xfd, 0x29, 0x40, 0x92, 0x2e, 0xa3,
|
||||
0xae, 0xe6, 0x3d, 0x5a, 0x89, 0xd0, 0x5d, 0xcf, 0x9d, 0x53, 0xd5, 0xa8, 0x64, 0xbe, 0x8a, 0x1a,
|
||||
0xb3, 0xf9, 0xb4, 0xa2, 0xc6, 0x9c, 0x64, 0xd9, 0x98, 0x41, 0xdb, 0x50, 0x8f, 0xd3, 0x31, 0xa4,
|
||||
0x64, 0x71, 0xa9, 0x5c, 0xb2, 0xdb, 0xcd, 0x9b, 0x52, 0x39, 0x52, 0xf2, 0x2f, 0x85, 0xa3, 0x6c,
|
||||
0x56, 0xa7, 0x70, 0x94, 0x97, 0xb2, 0xcd, 0xfc, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x6b, 0xf3, 0x7c,
|
||||
0x10, 0x9b, 0x2f, 0x00, 0x00,
|
||||
0x2a, 0xd3, 0x70, 0x2c, 0xed, 0x36, 0x0d, 0xc7, 0xc6, 0xcf, 0xa0, 0xd9, 0x23, 0xc4, 0x1e, 0x1e,
|
||||
0x9c, 0x82, 0x9f, 0x78, 0xaf, 0xb2, 0x9a, 0x75, 0x67, 0x78, 0x32, 0x0c, 0x68, 0x49, 0xda, 0x85,
|
||||
0xfb, 0xf7, 0x01, 0xed, 0xf9, 0x21, 0xf9, 0xc4, 0x0f, 0xbf, 0xb5, 0x43, 0xe7, 0x74, 0x59, 0x2c,
|
||||
0x82, 0x59, 0xf1, 0xc7, 0x41, 0xe5, 0xea, 0x9c, 0xc9, 0xbe, 0x8d, 0x37, 0x60, 0x59, 0xa3, 0x57,
|
||||
0xb8, 0xf1, 0x2d, 0x68, 0xb0, 0x38, 0x21, 0xf2, 0xa5, 0xab, 0x6a, 0x4f, 0xec, 0xb8, 0x60, 0x42,
|
||||
0x6b, 0x61, 0x7a, 0x11, 0x30, 0x78, 0x1c, 0xb5, 0xdf, 0x4a, 0xa5, 0x16, 0x2b, 0xfa, 0xfa, 0x54,
|
||||
0x5a, 0xf1, 0x5d, 0x09, 0xe6, 0x18, 0x3c, 0x13, 0xb6, 0xd7, 0x69, 0xed, 0x1f, 0xf8, 0x16, 0xb1,
|
||||
0x47, 0xf1, 0x4f, 0x1c, 0x14, 0xf0, 0xc8, 0x1e, 0x45, 0xec, 0x1f, 0x14, 0x3a, 0xe9, 0xb8, 0x23,
|
||||
0x1c, 0x11, 0xf9, 0x27, 0x47, 0x83, 0xc2, 0xb6, 0x39, 0x88, 0xaa, 0x24, 0x72, 0x7f, 0xc1, 0x73,
|
||||
0x86, 0x59, 0x93, 0x7d, 0xcb, 0xa7, 0x66, 0x1e, 0x7d, 0xd9, 0x53, 0x73, 0x17, 0x6a, 0xa9, 0xae,
|
||||
0x47, 0x3c, 0x36, 0x3e, 0x00, 0xa4, 0x8a, 0x27, 0xf4, 0x77, 0x05, 0xaa, 0x4c, 0x7a, 0x79, 0xbf,
|
||||
0xb5, 0x74, 0xf9, 0x4c, 0x31, 0x6b, 0xdc, 0x05, 0xc4, 0x15, 0xa6, 0xdd, 0x69, 0x27, 0x57, 0xee,
|
||||
0xfb, 0xb0, 0xac, 0xad, 0x8f, 0x1f, 0x11, 0x35, 0x02, 0xe9, 0xdd, 0xc5, 0xe2, 0x7f, 0x94, 0x00,
|
||||
0x7a, 0x53, 0x72, 0x20, 0xaa, 0x7d, 0x55, 0xca, 0x92, 0x2e, 0x25, 0x9d, 0x0b, 0xec, 0x28, 0xfa,
|
||||
0xd6, 0x0f, 0x65, 0xd2, 0x16, 0x8f, 0x59, 0xa5, 0x3e, 0x25, 0x07, 0xb2, 0x9b, 0x47, 0xbf, 0xd1,
|
||||
0x65, 0x68, 0xf1, 0xdf, 0x6c, 0x2c, 0xdb, 0x71, 0x42, 0x1c, 0x45, 0xa2, 0xad, 0xd7, 0xe4, 0xd0,
|
||||
0x1e, 0x07, 0x52, 0x34, 0xd7, 0xc1, 0x1e, 0x71, 0xc9, 0x91, 0x45, 0xfc, 0x67, 0xd8, 0x13, 0xe9,
|
||||
0x58, 0x53, 0x42, 0x1f, 0x51, 0x20, 0x45, 0x0b, 0xf1, 0xc8, 0x8d, 0x48, 0x28, 0xd1, 0x64, 0xef,
|
||||
0x49, 0x40, 0x19, 0x9a, 0xf1, 0x7d, 0x09, 0xda, 0x7b, 0xd3, 0xf1, 0x98, 0x0b, 0x79, 0x5a, 0x5d,
|
||||
0xa2, 0x37, 0x84, 0x1c, 0xe5, 0x54, 0x6f, 0x2f, 0x51, 0x91, 0x10, 0xee, 0x87, 0xd7, 0x76, 0xcb,
|
||||
0xb0, 0xa4, 0x30, 0x2a, 0xca, 0x92, 0xbb, 0x80, 0x78, 0xc5, 0xf2, 0x72, 0xfc, 0x1b, 0x67, 0x60,
|
||||
0x59, 0x5b, 0x2f, 0xc8, 0x5e, 0x87, 0xa6, 0x78, 0x91, 0x13, 0x76, 0x3e, 0x0b, 0x35, 0x1a, 0x2c,
|
||||
0x86, 0xae, 0x23, 0x3b, 0xb5, 0xf3, 0x81, 0xef, 0x6c, 0xb9, 0x4e, 0x68, 0xf4, 0xa1, 0x69, 0x72,
|
||||
0xf2, 0x02, 0xf7, 0x0e, 0xb4, 0xc4, 0xfb, 0x9d, 0xa5, 0xbd, 0x70, 0x27, 0x6d, 0x45, 0x8d, 0xb6,
|
||||
0xd9, 0xf4, 0xd4, 0xa1, 0xf1, 0x35, 0x74, 0x1f, 0x07, 0x0e, 0xcd, 0x7f, 0x54, 0xaa, 0x52, 0xb4,
|
||||
0x3b, 0x20, 0xff, 0xf4, 0x2a, 0x22, 0xae, 0x2f, 0x6b, 0x86, 0xea, 0xd0, 0x38, 0x07, 0xeb, 0xb9,
|
||||
0xc4, 0x85, 0xdc, 0x01, 0xb4, 0x93, 0x09, 0xc7, 0x95, 0x0d, 0x6a, 0xd6, 0x78, 0x2e, 0x29, 0x8d,
|
||||
0xe7, 0xd5, 0xf8, 0x52, 0xe5, 0xe1, 0x59, 0x8c, 0x94, 0x3c, 0xa7, 0x52, 0x94, 0xe7, 0xcc, 0x6a,
|
||||
0x79, 0x8e, 0xf1, 0x59, 0xac, 0x3d, 0x91, 0x64, 0xbe, 0xc7, 0x32, 0x5d, 0xbe, 0xb7, 0x8c, 0x04,
|
||||
0x67, 0x73, 0x84, 0xe3, 0x18, 0xa6, 0x82, 0x6c, 0x2c, 0x42, 0x53, 0x8b, 0x09, 0xc6, 0x47, 0xd0,
|
||||
0x4a, 0x1d, 0xf2, 0x1b, 0xa9, 0x6c, 0x20, 0xa3, 0x36, 0x3d, 0x17, 0xb8, 0xfe, 0x1a, 0xd4, 0xe4,
|
||||
0x0f, 0x69, 0x68, 0x1e, 0x2a, 0x8f, 0xb6, 0xf6, 0xda, 0x33, 0xf4, 0xe3, 0xf1, 0xf6, 0x5e, 0xbb,
|
||||
0x74, 0xfd, 0x36, 0x2c, 0xa6, 0xde, 0x9a, 0xd0, 0x12, 0x34, 0x07, 0xbd, 0xfe, 0xf6, 0xc7, 0x0f,
|
||||
0xbf, 0xb4, 0xcc, 0x9d, 0xde, 0xf6, 0x57, 0xed, 0x19, 0xb4, 0x02, 0x6d, 0x09, 0xea, 0x3f, 0x7c,
|
||||
0xc4, 0xa1, 0xa5, 0xeb, 0xcf, 0xa0, 0xa5, 0xa7, 0xbb, 0xe8, 0x0c, 0x2c, 0x6d, 0x3d, 0xec, 0x3f,
|
||||
0xea, 0xed, 0xf6, 0x77, 0x4c, 0x6b, 0xcb, 0xdc, 0xe9, 0x3d, 0xda, 0xd9, 0x6e, 0xcf, 0xe8, 0x60,
|
||||
0xf3, 0x71, 0xbf, 0xbf, 0xdb, 0xff, 0xb4, 0x5d, 0xa2, 0x54, 0x13, 0xf0, 0xce, 0x97, 0xbb, 0x14,
|
||||
0xb9, 0xac, 0x23, 0x3f, 0xee, 0xdf, 0xeb, 0x3f, 0xfc, 0xff, 0x7e, 0xbb, 0xb2, 0xf9, 0xa7, 0x06,
|
||||
0xb4, 0xa4, 0x80, 0x38, 0x64, 0x1d, 0xd2, 0xbb, 0x30, 0x2f, 0xff, 0x15, 0x4c, 0x12, 0x70, 0xfd,
|
||||
0xc7, 0xc6, 0x6e, 0x27, 0x3b, 0x21, 0x1c, 0x65, 0x06, 0xed, 0x31, 0xc3, 0x29, 0xef, 0x7a, 0xe7,
|
||||
0x54, 0x55, 0x66, 0x1e, 0x0e, 0xbb, 0xe7, 0x8b, 0xa6, 0x63, 0x8a, 0x03, 0x6a, 0x2d, 0xf5, 0x07,
|
||||
0x0b, 0x94, 0xac, 0xc9, 0xfd, 0x71, 0xa3, 0x7b, 0xa1, 0x70, 0x3e, 0x26, 0xfa, 0x15, 0xb4, 0xd3,
|
||||
0xbf, 0x56, 0xa0, 0xa4, 0xd3, 0x5d, 0xf0, 0xdb, 0x46, 0xf7, 0xe2, 0x31, 0x18, 0x2a, 0xe9, 0xcc,
|
||||
0x4f, 0x08, 0x1b, 0xc5, 0xcf, 0xc8, 0x19, 0xd2, 0x45, 0x6f, 0xd3, 0x5c, 0x15, 0xfa, 0x7b, 0x1c,
|
||||
0x52, 0x9f, 0xfe, 0x73, 0xde, 0x65, 0x15, 0x55, 0xe4, 0x3f, 0xe4, 0x19, 0x33, 0xe8, 0x0b, 0x58,
|
||||
0x4c, 0x35, 0xc7, 0x50, 0xb2, 0x2a, 0xbf, 0xd5, 0xd7, 0xdd, 0x28, 0x46, 0xd0, 0xed, 0xa6, 0xb6,
|
||||
0xbe, 0x34, 0xbb, 0xe5, 0xf4, 0xd3, 0x34, 0xbb, 0xe5, 0xf6, 0xcc, 0x98, 0x7b, 0x69, 0x0d, 0x2e,
|
||||
0xc5, 0xbd, 0xf2, 0xba, 0x69, 0xdd, 0xf3, 0x45, 0xd3, 0xaa, 0xf8, 0xa9, 0xe6, 0x96, 0x22, 0x7e,
|
||||
0x7e, 0xcf, 0xac, 0xbb, 0x51, 0x8c, 0x90, 0xb6, 0x55, 0x52, 0xb4, 0xa7, 0x6c, 0x95, 0xe9, 0x11,
|
||||
0xa5, 0x6c, 0x95, 0xad, 0xf6, 0x85, 0xad, 0x52, 0xd5, 0xf7, 0x85, 0xc2, 0xc2, 0x25, 0x6b, 0xab,
|
||||
0xfc, 0x5a, 0xc8, 0x98, 0x41, 0x3d, 0xa8, 0xc9, 0xca, 0x03, 0x25, 0xa7, 0x3b, 0x55, 0xee, 0x74,
|
||||
0xcf, 0xe6, 0xcc, 0xc4, 0x24, 0xfe, 0x17, 0x66, 0x29, 0x14, 0xad, 0x68, 0x48, 0x72, 0xe9, 0x99,
|
||||
0x14, 0x34, 0x5e, 0xf6, 0x3e, 0x54, 0x79, 0xa2, 0x8e, 0x92, 0x98, 0xab, 0x55, 0x05, 0xdd, 0xb5,
|
||||
0x0c, 0x3c, 0x5e, 0xfc, 0x19, 0xff, 0x7f, 0x58, 0x64, 0xdc, 0x68, 0x5d, 0xfb, 0x6b, 0x4f, 0xcf,
|
||||
0xeb, 0xbb, 0xaf, 0xe5, 0x4f, 0xc6, 0xb4, 0x9e, 0xc0, 0x72, 0xce, 0x15, 0x88, 0x92, 0x46, 0x51,
|
||||
0xf1, 0xed, 0xdb, 0xbd, 0x74, 0x3c, 0x92, 0x2a, 0xac, 0xb0, 0xda, 0xaa, 0xea, 0xea, 0x8a, 0xb1,
|
||||
0xd6, 0x32, 0x70, 0xb9, 0x78, 0xf3, 0xaf, 0x65, 0x58, 0xe0, 0x89, 0x8a, 0x08, 0xd5, 0x9f, 0x02,
|
||||
0x24, 0xe9, 0x32, 0xea, 0x6a, 0xde, 0xa3, 0x95, 0x08, 0xdd, 0xf5, 0xdc, 0x39, 0x55, 0x8d, 0x4a,
|
||||
0xe6, 0xab, 0xa8, 0x31, 0x9b, 0x4f, 0x2b, 0x6a, 0xcc, 0x49, 0x96, 0x8d, 0x19, 0xb4, 0x0d, 0xf5,
|
||||
0x38, 0x1d, 0x43, 0x4a, 0x16, 0x97, 0xca, 0x25, 0xbb, 0xdd, 0xbc, 0x29, 0x95, 0x23, 0x25, 0xff,
|
||||
0x52, 0x38, 0xca, 0x66, 0x75, 0x0a, 0x47, 0x79, 0x29, 0xdb, 0xcc, 0xbf, 0x03, 0x00, 0x00, 0xff,
|
||||
0xff, 0xd6, 0x53, 0x52, 0xb5, 0xad, 0x2f, 0x00, 0x00,
|
||||
}
|
||||
|
|
|
@ -719,7 +719,7 @@ message ExecRequest {
|
|||
optional string container_id = 1;
|
||||
// Command to execute.
|
||||
repeated string cmd = 2;
|
||||
// Whether use tty.
|
||||
// Whether to exec the command in a TTY.
|
||||
optional bool tty = 3;
|
||||
// Whether to stream stdin.
|
||||
optional bool stdin = 4;
|
||||
|
@ -735,6 +735,9 @@ message AttachRequest {
|
|||
optional string container_id = 1;
|
||||
// Whether to stream stdin.
|
||||
optional bool stdin = 2;
|
||||
// Whether the process being attached is running in a TTY.
|
||||
// This must match the TTY setting in the ContainerConfig.
|
||||
optional bool tty = 3;
|
||||
}
|
||||
|
||||
message AttachResponse {
|
||||
|
|
|
@ -246,3 +246,18 @@ func (r *containerCommandRunnerWrapper) RunInContainer(id ContainerID, cmd []str
|
|||
// error.
|
||||
return buffer.Bytes(), err
|
||||
}
|
||||
|
||||
// GetContainerSpec gets the container spec by containerName.
|
||||
func GetContainerSpec(pod *v1.Pod, containerName string) *v1.Container {
|
||||
for i, c := range pod.Spec.Containers {
|
||||
if containerName == c.Name {
|
||||
return &pod.Spec.Containers[i]
|
||||
}
|
||||
}
|
||||
for i, c := range pod.Spec.InitContainers {
|
||||
if containerName == c.Name {
|
||||
return &pod.Spec.InitContainers[i]
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -140,7 +140,7 @@ type DirectStreamingRuntime interface {
|
|||
// the runtime server.
|
||||
type IndirectStreamingRuntime interface {
|
||||
GetExec(id ContainerID, cmd []string, stdin, stdout, stderr, tty bool) (*url.URL, error)
|
||||
GetAttach(id ContainerID, stdin, stdout, stderr bool) (*url.URL, error)
|
||||
GetAttach(id ContainerID, stdin, stdout, stderr, tty bool) (*url.URL, error)
|
||||
GetPortForward(podName, podNamespace string, podUID types.UID) (*url.URL, error)
|
||||
}
|
||||
|
||||
|
|
|
@ -78,12 +78,16 @@ type FakeDirectStreamingRuntime struct {
|
|||
}
|
||||
}
|
||||
|
||||
var _ DirectStreamingRuntime = &FakeDirectStreamingRuntime{}
|
||||
|
||||
const FakeHost = "localhost:12345"
|
||||
|
||||
type FakeIndirectStreamingRuntime struct {
|
||||
*FakeRuntime
|
||||
}
|
||||
|
||||
var _ IndirectStreamingRuntime = &FakeIndirectStreamingRuntime{}
|
||||
|
||||
// FakeRuntime should implement Runtime.
|
||||
var _ Runtime = &FakeRuntime{}
|
||||
|
||||
|
@ -459,7 +463,7 @@ func (f *FakeIndirectStreamingRuntime) GetExec(id ContainerID, cmd []string, std
|
|||
return &url.URL{Host: FakeHost}, f.Err
|
||||
}
|
||||
|
||||
func (f *FakeIndirectStreamingRuntime) GetAttach(id ContainerID, stdin, stdout, stderr bool) (*url.URL, error) {
|
||||
func (f *FakeIndirectStreamingRuntime) GetAttach(id ContainerID, stdin, stdout, stderr, tty bool) (*url.URL, error) {
|
||||
f.Lock()
|
||||
defer f.Unlock()
|
||||
|
||||
|
|
|
@ -51,13 +51,12 @@ func (r *streamingRuntime) exec(containerID string, cmd []string, in io.Reader,
|
|||
return r.execHandler.ExecInContainer(r.client, container, cmd, in, out, errw, tty, resize, timeout)
|
||||
}
|
||||
|
||||
func (r *streamingRuntime) Attach(containerID string, in io.Reader, out, errw io.WriteCloser, resize <-chan term.Size) error {
|
||||
container, err := checkContainerStatus(r.client, containerID)
|
||||
func (r *streamingRuntime) Attach(containerID string, in io.Reader, out, errw io.WriteCloser, tty bool, resize <-chan term.Size) error {
|
||||
_, err := checkContainerStatus(r.client, containerID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
tty := container.Config.Tty
|
||||
return dockertools.AttachContainer(r.client, containerID, in, out, errw, tty, resize)
|
||||
}
|
||||
|
||||
|
@ -99,12 +98,11 @@ func (ds *dockerService) Attach(req *runtimeapi.AttachRequest) (*runtimeapi.Atta
|
|||
if ds.streamingServer == nil {
|
||||
return nil, streaming.ErrorStreamingDisabled("attach")
|
||||
}
|
||||
container, err := checkContainerStatus(ds.client, req.GetContainerId())
|
||||
_, err := checkContainerStatus(ds.client, req.GetContainerId())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
tty := container.Config.Tty
|
||||
return ds.streamingServer.GetAttach(req, tty)
|
||||
return ds.streamingServer.GetAttach(req)
|
||||
}
|
||||
|
||||
// PortForward prepares a streaming endpoint to forward ports from a PodSandbox, and returns the address.
|
||||
|
|
|
@ -1350,10 +1350,23 @@ func (kl *Kubelet) GetAttach(podFullName string, podUID types.UID, containerName
|
|||
return nil, err
|
||||
}
|
||||
if container == nil {
|
||||
return nil, fmt.Errorf("container not found (%q)", containerName)
|
||||
return nil, fmt.Errorf("container %s not found in pod %s", containerName, podFullName)
|
||||
}
|
||||
|
||||
return streamingRuntime.GetAttach(container.ID, streamOpts.Stdin, streamOpts.Stdout, streamOpts.Stderr)
|
||||
// The TTY setting for attach must match the TTY setting in the initial container configuration,
|
||||
// since whether the process is running in a TTY cannot be changed after it has started. We
|
||||
// need the api.Pod to get the TTY status.
|
||||
pod, found := kl.GetPodByFullName(podFullName)
|
||||
if !found || pod.UID != podUID {
|
||||
return nil, fmt.Errorf("pod %s not found", podFullName)
|
||||
}
|
||||
containerSpec := kubecontainer.GetContainerSpec(pod, containerName)
|
||||
if containerSpec == nil {
|
||||
return nil, fmt.Errorf("container %s not found in pod %s", containerName, podFullName)
|
||||
}
|
||||
tty := containerSpec.TTY
|
||||
|
||||
return streamingRuntime.GetAttach(container.ID, streamOpts.Stdin, streamOpts.Stdout, streamOpts.Stderr, tty)
|
||||
default:
|
||||
return nil, fmt.Errorf("container runtime does not support attach")
|
||||
}
|
||||
|
|
|
@ -130,22 +130,6 @@ func (m *kubeGenericRuntimeManager) sandboxToKubeContainer(s *runtimeapi.PodSand
|
|||
}, nil
|
||||
}
|
||||
|
||||
// getContainerSpec gets the container spec by containerName.
|
||||
func getContainerSpec(pod *v1.Pod, containerName string) *v1.Container {
|
||||
for i, c := range pod.Spec.Containers {
|
||||
if containerName == c.Name {
|
||||
return &pod.Spec.Containers[i]
|
||||
}
|
||||
}
|
||||
for i, c := range pod.Spec.InitContainers {
|
||||
if containerName == c.Name {
|
||||
return &pod.Spec.InitContainers[i]
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// getImageUser gets uid or user name that will run the command(s) from image. The function
|
||||
// guarantees that only one of them is set.
|
||||
func (m *kubeGenericRuntimeManager) getImageUser(image string) (*int64, *string, error) {
|
||||
|
|
|
@ -490,7 +490,7 @@ func (m *kubeGenericRuntimeManager) restoreSpecsFromContainerLabels(containerID
|
|||
func (m *kubeGenericRuntimeManager) killContainer(pod *v1.Pod, containerID kubecontainer.ContainerID, containerName string, reason string, gracePeriodOverride *int64) error {
|
||||
var containerSpec *v1.Container
|
||||
if pod != nil {
|
||||
containerSpec = getContainerSpec(pod, containerName)
|
||||
containerSpec = kubecontainer.GetContainerSpec(pod, containerName)
|
||||
} else {
|
||||
// Restore necessary information if one of the specs is nil.
|
||||
restoredPod, restoredContainer, err := m.restoreSpecsFromContainerLabels(containerID)
|
||||
|
@ -684,10 +684,11 @@ func (m *kubeGenericRuntimeManager) GetExec(id kubecontainer.ContainerID, cmd []
|
|||
}
|
||||
|
||||
// GetAttach gets the endpoint the runtime will serve the attach request from.
|
||||
func (m *kubeGenericRuntimeManager) GetAttach(id kubecontainer.ContainerID, stdin, stdout, stderr bool) (*url.URL, error) {
|
||||
func (m *kubeGenericRuntimeManager) GetAttach(id kubecontainer.ContainerID, stdin, stdout, stderr, tty bool) (*url.URL, error) {
|
||||
req := &runtimeapi.AttachRequest{
|
||||
ContainerId: &id.ID,
|
||||
Stdin: &stdin,
|
||||
Tty: &tty,
|
||||
}
|
||||
resp, err := m.runtimeService.Attach(req)
|
||||
if err != nil {
|
||||
|
|
|
@ -42,7 +42,7 @@ type Server interface {
|
|||
// Get the serving URL for the requests.
|
||||
// Requests must not be nil. Responses may be nil iff an error is returned.
|
||||
GetExec(*runtimeapi.ExecRequest) (*runtimeapi.ExecResponse, error)
|
||||
GetAttach(req *runtimeapi.AttachRequest, tty bool) (*runtimeapi.AttachResponse, error)
|
||||
GetAttach(req *runtimeapi.AttachRequest) (*runtimeapi.AttachResponse, error)
|
||||
GetPortForward(*runtimeapi.PortForwardRequest) (*runtimeapi.PortForwardResponse, error)
|
||||
|
||||
// Start the server.
|
||||
|
@ -58,7 +58,7 @@ type Server interface {
|
|||
// The interface to execute the commands and provide the streams.
|
||||
type Runtime interface {
|
||||
Exec(containerID string, cmd []string, in io.Reader, out, err io.WriteCloser, tty bool, resize <-chan term.Size) error
|
||||
Attach(containerID string, in io.Reader, out, err io.WriteCloser, resize <-chan term.Size) error
|
||||
Attach(containerID string, in io.Reader, out, err io.WriteCloser, tty bool, resize <-chan term.Size) error
|
||||
PortForward(podSandboxID string, port int32, stream io.ReadWriteCloser) error
|
||||
}
|
||||
|
||||
|
@ -154,12 +154,12 @@ func (s *server) GetExec(req *runtimeapi.ExecRequest) (*runtimeapi.ExecResponse,
|
|||
}, nil
|
||||
}
|
||||
|
||||
func (s *server) GetAttach(req *runtimeapi.AttachRequest, tty bool) (*runtimeapi.AttachResponse, error) {
|
||||
func (s *server) GetAttach(req *runtimeapi.AttachRequest) (*runtimeapi.AttachResponse, error) {
|
||||
url := s.buildURL("attach", req.GetContainerId(), streamOpts{
|
||||
stdin: req.GetStdin(),
|
||||
stdout: true,
|
||||
stderr: !tty, // For TTY connections, both stderr is combined with stdout.
|
||||
tty: tty,
|
||||
stderr: !req.GetTty(), // For TTY connections, both stderr is combined with stdout.
|
||||
tty: req.GetTty(),
|
||||
})
|
||||
return &runtimeapi.AttachResponse{
|
||||
Url: &url,
|
||||
|
@ -314,7 +314,7 @@ func (a *criAdapter) ExecInContainer(podName string, podUID types.UID, container
|
|||
}
|
||||
|
||||
func (a *criAdapter) AttachContainer(podName string, podUID types.UID, container string, in io.Reader, out, err io.WriteCloser, tty bool, resize <-chan term.Size) error {
|
||||
return a.Attach(container, in, out, err, resize)
|
||||
return a.Attach(container, in, out, err, tty, resize)
|
||||
}
|
||||
|
||||
func (a *criAdapter) PortForward(podName string, podUID types.UID, port uint16, stream io.ReadWriteCloser) error {
|
||||
|
|
|
@ -134,15 +134,16 @@ func TestGetAttach(t *testing.T) {
|
|||
request := &runtimeapi.AttachRequest{
|
||||
ContainerId: &containerID,
|
||||
Stdin: &test.stdin,
|
||||
Tty: &test.tty,
|
||||
}
|
||||
// Non-TLS
|
||||
resp, err := server.GetAttach(request, test.tty)
|
||||
resp, err := server.GetAttach(request)
|
||||
assert.NoError(t, err, "testcase=%+v", test)
|
||||
expectedURL := "http://" + testAddr + "/attach/" + testContainerID + test.expectedQuery
|
||||
assert.Equal(t, expectedURL, resp.GetUrl(), "testcase=%+v", test)
|
||||
|
||||
// TLS
|
||||
resp, err = tlsServer.GetAttach(request, test.tty)
|
||||
resp, err = tlsServer.GetAttach(request)
|
||||
assert.NoError(t, err, "testcase=%+v", test)
|
||||
expectedURL = "https://" + testAddr + "/attach/" + testContainerID + test.expectedQuery
|
||||
assert.Equal(t, expectedURL, resp.GetUrl(), "testcase=%+v", test)
|
||||
|
@ -299,7 +300,7 @@ func (f *fakeRuntime) Exec(containerID string, cmd []string, stdin io.Reader, st
|
|||
return nil
|
||||
}
|
||||
|
||||
func (f *fakeRuntime) Attach(containerID string, stdin io.Reader, stdout, stderr io.WriteCloser, resize <-chan term.Size) error {
|
||||
func (f *fakeRuntime) Attach(containerID string, stdin io.Reader, stdout, stderr io.WriteCloser, tty bool, resize <-chan term.Size) error {
|
||||
assert.Equal(f.t, testContainerID, containerID)
|
||||
doServerStreams(f.t, "attach", stdin, stdout, stderr)
|
||||
return nil
|
||||
|
|
Loading…
Reference in New Issue