Skip to content

Commit

Permalink
Deprecate DisableExternalCloudProvider
Browse files Browse the repository at this point in the history
Signed-off-by: Andrea Mazzotti <[email protected]>
  • Loading branch information
anmazzotti committed May 13, 2024
1 parent 0527d86 commit 599abba
Show file tree
Hide file tree
Showing 16 changed files with 241 additions and 84 deletions.
96 changes: 76 additions & 20 deletions bootstrap/api/v1beta1/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,79 +16,135 @@ package v1beta1
import (
"fmt"

"sigs.k8s.io/controller-runtime/pkg/conversion"
"k8s.io/apimachinery/pkg/conversion"
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
ctrlconversion "sigs.k8s.io/controller-runtime/pkg/conversion"

cabp3v1 "github.com/k3s-io/cluster-api-k3s/bootstrap/api/v1beta2"
bootstrapv1beta2 "github.com/k3s-io/cluster-api-k3s/bootstrap/api/v1beta2"
)

// ConvertTo converts the v1beta1 KThreesConfig receiver to a v1beta2 KThreesConfig.
func (c *KThreesConfig) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*cabp3v1.KThreesConfig)
if err := autoConvert_v1beta1_KThreesConfig_To_v1beta2_KThreesConfig(c, dst, nil); err != nil {
func (c *KThreesConfig) ConvertTo(dstRaw ctrlconversion.Hub) error {
dst := dstRaw.(*bootstrapv1beta2.KThreesConfig)
if err := Convert_v1beta1_KThreesConfig_To_v1beta2_KThreesConfig(c, dst, nil); err != nil {
return fmt.Errorf("converting KThreesConfig v1beta1 to v1beta2: %w", err)
}

restored := &bootstrapv1beta2.KThreesConfig{}
if ok, err := utilconversion.UnmarshalData(c, restored); err != nil {
return fmt.Errorf("unmarshalling stored conversion data: %w", err)
} else if !ok {
// No stored data.
return nil
}

dst.Spec.ServerConfig.CloudProviderName = restored.Spec.ServerConfig.CloudProviderName
dst.Spec.ServerConfig.DeprecatedDisableExternalCloudProvider = restored.Spec.ServerConfig.DeprecatedDisableExternalCloudProvider
dst.Spec.ServerConfig.DisableCloudController = restored.Spec.ServerConfig.DisableCloudController
return nil
}

// ConvertFrom converts the v1beta1 KThreesConfig receiver from a v1beta2 KThreesConfig.
func (c *KThreesConfig) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*cabp3v1.KThreesConfig)
if err := autoConvert_v1beta2_KThreesConfig_To_v1beta1_KThreesConfig(src, c, nil); err != nil {
func (c *KThreesConfig) ConvertFrom(srcRaw ctrlconversion.Hub) error {
src := srcRaw.(*bootstrapv1beta2.KThreesConfig)
if err := Convert_v1beta2_KThreesConfig_To_v1beta1_KThreesConfig(src, c, nil); err != nil {
return fmt.Errorf("converting KThreesConfig v1beta1 from v1beta2: %w", err)
}

if err := utilconversion.MarshalData(src, c); err != nil {
return fmt.Errorf("storing conversion data: %w", err)
}
return nil
}

// ConvertTo converts the v1beta1 KThreesConfigList receiver to a v1beta2 KThreesConfigList.
func (c *KThreesConfigList) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*cabp3v1.KThreesConfigList)
func (c *KThreesConfigList) ConvertTo(dstRaw ctrlconversion.Hub) error {
dst := dstRaw.(*bootstrapv1beta2.KThreesConfigList)
if err := autoConvert_v1beta1_KThreesConfigList_To_v1beta2_KThreesConfigList(c, dst, nil); err != nil {
return fmt.Errorf("converting KThreesConfigList v1beta1 to v1beta2: %w", err)
}
return nil
}

// ConvertFrom converts the v1beta1 KThreesConfigList receiver from a v1beta2 KThreesConfigList.
func (c *KThreesConfigList) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*cabp3v1.KThreesConfigList)
func (c *KThreesConfigList) ConvertFrom(srcRaw ctrlconversion.Hub) error {
src := srcRaw.(*bootstrapv1beta2.KThreesConfigList)
if err := autoConvert_v1beta2_KThreesConfigList_To_v1beta1_KThreesConfigList(src, c, nil); err != nil {
return fmt.Errorf("converting KThreesConfigList v1beta1 from v1beta2: %w", err)
}
return nil
}

