Refactor comparison status to not calculate diffs and include target/live states instead

This commit is contained in:
Jesse Suen 2018-02-28 15:23:48 -08:00
parent 9e3e948108
commit 7009c133f4
No known key found for this signature in database
GPG key ID: 90C911E8A6106562
5 changed files with 378 additions and 190 deletions

View file

@ -40,48 +40,65 @@ func (ks *KsonnetAppComparator) CompareAppState(appRepoPath string, app *v1alpha
return nil, fmt.Errorf("environment '%s' does not exist in ksonnet app '%s'", app.Spec.Source.Environment, appSpec.Name)
}
// Generate the manifests for the environment
objs, err := ksApp.Show(app.Spec.Source.Environment)
if err != nil {
return nil, err
}
// Get the REST config for the cluster corresponding to the environment
clst, err := ks.clusterService.Get(context.Background(), &cluster.ClusterQuery{Server: env.Destination.Server})
if err != nil {
return nil, err
}
// Generate the manifests for the environment
targetObjs, err := ksApp.Show(app.Spec.Source.Environment)
if err != nil {
return nil, err
}
// Retrieve the live versions of the objects
liveObjs, err := kubeutil.GetLiveResources(clst.RESTConfig(), objs, env.Destination.Namespace)
liveObjs, err := kubeutil.GetLiveResources(clst.RESTConfig(), targetObjs, env.Destination.Namespace)
if err != nil {
return nil, err
}
// Do the actual comparison
diffResults, err := diff.DiffArray(objs, liveObjs)
diffResults, err := diff.DiffArray(targetObjs, liveObjs)
if err != nil {
return nil, err
}
deltaDiffs := make([]string, len(diffResults.Diffs))
for i, diffRes := range diffResults.Diffs {
deltaDiffs[i] = diffRes.DeltaDiff
}
targetState := make([]string, len(objs))
for i, obj := range objs {
str, err := json.Marshal(obj.Object)
resources := make([]v1alpha1.ResourceState, len(targetObjs))
for i := 0; i < len(targetObjs); i++ {
resState := v1alpha1.ResourceState{}
targetObjBytes, err := json.Marshal(targetObjs[i].Object)
if err != nil {
return nil, err
}
targetState[i] = string(str)
resState.TargetState = string(targetObjBytes)
if liveObjs[i] == nil {
resState.LiveState = "null"
} else {
liveObjBytes, err := json.Marshal(liveObjs[i].Object)
if err != nil {
return nil, err
}
resState.LiveState = string(liveObjBytes)
}
diffResult := diffResults.Diffs[i]
if diffResult.Modified {
if *diffResult.AdditionsOnly {
resState.Status = v1alpha1.ComparisonStatusEqual
} else {
resState.Status = v1alpha1.ComparisonStatusDifferent
}
} else {
resState.Status = v1alpha1.ComparisonStatusEqual
}
resources[i] = resState
}
compResult := v1alpha1.ComparisonResult{
TargetState: targetState,
ComparedTo: app.Spec.Source,
ComparedAt: metav1.Time{Time: time.Now().UTC()},
Server: clst.Server,
Namespace: env.Destination.Namespace,
DeltaDiffs: deltaDiffs,
ComparedTo: app.Spec.Source,
ComparedAt: metav1.Time{Time: time.Now().UTC()},
Server: clst.Server,
Namespace: env.Destination.Namespace,
Resources: resources,
}
if diffResults.Modified {
if *diffResults.AdditionsOnly {

View file

@ -20,6 +20,7 @@
ComparisonResult
Repository
RepositoryList
ResourceState
TLSClientConfig
*/
package v1alpha1
@ -94,9 +95,13 @@ func (m *RepositoryList) Reset() { *m = RepositoryList{} }
func (*RepositoryList) ProtoMessage() {}
func (*RepositoryList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} }
func (m *ResourceState) Reset() { *m = ResourceState{} }
func (*ResourceState) ProtoMessage() {}
func (*ResourceState) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} }
func (m *TLSClientConfig) Reset() { *m = TLSClientConfig{} }
func (*TLSClientConfig) ProtoMessage() {}
func (*TLSClientConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} }
func (*TLSClientConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} }
func init() {
proto.RegisterType((*Application)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.Application")
@ -111,6 +116,7 @@ func init() {
proto.RegisterType((*ComparisonResult)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.ComparisonResult")
proto.RegisterType((*Repository)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.Repository")
proto.RegisterType((*RepositoryList)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.RepositoryList")
proto.RegisterType((*ResourceState)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.ResourceState")
proto.RegisterType((*TLSClientConfig)(nil), "github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.TLSClientConfig")
}
func (m *Application) Marshal() (dAtA []byte, err error) {
@ -462,34 +468,16 @@ func (m *ComparisonResult) MarshalTo(dAtA []byte) (int, error) {
i++
i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))
i += copy(dAtA[i:], m.Status)
if len(m.TargetState) > 0 {
for _, s := range m.TargetState {
if len(m.Resources) > 0 {
for _, msg := range m.Resources {
dAtA[i] = 0x32
i++
l = len(s)
for l >= 1<<7 {
dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
l >>= 7
i++
i = encodeVarintGenerated(dAtA, i, uint64(msg.Size()))
n, err := msg.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
dAtA[i] = uint8(l)
i++
i += copy(dAtA[i:], s)
}
}
if len(m.DeltaDiffs) > 0 {
for _, s := range m.DeltaDiffs {
dAtA[i] = 0x3a
i++
l = len(s)
for l >= 1<<7 {
dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
l >>= 7
i++
}
dAtA[i] = uint8(l)
i++
i += copy(dAtA[i:], s)
i += n
}
}
dAtA[i] = 0x42
@ -567,6 +555,36 @@ func (m *RepositoryList) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *ResourceState) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *ResourceState) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
dAtA[i] = 0xa
i++
i = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetState)))
i += copy(dAtA[i:], m.TargetState)
dAtA[i] = 0x12
i++
i = encodeVarintGenerated(dAtA, i, uint64(len(m.LiveState)))
i += copy(dAtA[i:], m.LiveState)
dAtA[i] = 0x1a
i++
i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))
i += copy(dAtA[i:], m.Status)
return i, nil
}
func (m *TLSClientConfig) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@ -743,15 +761,9 @@ func (m *ComparisonResult) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
l = len(m.Status)
n += 1 + l + sovGenerated(uint64(l))
if len(m.TargetState) > 0 {
for _, s := range m.TargetState {
l = len(s)
n += 1 + l + sovGenerated(uint64(l))
}
}
if len(m.DeltaDiffs) > 0 {
for _, s := range m.DeltaDiffs {
l = len(s)
if len(m.Resources) > 0 {
for _, e := range m.Resources {
l = e.Size()
n += 1 + l + sovGenerated(uint64(l))
}
}
@ -786,6 +798,18 @@ func (m *RepositoryList) Size() (n int) {
return n
}
func (m *ResourceState) Size() (n int) {
var l int
_ = l
l = len(m.TargetState)
n += 1 + l + sovGenerated(uint64(l))
l = len(m.LiveState)
n += 1 + l + sovGenerated(uint64(l))
l = len(m.Status)
n += 1 + l + sovGenerated(uint64(l))
return n
}
func (m *TLSClientConfig) Size() (n int) {
var l int
_ = l
@ -933,8 +957,7 @@ func (this *ComparisonResult) String() string {
`Server:` + fmt.Sprintf("%v", this.Server) + `,`,
`Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`,
`Status:` + fmt.Sprintf("%v", this.Status) + `,`,
`TargetState:` + fmt.Sprintf("%v", this.TargetState) + `,`,
`DeltaDiffs:` + fmt.Sprintf("%v", this.DeltaDiffs) + `,`,
`Resources:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Resources), "ResourceState", "ResourceState", 1), `&`, ``, 1) + `,`,
`Error:` + fmt.Sprintf("%v", this.Error) + `,`,
`}`,
}, "")
@ -963,6 +986,18 @@ func (this *RepositoryList) String() string {
}, "")
return s
}
func (this *ResourceState) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&ResourceState{`,
`TargetState:` + fmt.Sprintf("%v", this.TargetState) + `,`,
`LiveState:` + fmt.Sprintf("%v", this.LiveState) + `,`,
`Status:` + fmt.Sprintf("%v", this.Status) + `,`,
`}`,
}, "")
return s
}
func (this *TLSClientConfig) String() string {
if this == nil {
return "nil"
@ -2265,9 +2300,9 @@ func (m *ComparisonResult) Unmarshal(dAtA []byte) error {
iNdEx = postIndex
case 6:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field TargetState", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType)
}
var stringLen uint64
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@ -2277,49 +2312,22 @@ func (m *ComparisonResult) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.TargetState = append(m.TargetState, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 7:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field DeltaDiffs", wireType)
m.Resources = append(m.Resources, ResourceState{})
if err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.DeltaDiffs = append(m.DeltaDiffs, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 8:
if wireType != 2 {
@ -2619,6 +2627,143 @@ func (m *RepositoryList) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *ResourceState) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ResourceState: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ResourceState: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field TargetState", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.TargetState = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field LiveState", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.LiveState = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Status = ComparisonStatus(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *TLSClientConfig) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@ -2921,78 +3066,80 @@ func init() {
}
var fileDescriptorGenerated = []byte{
// 1166 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcf, 0x6f, 0x23, 0xb5,
0x17, 0xef, 0xb4, 0x69, 0x9a, 0xbe, 0x74, 0xdb, 0xae, 0xbf, 0xfa, 0x42, 0xd4, 0x43, 0x5a, 0x0d,
0x02, 0x0a, 0x62, 0x27, 0xb4, 0xfc, 0xe6, 0x80, 0xd4, 0x49, 0x8b, 0x28, 0x2d, 0x65, 0xe5, 0x66,
0x85, 0x84, 0x10, 0xe0, 0x4e, 0xdc, 0x64, 0x9a, 0xcc, 0x78, 0x64, 0x3b, 0x59, 0xf5, 0x80, 0xb4,
0x37, 0x24, 0x24, 0x24, 0xe0, 0x9f, 0xe0, 0xce, 0xff, 0x80, 0xd4, 0xe3, 0x4a, 0x20, 0xb1, 0x42,
0xa8, 0xa2, 0xd9, 0x0b, 0x7f, 0xc3, 0x9e, 0x90, 0x3d, 0xce, 0x8c, 0x93, 0xa8, 0xec, 0x42, 0xab,
0xbd, 0x8d, 0xdf, 0xfb, 0xf8, 0xf3, 0x3e, 0x7e, 0x7e, 0xef, 0x79, 0x60, 0xb7, 0x15, 0xca, 0x76,
0xef, 0xc8, 0x0b, 0x58, 0x54, 0x23, 0xbc, 0xc5, 0x12, 0xce, 0x4e, 0xf4, 0xc7, 0xad, 0xa0, 0x59,
0x4b, 0x3a, 0xad, 0x1a, 0x49, 0x42, 0x51, 0x23, 0x49, 0xd2, 0x0d, 0x03, 0x22, 0x43, 0x16, 0xd7,
0xfa, 0x1b, 0xa4, 0x9b, 0xb4, 0xc9, 0x46, 0xad, 0x45, 0x63, 0xca, 0x89, 0xa4, 0x4d, 0x2f, 0xe1,
0x4c, 0x32, 0xf4, 0x4e, 0x4e, 0xe5, 0x0d, 0xa9, 0xf4, 0xc7, 0x17, 0x41, 0xd3, 0x4b, 0x3a, 0x2d,
0x4f, 0x51, 0x79, 0x16, 0x95, 0x37, 0xa4, 0x5a, 0xb9, 0x65, 0xa9, 0x68, 0xb1, 0x16, 0xab, 0x69,
0xc6, 0xa3, 0xde, 0xb1, 0x5e, 0xe9, 0x85, 0xfe, 0x4a, 0x23, 0xad, 0xbc, 0xde, 0x79, 0x5b, 0x78,
0x21, 0x53, 0xda, 0x22, 0x12, 0xb4, 0xc3, 0x98, 0xf2, 0xd3, 0x5c, 0x6c, 0x44, 0x25, 0xa9, 0xf5,
0x27, 0xf4, 0xad, 0xd4, 0x2e, 0xdb, 0xc5, 0x7b, 0xb1, 0x0c, 0x23, 0x3a, 0xb1, 0xe1, 0xcd, 0xc7,
0x6d, 0x10, 0x41, 0x9b, 0x46, 0x64, 0x62, 0xdf, 0x6b, 0x97, 0xed, 0xeb, 0xc9, 0xb0, 0x5b, 0x0b,
0x63, 0x29, 0x24, 0x1f, 0xdf, 0xe4, 0xfe, 0x32, 0x0d, 0xe5, 0xad, 0x3c, 0x37, 0xe8, 0x4b, 0x28,
0xa9, 0x83, 0x34, 0x89, 0x24, 0x15, 0x67, 0xcd, 0x59, 0x2f, 0x6f, 0xbe, 0xea, 0xa5, 0xbc, 0x9e,
0xcd, 0x9b, 0x27, 0x56, 0xa1, 0xbd, 0xfe, 0x86, 0xf7, 0xf1, 0xd1, 0x09, 0x0d, 0xe4, 0x47, 0x54,
0x12, 0x1f, 0x9d, 0x9d, 0xaf, 0x4e, 0x0d, 0xce, 0x57, 0x21, 0xb7, 0xe1, 0x8c, 0x15, 0x75, 0xa1,
0x20, 0x12, 0x1a, 0x54, 0xa6, 0x35, 0xfb, 0x87, 0xde, 0x7f, 0xbe, 0x3e, 0xcf, 0xd2, 0x7d, 0x98,
0xd0, 0xc0, 0x5f, 0x30, 0x71, 0x0b, 0x6a, 0x85, 0x75, 0x14, 0x24, 0xa1, 0x28, 0x24, 0x91, 0x3d,
0x51, 0x99, 0xd1, 0xf1, 0xf6, 0xaf, 0x29, 0x9e, 0xe6, 0xf4, 0x17, 0x4d, 0xc4, 0x62, 0xba, 0xc6,
0x26, 0x96, 0xfb, 0x87, 0x03, 0x4b, 0x16, 0x7a, 0x3f, 0x14, 0x12, 0x7d, 0x36, 0x91, 0x59, 0xef,
0xc9, 0x32, 0xab, 0x76, 0xeb, 0xbc, 0x2e, 0x9b, 0x68, 0xa5, 0xa1, 0xc5, 0xca, 0x6a, 0x07, 0x66,
0x43, 0x49, 0x23, 0x51, 0x99, 0x5e, 0x9b, 0x59, 0x2f, 0x6f, 0xbe, 0x7f, 0x3d, 0xc7, 0xf4, 0x6f,
0x98, 0x90, 0xb3, 0xbb, 0x8a, 0x1c, 0xa7, 0x31, 0xdc, 0xdf, 0x1c, 0xb8, 0x69, 0x27, 0x83, 0xf5,
0x78, 0x40, 0xd1, 0x7b, 0xb0, 0x28, 0x09, 0x6f, 0x51, 0x89, 0x69, 0x3f, 0x14, 0x21, 0x8b, 0xf5,
0x31, 0xe7, 0xfd, 0x67, 0x0c, 0xc7, 0x62, 0x63, 0xc4, 0x8b, 0xc7, 0xd0, 0xe8, 0x25, 0x98, 0xe3,
0x34, 0x61, 0x77, 0xf0, 0xbe, 0xae, 0x8d, 0x79, 0x7f, 0xc9, 0x6c, 0x9c, 0xc3, 0xa9, 0x19, 0x0f,
0xfd, 0x68, 0x0d, 0x0a, 0x09, 0x91, 0x6d, 0x7d, 0xa7, 0xf3, 0xf9, 0xbd, 0xdf, 0x26, 0xb2, 0x8d,
0xb5, 0x07, 0xbd, 0x01, 0x65, 0x1a, 0xf7, 0x43, 0xce, 0xe2, 0x88, 0xc6, 0xb2, 0x52, 0xd0, 0xc0,
0xff, 0x19, 0x60, 0x79, 0x27, 0x77, 0x61, 0x1b, 0xe7, 0x7e, 0x3d, 0x7a, 0x71, 0x87, 0xc3, 0x12,
0xd2, 0x27, 0x34, 0xd7, 0x76, 0x5d, 0x25, 0xa4, 0x39, 0xad, 0x12, 0xd2, 0x6b, 0x6c, 0x62, 0xb9,
0x3f, 0x8e, 0xe5, 0x58, 0x17, 0x16, 0xfa, 0xde, 0x81, 0xe5, 0x80, 0x45, 0x09, 0xe1, 0xa1, 0x60,
0x31, 0xa6, 0xa2, 0xd7, 0x95, 0x46, 0xd6, 0xde, 0x15, 0x64, 0xd5, 0xc7, 0x28, 0xfd, 0x8a, 0x51,
0xb5, 0x3c, 0xee, 0xc1, 0x13, 0xe1, 0xdd, 0x87, 0x0e, 0xfc, 0xdf, 0x52, 0xfa, 0x09, 0x91, 0x41,
0x7b, 0xa7, 0x4f, 0x63, 0x89, 0xf6, 0xa0, 0x20, 0x4f, 0x13, 0x6a, 0xea, 0xe0, 0xad, 0xe1, 0x35,
0x35, 0x4e, 0x13, 0xfa, 0xe8, 0x7c, 0xf5, 0xc5, 0xcb, 0xe6, 0xd5, 0x5d, 0xc5, 0xe0, 0x69, 0x0a,
0x05, 0xc5, 0x9a, 0x04, 0x7d, 0x05, 0x65, 0x4b, 0xbb, 0x19, 0x1f, 0xd7, 0x55, 0xe7, 0x59, 0x65,
0x58, 0x46, 0x6c, 0xc7, 0x73, 0x7f, 0x76, 0x60, 0xae, 0xde, 0xed, 0x09, 0x49, 0x39, 0x7a, 0x01,
0x8a, 0x82, 0xf2, 0x3e, 0xe5, 0xe6, 0x64, 0xf9, 0x1d, 0x6a, 0x2b, 0x36, 0x5e, 0x55, 0xa6, 0x31,
0x89, 0xa8, 0x29, 0xe7, 0xac, 0x4c, 0x0f, 0x48, 0x44, 0xb1, 0xf6, 0xa0, 0x04, 0x8a, 0x01, 0x8b,
0x8f, 0xc3, 0x96, 0x19, 0x4f, 0x1f, 0x5c, 0xe5, 0x12, 0x53, 0x75, 0x75, 0xcd, 0x97, 0x6b, 0x4a,
0xd7, 0xd8, 0xc4, 0x71, 0x7f, 0x9a, 0x86, 0x1b, 0x23, 0x48, 0xf4, 0x0a, 0x94, 0x7a, 0x82, 0x72,
0xad, 0x34, 0x3d, 0x4f, 0x36, 0x68, 0xee, 0x18, 0x3b, 0xce, 0x10, 0x0a, 0x9d, 0x10, 0x21, 0xee,
0x32, 0xde, 0x34, 0xe7, 0xca, 0xd0, 0xb7, 0x8d, 0x1d, 0x67, 0x08, 0xd5, 0x86, 0x47, 0x94, 0x70,
0xca, 0x1b, 0xac, 0x43, 0x63, 0xd3, 0xaf, 0x59, 0xb2, 0xfd, 0xdc, 0x85, 0x6d, 0x1c, 0xfa, 0xd6,
0x81, 0x25, 0xd9, 0x15, 0xf5, 0x6e, 0x48, 0x63, 0x99, 0xca, 0xd4, 0x2d, 0x7c, 0xb5, 0xf7, 0xa2,
0xb1, 0x7f, 0x68, 0x33, 0xfa, 0xcf, 0x1a, 0x1d, 0x4b, 0x63, 0x0e, 0x3c, 0x1e, 0xdb, 0xfd, 0xd5,
0x81, 0xb2, 0x49, 0xda, 0x53, 0x98, 0xe5, 0xad, 0xd1, 0x59, 0xee, 0x5f, 0xbd, 0x26, 0x2e, 0x99,
0xe3, 0x3f, 0x14, 0x60, 0xa2, 0xc1, 0xd1, 0xe7, 0x00, 0x69, 0x8b, 0xd3, 0xe6, 0xd6, 0x70, 0xb6,
0xbc, 0xfc, 0x64, 0xa7, 0x6b, 0x84, 0x11, 0xcd, 0x5f, 0xff, 0x7a, 0xc6, 0x82, 0x2d, 0x46, 0x74,
0xcf, 0xc9, 0x03, 0x34, 0x98, 0xe9, 0xe3, 0xeb, 0x9d, 0xa9, 0x13, 0x12, 0x1a, 0x0c, 0x5b, 0x31,
0xad, 0xfe, 0x9d, 0xf9, 0xc7, 0xfe, 0xad, 0xc1, 0xbc, 0xaa, 0x79, 0x91, 0x90, 0x80, 0x9a, 0x27,
0xe4, 0xa6, 0x81, 0xce, 0x1f, 0x0c, 0x1d, 0x38, 0xc7, 0xa0, 0x77, 0xb3, 0xbf, 0x8d, 0x59, 0x8d,
0x76, 0x47, 0xff, 0x0f, 0x1e, 0x8d, 0x0c, 0xd4, 0xd1, 0x7f, 0x06, 0xb4, 0x01, 0xe5, 0xf4, 0x41,
0x54, 0x76, 0x5a, 0x29, 0xae, 0xcd, 0xa8, 0x27, 0x50, 0xb5, 0x49, 0x23, 0x37, 0x63, 0x1b, 0x83,
0x3c, 0x80, 0x26, 0xed, 0x4a, 0xb2, 0x1d, 0x1e, 0x1f, 0x8b, 0xca, 0x9c, 0xde, 0xb1, 0xa8, 0xce,
0xbd, 0x9d, 0x59, 0xb1, 0x85, 0x40, 0xcf, 0xc1, 0x2c, 0xe5, 0x9c, 0xf1, 0x4a, 0x49, 0xab, 0xcb,
0x8a, 0x62, 0x47, 0x19, 0x71, 0xea, 0x73, 0xbf, 0x71, 0x00, 0xd4, 0x83, 0x2b, 0x42, 0xc9, 0xf8,
0xa9, 0x9a, 0x61, 0xea, 0xd5, 0x35, 0x93, 0x21, 0x9b, 0x61, 0x0a, 0x81, 0xb5, 0x67, 0x64, 0x7e,
0x4c, 0xff, 0xab, 0xf9, 0x31, 0xf3, 0xb8, 0xf9, 0xe1, 0xfe, 0xee, 0xc0, 0x62, 0x2e, 0xe6, 0x29,
0xf4, 0xde, 0xc9, 0x68, 0xef, 0xed, 0x5c, 0xa1, 0x2e, 0x73, 0xdd, 0x97, 0xb4, 0xdf, 0x5f, 0x0e,
0x8c, 0x8f, 0x1e, 0x95, 0x9e, 0x30, 0x16, 0x34, 0xe8, 0xf1, 0x74, 0x18, 0x97, 0x72, 0xb5, 0xbb,
0xc6, 0x8e, 0x33, 0x04, 0xda, 0x04, 0x48, 0x4b, 0xf5, 0x20, 0x4f, 0x7e, 0x56, 0xfc, 0x87, 0x99,
0x07, 0x5b, 0x28, 0xb4, 0x0e, 0xa5, 0x80, 0x72, 0xb9, 0xad, 0xf2, 0xa7, 0x2e, 0x60, 0xc1, 0x5f,
0x50, 0xec, 0x75, 0x63, 0xc3, 0x99, 0x17, 0x3d, 0x0f, 0x73, 0x1d, 0x7a, 0xaa, 0x81, 0x05, 0x0d,
0x2c, 0xab, 0x9f, 0xb1, 0xbd, 0xd4, 0x84, 0x87, 0x3e, 0xe4, 0x42, 0x31, 0x20, 0x1a, 0x35, 0xab,
0x51, 0xa0, 0x5f, 0x9d, 0x2d, 0x0d, 0x32, 0x1e, 0xdf, 0x3b, 0xbb, 0xa8, 0x4e, 0xdd, 0xbf, 0xa8,
0x4e, 0x3d, 0xb8, 0xa8, 0x4e, 0xdd, 0x1b, 0x54, 0x9d, 0xb3, 0x41, 0xd5, 0xb9, 0x3f, 0xa8, 0x3a,
0x0f, 0x06, 0x55, 0xe7, 0xcf, 0x41, 0xd5, 0xf9, 0xee, 0x61, 0x75, 0xea, 0xd3, 0xd2, 0x30, 0x77,
0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xa7, 0x4b, 0x9b, 0xa3, 0x20, 0x0e, 0x00, 0x00,
// 1190 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xdf, 0x6b, 0x23, 0x45,
0x1c, 0xef, 0xb6, 0x69, 0x9a, 0x4c, 0xfa, 0xeb, 0x46, 0xd4, 0xd0, 0x87, 0xb4, 0xac, 0xa8, 0x55,
0xbc, 0x5d, 0x5b, 0x7f, 0xfb, 0x20, 0x74, 0x63, 0xc5, 0xda, 0x5a, 0x8f, 0x69, 0x0e, 0x41, 0x44,
0x9d, 0x6e, 0xe6, 0x92, 0x6d, 0xb2, 0x3b, 0xcb, 0xcc, 0x24, 0x47, 0x1e, 0x84, 0x7b, 0x13, 0x04,
0x41, 0xff, 0x0a, 0xc1, 0x47, 0xfd, 0x1b, 0x84, 0x3e, 0x1e, 0x28, 0x78, 0x88, 0x14, 0x9b, 0x7b,
0xf1, 0x6f, 0xb8, 0x27, 0x99, 0xd9, 0xd9, 0xdd, 0x49, 0x42, 0xbd, 0x3b, 0x13, 0xee, 0x6d, 0x67,
0xbe, 0x9f, 0xf9, 0x7c, 0x3f, 0xf3, 0xfd, 0x35, 0x0b, 0x0e, 0x5a, 0x81, 0x68, 0xf7, 0x4e, 0x1d,
0x9f, 0x86, 0x2e, 0x66, 0x2d, 0x1a, 0x33, 0x7a, 0xa6, 0x3e, 0xae, 0xfb, 0x4d, 0x37, 0xee, 0xb4,
0x5c, 0x1c, 0x07, 0xdc, 0xc5, 0x71, 0xdc, 0x0d, 0x7c, 0x2c, 0x02, 0x1a, 0xb9, 0xfd, 0x1d, 0xdc,
0x8d, 0xdb, 0x78, 0xc7, 0x6d, 0x91, 0x88, 0x30, 0x2c, 0x48, 0xd3, 0x89, 0x19, 0x15, 0x14, 0xbe,
0x93, 0x53, 0x39, 0x29, 0x95, 0xfa, 0xf8, 0xd2, 0x6f, 0x3a, 0x71, 0xa7, 0xe5, 0x48, 0x2a, 0xc7,
0xa0, 0x72, 0x52, 0xaa, 0x8d, 0xeb, 0x86, 0x8a, 0x16, 0x6d, 0x51, 0x57, 0x31, 0x9e, 0xf6, 0x6e,
0xa9, 0x95, 0x5a, 0xa8, 0xaf, 0xc4, 0xd3, 0xc6, 0xeb, 0x9d, 0xb7, 0xb9, 0x13, 0x50, 0xa9, 0x2d,
0xc4, 0x7e, 0x3b, 0x88, 0x08, 0x1b, 0xe4, 0x62, 0x43, 0x22, 0xb0, 0xdb, 0x9f, 0xd0, 0xb7, 0xe1,
0x5e, 0x75, 0x8a, 0xf5, 0x22, 0x11, 0x84, 0x64, 0xe2, 0xc0, 0x9b, 0x0f, 0x3b, 0xc0, 0xfd, 0x36,
0x09, 0xf1, 0xc4, 0xb9, 0xd7, 0xae, 0x3a, 0xd7, 0x13, 0x41, 0xd7, 0x0d, 0x22, 0xc1, 0x05, 0x1b,
0x3f, 0x64, 0xff, 0x36, 0x0f, 0x2a, 0x7b, 0x79, 0x6c, 0xe0, 0x57, 0xa0, 0x24, 0x2f, 0xd2, 0xc4,
0x02, 0x57, 0xad, 0x2d, 0x6b, 0xbb, 0xb2, 0xfb, 0xaa, 0x93, 0xf0, 0x3a, 0x26, 0x6f, 0x1e, 0x58,
0x89, 0x76, 0xfa, 0x3b, 0xce, 0x27, 0xa7, 0x67, 0xc4, 0x17, 0x1f, 0x13, 0x81, 0x3d, 0x78, 0x7e,
0xb1, 0x39, 0x37, 0xbc, 0xd8, 0x04, 0xf9, 0x1e, 0xca, 0x58, 0x61, 0x17, 0x14, 0x78, 0x4c, 0xfc,
0xea, 0xbc, 0x62, 0xff, 0xc8, 0xf9, 0xdf, 0xe9, 0x73, 0x0c, 0xdd, 0x27, 0x31, 0xf1, 0xbd, 0x65,
0xed, 0xb7, 0x20, 0x57, 0x48, 0x79, 0x81, 0x02, 0x14, 0xb9, 0xc0, 0xa2, 0xc7, 0xab, 0x0b, 0xca,
0xdf, 0xd1, 0x8c, 0xfc, 0x29, 0x4e, 0x6f, 0x55, 0x7b, 0x2c, 0x26, 0x6b, 0xa4, 0x7d, 0xd9, 0x7f,
0x59, 0x60, 0xcd, 0x40, 0x1f, 0x05, 0x5c, 0xc0, 0xcf, 0x27, 0x22, 0xeb, 0x3c, 0x5a, 0x64, 0xe5,
0x69, 0x15, 0xd7, 0x75, 0xed, 0xad, 0x94, 0xee, 0x18, 0x51, 0xed, 0x80, 0xc5, 0x40, 0x90, 0x90,
0x57, 0xe7, 0xb7, 0x16, 0xb6, 0x2b, 0xbb, 0x1f, 0xcc, 0xe6, 0x9a, 0xde, 0x8a, 0x76, 0xb9, 0x78,
0x20, 0xc9, 0x51, 0xe2, 0xc3, 0xfe, 0xc3, 0x02, 0xd7, 0xcc, 0x60, 0xd0, 0x1e, 0xf3, 0x09, 0x7c,
0x0f, 0xac, 0x0a, 0xcc, 0x5a, 0x44, 0x20, 0xd2, 0x0f, 0x78, 0x40, 0x23, 0x75, 0xcd, 0xb2, 0xf7,
0x8c, 0xe6, 0x58, 0x6d, 0x8c, 0x58, 0xd1, 0x18, 0x1a, 0xbe, 0x04, 0x96, 0x18, 0x89, 0xe9, 0x4d,
0x74, 0xa4, 0x6a, 0xa3, 0xec, 0xad, 0xe9, 0x83, 0x4b, 0x28, 0xd9, 0x46, 0xa9, 0x1d, 0x6e, 0x81,
0x42, 0x8c, 0x45, 0x5b, 0xe5, 0xb4, 0x9c, 0xe7, 0xfd, 0x06, 0x16, 0x6d, 0xa4, 0x2c, 0xf0, 0x0d,
0x50, 0x21, 0x51, 0x3f, 0x60, 0x34, 0x0a, 0x49, 0x24, 0xaa, 0x05, 0x05, 0x7c, 0x4a, 0x03, 0x2b,
0xfb, 0xb9, 0x09, 0x99, 0x38, 0xfb, 0x9b, 0xd1, 0xc4, 0x9d, 0xa4, 0x25, 0xa4, 0x6e, 0xa8, 0xd3,
0x36, 0xab, 0x12, 0x52, 0x9c, 0x46, 0x09, 0xa9, 0x35, 0xd2, 0xbe, 0xec, 0x1f, 0xc7, 0x62, 0xac,
0x0a, 0x0b, 0xfe, 0x60, 0x81, 0x75, 0x9f, 0x86, 0x31, 0x66, 0x01, 0xa7, 0x11, 0x22, 0xbc, 0xd7,
0x15, 0x5a, 0xd6, 0xe1, 0x14, 0xb2, 0xea, 0x63, 0x94, 0x5e, 0x55, 0xab, 0x5a, 0x1f, 0xb7, 0xa0,
0x09, 0xf7, 0xf6, 0x7d, 0x0b, 0x3c, 0x6d, 0x28, 0xfd, 0x14, 0x0b, 0xbf, 0xbd, 0xdf, 0x27, 0x91,
0x80, 0x87, 0xa0, 0x20, 0x06, 0x31, 0xd1, 0x75, 0xf0, 0x56, 0x9a, 0xa6, 0xc6, 0x20, 0x26, 0x0f,
0x2e, 0x36, 0x5f, 0xbc, 0x6a, 0x5e, 0xdd, 0x96, 0x0c, 0x8e, 0xa2, 0x90, 0x50, 0xa4, 0x48, 0xe0,
0xd7, 0xa0, 0x62, 0x68, 0xd7, 0xe3, 0x63, 0x56, 0x75, 0x9e, 0x55, 0x86, 0xb1, 0x89, 0x4c, 0x7f,
0xf6, 0xaf, 0x16, 0x58, 0xaa, 0x77, 0x7b, 0x5c, 0x10, 0x06, 0x5f, 0x00, 0x45, 0x4e, 0x58, 0x9f,
0x30, 0x7d, 0xb3, 0x3c, 0x87, 0x6a, 0x17, 0x69, 0xab, 0x2c, 0xd3, 0x08, 0x87, 0x44, 0x97, 0x73,
0x56, 0xa6, 0xc7, 0x38, 0x24, 0x48, 0x59, 0x60, 0x0c, 0x8a, 0x3e, 0x8d, 0x6e, 0x05, 0x2d, 0x3d,
0x9e, 0x3e, 0x9c, 0x26, 0x89, 0x89, 0xba, 0xba, 0xe2, 0xcb, 0x35, 0x25, 0x6b, 0xa4, 0xfd, 0xd8,
0x3f, 0xcf, 0x83, 0x95, 0x11, 0x24, 0x7c, 0x05, 0x94, 0x7a, 0x9c, 0x30, 0xa5, 0x34, 0xb9, 0x4f,
0x36, 0x68, 0x6e, 0xea, 0x7d, 0x94, 0x21, 0x24, 0x3a, 0xc6, 0x9c, 0xdf, 0xa6, 0xac, 0xa9, 0xef,
0x95, 0xa1, 0x6f, 0xe8, 0x7d, 0x94, 0x21, 0x64, 0x1b, 0x9e, 0x12, 0xcc, 0x08, 0x6b, 0xd0, 0x0e,
0x89, 0x74, 0xbf, 0x66, 0xc1, 0xf6, 0x72, 0x13, 0x32, 0x71, 0xf0, 0x3b, 0x0b, 0xac, 0x89, 0x2e,
0xaf, 0x77, 0x03, 0x12, 0x89, 0x44, 0xa6, 0x6a, 0xe1, 0xe9, 0xde, 0x8b, 0xc6, 0xd1, 0x89, 0xc9,
0xe8, 0x3d, 0xab, 0x75, 0xac, 0x8d, 0x19, 0xd0, 0xb8, 0x6f, 0xfb, 0x77, 0x0b, 0x54, 0x74, 0xd0,
0x9e, 0xc0, 0x2c, 0x6f, 0x8d, 0xce, 0x72, 0x6f, 0xfa, 0x9a, 0xb8, 0x62, 0x8e, 0xff, 0x54, 0x00,
0x13, 0x0d, 0x0e, 0xbf, 0x00, 0x20, 0x69, 0x71, 0xd2, 0xdc, 0x4b, 0x67, 0xcb, 0xcb, 0x8f, 0x76,
0xbb, 0x46, 0x10, 0x92, 0xfc, 0xf5, 0xaf, 0x67, 0x2c, 0xc8, 0x60, 0x84, 0x77, 0xac, 0xdc, 0x41,
0x83, 0xea, 0x3e, 0x9e, 0xed, 0x4c, 0x9d, 0x90, 0xd0, 0xa0, 0xc8, 0xf0, 0x69, 0xf4, 0xef, 0xc2,
0x7f, 0xf6, 0xaf, 0x0b, 0xca, 0xb2, 0xe6, 0x79, 0x8c, 0x7d, 0xa2, 0x9f, 0x90, 0x6b, 0x1a, 0x5a,
0x3e, 0x4e, 0x0d, 0x28, 0xc7, 0xc0, 0x77, 0xb3, 0xbf, 0x8d, 0x45, 0x85, 0xb6, 0x47, 0xff, 0x0f,
0x1e, 0x8c, 0x0c, 0xd4, 0xd1, 0x7f, 0x06, 0x38, 0x00, 0x65, 0x46, 0x92, 0xe1, 0xcf, 0xab, 0x45,
0x95, 0xf9, 0x69, 0xa6, 0x01, 0xd2, 0x5c, 0xd2, 0x0b, 0xc9, 0x65, 0xa7, 0xdb, 0x1c, 0xe5, 0xde,
0xe0, 0x73, 0x60, 0x91, 0x30, 0x46, 0x59, 0xb5, 0xa4, 0x54, 0x67, 0xc5, 0xb2, 0x2f, 0x37, 0x51,
0x62, 0xb3, 0xbf, 0xb5, 0x00, 0x90, 0x0f, 0x31, 0x0f, 0x04, 0x65, 0x03, 0x39, 0xdb, 0xe4, 0x6b,
0xac, 0x27, 0x46, 0x36, 0xdb, 0x24, 0x02, 0x29, 0xcb, 0xc8, 0x5c, 0x99, 0x7f, 0xac, 0xb9, 0xb2,
0xf0, 0xb0, 0xb9, 0x62, 0xff, 0x69, 0x81, 0xd5, 0x5c, 0xcc, 0x13, 0xe8, 0xc9, 0xb3, 0xd1, 0x9e,
0xdc, 0x9f, 0x2a, 0x33, 0xa9, 0xee, 0x2b, 0xda, 0xf2, 0x17, 0x0b, 0xac, 0x8c, 0xa4, 0x4f, 0x8e,
0xd1, 0xe4, 0x67, 0x49, 0x2d, 0x75, 0xcc, 0xb3, 0x31, 0xda, 0xc8, 0x4d, 0xc8, 0xc4, 0xc9, 0xfa,
0xed, 0x06, 0xfd, 0x84, 0x43, 0xa7, 0x20, 0x2b, 0x84, 0xa3, 0xd4, 0x80, 0x72, 0x8c, 0x51, 0xbf,
0x0b, 0x8f, 0x5b, 0xbf, 0xf6, 0x3f, 0x16, 0x18, 0x1f, 0xa4, 0x32, 0xa9, 0x41, 0xc4, 0x89, 0xdf,
0x63, 0x89, 0xe8, 0x52, 0x1e, 0xe3, 0x03, 0xbd, 0x8f, 0x32, 0x04, 0xdc, 0x05, 0x20, 0x69, 0xbc,
0xe3, 0xbc, 0x64, 0xb2, 0x56, 0x3e, 0xc9, 0x2c, 0xc8, 0x40, 0xc1, 0x6d, 0x50, 0xf2, 0x09, 0x13,
0xef, 0xcb, 0xac, 0x4b, 0xcd, 0xcb, 0xde, 0xb2, 0x64, 0xaf, 0xeb, 0x3d, 0x94, 0x59, 0xe1, 0xf3,
0x60, 0xa9, 0x43, 0x06, 0x0a, 0x58, 0x50, 0xc0, 0x8a, 0xfc, 0xb5, 0x3c, 0x4c, 0xb6, 0x50, 0x6a,
0x83, 0x36, 0x28, 0xfa, 0x58, 0xa1, 0x16, 0x15, 0x0a, 0xa8, 0x37, 0x74, 0x4f, 0x81, 0xb4, 0xc5,
0x73, 0xce, 0x2f, 0x6b, 0x73, 0x77, 0x2f, 0x6b, 0x73, 0xf7, 0x2e, 0x6b, 0x73, 0x77, 0x86, 0x35,
0xeb, 0x7c, 0x58, 0xb3, 0xee, 0x0e, 0x6b, 0xd6, 0xbd, 0x61, 0xcd, 0xfa, 0x7b, 0x58, 0xb3, 0xbe,
0xbf, 0x5f, 0x9b, 0xfb, 0xac, 0x94, 0x66, 0xfc, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb5, 0xd4,
0xd0, 0x40, 0xee, 0x0e, 0x00, 0x00,
}

View file

@ -117,9 +117,7 @@ message ComparisonResult {
optional string status = 5;
repeated string targetState = 6;
repeated string deltaDiffs = 7;
repeated ResourceState resources = 6;
optional string error = 8;
}
@ -140,6 +138,15 @@ message RepositoryList {
repeated Repository items = 2;
}
// ResourceState holds the target state of a resource and live state of a resource
message ResourceState {
optional string targetState = 1;
optional string liveState = 2;
optional string status = 3;
}
// TLSClientConfig contains settings to enable transport layer security
message TLSClientConfig {
// Server should be accessed without verifying the TLS certificate. For testing only.

View file

@ -74,14 +74,20 @@ type ApplicationStatus struct {
// ComparisonResult is a comparison result of application spec and deployed application.
type ComparisonResult struct {
ComparedAt metav1.Time `json:"comparedAt" protobuf:"bytes,1,opt,name=comparedAt"`
ComparedTo ApplicationSource `json:"comparedTo" protobuf:"bytes,2,opt,name=comparedTo"`
Server string `json:"server" protobuf:"bytes,3,opt,name=server"`
Namespace string `json:"namespace" protobuf:"bytes,4,opt,name=namespace"`
Status ComparisonStatus `json:"status" protobuf:"bytes,5,opt,name=status,casttype=ComparisonStatus"`
TargetState []string `json:"targetState,omitempty" protobuf:"bytes,6,opt,name=targetState"`
DeltaDiffs []string `json:"deltaDiffs,omitempty" protobuf:"bytes,7,opt,name=deltaDiffs"`
Error string `json:"error,omitempty" protobuf:"bytes,8,opt,name=error"`
ComparedAt metav1.Time `json:"comparedAt" protobuf:"bytes,1,opt,name=comparedAt"`
ComparedTo ApplicationSource `json:"comparedTo" protobuf:"bytes,2,opt,name=comparedTo"`
Server string `json:"server" protobuf:"bytes,3,opt,name=server"`
Namespace string `json:"namespace" protobuf:"bytes,4,opt,name=namespace"`
Status ComparisonStatus `json:"status" protobuf:"bytes,5,opt,name=status,casttype=ComparisonStatus"`
Resources []ResourceState `json:"resources" protobuf:"bytes,6,opt,name=resources"`
Error string `json:"error,omitempty" protobuf:"bytes,8,opt,name=error"`
}
// ResourceState holds the target state of a resource and live state of a resource
type ResourceState struct {
TargetState string `json:"targetState,omitempty" protobuf:"bytes,1,opt,name=targetState"`
LiveState string `json:"liveState,omitempty" protobuf:"bytes,2,opt,name=liveState"`
Status ComparisonStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
}
// Cluster is the definition of a cluster resource
@ -178,10 +184,10 @@ func (c *Cluster) RESTConfig() *rest.Config {
// TargetObjects deserializes the list of target states into unstructured objectss
func (cr *ComparisonResult) TargetObjects() ([]*unstructured.Unstructured, error) {
objs := make([]*unstructured.Unstructured, len(cr.TargetState))
for i, objStr := range cr.TargetState {
objs := make([]*unstructured.Unstructured, len(cr.Resources))
for i, resState := range cr.Resources {
var obj unstructured.Unstructured
err := json.Unmarshal([]byte(objStr), &obj)
err := json.Unmarshal([]byte(resState.TargetState), &obj)
if err != nil {
return nil, err
}

View file

@ -199,14 +199,9 @@ func (in *ComparisonResult) DeepCopyInto(out *ComparisonResult) {
*out = *in
in.ComparedAt.DeepCopyInto(&out.ComparedAt)
out.ComparedTo = in.ComparedTo
if in.TargetState != nil {
in, out := &in.TargetState, &out.TargetState
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.DeltaDiffs != nil {
in, out := &in.DeltaDiffs, &out.DeltaDiffs
*out = make([]string, len(*in))
if in.Resources != nil {
in, out := &in.Resources, &out.Resources
*out = make([]ResourceState, len(*in))
copy(*out, *in)
}
return
@ -260,6 +255,22 @@ func (in *RepositoryList) DeepCopy() *RepositoryList {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ResourceState) DeepCopyInto(out *ResourceState) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceState.
func (in *ResourceState) DeepCopy() *ResourceState {
if in == nil {
return nil
}
out := new(ResourceState)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TLSClientConfig) DeepCopyInto(out *TLSClientConfig) {
*out = *in