From 5bcf8db525200992d746fe752cd4ad335397d148 Mon Sep 17 00:00:00 2001 From: Mustafa Abdelrahman Date: Tue, 28 Apr 2026 15:45:26 +0200 Subject: [PATCH] Revert "beta to stable" --- cluster/cluster.yaml | 8 +- cluster/config-defaults.yaml | 27 +- .../01-coredns-local/daemonset-coredns.yaml | 2 +- .../02-scheduled-scaling-vpa/cronjob.yaml | 2 +- .../deployment.yaml | 51 +++- .../audittrail-adapter/daemonset.yaml | 2 +- cluster/manifests/deletions.yaml | 9 +- .../status-service-deployment.yaml | 2 +- .../kube-node-decommissioner/cronjob.yaml | 2 +- cluster/manifests/skipper/deployment.yaml | 23 +- cluster/manifests/skipper/hpa-redis.yaml | 56 ++++ cluster/manifests/skipper/hpa-valkey.yaml | 2 + .../skipper/pod-deletion-cost-controller.yaml | 2 +- .../skipper/skipper-redis-service.yaml | 18 ++ cluster/manifests/skipper/skipper-redis.yaml | 113 ++++++++ .../skipper/skipper-valkey-service.yaml | 2 + cluster/manifests/skipper/skipper-valkey.yaml | 2 + .../002-connector-broker-serviceaccount.yaml | 2 +- .../wiz/002-connector-job-serviceaccount.yaml | 2 +- .../wiz/002-sensor-serviceaccount.yaml | 4 +- .../wiz/003-connector-broker-clusterrole.yaml | 2 +- .../manifests/wiz/003-connector-job-role.yaml | 4 +- .../manifests/wiz/003-sensor-clusterrole.yaml | 11 +- .../wiz/004-connector-broker-secrets.yaml | 8 +- cluster/manifests/wiz/004-sensor-secrets.yaml | 7 +- cluster/manifests/wiz/005-connector-job.yaml | 8 +- .../manifests/wiz/connector-deployment.yaml | 6 +- cluster/manifests/wiz/sensor-daemonset.yaml | 15 +- .../node-pools/master-default/userdata.yaml | 4 +- test/e2e/Dockerfile | 2 +- test/e2e/Makefile | 2 +- test/e2e/go.mod | 94 +++--- test/e2e/go.sum | 194 ++++++------- test/e2e/ingress.go | 2 +- test/e2e/shadowtraffic.go | 269 ------------------ test/e2e/util.go | 2 +- 36 files changed, 477 insertions(+), 484 deletions(-) create mode 100644 cluster/manifests/skipper/hpa-redis.yaml create mode 100644 cluster/manifests/skipper/skipper-redis-service.yaml create mode 100644 cluster/manifests/skipper/skipper-redis.yaml delete mode 100644 test/e2e/shadowtraffic.go diff --git a/cluster/cluster.yaml b/cluster/cluster.yaml index 85509eb2d4..47b47ace30 100644 --- a/cluster/cluster.yaml +++ b/cluster/cluster.yaml @@ -399,7 +399,7 @@ Resources: Type: AWS::EKS::Addon Properties: AddonName: vpc-cni - AddonVersion: "v1.21.1-eksbuild.7" + AddonVersion: "v1.21.1-eksbuild.3" ClusterName: !Ref EKSCluster ConfigurationValues: !Sub | {{- if eq .Cluster.ConfigItems.aws_vpc_cni_custom_networking "true" }} @@ -434,7 +434,7 @@ Resources: Type: AWS::EKS::Addon Properties: AddonName: eks-pod-identity-agent - AddonVersion: "v1.3.10-eksbuild.3" + AddonVersion: "v1.3.10-eksbuild.2" ClusterName: !Ref EKSCluster ConfigurationValues: | { @@ -447,7 +447,7 @@ Resources: Type: AWS::EKS::Addon Properties: AddonName: kube-proxy - AddonVersion: "v1.35.3-eksbuild.5" + AddonVersion: "v1.35.0-eksbuild.2" ClusterName: !Ref EKSCluster ConfigurationValues: | { @@ -461,7 +461,7 @@ Resources: Type: AWS::EKS::Addon Properties: AddonName: eks-node-monitoring-agent - AddonVersion: "v1.6.3-eksbuild.1" + AddonVersion: "v1.6.1-eksbuild.1" ClusterName: !Ref EKSCluster ConfigurationValues: | { diff --git a/cluster/config-defaults.yaml b/cluster/config-defaults.yaml index 4f19f894d5..577b7c7670 100644 --- a/cluster/config-defaults.yaml +++ b/cluster/config-defaults.yaml @@ -220,10 +220,34 @@ skipper_idle_timeout_server: "352s" skipper_termination_grace_period: "392" # skipper redis settings -skipper_redis_cleanup_enabled: "true" +skipper_redis_cleanup_enabled: "false" # if set to true we should be able to cleanup all of the cfg items below +skipper_redis_cpu: "100m" +skipper_redis_memory: "512Mi" +skipper_redis_dial_timeout: "25ms" +skipper_redis_pool_timeout: "250ms" +skipper_redis_read_timeout: "25ms" +skipper_redis_write_timeout: "25ms" +skipper_redis_min_conns: 25 +skipper_redis_max_conns: 100 +skipper_ingress_redis_swarm_enabled: "true" +skipper_ingress_redis_target_average_utilization_cpu: "30" +skipper_ingress_redis_target_average_utilization_memory: "60" +skipper_ingress_redis_min_replicas: "1" +skipper_ingress_redis_max_replicas: "100" +skipper_ingress_redis_cluster_scaling_schedules: "" +skipper_ingress_redis_hpa_scale_down_wait: "600" # requires cleanup in cluster.yaml skipper_ingress_redis_swim_enabled: "false" +# to switch redis/valkey force and back +# switch to redis: "redis" +# switch to valkey: "valkey" +{{if eq .Cluster.Environment "production"}} +skipper_ingress_swarm_type: "redis" +{{else}} +skipper_ingress_swarm_type: "valkey" +{{end}} + # skipper valkey settings skipper_valkey_cpu: "100m" skipper_valkey_memory: "512Mi" @@ -460,7 +484,6 @@ skipper_open_policy_agent_enabled: "false" skipper_open_policy_agent_styra_token: "" skipper_open_policy_agent_data_preprocessing_optimization_enabled: "true" skipper_open_policy_agent_preloading_enabled: "true" -skipper_open_policy_agent_print_tracing_enabled: "true" skipper_open_policy_agent_decision_log_export_enabled: "false" skipper_open_policy_agent_console_logs_enabled: "false" skipper_open_policy_agent_decision_log_s3_endpoint: "" diff --git a/cluster/manifests/01-coredns-local/daemonset-coredns.yaml b/cluster/manifests/01-coredns-local/daemonset-coredns.yaml index c71800a3fe..8799368dbe 100644 --- a/cluster/manifests/01-coredns-local/daemonset-coredns.yaml +++ b/cluster/manifests/01-coredns-local/daemonset-coredns.yaml @@ -111,7 +111,7 @@ spec: name: unbound-socket readOnly: false - name: coredns - image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/coredns:1.14.3-master-34 + image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/coredns:1.14.2-master-33 args: [ "-conf", "/etc/coredns/Corefile" ] env: - name: ZONE diff --git a/cluster/manifests/02-scheduled-scaling-vpa/cronjob.yaml b/cluster/manifests/02-scheduled-scaling-vpa/cronjob.yaml index 6d1d72643e..26445b14a2 100644 --- a/cluster/manifests/02-scheduled-scaling-vpa/cronjob.yaml +++ b/cluster/manifests/02-scheduled-scaling-vpa/cronjob.yaml @@ -33,5 +33,5 @@ spec: restartPolicy: Never containers: - name: main - image: container-registry.zalando.net/cloud-platform/scheduled-scaling-vpa:main-8 + image: container-registry.zalando.net/cloud-platform/scheduled-scaling-vpa:main-7 {{- end }} diff --git a/cluster/manifests/03-skipper-validation-webhook/deployment.yaml b/cluster/manifests/03-skipper-validation-webhook/deployment.yaml index 321c4f15e5..a89ee79c40 100644 --- a/cluster/manifests/03-skipper-validation-webhook/deployment.yaml +++ b/cluster/manifests/03-skipper-validation-webhook/deployment.yaml @@ -54,6 +54,43 @@ spec: priorityClassName: system-cluster-critical serviceAccountName: skipper-validation-webhook containers: +{{- if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "redis" }} + - name: redis-sidecar + image: container-registry.zalando.net/library/redis-7-alpine:7.2-alpine-20250805 + args: + - /usr/local/bin/docker-entrypoint.sh + - --save + - "" # Disable persistence for sidecar use + - --maxmemory + - "256mb" + - --maxmemory-policy + - "allkeys-lru" + ports: + - containerPort: 6379 + protocol: TCP + name: redis + readinessProbe: + exec: + command: + - redis-cli + - ping + failureThreshold: 3 + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "100m" + memory: "128Mi" + lifecycle: + preStop: + sleep: + seconds: 10 +{{- else if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "valkey" }} - name: valkey-sidecar image: container-registry.zalando.net/library/valkey-9-alpine:9-alpine3.22-20260414 args: @@ -89,8 +126,9 @@ spec: preStop: sleep: seconds: 10 +{{ end }} - name: skipper-admission-webhook - image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/skipper:v0.24.80 + image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/skipper:v0.24.71 env: {{ if or (eq .Cluster.ConfigItems.skipper_local_tokeninfo "production") (eq .Cluster.ConfigItems.skipper_local_tokeninfo "bridge") }} - name: LOCAL_TOKENINFO @@ -152,9 +190,20 @@ spec: - "-enable-ratelimits" - "-enable-swarm" - "-cluster-ratelimit-max-group-shards={{ .Cluster.ConfigItems.skipper_cluster_ratelimit_max_group_shards }}" +{{- if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "valkey" }} - "-swarm-valkey-conn-timeout=5s" - "-swarm-valkey-update-interval=720h" - "-swarm-valkey-urls=127.0.0.1:6379" +{{- else if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "redis" }} + - "-swarm-redis-dial-timeout=5s" + - "-swarm-redis-pool-timeout=5s" + - "-swarm-redis-read-timeout=5s" + - "-swarm-redis-write-timeout=5s" + - "-swarm-redis-heartbeat-frequency=720h" + - "-swarm-redis-min-conns=1" + - "-swarm-redis-max-conns=1" + - "-swarm-redis-urls=127.0.0.1:6379" +{{ end }} - "-lua-sources={{ .Cluster.ConfigItems.skipper_lua_sources }}" - "-default-filters-dir=/etc/config/default-filters" - '-default-filters-prepend={{ .Cluster.ConfigItems.skipper_default_filters }}' diff --git a/cluster/manifests/audittrail-adapter/daemonset.yaml b/cluster/manifests/audittrail-adapter/daemonset.yaml index 30f802644d..fb0c323647 100644 --- a/cluster/manifests/audittrail-adapter/daemonset.yaml +++ b/cluster/manifests/audittrail-adapter/daemonset.yaml @@ -34,7 +34,7 @@ spec: hostNetwork: true containers: - name: audittrail-adapter - image: container-registry.zalando.net/teapot/audittrail-adapter:master-109 + image: container-registry.zalando.net/teapot/audittrail-adapter:master-107 env: - name: AWS_REGION value: "{{ .Cluster.Region }}" diff --git a/cluster/manifests/deletions.yaml b/cluster/manifests/deletions.yaml index 0eddb85ef6..2dff17552d 100644 --- a/cluster/manifests/deletions.yaml +++ b/cluster/manifests/deletions.yaml @@ -304,7 +304,7 @@ post_apply: - name: wiz-sensor kind: ServiceAccount namespace: wiz -- name: wiz-sensor-api-token +- name: wiz-sensor-apikey kind: Secret namespace: wiz - name: wiz-sensor @@ -314,13 +314,6 @@ post_apply: kind : ClusterRoleBinding namespace: wiz {{- end }} -# cleanup unused wiz secrets, regardless of sensor/connector status -- name: wiz-sensor-apikey - kind: Secret - namespace: wiz -- name: custom-wiz-sensor-api-token - kind: Secret - namespace: wiz {{- if and (ne .Cluster.ConfigItems.wiz_enable_runtime_connector_broker "true") (ne .Cluster.ConfigItems.wiz_enable_runtime_sensor "true") }} - name: wiz kind: Namespace diff --git a/cluster/manifests/deployment-service/status-service-deployment.yaml b/cluster/manifests/deployment-service/status-service-deployment.yaml index 4c865ef273..cc9e7ad749 100644 --- a/cluster/manifests/deployment-service/status-service-deployment.yaml +++ b/cluster/manifests/deployment-service/status-service-deployment.yaml @@ -1,4 +1,4 @@ -# {{ $image := "container-registry.zalando.net/teapot/deployment-status-service:master-309" }} +# {{ $image := "container-registry.zalando.net/teapot/deployment-status-service:master-307" }} # {{ $version := index (split $image ":") 1 }} apiVersion: apps/v1 diff --git a/cluster/manifests/kube-node-decommissioner/cronjob.yaml b/cluster/manifests/kube-node-decommissioner/cronjob.yaml index d36e7cb14b..3bbee3f236 100644 --- a/cluster/manifests/kube-node-decommissioner/cronjob.yaml +++ b/cluster/manifests/kube-node-decommissioner/cronjob.yaml @@ -29,7 +29,7 @@ spec: restartPolicy: Never containers: - name: kube-node-decommissioner - image: container-registry.zalando.net/teapot/kube-node-decommissioner:main-20 + image: container-registry.zalando.net/teapot/kube-node-decommissioner:main-19 resources: limits: cpu: "{{.Cluster.ConfigItems.kube_node_decommissioner_cpu}}" diff --git a/cluster/manifests/skipper/deployment.yaml b/cluster/manifests/skipper/deployment.yaml index f0956e6ee4..1f2e0dccff 100644 --- a/cluster/manifests/skipper/deployment.yaml +++ b/cluster/manifests/skipper/deployment.yaml @@ -1,7 +1,7 @@ {{/* image-updater-bot detects *image variables so use name with suffix to disable it for the main image */}} {{ $main_image_updated_manually := "container-registry.zalando.net/teapot/skipper-internal:v0.24.74-1406" }} -{{ $canary_image := "container-registry.zalando.net/teapot/skipper-internal:v0.24.80-1412" }} +{{ $canary_image := "container-registry.zalando.net/teapot/skipper-internal:v0.24.74-1406" }} {{/* Allow to override manually canary image by config item */}} {{ if ne .Cluster.ConfigItems.skipper_ingress_canary_image "" }} @@ -223,7 +223,7 @@ spec: - "-validate-query={{ .Cluster.ConfigItems.skipper_validate_query }}" - "-validate-query-log={{ .Cluster.ConfigItems.skipper_validate_query_log }}" {{ if eq .Cluster.ConfigItems.skipper_routesrv_enabled "exec" }} -{{ if ne .name "skipper-ingress-canary" }} +{{ if ne "{{ .name }}" "skipper-ingress-canary" }} - "-routes-urls=http://skipper-ingress-routesrv.kube-system.svc.cluster.local/routes" {{ end }} - "-normalize-host" @@ -281,8 +281,18 @@ spec: - "-max-audit-body=0" - "-enable-swarm" - "-cluster-ratelimit-max-group-shards={{ .Cluster.ConfigItems.skipper_cluster_ratelimit_max_group_shards }}" +{{ if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "redis" }} + - "-swarm-redis-dial-timeout={{ .Cluster.ConfigItems.skipper_redis_dial_timeout }}" + - "-swarm-redis-pool-timeout={{ .Cluster.ConfigItems.skipper_redis_pool_timeout }}" + - "-swarm-redis-read-timeout={{ .Cluster.ConfigItems.skipper_redis_read_timeout }}" + - "-swarm-redis-write-timeout={{ .Cluster.ConfigItems.skipper_redis_write_timeout }}" + - "-swarm-redis-min-conns={{ .Cluster.ConfigItems.skipper_redis_min_conns }}" + - "-swarm-redis-max-conns={{ .Cluster.ConfigItems.skipper_redis_max_conns }}" + - "-swarm-redis-remote=http://skipper-ingress-routesrv.kube-system.svc.cluster.local/swarm/redis/shards" +{{ else if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "valkey" }} - "-swarm-valkey-conn-timeout={{ .Cluster.ConfigItems.skipper_valkey_conn_timeout }}" - "-swarm-valkey-remote=http://skipper-ingress-routesrv.kube-system.svc.cluster.local/swarm/valkey/shards" +{{ end }} - "-histogram-metric-buckets=.0001,.00025,.0005,.00075,.001,.0025,.005,.0075,.01,.025,.05,.075,.1,.2,.3,.4,.5,.75,1,2,3,4,5,7,10,15,20,30,60,120,300,600" {{if ne .Cluster.ConfigItems.skipper_ingress_response_size_buckets ""}} - "-response-size-buckets={{ .Cluster.ConfigItems.skipper_ingress_response_size_buckets }}" @@ -384,9 +394,6 @@ spec: - "-open-policy-agent-envoy-metadata=/etc/skipper/open-policy-agent/envoymetadata.json" - "-enable-open-policy-agent-data-preprocessing-optimization={{ .Cluster.ConfigItems.skipper_open_policy_agent_data_preprocessing_optimization_enabled }}" - "-enable-open-policy-agent-preloading={{ .Cluster.ConfigItems.skipper_open_policy_agent_preloading_enabled }}" -{{ if eq .Cluster.ConfigItems.skipper_open_policy_agent_print_tracing_enabled "true" }} - - "-enable-open-policy-agent-print-tracing" -{{ end }} {{ end }} {{ if or (eq .Cluster.ConfigItems.nlb_switch "pre") (eq .Cluster.ConfigItems.nlb_switch "exec") }} - "-forwarded-headers=X-Forwarded-For,X-Forwarded-Proto=https,X-Forwarded-Port=443" @@ -659,9 +666,15 @@ spec: - '-default-filters-append={{ .Cluster.ConfigItems.skipper_default_filters_authentication }}' - '-default-filters-append={{ .Cluster.ConfigItems.skipper_default_filters_append }}' - "-enable-swarm" +{{ if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "redis" }} + - "-kubernetes-redis-service-namespace=kube-system" + - "-kubernetes-redis-service-name=skipper-ingress-redis" + - "-kubernetes-redis-service-port=6379" +{{ else if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "valkey" }} - "-kubernetes-valkey-service-namespace=kube-system" - "-kubernetes-valkey-service-name=skipper-ingress-valkey" - "-kubernetes-valkey-service-port=6379" +{{ end }} {{ if eq .Cluster.ConfigItems.skipper_oauth2_ui_login "true" }} - "-enable-oauth2-grant-flow" - "-oauth2-callback-path={{ .Cluster.ConfigItems.skipper_oauth2_redirect_uri_path }}" diff --git a/cluster/manifests/skipper/hpa-redis.yaml b/cluster/manifests/skipper/hpa-redis.yaml new file mode 100644 index 0000000000..17e824ff26 --- /dev/null +++ b/cluster/manifests/skipper/hpa-redis.yaml @@ -0,0 +1,56 @@ +{{- if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "redis" }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: skipper-ingress-redis + namespace: kube-system + labels: + application: skipper-ingress-redis +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: StatefulSet + name: skipper-ingress-redis + minReplicas: {{ .Cluster.ConfigItems.skipper_ingress_redis_min_replicas }} + maxReplicas: {{ .Cluster.ConfigItems.skipper_ingress_redis_max_replicas }} + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Cluster.ConfigItems.skipper_ingress_redis_target_average_utilization_cpu }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Cluster.ConfigItems.skipper_ingress_redis_target_average_utilization_memory }} +{{ if .Cluster.ConfigItems.skipper_ingress_redis_cluster_scaling_schedules }} + {{ range split .Cluster.ConfigItems.skipper_ingress_redis_cluster_scaling_schedules "," }} + {{ $name_target := split . "=" }} + - type: Object + object: + describedObject: + apiVersion: zalando.org/v1 + kind: ClusterScalingSchedule + name: {{ index $name_target 0 }} + metric: + name: {{ index $name_target 0 }} + target: + averageValue: {{ index $name_target 1 }} + type: AverageValue + {{ end }} +{{ end }} + behavior: + scaleDown: + stabilizationWindowSeconds: {{ .Cluster.ConfigItems.skipper_ingress_redis_hpa_scale_down_wait }} + policies: + - type: Pods + value: 10 + periodSeconds: 60 + - type: Percent + value: 100 + periodSeconds: 60 + selectPolicy: Min +{{ end }} diff --git a/cluster/manifests/skipper/hpa-valkey.yaml b/cluster/manifests/skipper/hpa-valkey.yaml index bf79e271a6..c2f523ea2b 100644 --- a/cluster/manifests/skipper/hpa-valkey.yaml +++ b/cluster/manifests/skipper/hpa-valkey.yaml @@ -1,3 +1,4 @@ +{{- if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "valkey" }} apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: @@ -53,3 +54,4 @@ spec: value: 100 periodSeconds: 60 selectPolicy: Min +{{ end }} diff --git a/cluster/manifests/skipper/pod-deletion-cost-controller.yaml b/cluster/manifests/skipper/pod-deletion-cost-controller.yaml index 74fe32dcf6..118481f5a0 100644 --- a/cluster/manifests/skipper/pod-deletion-cost-controller.yaml +++ b/cluster/manifests/skipper/pod-deletion-cost-controller.yaml @@ -35,7 +35,7 @@ spec: - -resync - -resync-interval={{ .Cluster.ConfigItems.skipper_pod_deletion_cost_controller_resync_interval }} # {{ end }} - image: container-registry.zalando.net/gwproxy/pod-deletion-cost-controller:main-37 + image: container-registry.zalando.net/gwproxy/pod-deletion-cost-controller:main-35 name: pod-deletion-cost-controller terminationMessagePolicy: FallbackToLogsOnError ports: diff --git a/cluster/manifests/skipper/skipper-redis-service.yaml b/cluster/manifests/skipper/skipper-redis-service.yaml new file mode 100644 index 0000000000..52d169a370 --- /dev/null +++ b/cluster/manifests/skipper/skipper-redis-service.yaml @@ -0,0 +1,18 @@ +{{- if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "redis" }} +apiVersion: v1 +kind: Service +metadata: + labels: + application: skipper-ingress-redis + name: skipper-ingress-redis + namespace: kube-system +spec: + clusterIP: None + ports: + - port: 6379 + protocol: TCP + targetPort: 6379 + selector: + application: skipper-ingress-redis + type: ClusterIP +{{ end }} diff --git a/cluster/manifests/skipper/skipper-redis.yaml b/cluster/manifests/skipper/skipper-redis.yaml new file mode 100644 index 0000000000..6e4a4ddb8e --- /dev/null +++ b/cluster/manifests/skipper/skipper-redis.yaml @@ -0,0 +1,113 @@ +# {{ $image := "container-registry.zalando.net/library/redis-7-alpine:7.2-alpine-20250805" }} +# {{ $version := index (split $image ":") 1 }} +{{- if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "redis" }} +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + application: skipper-ingress-redis + version: "{{ $version }}" + annotations: + zalando.org/update-using-hpa-replicas: skipper-ingress-redis + name: skipper-ingress-redis + namespace: kube-system +spec: + podManagementPolicy: Parallel + selector: + matchLabels: + statefulset: skipper-ingress-redis + serviceName: skipper-ingress-redis + template: + metadata: + labels: + statefulset: skipper-ingress-redis + application: skipper-ingress-redis + version: "{{ $version }}" + annotations: + cluster-autoscaler.kubernetes.io/safe-to-evict: "false" + karpenter.sh/do-not-disrupt: "true" + logging/destination: "{{ .Cluster.ConfigItems.log_destination_both }}" +{{- if eq .Cluster.ConfigItems.skipper_topology_spread_enabled "true" }} + zalando.org/topology-spread-timeout: 7m +{{- end }} + spec: +{{- if eq .Cluster.ConfigItems.skipper_topology_spread_enabled "true" }} + topologySpreadConstraints: + - maxSkew: 1 + minDomains: 3 + topologyKey: topology.kubernetes.io/zone + whenUnsatisfiable: DoNotSchedule + labelSelector: + matchLabels: + statefulset: skipper-ingress-redis +{{- end }} + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - topologyKey: kubernetes.io/hostname + labelSelector: + matchExpressions: + - key: application + operator: In + values: + - skipper-ingress-redis + nodeAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + preference: + matchExpressions: + - key: node.kubernetes.io/instance-type + operator: In + values: + - c7i.large + - m7i.large + - weight: 50 + preference: + matchExpressions: + - key: node.kubernetes.io/instance-type + operator: In + values: + - c6i.large + - m6i.large + priorityClassName: "{{ .Cluster.ConfigItems.system_priority_class }}" + terminationGracePeriodSeconds: 45 + containers: + - image: "{{ $image }}" + name: skipper-ingress-redis + args: + - /usr/local/bin/docker-entrypoint.sh + - --save + - "" + ports: + - containerPort: 6379 + protocol: TCP + readinessProbe: + exec: + command: + - redis-cli + - ping + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 15 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: {{ .Cluster.ConfigItems.skipper_redis_cpu }} + memory: {{ .Cluster.ConfigItems.skipper_redis_memory }} + lifecycle: + preStop: + sleep: + seconds: 30 + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler +{{ if eq .Cluster.ConfigItems.enable_dedicate_nodepool_skipper_redis "true"}} + nodeSelector: + zalando.org/dedicated: skipper-ingress-redis + tolerations: + - key: "zalando.org/dedicated" + operator: Exists + effect: NoSchedule +{{ end }} +{{- end }} diff --git a/cluster/manifests/skipper/skipper-valkey-service.yaml b/cluster/manifests/skipper/skipper-valkey-service.yaml index 8719ed5601..57abff329d 100644 --- a/cluster/manifests/skipper/skipper-valkey-service.yaml +++ b/cluster/manifests/skipper/skipper-valkey-service.yaml @@ -1,3 +1,4 @@ +{{- if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "valkey" }} apiVersion: v1 kind: Service metadata: @@ -16,3 +17,4 @@ spec: application: skipper-ingress component: valkey type: ClusterIP +{{ end }} diff --git a/cluster/manifests/skipper/skipper-valkey.yaml b/cluster/manifests/skipper/skipper-valkey.yaml index 231dde60f8..713c632b37 100644 --- a/cluster/manifests/skipper/skipper-valkey.yaml +++ b/cluster/manifests/skipper/skipper-valkey.yaml @@ -1,5 +1,6 @@ # {{ $image := "container-registry.zalando.net/library/valkey-9-alpine:9-alpine3.22-20260414" }} # {{ $version := index (split $image ":") 1 }} +{{- if eq .Cluster.ConfigItems.skipper_ingress_swarm_type "valkey" }} apiVersion: apps/v1 kind: StatefulSet metadata: @@ -115,3 +116,4 @@ spec: operator: Exists effect: NoSchedule {{ end }} +{{- end }} diff --git a/cluster/manifests/wiz/002-connector-broker-serviceaccount.yaml b/cluster/manifests/wiz/002-connector-broker-serviceaccount.yaml index 6828eb5066..1d16d5d738 100644 --- a/cluster/manifests/wiz/002-connector-broker-serviceaccount.yaml +++ b/cluster/manifests/wiz/002-connector-broker-serviceaccount.yaml @@ -19,7 +19,7 @@ metadata: name: wiz-cluster-reader namespace: "wiz" labels: - helm.sh/chart: wiz-kubernetes-connector-4.0.4 + helm.sh/chart: wiz-kubernetes-connector-4.0.3 application: "wiz" component: "connector" {{end}} diff --git a/cluster/manifests/wiz/002-connector-job-serviceaccount.yaml b/cluster/manifests/wiz/002-connector-job-serviceaccount.yaml index 4b51954d8c..b9b91f15e0 100644 --- a/cluster/manifests/wiz/002-connector-job-serviceaccount.yaml +++ b/cluster/manifests/wiz/002-connector-job-serviceaccount.yaml @@ -7,7 +7,7 @@ metadata: name: wiz-auto-modify-connector namespace: "wiz" labels: - helm.sh/chart: wiz-kubernetes-connector-4.0.4 + helm.sh/chart: wiz-kubernetes-connector-4.0.3 application: "wiz" component: "connector" {{ end }} diff --git a/cluster/manifests/wiz/002-sensor-serviceaccount.yaml b/cluster/manifests/wiz/002-sensor-serviceaccount.yaml index ef6a621df5..e12370ef80 100644 --- a/cluster/manifests/wiz/002-sensor-serviceaccount.yaml +++ b/cluster/manifests/wiz/002-sensor-serviceaccount.yaml @@ -1,13 +1,13 @@ {{ if eq .Cluster.ConfigItems.wiz_enable_runtime_sensor "true"}} --- -# Source: wiz-kubernetes-integration/charts/wiz-sensor/templates/serviceaccount.yaml +# Source: wiz-sensor/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: name: wiz-sensor namespace: wiz labels: - helm.sh/chart: wiz-sensor-1.0.10341 + helm.sh/chart: wiz-sensor-1.0.8831 application: "wiz" component: "sensor" {{end}} diff --git a/cluster/manifests/wiz/003-connector-broker-clusterrole.yaml b/cluster/manifests/wiz/003-connector-broker-clusterrole.yaml index 7b4ee9a8f7..1e2a2f4d88 100644 --- a/cluster/manifests/wiz/003-connector-broker-clusterrole.yaml +++ b/cluster/manifests/wiz/003-connector-broker-clusterrole.yaml @@ -8,7 +8,7 @@ kind: ClusterRoleBinding metadata: name: wiz-cluster-reader labels: - helm.sh/chart: wiz-kubernetes-connector-4.0.4 + helm.sh/chart: wiz-kubernetes-connector-4.0.3 application: "wiz" component: "connector" roleRef: diff --git a/cluster/manifests/wiz/003-connector-job-role.yaml b/cluster/manifests/wiz/003-connector-job-role.yaml index 12359811b9..62d39b58b2 100644 --- a/cluster/manifests/wiz/003-connector-job-role.yaml +++ b/cluster/manifests/wiz/003-connector-job-role.yaml @@ -7,7 +7,7 @@ metadata: name: wiz-auto-modify-connector namespace: "wiz" labels: - helm.sh/chart: wiz-kubernetes-connector-4.0.4 + helm.sh/chart: wiz-kubernetes-connector-4.0.3 application: "wiz" component: "connector" rules: @@ -29,7 +29,7 @@ metadata: name: wiz-auto-modify-connector namespace: "wiz" labels: - helm.sh/chart: wiz-kubernetes-connector-4.0.4 + helm.sh/chart: wiz-kubernetes-connector-4.0.3 application: "wiz" component: "connector" roleRef: diff --git a/cluster/manifests/wiz/003-sensor-clusterrole.yaml b/cluster/manifests/wiz/003-sensor-clusterrole.yaml index f6a937688c..610f4e3aac 100644 --- a/cluster/manifests/wiz/003-sensor-clusterrole.yaml +++ b/cluster/manifests/wiz/003-sensor-clusterrole.yaml @@ -1,12 +1,12 @@ {{ if eq .Cluster.ConfigItems.wiz_enable_runtime_sensor "true"}} --- -# Source: wiz-kubernetes-integration/charts/wiz-sensor/templates/clusterrole.yaml +# Source: wiz-sensor/templates/clusterrole.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: wiz-sensor labels: - helm.sh/chart: wiz-sensor-1.0.10341 + helm.sh/chart: wiz-sensor-1.0.8831 application: "wiz" component: "sensor" rules: @@ -17,17 +17,18 @@ rules: - apiGroups: ["", "apps", "batch"] resources: [ "namespaces", "nodes", "daemonsets", "replicasets", "deployments", - "jobs", "cronjobs", "statefulsets", "replicationcontrollers", "serviceaccounts" + "jobs", "cronjobs", "statefulsets", "replicationcontrollers", "serviceaccounts", + "nodes/proxy" ] verbs: ["get", "list", "watch"] --- -# Source: wiz-kubernetes-integration/charts/wiz-kubernetes-connector/templates/service-account-cluster-reader.yaml +# Source: wiz-sensor/templates/clusterrolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: wiz-sensor labels: - helm.sh/chart: wiz-sensor-1.0.10341 + helm.sh/chart: wiz-sensor-1.0.8831 application: "wiz" component: "sensor" subjects: diff --git a/cluster/manifests/wiz/004-connector-broker-secrets.yaml b/cluster/manifests/wiz/004-connector-broker-secrets.yaml index 9f19faee55..70bcdb5b18 100644 --- a/cluster/manifests/wiz/004-connector-broker-secrets.yaml +++ b/cluster/manifests/wiz/004-connector-broker-secrets.yaml @@ -9,7 +9,7 @@ metadata: name: wiz-connector-connector namespace: "wiz" labels: - helm.sh/chart: wiz-kubernetes-connector-4.0.4 + helm.sh/chart: wiz-kubernetes-connector-4.0.3 application: "wiz" component: "connector" type: Opaque @@ -25,21 +25,21 @@ metadata: name: wiz-cluster-reader-token namespace: "wiz" labels: - helm.sh/chart: wiz-kubernetes-connector-4.0.4 + helm.sh/chart: wiz-kubernetes-connector-4.0.3 application: "wiz" component: "connector" annotations: kubernetes.io/service-account.name: wiz-cluster-reader type: kubernetes.io/service-account-token --- -# Source: wiz-kubernetes-integration/templates/secrets-wiz-api-token.yaml +# Source: wiz-sensor/templates/secrets-wiz-api-token.yaml apiVersion: v1 kind: Secret metadata: name: wiz-api-token namespace: wiz labels: - helm.sh/chart: wiz-kubernetes-integration-0.3.32 + helm.sh/chart: wiz-kubernetes-integration-0.3.6 application: "wiz" component: "connector" type: Opaque diff --git a/cluster/manifests/wiz/004-sensor-secrets.yaml b/cluster/manifests/wiz/004-sensor-secrets.yaml index 726247a37c..2875079645 100644 --- a/cluster/manifests/wiz/004-sensor-secrets.yaml +++ b/cluster/manifests/wiz/004-sensor-secrets.yaml @@ -1,14 +1,13 @@ {{ if eq .Cluster.ConfigItems.wiz_enable_runtime_sensor "true"}} --- -# Source: wiz-kubernetes-integration/templates/secrets-wiz-api-token.yaml +# Source: wiz-sensor/templates/secrets-wiz-api-token.yaml apiVersion: v1 kind: Secret metadata: - # custom name to allow sensor and connector to deploy separately - name: wiz-sensor-api-token + name: custom-wiz-sensor-api-token namespace: wiz labels: - helm.sh/chart: wiz-kubernetes-integration-0.3.32 + helm.sh/chart: wiz-kubernetes-integration-0.3.6 application: "wiz" component: "sensor" type: Opaque diff --git a/cluster/manifests/wiz/005-connector-job.yaml b/cluster/manifests/wiz/005-connector-job.yaml index 8b30b76b9e..b1334fe42d 100644 --- a/cluster/manifests/wiz/005-connector-job.yaml +++ b/cluster/manifests/wiz/005-connector-job.yaml @@ -7,7 +7,7 @@ metadata: name: wiz-kubernetes-connector-create-connector namespace: "wiz" labels: - helm.sh/chart: wiz-kubernetes-connector-4.0.4 + helm.sh/chart: wiz-kubernetes-connector-4.0.3 application: "wiz" component: "connector" job: "wiz-connector-agent" @@ -21,7 +21,7 @@ spec: template: metadata: labels: - helm.sh/chart: wiz-kubernetes-connector-4.0.4 + helm.sh/chart: wiz-kubernetes-connector-4.0.3 application: "wiz" component: "connector" job: "wiz-connector-agent" @@ -30,7 +30,7 @@ spec: restartPolicy: "Never" securityContext: runAsNonRoot: true - runAsUser: 10000 + runAsUser: 1000 volumes: - name: api-client secret: @@ -46,7 +46,7 @@ spec: runAsGroup: 10000 runAsNonRoot: true runAsUser: 10000 - image: "container-registry.zalando.net/secops-systems/wiz-broker:3.0.9-main-9" + image: "container-registry.zalando.net/secops-systems/wiz-broker:3.0.3-main-8" imagePullPolicy: IfNotPresent command: - "wiz-broker" diff --git a/cluster/manifests/wiz/connector-deployment.yaml b/cluster/manifests/wiz/connector-deployment.yaml index 2b2312000e..249327e14e 100644 --- a/cluster/manifests/wiz/connector-deployment.yaml +++ b/cluster/manifests/wiz/connector-deployment.yaml @@ -27,7 +27,7 @@ spec: serviceAccountName: wiz-broker securityContext: runAsNonRoot: true - runAsUser: 10000 + runAsUser: 1000 volumes: - name: api-client secret: @@ -49,7 +49,7 @@ spec: runAsGroup: 10000 runAsNonRoot: true runAsUser: 10000 - image: "container-registry.zalando.net/secops-systems/wiz-broker:3.0.9-main-9" + image: "container-registry.zalando.net/secops-systems/wiz-broker:3.0.3-main-8" imagePullPolicy: IfNotPresent volumeMounts: - name: api-client @@ -89,7 +89,7 @@ spec: - name: WIZ_CHART_VERSION value: "3.0.3" - name: WIZ_IMAGE_REF - value: "container-registry.zalando.net/secops-systems/wiz-broker:3.0.9-main-9" + value: "container-registry.zalando.net/secops-systems/wiz-broker:3.0.3-main-8" - name: WIZ_USE_HATUNNEL # toggle WebSocket usage on value: "1" - name: WIZ_BROKER_HEARTBEAT_DISABLE_CLUSTER_ID diff --git a/cluster/manifests/wiz/sensor-daemonset.yaml b/cluster/manifests/wiz/sensor-daemonset.yaml index fcf107e910..8ada6a2648 100644 --- a/cluster/manifests/wiz/sensor-daemonset.yaml +++ b/cluster/manifests/wiz/sensor-daemonset.yaml @@ -1,14 +1,13 @@ {{ if eq .Cluster.ConfigItems.wiz_enable_runtime_sensor "true"}} --- -# Source: wiz-kubernetes-integration/charts/wiz-sensor/templates/daemonset.yaml +# Source: wiz-sensor/templates/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: wiz-sensor labels: - helm.sh/chart: wiz-sensor-1.0.10341 + helm.sh/chart: wiz-sensor-1.0.8831 image/tag: v1 - dsimage/tag: v1 application: "wiz" component: "sensor" daemonset: "wiz-sensor" @@ -24,7 +23,7 @@ spec: template: metadata: labels: - helm.sh/chart: wiz-sensor-1.0.10341 + helm.sh/chart: wiz-sensor-1.0.8831 image/tag: v1 application: "wiz" component: "sensor" @@ -51,7 +50,7 @@ spec: restartPolicy: Always containers: - name: wiz-sensor - image: container-registry.zalando.net/secops-systems/wiz-sensor:1.0.10314-main-9 + image: container-registry.zalando.net/secops-systems/wiz-sensor:1.0.8831-main-8 imagePullPolicy: IfNotPresent securityContext: capabilities: @@ -162,7 +161,7 @@ spec: value: "true" {{- end }} - name: HELM_CHART_VERSION - value: 1.0.10341 + value: 1.0.8831 - name: ALLOW_KUBELET_COMMUNICATION value: "false" - name: FORCE_KUBELET_COMMUNICATION @@ -193,7 +192,7 @@ spec: type: DirectoryOrCreate - name: api-client-secret secret: - secretName: wiz-sensor-api-token + secretName: custom-wiz-sensor-api-token items: - key: clientId path: clientId @@ -201,7 +200,7 @@ spec: path: clientToken - name: api-endpoint-name-secret secret: - secretName: wiz-sensor-api-token + secretName: custom-wiz-sensor-api-token optional: true items: - key: clientEndpoint diff --git a/cluster/node-pools/master-default/userdata.yaml b/cluster/node-pools/master-default/userdata.yaml index 991ca4ea14..a23c27128c 100644 --- a/cluster/node-pools/master-default/userdata.yaml +++ b/cluster/node-pools/master-default/userdata.yaml @@ -406,7 +406,7 @@ write_files: value: {{ .Cluster.ConfigItems.apiserver_business_partner_ids }} {{ end }} - name: skipper-proxy - image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/skipper:v0.24.76 + image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/skipper:v0.24.66 args: - skipper - -access-log-strip-query @@ -457,7 +457,7 @@ write_files: name: ssl-certs-kubernetes readOnly: true - name: skipper-metrics - image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/skipper:v0.24.76 + image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/skipper:v0.24.66 args: - skipper - -access-log-strip-query diff --git a/test/e2e/Dockerfile b/test/e2e/Dockerfile index 69fe6f2e2c..b939f04064 100644 --- a/test/e2e/Dockerfile +++ b/test/e2e/Dockerfile @@ -1,7 +1,7 @@ # builder image FROM golang:1.26 AS builder -RUN CGO_ENABLED=0 go install github.com/onsi/ginkgo/v2/ginkgo@v2.27.2 +RUN CGO_ENABLED=0 go install github.com/onsi/ginkgo/v2/ginkgo@v2.25.1 # final image # TODO get rid of python dependencies diff --git a/test/e2e/Makefile b/test/e2e/Makefile index 3803e6ea98..206048ce52 100644 --- a/test/e2e/Makefile +++ b/test/e2e/Makefile @@ -11,7 +11,7 @@ DOCKERFILE ?= Dockerfile default: build deps: - CGO_ENABLED=0 go install github.com/onsi/ginkgo/v2/ginkgo@v2.27.2 + CGO_ENABLED=0 go install github.com/onsi/ginkgo/v2/ginkgo@v2.25.1 e2e.test: go.mod $(SOURCES) CGO_ENABLED=0 go test -v -c -o e2e.test diff --git a/test/e2e/go.mod b/test/e2e/go.mod index afee8f8584..a3b69d5588 100644 --- a/test/e2e/go.mod +++ b/test/e2e/go.mod @@ -1,6 +1,6 @@ module github.com/zalando-incubator/kubernetes-on-aws/tests/e2e -go 1.26.1 +go 1.25.6 require ( github.com/evanphx/json-patch v5.6.0+incompatible @@ -21,19 +21,18 @@ require ( github.com/onsi/ginkgo/v2 v2.27.2 github.com/szuecs/routegroup-client v0.34.1 github.com/zalando-build/sandbox-controller v0.0.0-20260123171236-6f467d8f6b49 - github.com/zalando-build/shadow-traffic-controller v0.0.0-20260414075214-82e694032451 k8s.io/api v0.35.2 k8s.io/apimachinery v0.35.2 k8s.io/apiserver v0.35.2 k8s.io/client-go v0.35.2 k8s.io/kubernetes v1.35.2 k8s.io/pod-security-admission v0.0.0 - k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 sigs.k8s.io/aws-iam-authenticator v0.6.28 ) require ( - cel.dev/expr v0.25.1 // indirect + cel.dev/expr v0.24.0 // indirect cyphar.com/go-pathrs v0.2.1 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab // indirect @@ -57,7 +56,7 @@ require ( github.com/aws/smithy-go v1.22.3 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/cenkalti/backoff/v5 v5.0.3 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect github.com/container-storage-interface/spec v1.9.0 // indirect @@ -83,20 +82,20 @@ require ( github.com/go-errors/errors v1.4.2 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-openapi/jsonpointer v0.22.5 // indirect - github.com/go-openapi/jsonreference v0.21.5 // indirect - github.com/go-openapi/swag v0.25.5 // indirect - github.com/go-openapi/swag/cmdutils v0.25.5 // indirect - github.com/go-openapi/swag/conv v0.25.5 // indirect - github.com/go-openapi/swag/fileutils v0.25.5 // indirect - github.com/go-openapi/swag/jsonname v0.25.5 // indirect - github.com/go-openapi/swag/jsonutils v0.25.5 // indirect - github.com/go-openapi/swag/loading v0.25.5 // indirect - github.com/go-openapi/swag/mangling v0.25.5 // indirect - github.com/go-openapi/swag/netutils v0.25.5 // indirect - github.com/go-openapi/swag/stringutils v0.25.5 // indirect - github.com/go-openapi/swag/typeutils v0.25.5 // indirect - github.com/go-openapi/swag/yamlutils v0.25.5 // indirect + github.com/go-openapi/jsonpointer v0.22.4 // indirect + github.com/go-openapi/jsonreference v0.21.4 // indirect + github.com/go-openapi/swag v0.25.4 // indirect + github.com/go-openapi/swag/cmdutils v0.25.4 // indirect + github.com/go-openapi/swag/conv v0.25.4 // indirect + github.com/go-openapi/swag/fileutils v0.25.4 // indirect + github.com/go-openapi/swag/jsonname v0.25.4 // indirect + github.com/go-openapi/swag/jsonutils v0.25.4 // indirect + github.com/go-openapi/swag/loading v0.25.4 // indirect + github.com/go-openapi/swag/mangling v0.25.4 // indirect + github.com/go-openapi/swag/netutils v0.25.4 // indirect + github.com/go-openapi/swag/stringutils v0.25.4 // indirect + github.com/go-openapi/swag/typeutils v0.25.4 // indirect + github.com/go-openapi/swag/yamlutils v0.25.4 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gofrs/flock v0.8.1 // indirect @@ -111,7 +110,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect @@ -120,7 +119,7 @@ require ( github.com/kylelemons/godebug v1.1.0 // indirect github.com/libopenstorage/openstorage v1.0.0 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect - github.com/magiconair/properties v1.8.10 // indirect + github.com/magiconair/properties v1.8.7 // indirect github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -143,15 +142,15 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.67.5 // indirect + github.com/prometheus/common v0.67.4 // indirect github.com/prometheus/procfs v0.19.2 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/sirupsen/logrus v1.9.4 // indirect - github.com/spf13/afero v1.12.0 // indirect + github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af // indirect + github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.6.0 // indirect - github.com/spf13/cobra v1.10.2 // indirect + github.com/spf13/cobra v1.10.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect @@ -160,8 +159,7 @@ require ( github.com/subosito/gotenv v1.4.2 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xlab/treeprint v1.2.0 // indirect - github.com/zalando-build/fabric-gateway v0.0.0-20260312131053-eb84f1bc3521 // indirect - github.com/zalando-incubator/stackset-controller v1.4.126 // indirect + github.com/zalando-incubator/stackset-controller v1.4.119 // indirect go.etcd.io/etcd/api/v3 v3.6.5 // indirect go.etcd.io/etcd/client/pkg/v3 v3.6.5 // indirect go.etcd.io/etcd/client/v3 v3.6.5 // indirect @@ -170,39 +168,39 @@ require ( go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect go.opentelemetry.io/otel v1.40.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect go.opentelemetry.io/otel/metric v1.40.0 // indirect go.opentelemetry.io/otel/sdk v1.40.0 // indirect go.opentelemetry.io/otel/trace v1.40.0 // indirect - go.opentelemetry.io/proto/otlp v1.9.0 // indirect + go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - go.yaml.in/yaml/v2 v2.4.4 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/crypto v0.48.0 // indirect + golang.org/x/crypto v0.46.0 // indirect golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 // indirect - golang.org/x/mod v0.32.0 // indirect - golang.org/x/net v0.51.0 // indirect - golang.org/x/oauth2 v0.36.0 // indirect + golang.org/x/mod v0.31.0 // indirect + golang.org/x/net v0.48.0 // indirect + golang.org/x/oauth2 v0.34.0 // indirect golang.org/x/sync v0.19.0 // indirect - golang.org/x/sys v0.42.0 // indirect - golang.org/x/term v0.40.0 // indirect - golang.org/x/text v0.34.0 // indirect - golang.org/x/time v0.15.0 // indirect - golang.org/x/tools v0.41.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 // indirect - google.golang.org/grpc v1.79.3 // indirect + golang.org/x/sys v0.40.0 // indirect + golang.org/x/term v0.39.0 // indirect + golang.org/x/text v0.33.0 // indirect + golang.org/x/time v0.14.0 // indirect + golang.org/x/tools v0.40.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect + google.golang.org/grpc v1.77.0 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/go-jose/go-jose.v2 v2.6.3 // indirect gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/ini.v1 v1.67.1 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.35.0 // indirect + k8s.io/apiextensions-apiserver v0.34.0 // indirect k8s.io/cli-runtime v0.35.2 // indirect k8s.io/cloud-provider v0.34.3 // indirect k8s.io/cluster-bootstrap v0.0.0 // indirect @@ -213,10 +211,10 @@ require ( k8s.io/cri-client v0.0.0 // indirect k8s.io/csi-translation-lib v0.34.3 // indirect k8s.io/dynamic-resource-allocation v0.35.2 // indirect - k8s.io/klog/v2 v2.140.0 // indirect + k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kms v0.35.2 // indirect k8s.io/kube-aggregator v0.0.0 // indirect - k8s.io/kube-openapi v0.0.0-20260304202019-5b3e3fdb0acf // indirect + k8s.io/kube-openapi v0.0.0-20251125145642-4e65d59e963e // indirect k8s.io/kube-scheduler v0.0.0 // indirect k8s.io/kubectl v0.0.0 // indirect k8s.io/kubelet v0.35.2 // indirect @@ -227,7 +225,7 @@ require ( sigs.k8s.io/kustomize/api v0.20.1 // indirect sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect sigs.k8s.io/randfill v1.0.0 // indirect - sigs.k8s.io/structured-merge-diff/v6 v6.3.2 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.3.1 // indirect sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/test/e2e/go.sum b/test/e2e/go.sum index 4b063fb0b7..e5b526ef83 100644 --- a/test/e2e/go.sum +++ b/test/e2e/go.sum @@ -1,5 +1,5 @@ -cel.dev/expr v0.25.1 h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4= -cel.dev/expr v0.25.1/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= +cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= +cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cyphar.com/go-pathrs v0.2.1 h1:9nx1vOgwVvX1mNBWDu93+vaceedpbsDqo+XuBGL40b8= cyphar.com/go-pathrs v0.2.1/go.mod h1:y8f1EMG7r+hCuFf/rXsKqMJrJAUoADZGNh5/vZPKcGc= @@ -64,8 +64,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bits-and-blooms/bitset v1.22.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= -github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= -github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= @@ -171,44 +171,44 @@ github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonpointer v0.22.5 h1:8on/0Yp4uTb9f4XvTrM2+1CPrV05QPZXu+rvu2o9jcA= -github.com/go-openapi/jsonpointer v0.22.5/go.mod h1:gyUR3sCvGSWchA2sUBJGluYMbe1zazrYWIkWPjjMUY0= +github.com/go-openapi/jsonpointer v0.22.4 h1:dZtK82WlNpVLDW2jlA1YCiVJFVqkED1MegOUy9kR5T4= +github.com/go-openapi/jsonpointer v0.22.4/go.mod h1:elX9+UgznpFhgBuaMQ7iu4lvvX1nvNsesQ3oxmYTw80= github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/jsonreference v0.21.5 h1:6uCGVXU/aNF13AQNggxfysJ+5ZcU4nEAe+pJyVWRdiE= -github.com/go-openapi/jsonreference v0.21.5/go.mod h1:u25Bw85sX4E2jzFodh1FOKMTZLcfifd1Q+iKKOUxExw= +github.com/go-openapi/jsonreference v0.21.4 h1:24qaE2y9bx/q3uRK/qN+TDwbok1NhbSmGjjySRCHtC8= +github.com/go-openapi/jsonreference v0.21.4/go.mod h1:rIENPTjDbLpzQmQWCj5kKj3ZlmEh+EFVbz3RTUh30/4= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= -github.com/go-openapi/swag v0.25.5 h1:pNkwbUEeGwMtcgxDr+2GBPAk4kT+kJ+AaB+TMKAg+TU= -github.com/go-openapi/swag v0.25.5/go.mod h1:B3RT6l8q7X803JRxa2e59tHOiZlX1t8viplOcs9CwTA= -github.com/go-openapi/swag/cmdutils v0.25.5 h1:yh5hHrpgsw4NwM9KAEtaDTXILYzdXh/I8Whhx9hKj7c= -github.com/go-openapi/swag/cmdutils v0.25.5/go.mod h1:pdae/AFo6WxLl5L0rq87eRzVPm/XRHM3MoYgRMvG4A0= -github.com/go-openapi/swag/conv v0.25.5 h1:wAXBYEXJjoKwE5+vc9YHhpQOFj2JYBMF2DUi+tGu97g= -github.com/go-openapi/swag/conv v0.25.5/go.mod h1:CuJ1eWvh1c4ORKx7unQnFGyvBbNlRKbnRyAvDvzWA4k= -github.com/go-openapi/swag/fileutils v0.25.5 h1:B6JTdOcs2c0dBIs9HnkyTW+5gC+8NIhVBUwERkFhMWk= -github.com/go-openapi/swag/fileutils v0.25.5/go.mod h1:V3cT9UdMQIaH4WiTrUc9EPtVA4txS0TOmRURmhGF4kc= -github.com/go-openapi/swag/jsonname v0.25.5 h1:8p150i44rv/Drip4vWI3kGi9+4W9TdI3US3uUYSFhSo= -github.com/go-openapi/swag/jsonname v0.25.5/go.mod h1:jNqqikyiAK56uS7n8sLkdaNY/uq6+D2m2LANat09pKU= -github.com/go-openapi/swag/jsonutils v0.25.5 h1:XUZF8awQr75MXeC+/iaw5usY/iM7nXPDwdG3Jbl9vYo= -github.com/go-openapi/swag/jsonutils v0.25.5/go.mod h1:48FXUaz8YsDAA9s5AnaUvAmry1UcLcNVWUjY42XkrN4= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.5 h1:SX6sE4FrGb4sEnnxbFL/25yZBb5Hcg1inLeErd86Y1U= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.5/go.mod h1:/2KvOTrKWjVA5Xli3DZWdMCZDzz3uV/T7bXwrKWPquo= -github.com/go-openapi/swag/loading v0.25.5 h1:odQ/umlIZ1ZVRteI6ckSrvP6e2w9UTF5qgNdemJHjuU= -github.com/go-openapi/swag/loading v0.25.5/go.mod h1:I8A8RaaQ4DApxhPSWLNYWh9NvmX2YKMoB9nwvv6oW6g= -github.com/go-openapi/swag/mangling v0.25.5 h1:hyrnvbQRS7vKePQPHHDso+k6CGn5ZBs5232UqWZmJZw= -github.com/go-openapi/swag/mangling v0.25.5/go.mod h1:6hadXM/o312N/h98RwByLg088U61TPGiltQn71Iw0NY= -github.com/go-openapi/swag/netutils v0.25.5 h1:LZq2Xc2QI8+7838elRAaPCeqJnHODfSyOa7ZGfxDKlU= -github.com/go-openapi/swag/netutils v0.25.5/go.mod h1:lHbtmj4m57APG/8H7ZcMMSWzNqIQcu0RFiXrPUara14= -github.com/go-openapi/swag/stringutils v0.25.5 h1:NVkoDOA8YBgtAR/zvCx5rhJKtZF3IzXcDdwOsYzrB6M= -github.com/go-openapi/swag/stringutils v0.25.5/go.mod h1:PKK8EZdu4QJq8iezt17HM8RXnLAzY7gW0O1KKarrZII= -github.com/go-openapi/swag/typeutils v0.25.5 h1:EFJ+PCga2HfHGdo8s8VJXEVbeXRCYwzzr9u4rJk7L7E= -github.com/go-openapi/swag/typeutils v0.25.5/go.mod h1:itmFmScAYE1bSD8C4rS0W+0InZUBrB2xSPbWt6DLGuc= -github.com/go-openapi/swag/yamlutils v0.25.5 h1:kASCIS+oIeoc55j28T4o8KwlV2S4ZLPT6G0iq2SSbVQ= -github.com/go-openapi/swag/yamlutils v0.25.5/go.mod h1:Gek1/SjjfbYvM+Iq4QGwa/2lEXde9n2j4a3wI3pNuOQ= -github.com/go-openapi/testify/enable/yaml/v2 v2.4.0 h1:7SgOMTvJkM8yWrQlU8Jm18VeDPuAvB/xWrdxFJkoFag= -github.com/go-openapi/testify/enable/yaml/v2 v2.4.0/go.mod h1:14iV8jyyQlinc9StD7w1xVPW3CO3q1Gj04Jy//Kw4VM= -github.com/go-openapi/testify/v2 v2.4.0 h1:8nsPrHVCWkQ4p8h1EsRVymA2XABB4OT40gcvAu+voFM= -github.com/go-openapi/testify/v2 v2.4.0/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54= +github.com/go-openapi/swag v0.25.4 h1:OyUPUFYDPDBMkqyxOTkqDYFnrhuhi9NR6QVUvIochMU= +github.com/go-openapi/swag v0.25.4/go.mod h1:zNfJ9WZABGHCFg2RnY0S4IOkAcVTzJ6z2Bi+Q4i6qFQ= +github.com/go-openapi/swag/cmdutils v0.25.4 h1:8rYhB5n6WawR192/BfUu2iVlxqVR9aRgGJP6WaBoW+4= +github.com/go-openapi/swag/cmdutils v0.25.4/go.mod h1:pdae/AFo6WxLl5L0rq87eRzVPm/XRHM3MoYgRMvG4A0= +github.com/go-openapi/swag/conv v0.25.4 h1:/Dd7p0LZXczgUcC/Ikm1+YqVzkEeCc9LnOWjfkpkfe4= +github.com/go-openapi/swag/conv v0.25.4/go.mod h1:3LXfie/lwoAv0NHoEuY1hjoFAYkvlqI/Bn5EQDD3PPU= +github.com/go-openapi/swag/fileutils v0.25.4 h1:2oI0XNW5y6UWZTC7vAxC8hmsK/tOkWXHJQH4lKjqw+Y= +github.com/go-openapi/swag/fileutils v0.25.4/go.mod h1:cdOT/PKbwcysVQ9Tpr0q20lQKH7MGhOEb6EwmHOirUk= +github.com/go-openapi/swag/jsonname v0.25.4 h1:bZH0+MsS03MbnwBXYhuTttMOqk+5KcQ9869Vye1bNHI= +github.com/go-openapi/swag/jsonname v0.25.4/go.mod h1:GPVEk9CWVhNvWhZgrnvRA6utbAltopbKwDu8mXNUMag= +github.com/go-openapi/swag/jsonutils v0.25.4 h1:VSchfbGhD4UTf4vCdR2F4TLBdLwHyUDTd1/q4i+jGZA= +github.com/go-openapi/swag/jsonutils v0.25.4/go.mod h1:7OYGXpvVFPn4PpaSdPHJBtF0iGnbEaTk8AvBkoWnaAY= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.4 h1:IACsSvBhiNJwlDix7wq39SS2Fh7lUOCJRmx/4SN4sVo= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.4/go.mod h1:Mt0Ost9l3cUzVv4OEZG+WSeoHwjWLnarzMePNDAOBiM= +github.com/go-openapi/swag/loading v0.25.4 h1:jN4MvLj0X6yhCDduRsxDDw1aHe+ZWoLjW+9ZQWIKn2s= +github.com/go-openapi/swag/loading v0.25.4/go.mod h1:rpUM1ZiyEP9+mNLIQUdMiD7dCETXvkkC30z53i+ftTE= +github.com/go-openapi/swag/mangling v0.25.4 h1:2b9kBJk9JvPgxr36V23FxJLdwBrpijI26Bx5JH4Hp48= +github.com/go-openapi/swag/mangling v0.25.4/go.mod h1:6dxwu6QyORHpIIApsdZgb6wBk/DPU15MdyYj/ikn0Hg= +github.com/go-openapi/swag/netutils v0.25.4 h1:Gqe6K71bGRb3ZQLusdI8p/y1KLgV4M/k+/HzVSqT8H0= +github.com/go-openapi/swag/netutils v0.25.4/go.mod h1:m2W8dtdaoX7oj9rEttLyTeEFFEBvnAx9qHd5nJEBzYg= +github.com/go-openapi/swag/stringutils v0.25.4 h1:O6dU1Rd8bej4HPA3/CLPciNBBDwZj9HiEpdVsb8B5A8= +github.com/go-openapi/swag/stringutils v0.25.4/go.mod h1:GTsRvhJW5xM5gkgiFe0fV3PUlFm0dr8vki6/VSRaZK0= +github.com/go-openapi/swag/typeutils v0.25.4 h1:1/fbZOUN472NTc39zpa+YGHn3jzHWhv42wAJSN91wRw= +github.com/go-openapi/swag/typeutils v0.25.4/go.mod h1:Ou7g//Wx8tTLS9vG0UmzfCsjZjKhpjxayRKTHXf2pTE= +github.com/go-openapi/swag/yamlutils v0.25.4 h1:6jdaeSItEUb7ioS9lFoCZ65Cne1/RZtPBZ9A56h92Sw= +github.com/go-openapi/swag/yamlutils v0.25.4/go.mod h1:MNzq1ulQu+yd8Kl7wPOut/YHAAU/H6hL91fF+E2RFwc= +github.com/go-openapi/testify/enable/yaml/v2 v2.0.2 h1:0+Y41Pz1NkbTHz8NngxTuAXxEodtNSI1WG1c/m5Akw4= +github.com/go-openapi/testify/enable/yaml/v2 v2.0.2/go.mod h1:kme83333GCtJQHXQ8UKX3IBZu6z8T5Dvy5+CW3NLUUg= +github.com/go-openapi/testify/v2 v2.0.2 h1:X999g3jeLcoY8qctY/c/Z8iBHTbwLz7R2WXd6Ub6wls= +github.com/go-openapi/testify/v2 v2.0.2/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= @@ -216,9 +216,8 @@ github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZ github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= +github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= -github.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM= -github.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -281,8 +280,8 @@ github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.0 h1:FbSCl+KggFl+Ocym490i/E github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.0/go.mod h1:qOchhhIlmRcqk/O9uCo/puJlyo07YINaIqdZfZG3Jkc= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 h1:X+2YciYSxvMQK0UZ7sg45ZVabVZBeBuvMkmuI2V3Fak= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7/go.mod h1:lW34nIZuQ8UDPdkon5fmfp2l3+ZkQ2me/+oecHYLOII= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -328,8 +327,8 @@ github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9 github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY= github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= -github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo= github.com/maruel/natural v1.1.1/go.mod h1:v+Rfd79xlw1AgVBjbO0BEQmptqb5HvL/k9GRHB7ZKEg= @@ -449,8 +448,8 @@ github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= -github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= +github.com/prometheus/common v0.67.4 h1:yR3NqWO1/UyO1w2PhUvXlGQs/PtFmoveVO0KZ4+Lvsc= +github.com/prometheus/common v0.67.4/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI= github.com/prometheus/procfs v0.19.2 h1:zUMhqEW66Ex7OXIiDkll3tl9a1ZdilUOd/F6ZXw4Vws= github.com/prometheus/procfs v0.19.2/go.mod h1:M0aotyiemPhBCM0z5w87kL22CxfcH05ZpYlu+b4J7mw= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= @@ -467,19 +466,20 @@ github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw= github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= -github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= -github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= +github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af h1:Sp5TG9f7K39yfB+If0vjp97vuT74F72r8hfRpP8jLU0= +github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= -github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= -github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= +github.com/spf13/cobra v1.10.0 h1:a5/WeUlSDCvV5a45ljW2ZFtV0bTDpkfSAj3uqB6Sc+0= +github.com/spf13/cobra v1.10.0/go.mod h1:9dhySC7dnTtEiqzmqfkLj47BslqLCUPMXjG2lj/NgoE= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.8/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -532,16 +532,12 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zalando-build/fabric-gateway v0.0.0-20260312131053-eb84f1bc3521 h1:VXhSZKJ5enws0+eY9EVS+B32P8eTlHyR7B/cViRVi/0= -github.com/zalando-build/fabric-gateway v0.0.0-20260312131053-eb84f1bc3521/go.mod h1:Kx7aXlSYcLNKxdX1w81FOR9J8Joo7mAkiVhS63sSZek= github.com/zalando-build/sandbox-controller v0.0.0-20260123171236-6f467d8f6b49 h1:+whJlLAIbk+FnpL2P6SaKn0qFEhfeuG/XtghSGZLASg= github.com/zalando-build/sandbox-controller v0.0.0-20260123171236-6f467d8f6b49/go.mod h1:ZVlq/qWxWKs2EpHCxT/CQxY8ErSXQiGwmSQjxl3uwj0= -github.com/zalando-build/shadow-traffic-controller v0.0.0-20260414075214-82e694032451 h1:Jlc31nzuHNmub1odvSbGJy1q8ooCdZZWJLKjgMwFJ+s= -github.com/zalando-build/shadow-traffic-controller v0.0.0-20260414075214-82e694032451/go.mod h1:KqIl4X4q8z1T1/VSWpoa8DFuqJI5H4Wcm8FJIpXjqso= github.com/zalando-incubator/kube-aws-iam-controller v0.2.0 h1:HqxlyouLYPzf/V+6Q8YSldgix+o6Vig3M+3NAjUiKZw= github.com/zalando-incubator/kube-aws-iam-controller v0.2.0/go.mod h1:7RQdyNqtYaKEWVavXUFlrE8A+QsGe/hkBba2RyG5V4o= -github.com/zalando-incubator/stackset-controller v1.4.126 h1:jLlPgamQrxfodglDr1zuZNFQsESwIvUQSqjyJHAgLCs= -github.com/zalando-incubator/stackset-controller v1.4.126/go.mod h1:29RbiSjtQH8psQempEAxuZyCVY6aKmYGIa0b0JU2+d0= +github.com/zalando-incubator/stackset-controller v1.4.119 h1:XN8dQDJqIeB1tOuolZ44Y2TooYQnvGKFXTX+roeSnLI= +github.com/zalando-incubator/stackset-controller v1.4.119/go.mod h1:7Gy69UzRdPDaEpBP11AfAq7ODNIYVe/1yUjrKgq8LaA= go.etcd.io/bbolt v1.4.3 h1:dEadXpI6G79deX5prL3QRNP6JB8UxVkqo4UPnHaNXJo= go.etcd.io/bbolt v1.4.3/go.mod h1:tKQlpPaYCVFctUIgFKFnAlvbmB3tpy1vkTnDWohtc0E= go.etcd.io/etcd/api/v3 v3.6.5 h1:pMMc42276sgR1j1raO/Qv3QI9Af/AuyQUW6CBAWuntA= @@ -568,10 +564,10 @@ go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaR go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms= go.opentelemetry.io/otel v1.40.0/go.mod h1:IMb+uXZUKkMXdPddhwAHm6UfOwJyh4ct1ybIlV14J0g= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= go.opentelemetry.io/otel/metric v1.40.0 h1:rcZe317KPftE2rstWIBitCdVp89A2HqjkxR3c11+p9g= go.opentelemetry.io/otel/metric v1.40.0/go.mod h1:ib/crwQH7N3r5kfiBZQbwrTge743UDc7DTFVZrrXnqc= go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= @@ -580,8 +576,8 @@ go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4A go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZYblVjw= go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA= -go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A= -go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4= +go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= +go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= @@ -590,9 +586,8 @@ go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN8 go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= -go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= -go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= go.yaml.in/yaml/v3 v3.0.3/go.mod h1:tBHosrYAkRZjRAOREWbDnBXUf08JOwYq++0QNwQiWzI= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= @@ -626,8 +621,8 @@ golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sU golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc= -golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= -golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= +golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU= +golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0= golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 h1:MDfG8Cvcqlt9XXrmEiD4epKn7VJHZO84hejP9Jmp0MM= @@ -657,8 +652,8 @@ golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= -golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= -golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= +golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= +golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -705,11 +700,11 @@ golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= golang.org/x/net v0.45.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= -golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= -golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= +golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= +golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= -golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= -golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= +golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw= +golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -753,6 +748,7 @@ golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -786,8 +782,8 @@ golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= golang.org/x/telemetry v0.0.0-20250710130107-8d8967aff50b/go.mod h1:4ZwOYna0/zsOKwuR5X/m0QFOJpSZvAxFfkQT+Erd9D4= @@ -826,8 +822,8 @@ golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= -golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg= -golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM= +golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY= +golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -856,11 +852,11 @@ golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= -golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= -golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= -golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -894,8 +890,8 @@ golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= -golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= -golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= +golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= +golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= golang.org/x/tools/go/expect v0.1.0-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -904,12 +900,12 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 h1:merA0rdPeUV3YIIfHHcH4qBkiQAc1nfCKSI7lB4cV2M= -google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409/go.mod h1:fl8J1IvUjCilwZzQowmw2b7HQB2eAuYBabMXzWurF+I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 h1:H86B94AW+VfJWDqFeEbBPhEtHzJwJfTbgE2lZa54ZAQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= -google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= -google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls= +google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM= +google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -942,8 +938,8 @@ gopkg.in/go-jose/go-jose.v2 v2.6.3 h1:nt80fvSDlhKWQgSWyHyy5CfmlQr+asih51R8PTWNKK gopkg.in/go-jose/go-jose.v2 v2.6.3/go.mod h1:zzZDPkNNw/c9IE7Z9jr11mBZQhKQTMzoEEIoEdZlFBI= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.67.1 h1:tVBILHy0R6e4wkYOn3XmiITt/hEVH4TFMYvAX2Ytz6k= -gopkg.in/ini.v1 v1.67.1/go.mod h1:x/cyOwCgZqOkJoDIJ3c1KNHMo10+nLGAhh+kn3Zizss= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -989,16 +985,15 @@ k8s.io/dynamic-resource-allocation v0.35.2/go.mod h1:5XCJwTZgZiSyFxbqFyUpMsCtHT4 k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= -k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= k8s.io/kms v0.35.2 h1:XPlj7QmLBfzm8gGQnc3+Y95hZLiJs3DjA0IyFOV5Z7g= k8s.io/kms v0.35.2/go.mod h1:VT+4ekZAdrZDMgShK37vvlyHUVhwI9t/9tvh0AyCWmQ= k8s.io/kube-aggregator v0.35.2 h1:bnF7E238wUOVaPpTyKrqGCAEXOAJ6HRTARvJTZ0UIC0= k8s.io/kube-aggregator v0.35.2/go.mod h1:7Xl9zFJFsFIrPnwBfu7hve+G5QgLsDZRIedc8gA1mq4= k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= -k8s.io/kube-openapi v0.0.0-20260304202019-5b3e3fdb0acf h1:btPscg4cMql0XdYK2jLsJcNEKmACJz8l+U7geC06FiM= -k8s.io/kube-openapi v0.0.0-20260304202019-5b3e3fdb0acf/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/kube-openapi v0.0.0-20251125145642-4e65d59e963e h1:iW9ChlU0cU16w8MpVYjXk12dqQ4BPFBEgif+ap7/hqQ= +k8s.io/kube-openapi v0.0.0-20251125145642-4e65d59e963e/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= k8s.io/kube-scheduler v0.35.2 h1:VMH5AxwoFp4k30uaYSTchDr6MPmURmGpuwldS2R3Opw= k8s.io/kube-scheduler v0.35.2/go.mod h1:D0Fqh5wr/ECi22MVfn4n8aywz/Vh0pfD59VGbYkQfA4= k8s.io/kubectl v0.35.2 h1:aSmqhSOfsoG9NR5oR8OD5eMKpLN9x8oncxfqLHbJJII= @@ -1014,9 +1009,8 @@ k8s.io/pod-security-admission v0.35.2/go.mod h1:zrNF0GSYasCR8SHiAD67q2iUTHitVoFQ k8s.io/sample-apiserver v0.35.2 h1:ARYO/VxlDPOO/KIL6kOxdSmcqKb0QhefcOBFCeaxcDo= k8s.io/sample-apiserver v0.35.2/go.mod h1:COaIZfHMqbpfne58Xxu/1cjaRc848W7twf4nFX5V7a8= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 h1:AZYQSJemyQB5eRxqcPky+/7EdBj0xi3g0ZcxxJ7vbWU= -k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= sigs.k8s.io/aws-iam-authenticator v0.6.28 h1:W5exNoRMP4x/6vSzTLtYvxphWTrNxCS/2dowixsgsJ0= @@ -1033,8 +1027,8 @@ sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.2.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= -sigs.k8s.io/structured-merge-diff/v6 v6.3.2 h1:kwVWMx5yS1CrnFWA/2QHyRVJ8jM6dBA80uLmm0wJkk8= -sigs.k8s.io/structured-merge-diff/v6 v6.3.2/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/structured-merge-diff/v6 v6.3.1 h1:JrhdFMqOd/+3ByqlP2I45kTOZmTRLBUm5pvRjeheg7E= +sigs.k8s.io/structured-merge-diff/v6 v6.3.1/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/test/e2e/ingress.go b/test/e2e/ingress.go index f5fc50ec8f..d614631399 100644 --- a/test/e2e/ingress.go +++ b/test/e2e/ingress.go @@ -488,7 +488,7 @@ var ___ = describe("Ingress tests paths", func() { }) }) -var ____ = describe("Ingress tests custom routes - 1", func() { +var ____ = describe("Ingress tests custom routes", func() { f := framework.NewDefaultFramework("skipper-ingress-custom") f.NamespacePodSecurityEnforceLevel = admissionapi.LevelBaseline var ( diff --git a/test/e2e/shadowtraffic.go b/test/e2e/shadowtraffic.go deleted file mode 100644 index e099dea621..0000000000 --- a/test/e2e/shadowtraffic.go +++ /dev/null @@ -1,269 +0,0 @@ -/* -Copyright 2024 The Kubernetes Authors. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package e2e - -import ( - "context" - "fmt" - "time" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/uuid" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/kubernetes/test/e2e/framework" - admissionapi "k8s.io/pod-security-admission/api" - - rgv1 "github.com/szuecs/routegroup-client/apis/zalando.org/v1" - "github.com/zalando-build/shadow-traffic-controller/controller" - stv1 "github.com/zalando-build/shadow-traffic-controller/pkg/apis/zalando.org/v1" - "github.com/zalando-build/shadow-traffic-controller/pkg/clientset" -) - -// waitForShadowRouteGroups polls until the expected number of shadow RouteGroups -// (labelled with ownerLabel=stName) exist in the namespace, then returns them. -func waitForShadowRouteGroups( - ctx context.Context, - client *clientset.Clientset, - namespace, stName string, - expectedCount int, -) ([]rgv1.RouteGroup, error) { - var rgs *rgv1.RouteGroupList - err := wait.PollUntilContextTimeout(ctx, 100*time.Millisecond, 30*time.Second, false, - func(ctx context.Context) (bool, error) { - var listErr error - rgs, listErr = client.ZalandoV1().RouteGroups(namespace).List(ctx, metav1.ListOptions{ - LabelSelector: fmt.Sprintf("%s=%s", controller.OwnerLabel, stName), - }) - if listErr != nil { - return false, listErr - } - return len(rgs.Items) == expectedCount, nil - }) - if err != nil { - return nil, fmt.Errorf("failed to wait and list shadow RouteGroups: %w", err) - } - return rgs.Items, nil -} - -// waitForShadowTrafficStatus polls until the ShadowTraffic's status.problems is non-empty. -func waitForShadowTrafficStatus( - ctx context.Context, - client *clientset.Clientset, - namespace, stName string, -) ([]string, error) { - var problems []string - err := wait.PollUntilContextTimeout(ctx, 100*time.Millisecond, 30*time.Second, false, - func(ctx context.Context) (bool, error) { - st, getErr := client.ZalandoV1().ShadowTraffics(namespace).Get(ctx, stName, metav1.GetOptions{}) - if getErr != nil { - return false, getErr - } - problems = st.Status.Problems - return len(problems) > 0, nil - }) - if err != nil { - return nil, fmt.Errorf("failed to wait and get ShadowTraffic status problems: %w", err) - } - return problems, nil -} - -// waitForNoShadowRouteGroups polls until zero shadow RouteGroups exist for the given owner. -func waitForNoShadowRouteGroups( - ctx context.Context, - client *clientset.Clientset, - namespace, stName string, -) (bool, error) { - err := wait.PollUntilContextTimeout(ctx, 100*time.Millisecond, 30*time.Second, false, - func(ctx context.Context) (bool, error) { - rgs, listErr := client.ZalandoV1().RouteGroups(namespace).List(ctx, metav1.ListOptions{ - LabelSelector: fmt.Sprintf("%s=%s", controller.OwnerLabel, stName), - }) - if listErr != nil { - return false, listErr - } - return len(rgs.Items) == 0, nil - }) - if err != nil { - return false, fmt.Errorf("failed to wait while no shadow RouteGroups: %w", err) - } - return true, nil -} - -func createShadowTraffic( - name string, - ns string, - labels map[string]string, - annotations map[string]string, - sourceRefs []stv1.SourceObjectReference, - trafficShare string, - shadowBackend stv1.ShadowBackend, - routeMatchers ...stv1.RouteMatcher, -) *stv1.ShadowTraffic { - return &stv1.ShadowTraffic{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: ns, - Labels: labels, - Annotations: annotations, - }, - Spec: stv1.ShadowTrafficSpec{ - SourceObjectReferences: sourceRefs, - TrafficShare: trafficShare, - ShadowBackend: shadowBackend, - RouteMatchers: routeMatchers, - }, - } -} - -var _ = describe("Shadow Traffic Controller", func() { - f := framework.NewDefaultFramework("shadow-traffic-controller") - f.NamespacePodSecurityEnforceLevel = admissionapi.LevelBaseline - - var ( - c *clientset.Clientset - ) - - BeforeEach(func() { - var err error - - config, err := framework.LoadConfig() - framework.ExpectNoError(err) - - c, err = clientset.NewForConfig(config) - framework.ExpectNoError(err) - }) - - Describe("ShadowTraffic resource: Plain RouteGroup as Source Route Object.", func() { - It("Should process a ShadowTraffic resource and create the corresponding shadow RouteGroup [ShadowTraffic] [Zalando]", func() { - ns := f.Namespace.Name - application := "kubernetes-on-aws-e2e-test" - component := "shadow-traffic-test" - labels := map[string]string{ - "application": application, - "component": component, - } - - refRouteGroup := createRouteGroup( - component, - "example.org", - ns, - labels, - nil, - 9090, - rgv1.RouteGroupRouteSpec{ - PathSubtree: "/", - Methods: []rgv1.HTTPMethod{rgv1.MethodGet}, - }, - rgv1.RouteGroupRouteSpec{ - PathSubtree: "/", - Methods: []rgv1.HTTPMethod{rgv1.MethodPost}, - Predicates: []string{`Header("Foo", "bar")`}, - }, - rgv1.RouteGroupRouteSpec{ - Path: "/healthz", - Methods: []rgv1.HTTPMethod{rgv1.MethodGet}, - Predicates: []string{`Header("Foo", "bar")`}, - }, - ) - - shadowBackend := stv1.ShadowBackend{ - Name: "shadow-backend", - Type: "service", - ServicePort: 80, - ServiceName: "shadow-service", - } - shadowtraffic := createShadowTraffic( - string(uuid.NewUUID()), - ns, - labels, - nil, - []stv1.SourceObjectReference{{ - Kind: rgv1.KindRouteGroup, - Name: refRouteGroup.Name, - Namespace: refRouteGroup.Namespace, - }}, - "0.5", - shadowBackend, - stv1.RouteMatcher{ - Path: stv1.Path{ - Type: "PathSubtree", - Value: "/", - }, - }, - stv1.RouteMatcher{ - Path: stv1.Path{ - Type: "PathSubtree", - Value: "/", - }, - Headers: []stv1.Header{`Header("Foo", "bar")`}, - Methods: []stv1.HTTPMethod{stv1.HTTPMethod(rgv1.MethodPost)}, - }, - ) - - By(fmt.Sprintf("Creating reference RouteGroup %s in namespace %s", refRouteGroup.Name, ns)) - refrgCreate, err := c.ZalandoV1().RouteGroups(ns).Create(context.TODO(), refRouteGroup, metav1.CreateOptions{}) - framework.ExpectNoError(err) - Expect(refrgCreate.Name).To(Equal(refRouteGroup.Name)) - - By(fmt.Sprintf("Creating ShadowTraffic %s in namespace %s", shadowtraffic.Name, ns)) - stCreate, err := c.ZalandoV1().ShadowTraffics(ns).Create(context.TODO(), shadowtraffic, metav1.CreateOptions{}) - framework.ExpectNoError(err) - Expect(stCreate.Name).To(Equal(shadowtraffic.Name)) - - By("Verifying shadow RouteGroups are created successfully") - shadowRGs, err := waitForShadowRouteGroups(context.TODO(), c, ns, shadowtraffic.Name, 1) - framework.ExpectNoError(err) - Expect(shadowRGs).NotTo(BeEmpty()) - - for _, sRG := range shadowRGs { - By(fmt.Sprintf("Verifying shadow RouteGroup %s has correct labels", sRG.Name)) - Expect(sRG.Labels[controller.OwnerLabel]).To(Equal(shadowtraffic.Name)) - Expect(sRG.Labels[controller.SourceRefLabel]).To(Equal(shadowtraffic.Spec.SourceObjectReferences[0].Name)) - - By(fmt.Sprintf("Verifying shadow RouteGroup %s has correct owner reference", sRG.Name)) - Expect(sRG.OwnerReferences).To(HaveLen(1)) - Expect(sRG.OwnerReferences[0].Kind).To(Equal(stv1.KindShadowTraffic)) - Expect(sRG.OwnerReferences[0].Name).To(Equal(shadowtraffic.Name)) - - By(fmt.Sprintf("Verifying shadow RouteGroup %s has correct shadow backend", sRG.Name)) - foundShadowBackend := false - for _, b := range sRG.Spec.Backends { - if b.Name == shadowBackend.Name { - foundShadowBackend = true - Expect(b.Type).To(Equal(rgv1.RouteGroupBackendType(shadowBackend.Type))) - Expect(b.ServiceName).To(Equal(shadowBackend.ServiceName)) - Expect(b.ServicePort).To(Equal(shadowBackend.ServicePort)) - } - } - Expect(foundShadowBackend).To(BeTrue()) - - By(fmt.Sprintf("Verifying shadow RouteGroup %s has routes as per the RouteMatchers", sRG.Name)) - // 2 matching source routes * 2 = 4 shadow routes: teeLoopback + tee pair each - Expect(sRG.Spec.Routes).To(HaveLen(4)) - } - - By("Deleting the ShadowTraffic resource") - err = c.ZalandoV1().ShadowTraffics(ns).Delete(context.TODO(), shadowtraffic.Name, metav1.DeleteOptions{}) - framework.ExpectNoError(err) - - By("Verifying ShadowTraffic is deleted") - success, err := waitForNoShadowRouteGroups(context.TODO(), c, ns, shadowtraffic.Name) - framework.ExpectNoError(err) - Expect(success).To(BeTrue()) - }) - }) -}) diff --git a/test/e2e/util.go b/test/e2e/util.go index a2b9597e0e..12a943f4fc 100644 --- a/test/e2e/util.go +++ b/test/e2e/util.go @@ -271,7 +271,7 @@ func createSkipperPodSpec(route string, port int32) v1.PodSpec { Containers: []v1.Container{ { Name: "skipper", - Image: "container-registry.zalando.net/teapot/skipper:v0.24.53", + Image: "container-registry.zalando.net/teapot/skipper:v0.24.14", Args: []string{ "skipper", "-inline-routes",