From b4df5d9e7558806f9b9fafd69284fb7695569035 Mon Sep 17 00:00:00 2001 From: Jens Ulrich Hjuler Fosgerau Date: Mon, 7 Oct 2019 20:54:35 +0200 Subject: [PATCH] Add file sync to Event and State APIs --- pkg/skaffold/event/event.go | 43 +++++ pkg/skaffold/event/event_test.go | 38 +++++ proto/skaffold.pb.go | 283 +++++++++++++++++++++++-------- proto/skaffold.proto | 14 ++ 4 files changed, 303 insertions(+), 75 deletions(-) diff --git a/pkg/skaffold/event/event.go b/pkg/skaffold/event/event.go index 052f3f5acb9..7a7831bb7d9 100644 --- a/pkg/skaffold/event/event.go +++ b/pkg/skaffold/event/event.go @@ -146,6 +146,9 @@ func emptyStateWithArtifacts(builds map[string]string) proto.State { Resources: map[string]string{}, }, ForwardedPorts: make(map[int32]*proto.PortEvent), + FileSyncState: &proto.FileSyncState{ + Status: NotStarted, + }, } } @@ -239,6 +242,21 @@ func BuildComplete(imageName string) { handler.handleBuildEvent(&proto.BuildEvent{Artifact: imageName, Status: Complete}) } +// FileSyncInProgress notifies that a file sync has been started. +func FileSyncInProgress(fileCount int, image string) { + handler.handleFileSyncEvent(&proto.FileSyncEvent{FileCount: int32(fileCount), Image: image, Status: InProgress}) +} + +// FileSyncFailed notifies that a file sync has failed. +func FileSyncFailed(fileCount int, image string, err error) { + handler.handleFileSyncEvent(&proto.FileSyncEvent{FileCount: int32(fileCount), Image: image, Status: Failed, Err: err.Error()}) +} + +// FileSyncSucceeded notifies that a file sync has succeeded. +func FileSyncSucceeded(fileCount int, image string) { + handler.handleFileSyncEvent(&proto.FileSyncEvent{FileCount: int32(fileCount), Image: image, Status: Succeeded}) +} + // PortForwarded notifies that a remote port has been forwarded locally. func PortForwarded(localPort, remotePort int32, podName, containerName, namespace string, portName string, resourceType, resourceName string) { go handler.handle(&proto.Event{ @@ -295,6 +313,14 @@ func (ev *eventHandler) handleBuildEvent(e *proto.BuildEvent) { }) } +func (ev *eventHandler) handleFileSyncEvent(e *proto.FileSyncEvent) { + go ev.handle(&proto.Event{ + EventType: &proto.Event_FileSyncEvent{ + FileSyncEvent: e, + }, + }) +} + func LogSkaffoldMetadata(info *version.Info) { handler.logEvent(proto.LogEntry{ Timestamp: ptypes.TimestampNow(), @@ -382,6 +408,23 @@ func (ev *eventHandler) handle(event *proto.Event) { logEntry.Entry = fmt.Sprintf("Resource %s status failed with %s", rseName, rse.Err) default: } + case *proto.Event_FileSyncEvent: + fse := e.FileSyncEvent + fseFileCount := fse.FileCount + fseImage := fse.Image + ev.stateLock.Lock() + ev.state.FileSyncState.Status = fse.Status + ev.stateLock.Unlock() + switch fse.Status { + case InProgress: + logEntry.Entry = fmt.Sprintf("File sync started for %d files for %s", fseFileCount, fseImage) + case Succeeded: + logEntry.Entry = fmt.Sprintf("File sync succeeded for %d files for %s", fseFileCount, fseImage) + case Failed: + logEntry.Entry = fmt.Sprintf("File sync failed for %d files for %s", fseFileCount, fseImage) + // logEntry.Err = fse.Err + default: + } default: return diff --git a/pkg/skaffold/event/event_test.go b/pkg/skaffold/event/event_test.go index 9825dbd6e2f..04df245ef59 100644 --- a/pkg/skaffold/event/event_test.go +++ b/pkg/skaffold/event/event_test.go @@ -247,6 +247,42 @@ func TestResourceStatusCheckEventFailed(t *testing.T) { wait(t, func() bool { return handler.getState().StatusCheckState.Resources["ns:pod/foo"] == Failed }) } +func TestFileSyncInProgress(t *testing.T) { + defer func() { handler = &eventHandler{} }() + + handler = &eventHandler{ + state: emptyState(latest.BuildConfig{}), + } + + wait(t, func() bool { return handler.getState().FileSyncState.Status == NotStarted }) + FileSyncInProgress(5, "image") + wait(t, func() bool { return handler.getState().FileSyncState.Status == InProgress }) +} + +func TestFileSyncFailed(t *testing.T) { + defer func() { handler = &eventHandler{} }() + + handler = &eventHandler{ + state: emptyState(latest.BuildConfig{}), + } + + wait(t, func() bool { return handler.getState().FileSyncState.Status == NotStarted }) + FileSyncFailed(5, "image", errors.New("BUG")) + wait(t, func() bool { return handler.getState().FileSyncState.Status == Failed }) +} + +func TestFileSyncSucceeded(t *testing.T) { + defer func() { handler = &eventHandler{} }() + + handler = &eventHandler{ + state: emptyState(latest.BuildConfig{}), + } + + wait(t, func() bool { return handler.getState().FileSyncState.Status == NotStarted }) + FileSyncSucceeded(5, "image") + wait(t, func() bool { return handler.getState().FileSyncState.Status == Succeeded }) +} + func wait(t *testing.T, condition func() bool) { ticker := time.NewTicker(10 * time.Millisecond) defer ticker.Stop() @@ -278,6 +314,7 @@ func TestResetStateOnBuild(t *testing.T) { }, DeployState: &proto.DeployState{Status: Complete}, StatusCheckState: &proto.StatusCheckState{Status: Complete}, + FileSyncState: &proto.FileSyncState{Status: Succeeded}, }, } ResetStateOnBuild() @@ -289,6 +326,7 @@ func TestResetStateOnBuild(t *testing.T) { }, DeployState: &proto.DeployState{Status: NotStarted}, StatusCheckState: &proto.StatusCheckState{Status: NotStarted}, + FileSyncState: &proto.FileSyncState{Status: NotStarted}, } testutil.CheckDeepEqual(t, expected, handler.getState()) } diff --git a/proto/skaffold.pb.go b/proto/skaffold.pb.go index dbdfbce1244..e3f45d51a83 100644 --- a/proto/skaffold.pb.go +++ b/proto/skaffold.pb.go @@ -149,6 +149,7 @@ type State struct { DeployState *DeployState `protobuf:"bytes,2,opt,name=deployState,proto3" json:"deployState,omitempty"` ForwardedPorts map[int32]*PortEvent `protobuf:"bytes,4,rep,name=forwardedPorts,proto3" json:"forwardedPorts,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` StatusCheckState *StatusCheckState `protobuf:"bytes,5,opt,name=statusCheckState,proto3" json:"statusCheckState,omitempty"` + FileSyncState *FileSyncState `protobuf:"bytes,6,opt,name=fileSyncState,proto3" json:"fileSyncState,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -207,6 +208,13 @@ func (m *State) GetStatusCheckState() *StatusCheckState { return nil } +func (m *State) GetFileSyncState() *FileSyncState { + if m != nil { + return m.FileSyncState + } + return nil +} + // BuildState contains a map of all skaffold artifacts to their current build // states type BuildState struct { @@ -336,6 +344,46 @@ func (m *StatusCheckState) GetResources() map[string]string { return nil } +// FileSyncState contains the status of the current file sync +type FileSyncState struct { + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FileSyncState) Reset() { *m = FileSyncState{} } +func (m *FileSyncState) String() string { return proto.CompactTextString(m) } +func (*FileSyncState) ProtoMessage() {} +func (*FileSyncState) Descriptor() ([]byte, []int) { + return fileDescriptor_4f2d38e344f9dbf5, []int{7} +} + +func (m *FileSyncState) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FileSyncState.Unmarshal(m, b) +} +func (m *FileSyncState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FileSyncState.Marshal(b, m, deterministic) +} +func (m *FileSyncState) XXX_Merge(src proto.Message) { + xxx_messageInfo_FileSyncState.Merge(m, src) +} +func (m *FileSyncState) XXX_Size() int { + return xxx_messageInfo_FileSyncState.Size(m) +} +func (m *FileSyncState) XXX_DiscardUnknown() { + xxx_messageInfo_FileSyncState.DiscardUnknown(m) +} + +var xxx_messageInfo_FileSyncState proto.InternalMessageInfo + +func (m *FileSyncState) GetStatus() string { + if m != nil { + return m.Status + } + return "" +} + type Event struct { // Types that are valid to be assigned to EventType: // *Event_MetaEvent @@ -344,6 +392,7 @@ type Event struct { // *Event_PortEvent // *Event_StatusCheckEvent // *Event_ResourceStatusCheckEvent + // *Event_FileSyncEvent EventType isEvent_EventType `protobuf_oneof:"event_type"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -354,7 +403,7 @@ func (m *Event) Reset() { *m = Event{} } func (m *Event) String() string { return proto.CompactTextString(m) } func (*Event) ProtoMessage() {} func (*Event) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{7} + return fileDescriptor_4f2d38e344f9dbf5, []int{8} } func (m *Event) XXX_Unmarshal(b []byte) error { @@ -403,6 +452,10 @@ type Event_ResourceStatusCheckEvent struct { ResourceStatusCheckEvent *ResourceStatusCheckEvent `protobuf:"bytes,6,opt,name=resourceStatusCheckEvent,proto3,oneof"` } +type Event_FileSyncEvent struct { + FileSyncEvent *FileSyncEvent `protobuf:"bytes,7,opt,name=fileSyncEvent,proto3,oneof"` +} + func (*Event_MetaEvent) isEvent_EventType() {} func (*Event_BuildEvent) isEvent_EventType() {} @@ -415,6 +468,8 @@ func (*Event_StatusCheckEvent) isEvent_EventType() {} func (*Event_ResourceStatusCheckEvent) isEvent_EventType() {} +func (*Event_FileSyncEvent) isEvent_EventType() {} + func (m *Event) GetEventType() isEvent_EventType { if m != nil { return m.EventType @@ -464,6 +519,13 @@ func (m *Event) GetResourceStatusCheckEvent() *ResourceStatusCheckEvent { return nil } +func (m *Event) GetFileSyncEvent() *FileSyncEvent { + if x, ok := m.GetEventType().(*Event_FileSyncEvent); ok { + return x.FileSyncEvent + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*Event) XXX_OneofWrappers() []interface{} { return []interface{}{ @@ -473,6 +535,7 @@ func (*Event) XXX_OneofWrappers() []interface{} { (*Event_PortEvent)(nil), (*Event_StatusCheckEvent)(nil), (*Event_ResourceStatusCheckEvent)(nil), + (*Event_FileSyncEvent)(nil), } } @@ -487,7 +550,7 @@ func (m *MetaEvent) Reset() { *m = MetaEvent{} } func (m *MetaEvent) String() string { return proto.CompactTextString(m) } func (*MetaEvent) ProtoMessage() {} func (*MetaEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{8} + return fileDescriptor_4f2d38e344f9dbf5, []int{9} } func (m *MetaEvent) XXX_Unmarshal(b []byte) error { @@ -528,7 +591,7 @@ func (m *BuildEvent) Reset() { *m = BuildEvent{} } func (m *BuildEvent) String() string { return proto.CompactTextString(m) } func (*BuildEvent) ProtoMessage() {} func (*BuildEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{9} + return fileDescriptor_4f2d38e344f9dbf5, []int{10} } func (m *BuildEvent) XXX_Unmarshal(b []byte) error { @@ -582,7 +645,7 @@ func (m *DeployEvent) Reset() { *m = DeployEvent{} } func (m *DeployEvent) String() string { return proto.CompactTextString(m) } func (*DeployEvent) ProtoMessage() {} func (*DeployEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{10} + return fileDescriptor_4f2d38e344f9dbf5, []int{11} } func (m *DeployEvent) XXX_Unmarshal(b []byte) error { @@ -630,7 +693,7 @@ func (m *StatusCheckEvent) Reset() { *m = StatusCheckEvent{} } func (m *StatusCheckEvent) String() string { return proto.CompactTextString(m) } func (*StatusCheckEvent) ProtoMessage() {} func (*StatusCheckEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{11} + return fileDescriptor_4f2d38e344f9dbf5, []int{12} } func (m *StatusCheckEvent) XXX_Unmarshal(b []byte) error { @@ -686,7 +749,7 @@ func (m *ResourceStatusCheckEvent) Reset() { *m = ResourceStatusCheckEve func (m *ResourceStatusCheckEvent) String() string { return proto.CompactTextString(m) } func (*ResourceStatusCheckEvent) ProtoMessage() {} func (*ResourceStatusCheckEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{12} + return fileDescriptor_4f2d38e344f9dbf5, []int{13} } func (m *ResourceStatusCheckEvent) XXX_Unmarshal(b []byte) error { @@ -753,7 +816,7 @@ func (m *PortEvent) Reset() { *m = PortEvent{} } func (m *PortEvent) String() string { return proto.CompactTextString(m) } func (*PortEvent) ProtoMessage() {} func (*PortEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{13} + return fileDescriptor_4f2d38e344f9dbf5, []int{14} } func (m *PortEvent) XXX_Unmarshal(b []byte) error { @@ -830,6 +893,69 @@ func (m *PortEvent) GetResourceName() string { return "" } +type FileSyncEvent struct { + FileCount int32 `protobuf:"varint,1,opt,name=fileCount,proto3" json:"fileCount,omitempty"` + Image string `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` + Err string `protobuf:"bytes,4,opt,name=err,proto3" json:"err,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FileSyncEvent) Reset() { *m = FileSyncEvent{} } +func (m *FileSyncEvent) String() string { return proto.CompactTextString(m) } +func (*FileSyncEvent) ProtoMessage() {} +func (*FileSyncEvent) Descriptor() ([]byte, []int) { + return fileDescriptor_4f2d38e344f9dbf5, []int{15} +} + +func (m *FileSyncEvent) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FileSyncEvent.Unmarshal(m, b) +} +func (m *FileSyncEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FileSyncEvent.Marshal(b, m, deterministic) +} +func (m *FileSyncEvent) XXX_Merge(src proto.Message) { + xxx_messageInfo_FileSyncEvent.Merge(m, src) +} +func (m *FileSyncEvent) XXX_Size() int { + return xxx_messageInfo_FileSyncEvent.Size(m) +} +func (m *FileSyncEvent) XXX_DiscardUnknown() { + xxx_messageInfo_FileSyncEvent.DiscardUnknown(m) +} + +var xxx_messageInfo_FileSyncEvent proto.InternalMessageInfo + +func (m *FileSyncEvent) GetFileCount() int32 { + if m != nil { + return m.FileCount + } + return 0 +} + +func (m *FileSyncEvent) GetImage() string { + if m != nil { + return m.Image + } + return "" +} + +func (m *FileSyncEvent) GetStatus() string { + if m != nil { + return m.Status + } + return "" +} + +func (m *FileSyncEvent) GetErr() string { + if m != nil { + return m.Err + } + return "" +} + type LogEntry struct { Timestamp *timestamp.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Event *Event `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"` @@ -843,7 +969,7 @@ func (m *LogEntry) Reset() { *m = LogEntry{} } func (m *LogEntry) String() string { return proto.CompactTextString(m) } func (*LogEntry) ProtoMessage() {} func (*LogEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{14} + return fileDescriptor_4f2d38e344f9dbf5, []int{16} } func (m *LogEntry) XXX_Unmarshal(b []byte) error { @@ -896,7 +1022,7 @@ func (m *UserIntentRequest) Reset() { *m = UserIntentRequest{} } func (m *UserIntentRequest) String() string { return proto.CompactTextString(m) } func (*UserIntentRequest) ProtoMessage() {} func (*UserIntentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{15} + return fileDescriptor_4f2d38e344f9dbf5, []int{17} } func (m *UserIntentRequest) XXX_Unmarshal(b []byte) error { @@ -937,7 +1063,7 @@ func (m *Intent) Reset() { *m = Intent{} } func (m *Intent) String() string { return proto.CompactTextString(m) } func (*Intent) ProtoMessage() {} func (*Intent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{16} + return fileDescriptor_4f2d38e344f9dbf5, []int{18} } func (m *Intent) XXX_Unmarshal(b []byte) error { @@ -990,6 +1116,7 @@ func init() { proto.RegisterType((*DeployState)(nil), "proto.DeployState") proto.RegisterType((*StatusCheckState)(nil), "proto.StatusCheckState") proto.RegisterMapType((map[string]string)(nil), "proto.StatusCheckState.ResourcesEntry") + proto.RegisterType((*FileSyncState)(nil), "proto.FileSyncState") proto.RegisterType((*Event)(nil), "proto.Event") proto.RegisterType((*MetaEvent)(nil), "proto.MetaEvent") proto.RegisterType((*BuildEvent)(nil), "proto.BuildEvent") @@ -997,6 +1124,7 @@ func init() { proto.RegisterType((*StatusCheckEvent)(nil), "proto.StatusCheckEvent") proto.RegisterType((*ResourceStatusCheckEvent)(nil), "proto.ResourceStatusCheckEvent") proto.RegisterType((*PortEvent)(nil), "proto.PortEvent") + proto.RegisterType((*FileSyncEvent)(nil), "proto.FileSyncEvent") proto.RegisterType((*LogEntry)(nil), "proto.LogEntry") proto.RegisterType((*UserIntentRequest)(nil), "proto.UserIntentRequest") proto.RegisterType((*Intent)(nil), "proto.Intent") @@ -1005,71 +1133,76 @@ func init() { func init() { proto.RegisterFile("skaffold.proto", fileDescriptor_4f2d38e344f9dbf5) } var fileDescriptor_4f2d38e344f9dbf5 = []byte{ - // 1015 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xcd, 0x6e, 0x23, 0x45, - 0x10, 0x5e, 0x8f, 0x7f, 0x32, 0x53, 0xce, 0x8f, 0xd3, 0xb0, 0xcb, 0xc8, 0x1b, 0xd8, 0xd0, 0x62, - 0x57, 0x11, 0x07, 0x7b, 0x37, 0x41, 0xb0, 0x8a, 0x10, 0x12, 0xc9, 0x9a, 0x0d, 0xab, 0x80, 0x50, - 0x7b, 0x41, 0x5c, 0x10, 0x9a, 0xd8, 0x6d, 0xaf, 0x15, 0x7b, 0x7a, 0x98, 0x6e, 0x07, 0xcc, 0x81, - 0x03, 0x47, 0xc2, 0x8d, 0xf7, 0xe0, 0x65, 0xb8, 0x71, 0xe6, 0x41, 0x50, 0x57, 0x77, 0x7b, 0x66, - 0x6c, 0x0f, 0x62, 0x4f, 0xee, 0xaa, 0xfa, 0xea, 0xeb, 0xaa, 0xea, 0xcf, 0xdd, 0x03, 0xbb, 0xf2, - 0x3a, 0x1a, 0x8d, 0xc4, 0x74, 0xd8, 0x49, 0x52, 0xa1, 0x04, 0xa9, 0xe3, 0x4f, 0xfb, 0x60, 0x2c, - 0xc4, 0x78, 0xca, 0xbb, 0x51, 0x32, 0xe9, 0x46, 0x71, 0x2c, 0x54, 0xa4, 0x26, 0x22, 0x96, 0x06, - 0xd4, 0x7e, 0x60, 0xa3, 0x68, 0x5d, 0xcd, 0x47, 0x5d, 0x35, 0x99, 0x71, 0xa9, 0xa2, 0x59, 0x62, - 0x01, 0xf7, 0x57, 0x01, 0x7c, 0x96, 0xa8, 0x85, 0x09, 0xd2, 0x13, 0xd8, 0xe9, 0xab, 0x48, 0x71, - 0xc6, 0x65, 0x22, 0x62, 0xc9, 0x09, 0x85, 0xba, 0xd4, 0x8e, 0xb0, 0x72, 0x58, 0x39, 0x6a, 0x1e, - 0x6f, 0x1b, 0x5c, 0xc7, 0x80, 0x4c, 0x88, 0x1e, 0x80, 0xbf, 0xc4, 0xb7, 0xa0, 0x3a, 0x93, 0x63, - 0x44, 0x07, 0x4c, 0x2f, 0xe9, 0xdb, 0xb0, 0xc5, 0xf8, 0x0f, 0x73, 0x2e, 0x15, 0x21, 0x50, 0x8b, - 0xa3, 0x19, 0xb7, 0x51, 0x5c, 0xd3, 0xbf, 0x3d, 0xa8, 0x23, 0x1b, 0x79, 0x02, 0x70, 0x35, 0x9f, - 0x4c, 0x87, 0xfd, 0xdc, 0x7e, 0xfb, 0x76, 0xbf, 0xb3, 0x65, 0x80, 0xe5, 0x40, 0xe4, 0x03, 0x68, - 0x0e, 0x79, 0x32, 0x15, 0x0b, 0x93, 0xe3, 0x61, 0x0e, 0xb1, 0x39, 0xcf, 0xb2, 0x08, 0xcb, 0xc3, - 0xc8, 0x05, 0xec, 0x8e, 0x44, 0xfa, 0x63, 0x94, 0x0e, 0xf9, 0xf0, 0x2b, 0x91, 0x2a, 0x19, 0xd6, - 0x0e, 0xab, 0x47, 0xcd, 0xe3, 0xc3, 0x7c, 0x73, 0x9d, 0xcf, 0x0a, 0x90, 0x5e, 0xac, 0xd2, 0x05, - 0x5b, 0xc9, 0x23, 0xe7, 0xd0, 0xd2, 0x23, 0x98, 0xcb, 0xf3, 0x57, 0x7c, 0x70, 0x6d, 0x8a, 0xa8, - 0x63, 0x11, 0x6f, 0xe5, 0xb8, 0xf2, 0x61, 0xb6, 0x96, 0xd0, 0xee, 0xc3, 0x1b, 0x1b, 0xf6, 0xd2, - 0x93, 0xbc, 0xe6, 0x0b, 0x9c, 0x43, 0x9d, 0xe9, 0x25, 0x79, 0x04, 0xf5, 0x9b, 0x68, 0x3a, 0x77, - 0x7d, 0xb6, 0xec, 0x16, 0x3a, 0xa7, 0x77, 0xc3, 0x63, 0xc5, 0x4c, 0xf8, 0xd4, 0x7b, 0x5a, 0x79, - 0x51, 0xf3, 0xab, 0xad, 0x1a, 0xfd, 0xad, 0x02, 0x90, 0x8d, 0x8e, 0x7c, 0x02, 0x41, 0x94, 0xaa, - 0xc9, 0x28, 0x1a, 0x28, 0x19, 0x56, 0x0a, 0x3d, 0x67, 0xa8, 0xce, 0xa7, 0x0e, 0x62, 0x7a, 0xce, - 0x52, 0xda, 0x1f, 0xc3, 0x6e, 0x31, 0x98, 0x2f, 0x32, 0x30, 0x45, 0xbe, 0x99, 0x2f, 0x32, 0xc8, - 0x95, 0x44, 0x1f, 0x42, 0x33, 0x77, 0x24, 0xe4, 0x1e, 0x34, 0xcc, 0x28, 0x6c, 0xb6, 0xb5, 0xe8, - 0x9f, 0x15, 0x68, 0xad, 0x4e, 0xad, 0x0c, 0x4c, 0x9e, 0x41, 0x90, 0x72, 0x29, 0xe6, 0xe9, 0x80, - 0xcb, 0xd0, 0xc3, 0x8e, 0x1e, 0x95, 0x4c, 0xbe, 0xc3, 0x1c, 0xd0, 0xf6, 0xb5, 0x4c, 0xd4, 0x7d, - 0x15, 0x83, 0xaf, 0xd5, 0xd7, 0xef, 0x55, 0xa8, 0xe3, 0xfc, 0xc9, 0x63, 0x08, 0x66, 0x5c, 0x45, - 0x68, 0x58, 0x01, 0xbb, 0x43, 0xfa, 0xc2, 0xf9, 0x2f, 0xee, 0xb0, 0x0c, 0x44, 0x4e, 0xac, 0xe6, - 0x4d, 0x8a, 0xb7, 0xae, 0x79, 0x97, 0x93, 0x83, 0x91, 0x0f, 0x9d, 0xea, 0x4d, 0x56, 0x75, 0x83, - 0xea, 0x5d, 0x5a, 0x1e, 0xa8, 0xcb, 0x4b, 0x9c, 0x56, 0xc2, 0xda, 0x66, 0x0d, 0xe9, 0xf2, 0x96, - 0x20, 0xd2, 0x2b, 0xe8, 0xdb, 0x24, 0x96, 0xea, 0xdb, 0xe5, 0xaf, 0xa5, 0x90, 0xef, 0x20, 0x74, - 0xc3, 0x5e, 0xc5, 0x87, 0x0d, 0xa4, 0x7b, 0x60, 0xe9, 0x58, 0x09, 0xec, 0xe2, 0x0e, 0x2b, 0xa5, - 0x38, 0xdb, 0x06, 0xe0, 0x7a, 0xf1, 0xbd, 0x5a, 0x24, 0x9c, 0xbe, 0x0b, 0xc1, 0x72, 0xd8, 0xfa, - 0xd4, 0xb8, 0x3e, 0x50, 0x7b, 0x92, 0xc6, 0xa0, 0xcc, 0xfe, 0x2b, 0x0c, 0xa6, 0x0d, 0xbe, 0x93, - 0xb8, 0x85, 0x2d, 0xed, 0x9c, 0xee, 0xbc, 0x82, 0xee, 0x5a, 0x50, 0xe5, 0x69, 0x8a, 0xa3, 0x0f, - 0x98, 0x5e, 0xd2, 0x8f, 0x9c, 0xba, 0x0d, 0x69, 0x99, 0x60, 0x6d, 0xa2, 0x97, 0x25, 0x7e, 0x53, - 0x90, 0xfb, 0x7f, 0x67, 0x87, 0xb0, 0x35, 0xe3, 0x52, 0x46, 0x63, 0x27, 0x43, 0x67, 0x6e, 0x28, - 0xe8, 0x67, 0x08, 0xcb, 0xa6, 0xa9, 0x5b, 0x76, 0xd3, 0x74, 0x2d, 0x3b, 0xbb, 0xb4, 0xe5, 0xdc, - 0xde, 0xd5, 0x8d, 0x7b, 0xd7, 0xb2, 0xbd, 0x6f, 0x3d, 0x08, 0x96, 0x92, 0x22, 0x07, 0x10, 0x4c, - 0xc5, 0x20, 0x9a, 0x6a, 0x8f, 0xbd, 0xcf, 0x32, 0x07, 0x79, 0x07, 0x20, 0xe5, 0x33, 0xa1, 0x38, - 0x86, 0x3d, 0x0c, 0xe7, 0x3c, 0x7a, 0xdf, 0x44, 0x0c, 0xbf, 0xd4, 0xef, 0x86, 0xdd, 0xd7, 0x9a, - 0xe4, 0x3d, 0xd8, 0x19, 0x88, 0x58, 0x45, 0x93, 0x98, 0xa7, 0x18, 0x37, 0x15, 0x14, 0x9d, 0x7a, - 0x77, 0xfd, 0xd0, 0xc8, 0x24, 0x1a, 0x98, 0xcb, 0x39, 0x60, 0x99, 0x43, 0x4f, 0x42, 0xcb, 0x1d, - 0xd3, 0x1b, 0x66, 0x12, 0xce, 0x26, 0x14, 0xb6, 0xdd, 0x54, 0x5e, 0x2e, 0x12, 0x1e, 0x6e, 0x61, - 0xbc, 0xe0, 0xcb, 0x63, 0x90, 0xc3, 0x2f, 0x62, 0xb4, 0x8f, 0xfe, 0x02, 0xfe, 0xa5, 0x18, 0x9b, - 0x8b, 0xe5, 0x29, 0x04, 0xcb, 0x07, 0xd9, 0x5e, 0x11, 0xed, 0x8e, 0x79, 0x91, 0x3b, 0xee, 0x45, - 0xee, 0xbc, 0x74, 0x08, 0x96, 0x81, 0xf5, 0x4b, 0xcc, 0x73, 0xb7, 0x84, 0x7b, 0x89, 0xed, 0xcd, - 0xcf, 0x8b, 0x72, 0xaf, 0xe6, 0xe5, 0x7e, 0x0a, 0xfb, 0x5f, 0x4b, 0x9e, 0x7e, 0x1e, 0x2b, 0x0d, - 0xb5, 0x6f, 0xf1, 0x43, 0x68, 0x4c, 0xd0, 0x61, 0xab, 0xd8, 0xb1, 0x7c, 0x16, 0x65, 0x83, 0xf4, - 0x05, 0x34, 0x8c, 0x47, 0x73, 0xe3, 0x1d, 0x84, 0x78, 0x9f, 0x19, 0x43, 0x3f, 0xe9, 0x72, 0x11, - 0x0f, 0xb0, 0x28, 0x9f, 0xe1, 0x5a, 0x2b, 0xc8, 0x5c, 0x3b, 0x58, 0x86, 0xcf, 0xac, 0x75, 0x7c, - 0x5b, 0x85, 0xbd, 0xbe, 0xfd, 0xa4, 0xe9, 0xf3, 0xf4, 0x66, 0x32, 0xe0, 0xe4, 0x1c, 0xfc, 0xe7, - 0x5c, 0xd9, 0x4b, 0x7e, 0x6d, 0x10, 0x3d, 0xfd, 0x69, 0xd2, 0x2e, 0x7c, 0x74, 0xd0, 0xfd, 0x5f, - 0xff, 0xfa, 0xe7, 0x0f, 0xaf, 0x49, 0x82, 0xee, 0xcd, 0x93, 0x2e, 0x7e, 0x80, 0x90, 0xe7, 0xe0, - 0xe3, 0x18, 0x2e, 0xc5, 0x98, 0xec, 0x59, 0xb0, 0x9b, 0x78, 0x7b, 0xd5, 0x41, 0xef, 0x22, 0xc1, - 0x1e, 0xd9, 0xd1, 0x04, 0xe6, 0xe2, 0x98, 0x8a, 0xf1, 0x51, 0xe5, 0x71, 0x85, 0x9c, 0x41, 0x03, - 0x89, 0xe4, 0xff, 0xa0, 0x21, 0x48, 0xb3, 0x4d, 0x60, 0x49, 0x23, 0x91, 0xe3, 0x12, 0x1a, 0x17, - 0x51, 0x3c, 0x9c, 0x72, 0x52, 0x38, 0xa2, 0x76, 0x49, 0x77, 0xf4, 0x00, 0x79, 0xee, 0xd1, 0xfd, - 0x8c, 0xa7, 0xfb, 0x0a, 0x09, 0x4e, 0x2b, 0xef, 0x93, 0x6f, 0x61, 0xab, 0xf7, 0x13, 0x1f, 0xcc, - 0x15, 0x27, 0xa1, 0xa5, 0x5b, 0x3b, 0xcb, 0x52, 0xea, 0xfb, 0x48, 0x7d, 0x97, 0x36, 0x91, 0xda, - 0xd0, 0x9c, 0xda, 0x93, 0xbd, 0x6a, 0x20, 0xf8, 0xe4, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, - 0xf6, 0x70, 0xb5, 0x66, 0x0a, 0x00, 0x00, + // 1091 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xdd, 0x6e, 0x1b, 0xc5, + 0x17, 0xaf, 0xbd, 0xb6, 0xb3, 0x7b, 0x1c, 0x27, 0xce, 0xfc, 0xdb, 0xfe, 0x2d, 0x37, 0xd0, 0xb0, + 0xa2, 0x25, 0xe2, 0xc2, 0x6e, 0x13, 0x04, 0x55, 0x54, 0x21, 0x91, 0x34, 0x6d, 0xa8, 0x02, 0x42, + 0xe3, 0x82, 0xb8, 0x41, 0x68, 0xb3, 0x1e, 0xbb, 0xab, 0xec, 0xee, 0x2c, 0x3b, 0xe3, 0x80, 0xb9, + 0xe0, 0x82, 0x4b, 0x7a, 0x89, 0xc4, 0x63, 0xf0, 0x20, 0xdc, 0xf2, 0x0a, 0x3c, 0x08, 0x9a, 0xaf, + 0xdd, 0x59, 0xdb, 0x8b, 0xe0, 0x6a, 0xe7, 0x9c, 0xf3, 0x3b, 0xbf, 0x39, 0x73, 0x3e, 0x66, 0x07, + 0x76, 0xd8, 0x75, 0x30, 0x9b, 0xd1, 0x78, 0x3a, 0xca, 0x72, 0xca, 0x29, 0x6a, 0xcb, 0xcf, 0x70, + 0x7f, 0x4e, 0xe9, 0x3c, 0x26, 0xe3, 0x20, 0x8b, 0xc6, 0x41, 0x9a, 0x52, 0x1e, 0xf0, 0x88, 0xa6, + 0x4c, 0x81, 0x86, 0xf7, 0xb5, 0x55, 0x4a, 0x57, 0x8b, 0xd9, 0x98, 0x47, 0x09, 0x61, 0x3c, 0x48, + 0x32, 0x0d, 0xb8, 0xb7, 0x0a, 0x20, 0x49, 0xc6, 0x97, 0xca, 0xe8, 0x1f, 0x43, 0x6f, 0xc2, 0x03, + 0x4e, 0x30, 0x61, 0x19, 0x4d, 0x19, 0x41, 0x3e, 0xb4, 0x99, 0x50, 0x0c, 0x1a, 0x07, 0x8d, 0xc3, + 0xee, 0xd1, 0xb6, 0xc2, 0x8d, 0x14, 0x48, 0x99, 0xfc, 0x7d, 0x70, 0x0b, 0x7c, 0x1f, 0x9c, 0x84, + 0xcd, 0x25, 0xda, 0xc3, 0x62, 0xe9, 0xbf, 0x05, 0x5b, 0x98, 0x7c, 0xb7, 0x20, 0x8c, 0x23, 0x04, + 0xad, 0x34, 0x48, 0x88, 0xb6, 0xca, 0xb5, 0xff, 0x9b, 0x03, 0x6d, 0xc9, 0x86, 0x1e, 0x03, 0x5c, + 0x2d, 0xa2, 0x78, 0x3a, 0xb1, 0xf6, 0xdb, 0xd3, 0xfb, 0x9d, 0x16, 0x06, 0x6c, 0x81, 0xd0, 0x07, + 0xd0, 0x9d, 0x92, 0x2c, 0xa6, 0x4b, 0xe5, 0xd3, 0x94, 0x3e, 0x48, 0xfb, 0x3c, 0x2b, 0x2d, 0xd8, + 0x86, 0xa1, 0x0b, 0xd8, 0x99, 0xd1, 0xfc, 0xfb, 0x20, 0x9f, 0x92, 0xe9, 0x17, 0x34, 0xe7, 0x6c, + 0xd0, 0x3a, 0x70, 0x0e, 0xbb, 0x47, 0x07, 0xf6, 0xe1, 0x46, 0xcf, 0x2b, 0x90, 0xf3, 0x94, 0xe7, + 0x4b, 0xbc, 0xe2, 0x87, 0xce, 0xa0, 0x2f, 0x52, 0xb0, 0x60, 0x67, 0xaf, 0x49, 0x78, 0xad, 0x82, + 0x68, 0xcb, 0x20, 0xfe, 0x6f, 0x71, 0xd9, 0x66, 0xbc, 0xe6, 0x80, 0x4e, 0xa0, 0x37, 0x8b, 0x62, + 0x32, 0x59, 0xa6, 0xa1, 0x62, 0xe8, 0x48, 0x86, 0xdb, 0x9a, 0xe1, 0xb9, 0x6d, 0xc3, 0x55, 0xe8, + 0x70, 0x02, 0xff, 0xdb, 0x10, 0xa7, 0xa8, 0xc2, 0x35, 0x59, 0xca, 0x1c, 0xb6, 0xb1, 0x58, 0xa2, + 0x87, 0xd0, 0xbe, 0x09, 0xe2, 0x85, 0xc9, 0x51, 0x5f, 0x93, 0x0b, 0x9f, 0xf3, 0x1b, 0x92, 0x72, + 0xac, 0xcc, 0x27, 0xcd, 0x27, 0x8d, 0x97, 0x2d, 0xd7, 0xe9, 0xb7, 0xfc, 0x5f, 0x1a, 0x00, 0x65, + 0xda, 0xd1, 0xc7, 0xe0, 0x05, 0x39, 0x8f, 0x66, 0x41, 0xc8, 0xd9, 0xa0, 0x51, 0xc9, 0x57, 0x89, + 0x1a, 0x7d, 0x62, 0x20, 0x2a, 0x5f, 0xa5, 0xcb, 0xf0, 0x29, 0xec, 0x54, 0x8d, 0x76, 0x90, 0x9e, + 0x0a, 0xf2, 0xb6, 0x1d, 0xa4, 0x67, 0x85, 0xe4, 0x3f, 0x80, 0xae, 0x55, 0x4e, 0x74, 0x17, 0x3a, + 0x2a, 0x8d, 0xda, 0x5b, 0x4b, 0xfe, 0xef, 0x0d, 0xe8, 0xaf, 0x66, 0xbc, 0x0e, 0x8c, 0x9e, 0x81, + 0x97, 0x13, 0x46, 0x17, 0x79, 0x48, 0xd8, 0xa0, 0x29, 0x4f, 0xf4, 0xb0, 0xa6, 0x6a, 0x23, 0x6c, + 0x80, 0xfa, 0x5c, 0x85, 0xa3, 0x38, 0x57, 0xd5, 0xf8, 0x9f, 0xce, 0xf5, 0x1e, 0xf4, 0x2a, 0xf5, + 0xad, 0x3d, 0xd9, 0x1f, 0x0e, 0xb4, 0x65, 0xa1, 0xd0, 0x23, 0xf0, 0x12, 0xc2, 0x03, 0x29, 0xe8, + 0x29, 0x31, 0xd5, 0xfc, 0xcc, 0xe8, 0x2f, 0x6e, 0xe1, 0x12, 0x84, 0x8e, 0xf5, 0x60, 0x29, 0x97, + 0xe6, 0xfa, 0x60, 0x19, 0x1f, 0x0b, 0x86, 0x3e, 0x34, 0xa3, 0xa5, 0xbc, 0x9c, 0x0d, 0xa3, 0x65, + 0xdc, 0x6c, 0xa0, 0x08, 0x2f, 0x33, 0x4d, 0x35, 0x68, 0x6d, 0x6e, 0x36, 0x11, 0x5e, 0x01, 0x42, + 0xe7, 0x95, 0x21, 0x52, 0x8e, 0xb5, 0x43, 0x64, 0xfc, 0xd7, 0x5c, 0xd0, 0x37, 0x30, 0x30, 0x55, + 0x59, 0xc5, 0xeb, 0x89, 0xba, 0xaf, 0xe9, 0x70, 0x0d, 0xec, 0xe2, 0x16, 0xae, 0xa5, 0x40, 0x4f, + 0xcb, 0x29, 0x55, 0x9c, 0x5b, 0x1b, 0xa7, 0xd4, 0x10, 0x55, 0xc1, 0xa7, 0xdb, 0x00, 0x44, 0x2c, + 0xbe, 0xe5, 0xcb, 0x8c, 0xf8, 0xef, 0x80, 0x57, 0x94, 0x4a, 0x34, 0x07, 0x11, 0x7d, 0xa3, 0x0b, + 0xae, 0x04, 0x1f, 0xeb, 0xe1, 0x53, 0x98, 0x21, 0xb8, 0x66, 0x92, 0x34, 0xac, 0x90, 0xad, 0x8e, + 0x69, 0x56, 0xda, 0xbb, 0x0f, 0x0e, 0xc9, 0x73, 0x59, 0x38, 0x0f, 0x8b, 0xa5, 0xff, 0x91, 0x19, + 0x22, 0x45, 0x5a, 0x37, 0x17, 0xda, 0xb1, 0x59, 0x3a, 0x7e, 0x55, 0x99, 0xaa, 0x7f, 0xf6, 0x1e, + 0xc0, 0x56, 0x42, 0x18, 0x0b, 0xe6, 0xa6, 0xdb, 0x8d, 0xb8, 0x21, 0xa0, 0x1f, 0x61, 0x50, 0x57, + 0x0b, 0x71, 0x64, 0x53, 0x0b, 0x73, 0x64, 0x23, 0xd7, 0x1e, 0xd9, 0xda, 0xdb, 0xd9, 0xb8, 0x77, + 0xab, 0xdc, 0xfb, 0x4d, 0x13, 0xbc, 0xa2, 0x21, 0xd1, 0x3e, 0x78, 0x31, 0x0d, 0x83, 0x58, 0x68, + 0xf4, 0xb5, 0x59, 0x2a, 0xd0, 0xdb, 0x00, 0x39, 0x49, 0x28, 0x27, 0xd2, 0xdc, 0x94, 0x66, 0x4b, + 0x23, 0xf6, 0xcd, 0xe8, 0xf4, 0x73, 0xf1, 0x6b, 0xd3, 0xfb, 0x6a, 0x11, 0xbd, 0x0b, 0xbd, 0x90, + 0xa6, 0x3c, 0x88, 0x52, 0x92, 0x4b, 0xbb, 0x8a, 0xa0, 0xaa, 0x14, 0xbb, 0x8b, 0x7f, 0x21, 0xcb, + 0x82, 0x50, 0xfd, 0x3f, 0x3c, 0x5c, 0x2a, 0x44, 0x26, 0xc4, 0xb0, 0x48, 0xf7, 0x8e, 0xca, 0x84, + 0x91, 0x91, 0x0f, 0xdb, 0x26, 0x2b, 0xaf, 0x96, 0x19, 0x91, 0x4d, 0xe9, 0xe1, 0x8a, 0xce, 0xc6, + 0x48, 0x0e, 0xb7, 0x8a, 0x11, 0x3a, 0x3f, 0x29, 0xef, 0xa1, 0x22, 0x21, 0xa2, 0x83, 0xcf, 0xe8, + 0x22, 0x2d, 0x12, 0x52, 0x28, 0x44, 0xcf, 0x46, 0x49, 0x59, 0x62, 0x25, 0x58, 0x65, 0x71, 0x36, + 0x35, 0x94, 0x95, 0xfc, 0x9f, 0xc0, 0xbd, 0xa4, 0x73, 0x75, 0x5d, 0x3e, 0x01, 0xaf, 0x78, 0xa2, + 0xe8, 0xfb, 0x6c, 0x38, 0x52, 0x6f, 0x94, 0x91, 0x79, 0xa3, 0x8c, 0x5e, 0x19, 0x04, 0x2e, 0xc1, + 0xe2, 0x6d, 0x42, 0xac, 0x2b, 0xcd, 0xbc, 0x4d, 0xf4, 0xff, 0x8c, 0x54, 0xa7, 0xcb, 0xb1, 0xa7, + 0xeb, 0x04, 0xf6, 0xbe, 0x64, 0x24, 0xff, 0x34, 0xe5, 0x02, 0xaa, 0x5f, 0x27, 0x0f, 0xa0, 0x13, + 0x49, 0x85, 0x8e, 0xa2, 0xa7, 0xf9, 0x34, 0x4a, 0x1b, 0xfd, 0x97, 0xd0, 0x51, 0x1a, 0xc1, 0x2d, + 0x2f, 0x4c, 0x89, 0x77, 0xb1, 0x12, 0xc4, 0x23, 0x87, 0x2d, 0xd3, 0x50, 0x06, 0xe5, 0x62, 0xb9, + 0x16, 0x99, 0x51, 0x77, 0xa4, 0x0c, 0xc3, 0xc5, 0x5a, 0x3a, 0x7a, 0xe3, 0xc0, 0xee, 0x44, 0x3f, + 0xf2, 0x26, 0x24, 0xbf, 0x89, 0x42, 0x82, 0xce, 0xc0, 0x7d, 0x41, 0xb8, 0xfe, 0x1b, 0xac, 0x25, + 0xe2, 0x5c, 0x3c, 0xd6, 0x86, 0x95, 0x67, 0x98, 0xbf, 0xf7, 0xf3, 0x9f, 0x7f, 0xfd, 0xda, 0xec, + 0x22, 0x6f, 0x7c, 0xf3, 0x78, 0x2c, 0x9f, 0x64, 0xe8, 0x05, 0xb8, 0x32, 0x0d, 0x97, 0x74, 0x8e, + 0x76, 0x35, 0xd8, 0x64, 0x7c, 0xb8, 0xaa, 0xf0, 0xef, 0x48, 0x82, 0x5d, 0xd4, 0x13, 0x04, 0xea, + 0x9e, 0x8a, 0xe9, 0xfc, 0xb0, 0xf1, 0xa8, 0x81, 0x4e, 0xa1, 0x23, 0x89, 0xd8, 0xbf, 0xa0, 0x41, + 0x92, 0x66, 0x1b, 0x41, 0x41, 0xc3, 0x24, 0xc7, 0x25, 0x74, 0x2e, 0x82, 0x74, 0x1a, 0x13, 0x54, + 0x29, 0xd1, 0xb0, 0xe6, 0x74, 0xfe, 0xbe, 0xe4, 0xb9, 0xeb, 0xef, 0x95, 0x3c, 0xe3, 0xd7, 0x92, + 0xe0, 0xa4, 0xf1, 0x3e, 0xfa, 0x1a, 0xb6, 0xce, 0x7f, 0x20, 0xe1, 0x82, 0x13, 0x34, 0xd0, 0x74, + 0x6b, 0xb5, 0xac, 0xa5, 0xbe, 0x27, 0xa9, 0xef, 0xf8, 0x5d, 0x49, 0xad, 0x68, 0x4e, 0x74, 0x65, + 0xaf, 0x3a, 0x12, 0x7c, 0xfc, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xae, 0x2f, 0x66, 0x0b, 0x78, + 0x0b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/skaffold.proto b/proto/skaffold.proto index 9daa4d382e5..1995bce32d2 100644 --- a/proto/skaffold.proto +++ b/proto/skaffold.proto @@ -23,6 +23,7 @@ message State { reserved 3; // field 3 is obsolete map forwardedPorts = 4; StatusCheckState statusCheckState = 5; + FileSyncState fileSyncState = 6; } // BuildState contains a map of all skaffold artifacts to their current build @@ -42,6 +43,11 @@ message StatusCheckState { map resources = 2; } +// FileSyncState contains the status of the current file sync +message FileSyncState { + string status = 1; +} + message Event { oneof event_type { MetaEvent metaEvent = 1; @@ -50,6 +56,7 @@ message Event { PortEvent portEvent = 4; StatusCheckEvent statusCheckEvent = 5; ResourceStatusCheckEvent resourceStatusCheckEvent = 6; + FileSyncEvent fileSyncEvent = 7; } } @@ -92,6 +99,13 @@ message PortEvent { string resourceName=8; } +message FileSyncEvent { + int32 fileCount = 1; + string image = 2; + string status = 3; + string err = 4; +} + message LogEntry { google.protobuf.Timestamp timestamp = 1; Event event = 2;