Skip to content

Commit 2ee8e3c

Browse files
authored
Fix over-correcting new SE CEL validation (#3320)
Adds regression test and fixes the issue
1 parent 14aff11 commit 2ee8e3c

File tree

6 files changed

+20
-7
lines changed

6 files changed

+20
-7
lines changed

kubernetes/customresourcedefinitions.gen.yaml

Lines changed: 6 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1/service_entry_alias.gen.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1alpha3/service_entry.pb.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

networking/v1alpha3/service_entry.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ option go_package = "istio.io/api/networking/v1alpha3";
438438
// istiostatus-override: ServiceEntryStatus: istio.io/api/networking/v1alpha3
439439
// -->
440440
// +kubebuilder:validation:XValidation:message="only one of WorkloadSelector or Endpoints can be set",rule="(has(self.workloadSelector)?1:0)+(has(self.endpoints)?1:0)<=1"
441-
// +kubebuilder:validation:XValidation:message="CIDR addresses are allowed only for NONE/STATIC resolution types",rule="!(has(self.addresses) && self.addresses.exists(k, k.contains('/')) && (self.resolution != 'STATIC' && self.resolution != 'NONE'))"
441+
// +kubebuilder:validation:XValidation:message="CIDR addresses are allowed only for NONE/STATIC resolution types",rule="!(has(self.addresses) && self.addresses.exists(k, k.contains('/')) && (has(self.resolution) && self.resolution != 'STATIC' && self.resolution != 'NONE'))"
442442
// +kubebuilder:validation:XValidation:message="NONE mode cannot set endpoints",rule="(!has(self.resolution) || self.resolution == 'NONE') ? !has(self.endpoints) : true"
443443
// +kubebuilder:validation:XValidation:message="DNS_ROUND_ROBIN mode cannot have multiple endpoints",rule="(has(self.resolution) && self.resolution == 'DNS_ROUND_ROBIN') ? (!has(self.endpoints) || size(self.endpoints) == 1) : true"
444444
message ServiceEntry {

networking/v1beta1/service_entry_alias.gen.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/testdata/serviceentry-valid.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,13 @@ metadata:
5050
name: partial-wildcard
5151
spec:
5252
hosts: ["*x"]
53+
---
54+
# Weird case but we allow it
55+
apiVersion: networking.istio.io/v1alpha3
56+
kind: ServiceEntry
57+
metadata:
58+
name: none-cidr
59+
spec:
60+
hosts: ["example.com"]
61+
addresses:
62+
- 1.1.1.1/32

0 commit comments

Comments
 (0)