Skip to content

Commit a4a3c90

Browse files
committed
Remove CR dependency in API packages
1 parent 8f2d1a2 commit a4a3c90

File tree

25 files changed

+788
-654
lines changed

25 files changed

+788
-654
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ SHELL:=/usr/bin/env bash
2323
#
2424
# Go.
2525
#
26-
GO_VERSION ?= 1.24.7
27-
GO_DIRECTIVE_VERSION ?= 1.24.0
26+
GO_VERSION ?= 1.25.3
27+
GO_DIRECTIVE_VERSION ?= 1.23.0
2828
GO_CONTAINER_IMAGE ?= docker.io/library/golang:$(GO_VERSION)
2929

3030
# Ensure correct toolchain is used

Tiltfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ def load_provider_tilt_files():
172172

173173
tilt_helper_dockerfile_header = """
174174
# Tilt image
175-
FROM golang:1.24.7 as tilt-helper
175+
FROM golang:1.25.3 as tilt-helper
176176
# Install delve. Note this should be kept in step with the Go release minor version.
177177
RUN go install github.com/go-delve/delve/cmd/[email protected]
178178
# Support live reloading with Tilt
@@ -183,7 +183,7 @@ RUN wget --output-document /restart.sh --quiet https://raw.githubusercontent.com
183183
"""
184184

