diff --git a/VERSION b/VERSION index 440ddd8f1c2..a406138ee1d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v1.15.0 +v1.16.0 diff --git a/charts/kube-ovn-v2/Chart.yaml b/charts/kube-ovn-v2/Chart.yaml index ee9b48d23dc..020475f011a 100644 --- a/charts/kube-ovn-v2/Chart.yaml +++ b/charts/kube-ovn-v2/Chart.yaml @@ -2,6 +2,6 @@ apiVersion: v2 name: kube-ovn-v2 description: Helm chart for Kube-OVN type: application -version: 1.15.0 -appVersion: "1.15.0" +version: 1.16.0 +appVersion: "1.16.0" kubeVersion: ">= 1.29.0-0" diff --git a/charts/kube-ovn-v2/templates/_helpers.tpl b/charts/kube-ovn-v2/templates/_helpers.tpl index 1f409d0b77b..9d2a7b3fb4e 100644 --- a/charts/kube-ovn-v2/templates/_helpers.tpl +++ b/charts/kube-ovn-v2/templates/_helpers.tpl @@ -126,7 +126,7 @@ Get IPs of master nodes from values {{- $imageVersion := (index $ds.spec.template.spec.containers 0).image | splitList ":" | last | trimPrefix "v" -}} {{- $versionRegex := `^(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)` -}} {{- if and (ne $newChartVersion $chartVersion) (regexMatch $versionRegex $imageVersion) -}} - {{- if regexFind $versionRegex $imageVersion | semverCompare ">= 1.15.0" -}} + {{- if regexFind $versionRegex $imageVersion | semverCompare ">= 1.16.0" -}} 25.03 {{- else if regexFind $versionRegex $imageVersion | semverCompare ">= 1.13.0" -}} 24.03 diff --git a/charts/kube-ovn-v2/values.yaml b/charts/kube-ovn-v2/values.yaml index a3f3d53b420..edb86a6b68a 100644 --- a/charts/kube-ovn-v2/values.yaml +++ b/charts/kube-ovn-v2/values.yaml @@ -302,7 +302,7 @@ natGw: repository: docker.io/kubeovn/kube-ovn # -- Image tag. # @section -- NAT gateways configuration - tag: v1.15.0 + tag: v1.16.0 # -- Image pull policy. # @section -- NAT gateways configuration pullPolicy: IfNotPresent diff --git a/charts/kube-ovn/Chart.yaml b/charts/kube-ovn/Chart.yaml index 4328fbe9eb8..b4827113336 100644 --- a/charts/kube-ovn/Chart.yaml +++ b/charts/kube-ovn/Chart.yaml @@ -15,12 +15,12 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: v1.15.0 +version: v1.16.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "1.15.0" +appVersion: "1.16.0" kubeVersion: ">= 1.29.0-0" diff --git a/charts/kube-ovn/templates/_helpers.tpl b/charts/kube-ovn/templates/_helpers.tpl index f6ad6533be7..09037f72201 100644 --- a/charts/kube-ovn/templates/_helpers.tpl +++ b/charts/kube-ovn/templates/_helpers.tpl @@ -66,7 +66,7 @@ Number of master nodes {{- $imageVersion := (index $ds.spec.template.spec.containers 0).image | splitList ":" | last | trimPrefix "v" -}} {{- $versionRegex := `^(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)` -}} {{- if and (ne $newChartVersion $chartVersion) (regexMatch $versionRegex $imageVersion) -}} - {{- if regexFind $versionRegex $imageVersion | semverCompare ">= 1.15.0" -}} + {{- if regexFind $versionRegex $imageVersion | semverCompare ">= 1.16.0" -}} 25.03 {{- else if regexFind $versionRegex $imageVersion | semverCompare ">= 1.13.0" -}} 24.03 diff --git a/charts/kube-ovn/values.yaml b/charts/kube-ovn/values.yaml index 26944971645..8600e7df122 100644 --- a/charts/kube-ovn/values.yaml +++ b/charts/kube-ovn/values.yaml @@ -9,7 +9,7 @@ global: kubeovn: repository: kube-ovn vpcRepository: vpc-nat-gateway - tag: v1.15.0 + tag: v1.16.0 support_arm: true thirdparty: true diff --git a/dist/images/install.sh b/dist/images/install.sh index 8f1b5590b8c..38fd29b43c0 100755 --- a/dist/images/install.sh +++ b/dist/images/install.sh @@ -72,7 +72,7 @@ CNI_BIN_DIR="/opt/cni/bin" REGISTRY="docker.io/kubeovn" VPC_NAT_IMAGE="vpc-nat-gateway" -VERSION="v1.15.0" +VERSION="v1.16.0" IMAGE_PULL_POLICY="IfNotPresent" POD_CIDR="10.16.0.0/16" # Do NOT overlap with NODE/SVC/JOIN CIDR POD_GATEWAY="10.16.0.1" diff --git a/pkg/controller/subnet.go b/pkg/controller/subnet.go index d940d67f243..fd2688e0513 100644 --- a/pkg/controller/subnet.go +++ b/pkg/controller/subnet.go @@ -1008,8 +1008,28 @@ func (c *Controller) handleDeleteSubnet(subnet *kubeovnv1.Subnet) error { return err } - err := c.handleDeleteLogicalSwitch(subnet.Name) + klog.Infof("cleaning up IPs for subnet %s", subnet.Name) + ips, err := c.ipsLister.List(labels.Everything()) if err != nil { + klog.Errorf("failed to list ips: %v", err) + return err + } + for _, ip := range ips { + if ip.Spec.Subnet == subnet.Name { + // Delete with foreground propagation to wait for finalizer cleanup + deletePolicy := metav1.DeletePropagationForeground + if err := c.config.KubeOvnClient.KubeovnV1().IPs().Delete( + context.Background(), + ip.Name, + metav1.DeleteOptions{PropagationPolicy: &deletePolicy}, + ); err != nil && !k8serrors.IsNotFound(err) { + klog.Errorf("failed to delete ip %s: %v", ip.Name, err) + return err + } + } + } + + if err := c.handleDeleteLogicalSwitch(subnet.Name); err != nil { klog.Errorf("failed to delete logical switch %s %v", subnet.Name, err) return err }