From eb1b6d02b4a2fb4b5a9b841497712bec798502f1 Mon Sep 17 00:00:00 2001 From: ci-robot Date: Fri, 24 Apr 2026 04:17:33 +0000 Subject: [PATCH 1/5] update last_rebase.sh --- scripts/auto-rebase/last_rebase.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/auto-rebase/last_rebase.sh b/scripts/auto-rebase/last_rebase.sh index 5279198d8d..fda58145a1 100755 --- a/scripts/auto-rebase/last_rebase.sh +++ b/scripts/auto-rebase/last_rebase.sh @@ -1,2 +1,2 @@ #!/bin/bash -x -./scripts/auto-rebase/rebase.sh to "registry.ci.openshift.org/ocp/release-5:5.0.0-0.nightly-2026-04-21-130601" "registry.ci.openshift.org/ocp-arm64/release-5-arm64:5.0.0-0.nightly-arm64-2026-04-22-123905" +./scripts/auto-rebase/rebase.sh to "registry.ci.openshift.org/ocp/release-5:5.0.0-0.nightly-2026-04-21-130601" "registry.ci.openshift.org/ocp-arm64/release-5-arm64:5.0.0-0.nightly-arm64-2026-04-23-082815" From fbc00b5beca0ad67ee56fad71bcb77b4994006bf Mon Sep 17 00:00:00 2001 From: ci-robot Date: Fri, 24 Apr 2026 04:20:21 +0000 Subject: [PATCH 2/5] update etcd/vendor --- .../openshift/microshift/pkg/config/c2cc.go | 324 ++++++++++++++++++ .../openshift/microshift/pkg/config/config.go | 14 + 2 files changed, 338 insertions(+) create mode 100644 etcd/vendor/github.com/openshift/microshift/pkg/config/c2cc.go diff --git a/etcd/vendor/github.com/openshift/microshift/pkg/config/c2cc.go b/etcd/vendor/github.com/openshift/microshift/pkg/config/c2cc.go new file mode 100644 index 0000000000..cf758251e6 --- /dev/null +++ b/etcd/vendor/github.com/openshift/microshift/pkg/config/c2cc.go @@ -0,0 +1,324 @@ +package config + +import ( + "errors" + "fmt" + "net" + "strings" + + "github.com/vishvananda/netlink" + "k8s.io/apimachinery/pkg/util/validation" + netutils "k8s.io/utils/net" +) + +type C2CC struct { + // List of remote clusters to establish connectivity with. + // C2CC is disabled when this list is empty. + RemoteClusters []RemoteCluster `json:"remoteClusters,omitempty"` + + // Populated during validation with parsed network objects. + Resolved []ResolvedRemoteCluster `json:"-"` +} + +type RemoteCluster struct { + // IP address of the remote cluster's node, used as next-hop for routing. + NextHop string `json:"nextHop"` + // Pod CIDRs of the remote cluster. Must not overlap with local cluster or other remotes. + ClusterNetwork []string `json:"clusterNetwork"` + // Service CIDRs of the remote cluster. Must not overlap with local cluster or other remotes. + ServiceNetwork []string `json:"serviceNetwork"` + // DNS domain suffix for the remote cluster (e.g., "cluster-b.remote"). + // Services are reachable as ..svc.. + // Optional — if empty, no DNS forwarding is configured for this remote. + Domain string `json:"domain,omitempty"` +} + +type ResolvedRemoteCluster struct { + NextHop net.IP + ClusterNetwork []*net.IPNet + ServiceNetwork []*net.IPNet + Domain string +} + +type labeledCIDR struct { + net *net.IPNet + str string +} + +func (c *C2CC) IsEnabled() bool { + return len(c.RemoteClusters) > 0 +} + +func (rc *RemoteCluster) isEmpty() bool { + return rc.NextHop == "" && len(rc.ClusterNetwork) == 0 && len(rc.ServiceNetwork) == 0 && rc.Domain == "" +} + +func (c *C2CC) stripEmptyRemoteClusters() { + filtered := c.RemoteClusters[:0] + for i := range c.RemoteClusters { + if !c.RemoteClusters[i].isEmpty() { + filtered = append(filtered, c.RemoteClusters[i]) + } + } + c.RemoteClusters = filtered +} + +var getHostIPs = defaultGetHostIPs + +func defaultGetHostIPs() ([]net.IP, error) { + links, err := netlink.LinkList() + if err != nil { + return nil, fmt.Errorf("listing network interfaces: %w", err) + } + var ips []net.IP + for _, link := range links { + addrs, err := netlink.AddrList(link, netlink.FAMILY_ALL) + if err != nil { + return nil, fmt.Errorf("listing addresses for interface %q: %w", link.Attrs().Name, err) + } + for _, addr := range addrs { + ips = append(ips, addr.IP) + } + } + return ips, nil +} + +func (c *C2CC) parseRemoteClusters() ([]ResolvedRemoteCluster, []error) { + resolved := make([]ResolvedRemoteCluster, len(c.RemoteClusters)) + var errs []error + + for i := range c.RemoteClusters { + rc := &c.RemoteClusters[i] + label := fmt.Sprintf("remoteClusters[%d]", i) + + ip := net.ParseIP(rc.NextHop) + if ip == nil { + errs = append(errs, fmt.Errorf("%s.nextHop %q is not a valid IP address", label, rc.NextHop)) + } + resolved[i].NextHop = ip + + if len(rc.ClusterNetwork) == 0 { + errs = append(errs, fmt.Errorf("%s.clusterNetwork must not be empty", label)) + } + if len(rc.ServiceNetwork) == 0 { + errs = append(errs, fmt.Errorf("%s.serviceNetwork must not be empty", label)) + } + + for j, cidr := range rc.ClusterNetwork { + if ipNet := parseAndValidateCIDR(cidr, fmt.Sprintf("%s.clusterNetwork[%d]", label, j), &errs); ipNet != nil { + resolved[i].ClusterNetwork = append(resolved[i].ClusterNetwork, ipNet) + } + } + for j, cidr := range rc.ServiceNetwork { + if ipNet := parseAndValidateCIDR(cidr, fmt.Sprintf("%s.serviceNetwork[%d]", label, j), &errs); ipNet != nil { + resolved[i].ServiceNetwork = append(resolved[i].ServiceNetwork, ipNet) + } + } + + resolved[i].Domain = rc.Domain + } + + return resolved, errs +} + +func parseAndValidateCIDR(cidr, field string, errs *[]error) *net.IPNet { + _, ipNet, err := net.ParseCIDR(cidr) + if err != nil { + *errs = append(*errs, fmt.Errorf("%s %q is not a valid CIDR: %w", field, cidr, err)) + return nil + } + + ones, _ := ipNet.Mask.Size() + if ipNet.IP.To4() != nil { + if ones < 8 { + *errs = append(*errs, fmt.Errorf("%s %q has mask /%d shorter than minimum /8", field, cidr, ones)) + return nil + } + } else { + if ones < 32 { + *errs = append(*errs, fmt.Errorf("%s %q has mask /%d shorter than minimum /32", field, cidr, ones)) + return nil + } + } + return ipNet +} + +func (c *C2CC) validate(cfg *Config) error { + if cfg.Network.CNIPlugin != CniPluginUnset && cfg.Network.CNIPlugin != CniPluginOVNK { + return fmt.Errorf("cluster to cluster requires OVN-Kubernetes CNI (network.cniPlugin must be \"\" or \"ovnk\", got %q)", cfg.Network.CNIPlugin) + } + + resolved, parseErrs := c.parseRemoteClusters() + if len(parseErrs) > 0 { + return errors.Join(parseErrs...) + } + + hostIPs, err := getHostIPs() + if err != nil { + return fmt.Errorf("failed to get host IPs: %w", err) + } + + nodeIP := net.ParseIP(cfg.Node.NodeIP) + if nodeIP == nil { + return fmt.Errorf("failed to parse cfg.Node.NodeIP (%q)", cfg.Node.NodeIP) + } + + var nodeIPv6 net.IP + if cfg.Node.NodeIPV6 != "" { + nodeIPv6 = net.ParseIP(cfg.Node.NodeIPV6) + if nodeIPv6 == nil { + return fmt.Errorf("failed to parse cfg.Node.NodeIPV6 (%q)", cfg.Node.NodeIPV6) + } + } + + localV4 := cfg.IsIPv4() + localV6 := cfg.IsIPv6() + + var errs []error + + seenNextHops := make(map[string]int, len(c.RemoteClusters)) + seenRemoteDomains := make(map[string]int, len(c.RemoteClusters)) + + seenCIDRs := make([]labeledCIDR, 0, len(cfg.Network.ClusterNetwork)+len(cfg.Network.ServiceNetwork)+len(c.RemoteClusters)*4) + for _, s := range cfg.Network.ClusterNetwork { + if _, ipNet, err := net.ParseCIDR(s); err == nil { + seenCIDRs = append(seenCIDRs, labeledCIDR{net: ipNet, str: s}) + } + } + for _, s := range cfg.Network.ServiceNetwork { + if _, ipNet, err := net.ParseCIDR(s); err == nil { + seenCIDRs = append(seenCIDRs, labeledCIDR{net: ipNet, str: s}) + } + } + + for i := range c.RemoteClusters { + errs = append(errs, validateRemoteCluster(i, &c.RemoteClusters[i], &resolved[i], + nodeIP, nodeIPv6, localV4, localV6, hostIPs, + seenNextHops, seenRemoteDomains, &seenCIDRs)...) + } + + if err := errors.Join(errs...); err != nil { + return err + } + + c.Resolved = resolved + return nil +} + +func validateRemoteCluster( + i int, rc *RemoteCluster, res *ResolvedRemoteCluster, + nodeIP, nodeIPv6 net.IP, localV4, localV6 bool, hostIPs []net.IP, + seenNextHops map[string]int, seenRemoteDomains map[string]int, seenCIDRs *[]labeledCIDR, +) []error { + label := fmt.Sprintf("remoteClusters[%d]", i) + var errs []error + + normalizedNextHop := res.NextHop.String() + if res.NextHop.Equal(nodeIP) || (nodeIPv6 != nil && res.NextHop.Equal(nodeIPv6)) { + errs = append(errs, fmt.Errorf("%s.nextHop %q must not equal the local node IP (routing loop)", label, normalizedNextHop)) + } + if prev, ok := seenNextHops[normalizedNextHop]; ok { + errs = append(errs, fmt.Errorf("%s.nextHop %q duplicates remoteClusters[%d]", label, normalizedNextHop, prev)) + } else { + seenNextHops[normalizedNextHop] = i + } + + for j, cidrNet := range res.ClusterNetwork { + errs = append(errs, checkCIDRConflicts(cidrNet, rc.ClusterNetwork[j], label, *seenCIDRs, hostIPs)...) + *seenCIDRs = append(*seenCIDRs, labeledCIDR{net: cidrNet, str: rc.ClusterNetwork[j]}) + } + for j, cidrNet := range res.ServiceNetwork { + errs = append(errs, checkCIDRConflicts(cidrNet, rc.ServiceNetwork[j], label, *seenCIDRs, hostIPs)...) + *seenCIDRs = append(*seenCIDRs, labeledCIDR{net: cidrNet, str: rc.ServiceNetwork[j]}) + } + + if rc.Domain != "" { + if domainErrs := validation.IsDNS1123Subdomain(rc.Domain); len(domainErrs) > 0 { + errs = append(errs, fmt.Errorf("%s.domain %q is not a valid DNS name: %s", label, rc.Domain, strings.Join(domainErrs, ", "))) + } + if prev, ok := seenRemoteDomains[rc.Domain]; ok { + errs = append(errs, fmt.Errorf("%s.domain %q duplicates remoteClusters[%d]", label, rc.Domain, prev)) + } else { + seenRemoteDomains[rc.Domain] = i + } + } + + errs = append(errs, validateIPFamilyConsistencyNets(res.ClusterNetwork, label+".clusterNetwork")...) + errs = append(errs, validateIPFamilyConsistencyNets(res.ServiceNetwork, label+".serviceNetwork")...) + errs = append(errs, validateNetworkShapeNets(res.ClusterNetwork, res.ServiceNetwork, label)...) + errs = append(errs, validateRemoteIPFamilyCompatibility(localV4, localV6, res.ClusterNetwork, label)...) + errs = append(errs, validateRemoteIPFamilyCompatibility(localV4, localV6, res.ServiceNetwork, label)...) + + return errs +} + +func validateIPFamilyConsistencyNets(cidrs []*net.IPNet, field string) []error { + var v4, v6 int + var errs []error + for _, c := range cidrs { + switch netutils.IPFamilyOfCIDR(c) { + case netutils.IPv4: + v4++ + case netutils.IPv6: + v6++ + case netutils.IPFamilyUnknown: + errs = append(errs, fmt.Errorf("%s has unrecognized IP family: %v", field, c)) + } + } + if v4 > 1 { + errs = append(errs, fmt.Errorf("%s has multiple IPv4 entries (max 1)", field)) + } + if v6 > 1 { + errs = append(errs, fmt.Errorf("%s has multiple IPv6 entries (max 1)", field)) + } + return errs +} + +func validateNetworkShapeNets(clusterNetwork, serviceNetwork []*net.IPNet, label string) []error { + if len(clusterNetwork) != len(serviceNetwork) { + return []error{fmt.Errorf("%s: clusterNetwork and serviceNetwork have different cardinality (%d vs %d)", + label, len(clusterNetwork), len(serviceNetwork))} + } + var errs []error + for i := 0; i < len(clusterNetwork); i++ { + cFamily := netutils.IPFamilyOfCIDR(clusterNetwork[i]) + sFamily := netutils.IPFamilyOfCIDR(serviceNetwork[i]) + if cFamily != netutils.IPFamilyUnknown && sFamily != netutils.IPFamilyUnknown && cFamily != sFamily { + errs = append(errs, fmt.Errorf("%s: clusterNetwork[%d] and serviceNetwork[%d] have mismatched IP families", label, i, i)) + } + } + return errs +} + +func validateRemoteIPFamilyCompatibility(localV4, localV6 bool, remoteCIDRs []*net.IPNet, label string) []error { + var errs []error + for _, c := range remoteCIDRs { + family := netutils.IPFamilyOfCIDR(c) + if family == netutils.IPv4 && !localV4 { + errs = append(errs, fmt.Errorf("%s: %q is IPv4 but local cluster has no IPv4 network", label, c)) + } + if family == netutils.IPv6 && !localV6 { + errs = append(errs, fmt.Errorf("%s: %q is IPv6 but local cluster has no IPv6 network", label, c)) + } + } + return errs +} + +func checkCIDRConflicts(cidr *net.IPNet, cidrStr, label string, seenCIDRs []labeledCIDR, hostIPs []net.IP) []error { + var errs []error + for _, existing := range seenCIDRs { + if cidrsOverlap(cidr, existing.net) { + errs = append(errs, fmt.Errorf("%s: CIDR %q overlaps with %q", label, cidrStr, existing.str)) + } + } + for _, hostIP := range hostIPs { + if cidr.Contains(hostIP) { + errs = append(errs, fmt.Errorf("remote CIDR %q contains host interface IP %s — this would disrupt management traffic", cidrStr, hostIP)) + } + } + return errs +} + +func cidrsOverlap(a, b *net.IPNet) bool { + return a.Contains(b.IP) || b.Contains(a.IP) +} diff --git a/etcd/vendor/github.com/openshift/microshift/pkg/config/config.go b/etcd/vendor/github.com/openshift/microshift/pkg/config/config.go index 7c1cc17fbc..cffb723f2c 100644 --- a/etcd/vendor/github.com/openshift/microshift/pkg/config/config.go +++ b/etcd/vendor/github.com/openshift/microshift/pkg/config/config.go @@ -62,6 +62,8 @@ type Config struct { GenericDevicePlugin GenericDevicePlugin `json:"genericDevicePlugin"` + C2CC C2CC `json:"clusterToCluster"` + // Internal-only fields userSettings *Config `json:"-"` // the values read from the config file @@ -197,6 +199,7 @@ func (c *Config) fillDefaults() error { c.GenericDevicePlugin = genericDevicePluginDefaults() c.Telemetry = telemetryDefaults() c.DNS = dnsDefaults() + c.C2CC = C2CC{} return nil } @@ -451,6 +454,10 @@ func (c *Config) incorporateUserSettings(u *Config) { if len(u.ApiServer.FeatureGates.SpecialHandlingSupportExceptionRequired.Disabled) > 0 { c.ApiServer.FeatureGates.SpecialHandlingSupportExceptionRequired.Disabled = u.ApiServer.FeatureGates.SpecialHandlingSupportExceptionRequired.Disabled } + + if u.C2CC.RemoteClusters != nil { + c.C2CC = u.C2CC + } } // updateComputedValues examins the existing settings and converts any @@ -537,6 +544,8 @@ func (c *Config) updateComputedValues() error { c.Telemetry = Telemetry{Status: StatusDisabled} } + c.C2CC.stripEmptyRemoteClusters() + return nil } @@ -690,6 +699,11 @@ func (c *Config) validate() error { if err := c.Network.Multus.Validate(); err != nil { return fmt.Errorf("error validating multus configuration: %v", err) } + if c.C2CC.IsEnabled() { + if err := c.C2CC.validate(c); err != nil { + return fmt.Errorf("error validating clusterToCluster: %w", err) + } + } return nil } From 3a5afe9c9e47bf396bd52c4a487d3b8075494d97 Mon Sep 17 00:00:00 2001 From: ci-robot Date: Fri, 24 Apr 2026 04:20:24 +0000 Subject: [PATCH 3/5] update manifests --- assets/components/multus/release-multus-aarch64.json | 2 +- .../operator-lifecycle-manager/release-olm-aarch64.json | 2 +- assets/release/release-aarch64.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/components/multus/release-multus-aarch64.json b/assets/components/multus/release-multus-aarch64.json index 44a6ae77e8..a03d3b29da 100644 --- a/assets/components/multus/release-multus-aarch64.json +++ b/assets/components/multus/release-multus-aarch64.json @@ -1,6 +1,6 @@ { "release": { - "base": "5.0.0-0.nightly-arm64-2026-04-22-123905" + "base": "5.0.0-0.nightly-arm64-2026-04-23-082815" }, "images": { "multus-cni-microshift": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:90c894ac917474b769ce3cb76375ab42b7968b023aff63b54da30a24875d9a27", diff --git a/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json b/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json index cd8b0ed282..851d877891 100644 --- a/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json +++ b/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json @@ -1,6 +1,6 @@ { "release": { - "base": "5.0.0-0.nightly-arm64-2026-04-22-123905" + "base": "5.0.0-0.nightly-arm64-2026-04-23-082815" }, "images": { "operator-lifecycle-manager": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:00179da0a7a493f6615b680684eb8f5d134098517d2d6b60920d75e249cfc012", diff --git a/assets/release/release-aarch64.json b/assets/release/release-aarch64.json index 51ef519d4a..54110c4897 100644 --- a/assets/release/release-aarch64.json +++ b/assets/release/release-aarch64.json @@ -1,6 +1,6 @@ { "release": { - "base": "5.0.0-0.nightly-arm64-2026-04-22-123905" + "base": "5.0.0-0.nightly-arm64-2026-04-23-082815" }, "images": { "cli": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:0220ed3dd109e72a721a6ef66a694d6d755b3ee61db98f6ac4bcf8b4f8a0ea5f", From 9dc4a75c2a461d68c7f78bda102289b6994f6138 Mon Sep 17 00:00:00 2001 From: ci-robot Date: Fri, 24 Apr 2026 04:20:26 +0000 Subject: [PATCH 4/5] update buildfiles --- Makefile.version.aarch64.var | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.version.aarch64.var b/Makefile.version.aarch64.var index 36c6c6b563..eb73a6ba61 100644 --- a/Makefile.version.aarch64.var +++ b/Makefile.version.aarch64.var @@ -1 +1 @@ -OCP_VERSION := 5.0.0-0.nightly-arm64-2026-04-22-123905 +OCP_VERSION := 5.0.0-0.nightly-arm64-2026-04-23-082815 From 3601f395b8127a60dfe7273c9d79c371139a733e Mon Sep 17 00:00:00 2001 From: ci-robot Date: Fri, 24 Apr 2026 04:20:50 +0000 Subject: [PATCH 5/5] Update AI Model Serving for MicroShift --- .../crd/full/serving.kserve.io_clusterservingruntimes.yaml | 2 +- .../crd/full/serving.kserve.io_clusterstoragecontainers.yaml | 2 +- .../kserve/crd/full/serving.kserve.io_inferencegraphs.yaml | 2 +- .../kserve/crd/full/serving.kserve.io_inferenceservices.yaml | 2 +- .../crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml | 2 +- .../kserve/crd/full/serving.kserve.io_llminferenceservices.yaml | 2 +- .../kserve/crd/full/serving.kserve.io_localmodelcaches.yaml | 2 +- .../kserve/crd/full/serving.kserve.io_localmodelnodegroups.yaml | 2 +- .../kserve/crd/full/serving.kserve.io_localmodelnodes.yaml | 2 +- .../kserve/crd/full/serving.kserve.io_servingruntimes.yaml | 2 +- .../kserve/crd/full/serving.kserve.io_trainedmodels.yaml | 2 +- .../ai-model-serving/release-ai-model-serving-x86_64.json | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_clusterservingruntimes.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_clusterservingruntimes.yaml index 70e2860cc4..49ff9ddc89 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_clusterservingruntimes.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_clusterservingruntimes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: clusterservingruntimes.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_clusterstoragecontainers.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_clusterstoragecontainers.yaml index 8f799c5cdc..c1c11168a0 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_clusterstoragecontainers.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_clusterstoragecontainers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: clusterstoragecontainers.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_inferencegraphs.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_inferencegraphs.yaml index a8d0690fe2..b6ed949196 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_inferencegraphs.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_inferencegraphs.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: inferencegraphs.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_inferenceservices.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_inferenceservices.yaml index fd438f9b65..7757c2004d 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_inferenceservices.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_inferenceservices.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: inferenceservices.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml index ca879e9ab6..45af5b737c 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: llminferenceserviceconfigs.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_llminferenceservices.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_llminferenceservices.yaml index c2e524232a..e23ff78088 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_llminferenceservices.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_llminferenceservices.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: llminferenceservices.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelcaches.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelcaches.yaml index ab92f72ab7..420fc7cab0 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelcaches.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelcaches.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: localmodelcaches.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelnodegroups.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelnodegroups.yaml index 51beae879b..c9829c3b97 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelnodegroups.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelnodegroups.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: localmodelnodegroups.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelnodes.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelnodes.yaml index f130f6e7a3..af0db7f0f8 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelnodes.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_localmodelnodes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: localmodelnodes.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_servingruntimes.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_servingruntimes.yaml index 5a88508dbd..e255afa3ff 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_servingruntimes.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_servingruntimes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: servingruntimes.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_trainedmodels.yaml b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_trainedmodels.yaml index 2e08331dcd..07978c46c0 100644 --- a/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_trainedmodels.yaml +++ b/assets/optional/ai-model-serving/kserve/crd/full/serving.kserve.io_trainedmodels.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.17.0 name: trainedmodels.serving.kserve.io spec: group: serving.kserve.io diff --git a/assets/optional/ai-model-serving/release-ai-model-serving-x86_64.json b/assets/optional/ai-model-serving/release-ai-model-serving-x86_64.json index 53f94e1478..6b35ccab45 100644 --- a/assets/optional/ai-model-serving/release-ai-model-serving-x86_64.json +++ b/assets/optional/ai-model-serving/release-ai-model-serving-x86_64.json @@ -1,6 +1,6 @@ { "release": { - "base": "2.25.4" + "base": "2.25.5" }, "images": { "ray-tls-generator-image": "registry.redhat.io/ubi9/ubi-minimal:latest",