185185
tilt_dockerfile_header = """
186-
FROM golang:1.24.7 as tilt
186+
FROM golang:1.25.3 as tilt
187187
WORKDIR /
188188
COPY --from=tilt-helper /process.txt .
189189
COPY --from=tilt-helper /start.sh .

api/core/v1beta1/conversion.go

Lines changed: 0 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -44,94 +44,6 @@ func SetAPIVersionGetter(f func(gk schema.GroupKind) (string, error)) {
4444
apiVersionGetter = f
4545
}
4646

47-
func (src *Cluster) ConvertTo(dstRaw conversion.Hub) error {
48-
dst := dstRaw.(*clusterv1.Cluster)
49-
50-
if err := Convert_v1beta1_Cluster_To_v1beta2_Cluster(src, dst, nil); err != nil {
51-
return err
52-
}
53-
54-
if src.Spec.InfrastructureRef != nil {
55-
infraRef, err := convertToContractVersionedObjectReference(src.Spec.InfrastructureRef)
56-
if err != nil {
57-
return err
58-
}
59-
dst.Spec.InfrastructureRef = infraRef
60-
}
61-
62-
if src.Spec.ControlPlaneRef != nil {
63-
controlPlaneRef, err := convertToContractVersionedObjectReference(src.Spec.ControlPlaneRef)
64-
if err != nil {
65-
return err
66-
}
67-
dst.Spec.ControlPlaneRef = controlPlaneRef
68-
}
69-
70-
restored := &clusterv1.Cluster{}
71-
ok, err := utilconversion.UnmarshalData(src, restored)
72-
if err != nil {
73-
return err
74-
}
75-
76-
// Recover intent for bool values converted to *bool.
77-
clusterv1.Convert_bool_To_Pointer_bool(src.Spec.Paused, ok, restored.Spec.Paused, &dst.Spec.Paused)
78-
79-
initialization := clusterv1.ClusterInitializationStatus{}
80-
restoredControlPlaneInitialized := restored.Status.Initialization.ControlPlaneInitialized
81-
restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned
82-
clusterv1.Convert_bool_To_Pointer_bool(src.Status.ControlPlaneReady, ok, restoredControlPlaneInitialized, &initialization.ControlPlaneInitialized)
83-
clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned)
84-
if !reflect.DeepEqual(initialization, clusterv1.ClusterInitializationStatus{}) {
85-
dst.Status.Initialization = initialization
86-
}
87-
return nil
88-
}
89-
90-
func (dst *Cluster) ConvertFrom(srcRaw conversion.Hub) error {
91-
src := srcRaw.(*clusterv1.Cluster)
92-
if err := Convert_v1beta2_Cluster_To_v1beta1_Cluster(src, dst, nil); err != nil {
93-
return err
94-
}
95-
96-
if src.Spec.InfrastructureRef.IsDefined() {
97-
infraRef, err := convertToObjectReference(src.Spec.InfrastructureRef, src.Namespace)
98-
if err != nil {
99-
return err
100-
}
101-
dst.Spec.InfrastructureRef = infraRef
102-
}
103-
104-
if src.Spec.ControlPlaneRef.IsDefined() {
105-
controlPlaneRef, err := convertToObjectReference(src.Spec.ControlPlaneRef, src.Namespace)
106-
if err != nil {
107-
return err
108-
}
109-
dst.Spec.ControlPlaneRef = controlPlaneRef
110-
}
111-
112-
if dst.Spec.ClusterNetwork != nil && dst.Spec.ClusterNetwork.APIServerPort != nil &&
113-
*dst.Spec.ClusterNetwork.APIServerPort == 0 {
114-
dst.Spec.ClusterNetwork.APIServerPort = nil
115-
}
116-
117-
if dst.Spec.Topology != nil {
118-
if dst.Spec.Topology.ControlPlane.MachineHealthCheck != nil && dst.Spec.Topology.ControlPlane.MachineHealthCheck.RemediationTemplate != nil {
119-
dst.Spec.Topology.ControlPlane.MachineHealthCheck.RemediationTemplate.Namespace = dst.Namespace
120-
}
121-
if dst.Spec.Topology.Workers != nil {
122-
for _, md := range dst.Spec.Topology.Workers.MachineDeployments {
123-
if md.MachineHealthCheck != nil && md.MachineHealthCheck.RemediationTemplate != nil {
124-
md.MachineHealthCheck.RemediationTemplate.Namespace = dst.Namespace
125-
}
126-
}
127-
}
128-
}
129-
130-
dropEmptyStringsCluster(dst)
131-
132-
return utilconversion.MarshalData(src, dst)
133-
}
134-
13547
func (src *ClusterClass) ConvertTo(dstRaw conversion.Hub) error {
13648
dst := dstRaw.(*clusterv1.ClusterClass)
13749

api/core/v1beta1/conversion_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ func TestFuzzyConversion(t *testing.T) {
5555
return "", fmt.Errorf("failed to map GroupKind %s to version", gk.String())
5656
})
5757

58+
// FIXME: implement a new test util for the new conversion.
5859
t.Run("for Cluster", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{
5960
Hub: &clusterv1.Cluster{},
6061
Spoke: &Cluster{},

api/core/v1beta2/conversion.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"k8s.io/utils/ptr"
2525
)
2626

27-
func (*Cluster) Hub() {}
2827
func (*ClusterClass) Hub() {}
2928
func (*Machine) Hub() {}
3029
func (*MachineSet) Hub() {}

api/runtime/v1alpha1/.import-restrictions

Lines changed: 0 additions & 5 deletions
This file was deleted.

api/runtime/v1alpha1/conversion.go

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -22,35 +22,11 @@ import (
2222
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2323
apimachineryconversion "k8s.io/apimachinery/pkg/conversion"
2424
"k8s.io/utils/ptr"
25-
"sigs.k8s.io/controller-runtime/pkg/conversion"
2625

2726
clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1"
2827
runtimev1 "sigs.k8s.io/cluster-api/api/runtime/v1beta2"
2928
)
3029

31-
func (src *ExtensionConfig) ConvertTo(dstRaw conversion.Hub) error {
32-
dst := dstRaw.(*runtimev1.ExtensionConfig)
33-
34-
return Convert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig(src, dst, nil)
35-
}
36-
37-
func (dst *ExtensionConfig) ConvertFrom(srcRaw conversion.Hub) error {
38-
src := srcRaw.(*runtimev1.ExtensionConfig)
39-
40-
if err := Convert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig(src, dst, nil); err != nil {
41-
return err
42-
}
43-
44-
dropEmptyStringsExtensionConfig(dst)
45-
for i, h := range dst.Status.Handlers {
46-
if h.TimeoutSeconds != nil && *h.TimeoutSeconds == 0 {
47-
h.TimeoutSeconds = nil
48-
}
49-
dst.Status.Handlers[i] = h
50-
}
51-
return nil
52-
}
53-
5430
func Convert_v1beta2_ExtensionConfigStatus_To_v1alpha1_ExtensionConfigStatus(in *runtimev1.ExtensionConfigStatus, out *ExtensionConfigStatus, s apimachineryconversion.Scope) error {
5531
if err := autoConvert_v1beta2_ExtensionConfigStatus_To_v1alpha1_ExtensionConfigStatus(in, out, s); err != nil {
5632
return err

api/runtime/v1beta2/conversion.go

Lines changed: 0 additions & 19 deletions
This file was deleted.

exp/topology/desiredstate/desired_state.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,7 @@ func (g *generator) computeControlPlaneVersion(ctx context.Context, s *scope.Sco
565565
if hooks.IsPending(runtimehooksv1.AfterControlPlaneUpgrade, s.Current.Cluster) {
566566
v1beta1Cluster := &clusterv1beta1.Cluster{}
567567
// DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation.
568-
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil {
568+
if err := webhooks.ConvertClusterHubToV1Beta1(ctx, s.Current.Cluster.DeepCopy(), v1beta1Cluster); err != nil {
569569
return "", errors.Wrap(err, "error converting Cluster to v1beta1 Cluster")
570570
}
571571

@@ -668,7 +668,7 @@ func (g *generator) computeControlPlaneVersion(ctx context.Context, s *scope.Sco
668668
// up the topologyVersion. Call the BeforeClusterUpgrade hook before picking up the desired version.
669669
v1beta1Cluster := &clusterv1beta1.Cluster{}
670670
// DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation.
671-
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil {
671+
if err := webhooks.ConvertClusterHubToV1Beta1(ctx, s.Current.Cluster.DeepCopy(), v1beta1Cluster); err != nil {
672672
return "", errors.Wrap(err, "error converting Cluster to v1beta1 Cluster")
673673
}
674674

go.mod

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
module sigs.k8s.io/cluster-api
22

3-
go 1.24.0
3+
go 1.25.0
4+
5+
replace sigs.k8s.io/controller-runtime => ../controller-runtime
46

57
require (
68
github.com/MakeNowJust/heredoc v1.0.0
@@ -25,7 +27,7 @@ require (
2527
github.com/onsi/ginkgo/v2 v2.25.3
2628
github.com/onsi/gomega v1.38.2
2729
github.com/pkg/errors v0.9.1
28-
github.com/prometheus/client_golang v1.22.0
30+
github.com/prometheus/client_golang v1.23.2
2931
github.com/spf13/cobra v1.10.1
3032
github.com/spf13/pflag v1.0.10
3133
github.com/spf13/viper v1.21.0
@@ -39,15 +41,15 @@ require (
3941
golang.org/x/text v0.29.0
4042
gomodules.xyz/jsonpatch/v2 v2.5.0
4143
google.golang.org/grpc v1.72.3
42-
k8s.io/api v0.34.1
43-
k8s.io/apiextensions-apiserver v0.34.1
44-
k8s.io/apimachinery v0.34.1
45-
k8s.io/apiserver v0.34.1
46-
k8s.io/client-go v0.34.1
44+
k8s.io/api v0.35.0-alpha.1
45+
k8s.io/apiextensions-apiserver v0.35.0-alpha.1
46+
k8s.io/apimachinery v0.35.0-alpha.1
47+
k8s.io/apiserver v0.35.0-alpha.1
48+
k8s.io/client-go v0.35.0-alpha.1
4749
k8s.io/cluster-bootstrap v0.34.1
48-
k8s.io/component-base v0.34.1
50+
k8s.io/component-base v0.35.0-alpha.1
4951
k8s.io/klog/v2 v2.130.1
50-
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b
52+
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912
5153
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
5254
sigs.k8s.io/controller-runtime v0.22.1
5355
sigs.k8s.io/randfill v1.0.0
@@ -112,9 +114,9 @@ require (
112114
github.com/opencontainers/go-digest v1.0.0 // indirect
113115
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
114116
github.com/pmezard/go-difflib v1.0.0 // indirect
115-
github.com/prometheus/client_model v0.6.1 // indirect
116-
github.com/prometheus/common v0.62.0 // indirect
117-
github.com/prometheus/procfs v0.15.1 // indirect
117+
github.com/prometheus/client_model v0.6.2 // indirect
118+
github.com/prometheus/common v0.66.1 // indirect
119+
github.com/prometheus/procfs v0.16.1 // indirect
118120
github.com/rivo/uniseg v0.4.2 // indirect
119121
github.com/sagikazarmark/locafero v0.11.0 // indirect
120122
github.com/shopspring/decimal v1.4.0 // indirect
@@ -126,13 +128,13 @@ require (
126128
github.com/vincent-petithory/dataurl v1.0.0 // indirect
127129
github.com/x448/float16 v0.8.4 // indirect
128130
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
129-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect
130-
go.opentelemetry.io/otel v1.35.0 // indirect
131+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect
132+
go.opentelemetry.io/otel v1.36.0 // indirect
131133
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect
132134
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect
133-
go.opentelemetry.io/otel/metric v1.35.0 // indirect
134-
go.opentelemetry.io/otel/sdk v1.34.0 // indirect
135-
go.opentelemetry.io/otel/trace v1.35.0 // indirect
135+
go.opentelemetry.io/otel/metric v1.36.0 // indirect
136+
go.opentelemetry.io/otel/sdk v1.36.0 // indirect
137+
go.opentelemetry.io/otel/trace v1.36.0 // indirect
136138
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
137139
go.uber.org/automaxprocs v1.6.0 // indirect
138140
go.uber.org/multierr v1.11.0 // indirect
@@ -147,12 +149,12 @@ require (
147149
golang.org/x/time v0.9.0 // indirect
148150
golang.org/x/tools v0.36.0 // indirect
149151
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect
150-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect
151-
google.golang.org/protobuf v1.36.7 // indirect
152-
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
152+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect
153+
google.golang.org/protobuf v1.36.8 // indirect
154+
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
153155
gopkg.in/inf.v0 v0.9.1 // indirect
154156
gopkg.in/yaml.v3 v3.0.1 // indirect
155157
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect
156-
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
158+
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
157159
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
158160
)

0 commit comments

Comments
 (0)