sigs.k8s.io/cluster-api@v1.7.1/docs/book/src/developer/providers/migrations/v1.3-to-v1.4.md (about)

     1  # Cluster API v1.3 compared to v1.4
     2  
     3  This document provides an overview over relevant changes between Cluster API v1.3 and v1.4 for
     4  maintainers of providers and consumers of our Go API.
     5  
     6  ## Minimum Go version
     7  
     8  - The Go version used by Cluster API is still Go 1.19.x
     9  
    10  ## Dependencies
    11  
    12  **Note**: Only the most relevant dependencies are listed, `k8s.io/` and `ginkgo`/`gomega` dependencies in Cluster API are kept in sync with the versions used by `sigs.k8s.io/controller-runtime`.
    13  
    14  - sigs.k8s.io/kind: v0.17.x => v0.18.x
    15  - sigs.k8s.io/controller-runtime: v0.13.x => v0.14.x
    16  - sigs.k8s.io/controller-tools: v0.10.x => v0.11.x
    17  - github.com/joelanford/go-apidiff: 0.5.0 => 0.6.0
    18  
    19  ## Changes by Kind
    20  
    21  ### Deprecation
    22  
    23  - The api versions `v1alpha3` and `v1alpha4` are deprecated and will be removed. 
    24    - `v1alpha3` will be removed in v1.5 
    25    - `v1alpha4` will be removed in v1.6
    26  
    27    For more information please see [the note in the contributors guide](../../../CONTRIBUTING.md#removal-of-v1alpha3--v1alpha4-apiversions).
    28  
    29  ### Removals
    30  
    31  - `util/conversion.GetCRDWithContract` has been removed.
    32  - `clusterctl backup` has been removed.
    33  - `clusterctl restore` has been removed.
    34  - `api/v1beta1.MachineHealthCheckSuccededCondition` condition type has been removed.
    35  - `controller/external/util.CloneTemplate` and `controllers/external/util.CloneTemplateInput` has been removed.
    36  - The option `--list-images` from `clusterctl init` subcommand has been removed.
    37  - `exp/runtime/server.NewServer` has been removed.
    38  - `--disable-no-echo` option from `clusterctl describe cluster` subcommand has been removed
    39  - `api/v1beta1.ClusterTopologyManagedFieldsAnnotation` field has been removed.
    40  - `api/v1beta1.PopulateDefaultsMachineDeployment` func has been removed.
    41  
    42  ### API Changes
    43  
    44  - `util/conversion.UpdateReferenceAPIContract` dropped the `APIReader` parameter because it's not required anymore as we now only handle CRDs with compliant names.
    45  - `Backup(options BackupOptions) error` in the Client interface has been removed.
    46  - `Restore(options RestoreOptions) error` in the Client interface has been removed.
    47  - `cmd/clusterctl/client.RolloutOptions` has been removed, `RolloutRestartOptions`, `RolloutPauseOptions` , `RolloutResumeOptions`, and `RolloutUndoOptions` have been added instead.
    48  - Annotation constant `DisableMachineCreate` has been updated to `DisableMachineCreateAnnotation`
    49  - Below Label constant have been updated
    50    - `ClusterLabelName` to `ClusterNameLabel`
    51    - `ClusterTopologyMachineDeploymentLabelName` to `ClusterTopologyMachineDeploymentNameLabel`
    52    - `ProviderLabelName` to `ProviderNameLabel`
    53    - `MachineControlPlaneLabelName` to `MachineControlPlaneLabel`
    54    - `MachineSetLabelName` to `MachineSetNameLabel`
    55    - `MachineDeploymentLabelName` to `MachineDeploymentNameLabel`
    56  - Below Condition and Reason constants have been updated
    57    - `ExternalRemediationTemplateAvailable` to `ExternalRemediationTemplateAvailableCondition`
    58    - `ExternalRemediationTemplateNotFound` to `ExternalRemediationTemplateNotFoundReason`
    59    - `ExternalRemediationRequestAvailable` to  `ExternalRemediationRequestAvailableCondition`
    60    - `ExternalRemediationRequestCreationFailed` to `ExternalRemediationRequestCreationFailedReason`
    61  - `api/v1beta1.MachineDeployment.Default` func has been replaced through `api/v1beta1.MachineDeploymentDefaulter`
    62  
    63  ### Other
    64  
    65  - clusterctl now emits an error for provider CRDs which don't comply with the CRD naming conventions. This warning can be skipped for resources not referenced by Cluster API
    66    core resources via the `clusterctl.cluster.x-k8s.io/skip-crd-name-preflight-check` annotation. The contracts specify:
    67    > The CRD name must have the format produced by sigs.k8s.io/cluster-api/util/contract.CalculateCRDName(Group, Kind)
    68  - `clusterctl upgrade apply` no longer requires a namespace when updating providers. It is now optional and in a future release it will be deprecated. The new syntax is `[namespace/]provider:version`.
    69  - `WatchDeploymentLogs` is changed to `WatchDeploymentLogsByName`, it works same as before. Another function `WatchDeploymentLogsByLabelSelector` is added to stream logs of deployment by label selector.
    70  - Cluster API controllers are now using an explicit security context by default.
    71  - It is recommended to drop usages of `logs.AddFlags(fs, logs.SkipLoggingConfigurationFlags())`. It was previously used to configure deprecated logging flags, but with the bump to component-base
    72    `v0.26.0` this function is not configuring any flags anymore.
    73    Please note that the following logging flags have been removed: (in `component-base`, but this affects all CAPI controllers): `--add-dir-header`, `--alsologtostderr`, `--log-backtrace-at`,
    74    `--log-dir`, `--log-file`, `--log-file-max-size`, `--logtostderr`, `--one-output`, `--skip-headers`, `--skip-log-headers` and `--stderrthreshold`.
    75    For more information, please see: https://github.com/kubernetes/enhancements/issues/2845
    76  - A new `KCPRemediationSpec` test has been added providing better test coverage for KCP remediation most common use cases. As a consequence `MachineRemediationSpec` has been renamed to `MachineDeploymentRemediationSpec` and now only tests remediation of worker machines (NOTE: we plan to improve this test as well in a future iteration).
    77  - Package `test/infrastructure/docker/internal/third_party/forked/loadbalancer` has been moved to `test/infrastructure/docker/internal/loadbalancer` to allow it to diverge from the upstream Kind package.
    78  
    79  ### Suggested changes for providers
    80  
    81  - Providers should add an explicit security context to their controllers deployment, see [#7831](https://github.com/kubernetes-sigs/cluster-api/pull/7831) for reference.