Skip to content

Commit acbf46e

Browse files
committed
Address review comments
1 parent 9582a44 commit acbf46e

File tree

9 files changed

+46
-62
lines changed

9 files changed

+46
-62
lines changed

api/bootstrap/kubeadm/v1beta2/kubeadm_types.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -181,18 +181,20 @@ type ClusterConfiguration struct {
181181
// +optional
182182
FeatureGates map[string]bool `json:"featureGates,omitempty"`
183183

184-
// certificateValidityPeriodDays specifies the validity period for a non-CA certificate generated by kubeadm.
185-
// If not specified, kubeadm will use a default of 3650 days (10 years).
184+
// certificateValidityPeriodDays specifies the validity period for non-CA certificates generated by kubeadm.
185+
// If not specified, kubeadm will use a default of 365 days (1 year).
186186
// +optional
187187
// +kubebuilder:validation:Minimum=1
188-
// +kubebuilder:validation:Maximum=10950
188+
// +kubebuilder:validation:Maximum=1095
189189
CertificateValidityPeriodDays int32 `json:"certificateValidityPeriodDays,omitempty"`
190190

191-
// caCertificateValidityPeriodDays specifies the validity period for a CA certificate generated by kubeadm.
192-
// If not specified, kubeadm will use a default of 3650 days (10 years).
191+
// caCertificateValidityPeriodDays specifies the validity period for CA certificates generated by kubeadm.
192+
// If not specified, Cluster API will use a default of 3650 days (10 years).
193+
// This field cannot be modified.
194+
// This field is only supported with Kubernetes v1.31 or above.
193195
// +optional
194196
// +kubebuilder:validation:Minimum=1
195-
// +kubebuilder:validation:Maximum=10950
197+
// +kubebuilder:validation:Maximum=36500
196198
CACertificateValidityPeriodDays int32 `json:"caCertificateValidityPeriodDays,omitempty"`
197199
}
198200

api/controlplane/kubeadm/v1beta1/conversion_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,6 @@ func hubKubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, c randfill.Continue
122122
}
123123
in.JoinConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds = initControlPlaneComponentHealthCheckSeconds
124124
}
125-
if in.ClusterConfiguration != nil {
126-
in.ClusterConfiguration.CertificateValidityPeriodDays = 0
127-
in.ClusterConfiguration.CACertificateValidityPeriodDays = 0
128-
}
129125
}
130126

131127
func hubNodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, c randfill.Continue) {

api/core/v1beta2/conversion.go

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -104,26 +104,3 @@ func Convert_Duration_To_Pointer_int32(in metav1.Duration, hasRestored bool, res
104104
// Otherwise, if the value is not 0, convert to *value.
105105
*out = ConvertToSeconds(&in)
106106
}
107-
108-
// ConvertToDays takes *metav1.Duration and returns a *int32.
109-
// Durations longer than MaxInt32 are capped.
110-
// NOTE: this is a util function intended only for usage in API conversions.
111-
func ConvertToDays(in *metav1.Duration) *int32 {
112-
if in == nil {
113-
return nil
114-
}
115-
hours := math.Trunc(in.Hours())
116-
if hours > math.MaxInt32 {
117-
return ptr.To[int32](math.MaxInt32)
118-
}
119-
return ptr.To(int32(hours / 24))
120-
}
121-
122-
// ConvertFromDays takes *int32 and returns a *metav1.Duration.
123-
// NOTE: this is a util function intended only for usage in API conversions.
124-
func ConvertFromDays(in *int32) *metav1.Duration {
125-
if in == nil {
126-
return nil
127-
}
128-
return ptr.To(metav1.Duration{Duration: time.Duration(*in) * time.Hour * 24})
129-
}

bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigs.yaml

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

bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigtemplates.yaml

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

bootstrap/kubeadm/types/upstreamv1beta4/conversion_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,8 @@ func spokeClusterConfigurationFuzzer(obj *ClusterConfiguration, c randfill.Conti
100100

101101
obj.Proxy = Proxy{}
102102
obj.EncryptionAlgorithm = ""
103-
104-
obj.CertificateValidityPeriod = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()%24+1) * time.Hour * 24})
105-
obj.CACertificateValidityPeriod = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()%24+1) * time.Hour * 24})
103+
obj.CertificateValidityPeriod = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31n(3*365)+1) * time.Hour * 24})
104+
obj.CACertificateValidityPeriod = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31n(100*365)+1) * time.Hour * 24})
106105

107106
// Drop the following fields as they have been removed in v1beta2, so we don't have to preserve them.
108107
obj.Networking.ServiceSubnet = ""
@@ -215,6 +214,6 @@ func hubNodeRegistrationOptionsFuzzer(obj *bootstrapv1.NodeRegistrationOptions,
215214
func hubClusterConfigurationFuzzer(obj *bootstrapv1.ClusterConfiguration, c randfill.Continue) {
216215
c.FillNoCustom(obj)
217216

218-
obj.CertificateValidityPeriodDays %= 24
219-
obj.CACertificateValidityPeriodDays %= 24
217+
obj.CertificateValidityPeriodDays = c.Int31n(3*365 + 1)
218+
obj.CACertificateValidityPeriodDays = c.Int31n(100*365 + 1)
220219
}

controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanes.yaml

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

controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanetemplates.yaml

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

controlplane/kubeadm/internal/webhooks/kubeadm_control_plane_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,8 @@ func TestKubeadmControlPlaneValidateUpdate(t *testing.T) {
337337
ImageTag: "1.6.5",
338338
},
339339
},
340+
CertificateValidityPeriodDays: 365,
341+
CACertificateValidityPeriodDays: 365,
340342
},
341343
JoinConfiguration: &bootstrapv1.JoinConfiguration{
342344
NodeRegistration: bootstrapv1.NodeRegistrationOptions{

0 commit comments

Comments
 (0)