Skip to content

Commit ae9096a

Browse files
authored
Merge pull request #5438 from MrFreezeex/mcsapi-svcexport-condition-fix-reason
KEP 1645: fix ServiceExport conditions
2 parents c4d1483 + 67e1f87 commit ae9096a

File tree

1 file changed

+12
-23
lines changed
  • keps/sig-multicluster/1645-multi-cluster-services-api

1 file changed

+12
-23
lines changed

keps/sig-multicluster/1645-multi-cluster-services-api/README.md

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -437,22 +437,8 @@ type ServiceExportStatus struct {
437437
// +listMapKey=type
438438
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
439439
}
440-
441-
const (
442-
// ServiceExportValid means that the service referenced by this
443-
// service export has been recognized as valid by an mcs-controller.
444-
// This will be false if the service is found to be unexportable
445-
// (ExternalName, not found).
446-
ServiceExportValid = "Valid"
447-
// ServiceExportConflict means that there is a conflict between two
448-
// exports for the same Service. When "True", the condition message
449-
// should contain enough information to diagnose the conflict:
450-
// field(s) under contention, which cluster won, and why.
451-
// Users should not expect detailed per-cluster information in the
452-
// conflict message.
453-
ServiceExportConflict = "Conflict"
454-
)
455440
```
441+
456442
```yaml
457443
apiVersion: multicluster.k8s.io/v1alpha1
458444
kind: ServiceExport
@@ -461,17 +447,20 @@ metadata:
461447
namespace: my-ns
462448
status:
463449
conditions:
464-
- type: Ready
450+
- type: Valid
465451
status: "True"
466-
message: "Service export is ready"
467452
lastTransitionTime: "2020-03-30T01:33:51Z"
468-
- type: Valid
453+
reason: Valid
454+
message: "The ServiceExport and its Service is exportable."
455+
- type: Ready
469456
status: "True"
470-
message: "Service export is valid"
471457
lastTransitionTime: "2020-03-30T01:33:55Z"
458+
reason: Exported
459+
message: "The service has been exported"
472460
- type: Conflict
473461
status: "True"
474462
lastTransitionTime: "2020-03-30T01:33:55Z"
463+
reason: TypeConflict
475464
message: "Conflicting type. Using \"ClusterSetIP\" from oldest service export in \"cluster-1\". 2/5 clusters disagree."
476465
```
477466
@@ -702,8 +691,8 @@ this cluster.
702691
complicate deployments by even attempting to stretch them across clusters.
703692
Instead, regular `ExternalName` type `Services` should be created in each
704693
cluster individually. If a `ServiceExport` is created for an `ExternalName`
705-
service, a condition type `Valid` with a `false` status will be set on the
706-
`ServiceExport`.
694+
service, a condition type `Valid` with reason `InvalidServiceType` and
695+
status `false` will be set on the `ServiceExport`.
707696

708697
#### ClusterSetIP
709698

@@ -1002,8 +991,8 @@ services. If these properties are out of sync for a subset of exported services,
1002991
there is no clear way to determine how a service should be accessed.
1003992
1004993
Conflict resolution policy: **If any properties have conflicting values that can
1005-
not simply be merged, a `ServiceExportConflict` condition will be set on all
1006-
`ServiceExport`s for the conflicted service with a description of the conflict.
994+
not simply be merged, a `Conflict` condition with a `true` status will be set
995+
on all `ServiceExport`s for the conflicted service with a description of the conflict.
1007996
The conflict will be resolved by assigning precedence based on each
1008997
`ServiceExport`'s `creationTimestamp`, from oldest to newest.**
1009998

0 commit comments

Comments
 (0)