// ConvertTo converts the v1beta1 KThreesConfigTemplate receiver to a v1beta2 KThreesConfigTemplate.
func (r *KThreesConfigTemplate) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*cabp3v1.KThreesConfigTemplate)
func (r *KThreesConfigTemplate) ConvertTo(dstRaw ctrlconversion.Hub) error {
dst := dstRaw.(*bootstrapv1beta2.KThreesConfigTemplate)
if err := autoConvert_v1beta1_KThreesConfigTemplate_To_v1beta2_KThreesConfigTemplate(r, dst, nil); err != nil {
return fmt.Errorf("converting KThreesConfigTemplate v1beta1 to v1beta2: %w", err)
}

restored := &bootstrapv1beta2.KThreesConfigTemplate{}
if ok, err := utilconversion.UnmarshalData(r, restored); err != nil {
return fmt.Errorf("unmarshalling stored conversion data: %w", err)
} else if !ok {
// No stored data.
return nil
}

dst.Spec.Template.Spec.ServerConfig.CloudProviderName = restored.Spec.Template.Spec.ServerConfig.CloudProviderName
dst.Spec.Template.Spec.ServerConfig.DeprecatedDisableExternalCloudProvider = restored.Spec.Template.Spec.ServerConfig.DeprecatedDisableExternalCloudProvider
dst.Spec.Template.Spec.ServerConfig.DisableCloudController = restored.Spec.Template.Spec.ServerConfig.DisableCloudController
return nil
}

// ConvertFrom converts the v1beta1 KThreesConfigTemplate receiver from a v1beta2 KThreesConfigTemplate.
func (r *KThreesConfigTemplate) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*cabp3v1.KThreesConfigTemplate)
func (r *KThreesConfigTemplate) ConvertFrom(srcRaw ctrlconversion.Hub) error {
src := srcRaw.(*bootstrapv1beta2.KThreesConfigTemplate)
if err := autoConvert_v1beta2_KThreesConfigTemplate_To_v1beta1_KThreesConfigTemplate(src, r, nil); err != nil {
return fmt.Errorf("converting KThreesConfigTemplate v1beta1 from v1beta2: %w", err)
}

if err := utilconversion.MarshalData(src, r); err != nil {
return fmt.Errorf("storing conversion data: %w", err)
}
return nil
}

// ConvertTo converts the v1beta1 KThreesConfigTemplateList receiver to a v1beta2 KThreesConfigTemplateList.
func (r *KThreesConfigTemplateList) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*cabp3v1.KThreesConfigTemplateList)
func (r *KThreesConfigTemplateList) ConvertTo(dstRaw ctrlconversion.Hub) error {
dst := dstRaw.(*bootstrapv1beta2.KThreesConfigTemplateList)
if err := autoConvert_v1beta1_KThreesConfigTemplateList_To_v1beta2_KThreesConfigTemplateList(r, dst, nil); err != nil {
return fmt.Errorf("converting KThreesConfigTemplateList v1beta1 to v1beta2: %w", err)
}
return nil
}

// ConvertFrom converts the v1beta1 KThreesConfigTemplateList receiver from a v1beta2 KThreesConfigTemplateList.
func (r *KThreesConfigTemplateList) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*cabp3v1.KThreesConfigTemplateList)
func (r *KThreesConfigTemplateList) ConvertFrom(srcRaw ctrlconversion.Hub) error {
src := srcRaw.(*bootstrapv1beta2.KThreesConfigTemplateList)
if err := autoConvert_v1beta2_KThreesConfigTemplateList_To_v1beta1_KThreesConfigTemplateList(src, r, nil); err != nil {
return fmt.Errorf("converting KThreesConfigTemplateList v1beta1 from v1beta2: %w", err)
}
return nil
}

// Convert_v1beta1_KThreesServerConfig_To_v1beta2_KThreesServerConfig converts KThreesServerConfig v1beta1 to v1beta2.
func Convert_v1beta1_KThreesServerConfig_To_v1beta2_KThreesServerConfig(in *KThreesServerConfig, out *bootstrapv1beta2.KThreesServerConfig, s conversion.Scope) error { //nolint: stylecheck
if err := autoConvert_v1beta1_KThreesServerConfig_To_v1beta2_KThreesServerConfig(in, out, s); err != nil {
return fmt.Errorf("converting KThreesServerConfig v1beta1 to v1beta2: %w", err)
}

out.DeprecatedDisableExternalCloudProvider = in.DisableExternalCloudProvider

return nil
}

// Convert_v1beta2_KThreesServerConfig_To_v1beta1_KThreesServerConfig converts KThreesServerConfig v1beta2 to v1beta1.
func Convert_v1beta2_KThreesServerConfig_To_v1beta1_KThreesServerConfig(in *bootstrapv1beta2.KThreesServerConfig, out *KThreesServerConfig, s conversion.Scope) error { //nolint: stylecheck
if err := autoConvert_v1beta2_KThreesServerConfig_To_v1beta1_KThreesServerConfig(in, out, s); err != nil {
return fmt.Errorf("converting KThreesServerConfig v1beta2 to v1beta1: %w", err)
}

out.DisableExternalCloudProvider = in.DeprecatedDisableExternalCloudProvider

return nil
}
8 changes: 4 additions & 4 deletions bootstrap/api/v1beta1/conversion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,24 @@ import (
"k8s.io/apimachinery/pkg/runtime"
utilconversion "sigs.k8s.io/cluster-api/util/conversion"

cabp3v1 "github.com/k3s-io/cluster-api-k3s/bootstrap/api/v1beta2"
bootstrapv1beta2 "github.com/k3s-io/cluster-api-k3s/bootstrap/api/v1beta2"
)

func TestFuzzyConversion(t *testing.T) {
g := NewWithT(t)
scheme := runtime.NewScheme()
g.Expect(AddToScheme(scheme)).To(Succeed())
g.Expect(cabp3v1.AddToScheme(scheme)).To(Succeed())
g.Expect(bootstrapv1beta2.AddToScheme(scheme)).To(Succeed())

t.Run("for KThreesConfig", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{
Scheme: scheme,
Hub: &cabp3v1.KThreesConfig{},
Hub: &bootstrapv1beta2.KThreesConfig{},
Spoke: &KThreesConfig{},
FuzzerFuncs: []fuzzer.FuzzerFuncs{},
}))
t.Run("for KThreesConfigTemplate", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{
Scheme: scheme,
Hub: &cabp3v1.KThreesConfigTemplate{},
Hub: &bootstrapv1beta2.KThreesConfigTemplate{},
Spoke: &KThreesConfigTemplate{},
FuzzerFuncs: []fuzzer.FuzzerFuncs{},
}))
Expand Down
80 changes: 56 additions & 24 deletions bootstrap/api/v1beta1/zz_generated.conversion.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 12 additions & 2 deletions bootstrap/api/v1beta2/kthreesconfig_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,19 @@ type KThreesServerConfig struct {
// +optional
DisableComponents []string `json:"disableComponents,omitempty"`

// DisableExternalCloudProvider suppresses the 'cloud-provider=external' kubelet argument. (default: false)
// DeprecatedDisableExternalCloudProvider suppresses the 'cloud-provider=external' kubelet argument. (default: false)
// +optional
DisableExternalCloudProvider bool `json:"disableExternalCloudProvider,omitempty"`
DeprecatedDisableExternalCloudProvider bool `json:"disableExternalCloudProvider,omitempty"`

// DisableCloudController disables k3s default cloud controller manager. (default: true)
// +optional
// +kubebuilder:default=true
DisableCloudController bool `json:"disableCloudController,omitempty"`

// CloudProviderName defines the --cloud-provider= kubelet extra arg. (default: "external")
// +optional
// +kubebuilder:default=external
CloudProviderName string `json:"cloudProviderName,omitempty"`
}

type KThreesAgentConfig struct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,11 @@ spec:
bindAddress:
description: 'BindAddress k3s bind address (default: 0.0.0.0)'
type: string
cloudProviderName:
default: external
description: 'CloudProviderName defines the --cloud-provider=
kubelet extra arg. (default: "external")'
type: string
clusterCidr:
description: 'ClusterCidr Network CIDR to use for pod IPs (default:
"10.42.0.0/16")'
Expand All @@ -452,15 +457,21 @@ spec:
clusterDomain:
description: 'ClusterDomain Cluster Domain (default: "cluster.local")'
type: string
disableCloudController:
default: true
description: 'DisableCloudController disables k3s default cloud
controller manager. (default: true)'
type: boolean
disableComponents:
description: DisableComponents specifies extra commands to run
before k3s setup runs
items:
type: string
type: array
disableExternalCloudProvider:
description: 'DisableExternalCloudProvider suppresses the ''cloud-provider=external''
kubelet argument. (default: false)'
description: 'DeprecatedDisableExternalCloudProvider suppresses
the ''cloud-provider=external'' kubelet argument. (default:
false)'
type: boolean
httpsListenPort:
description: 'HTTPSListenPort HTTPS listen port (default: 6443)'
Expand Down
Loading

0 comments on commit 599abba

Please sign in to comment.