Commit Graph

711 Commits

Author SHA1 Message Date
Cookiery
4ce7f8547d chore: cleanup code
chore: cleanup code

chore: cleanup code

chore: cleanup code
2024-10-04 20:43:01 +08:00
Lubomir I. Ivanov
730fd13726 kubeadm: remove deprecated upgrade flags for 1.32
The flags for control-plane component manifest under 'upgrade diff'
and the --feture-gates flag were deprecated and NOOP in 1.31
and can be removed in 1.32.
2024-09-05 17:13:06 +03:00
Kubernetes Prow Robot
85384fe273 Merge pull request #126945 from liangyuanpeng/kubeadm_split_healthz_scheduler
kubeadm: scheduler using livez and readyz instead of healthz.
2024-09-03 14:05:15 +01:00
Lan Liang
db8f3a4b7c kubeadm: scheduler using livez and readyz instead of healthz.
Signed-off-by: Lan Liang <gcslyp@gmail.com>
2024-09-03 06:44:07 +00:00
Nathan Baulch
ad7cb45bb2 Fix kubeadm typos 2024-09-03 13:07:55 +10:00
Lubomir I. Ivanov
d441d9140d kubeadm: allow mix of --print-manifest and --config flags
The flag --print-manifest is only present for the subphases of
'kubeadm init phase addon'. It needs to be allowed to be mixed
with the flag --config so that the user can pass their custom
config that will affect the output of the printed manifests.
2024-08-16 17:01:39 +03:00
Kubernetes Prow Robot
c8259fb116 Merge pull request #126628 from pacoxu/v1beta4-typo
fix a typo in kubeadm v1beta4 doc
2024-08-13 22:11:55 -07:00
Paco Xu
85c3c67094 fix a typo in kubeadm v1beta4 doc 2024-08-12 15:12:20 +08:00
SataQiu
506d5c8966 kubeadm: add a validation warning when the certificateValidityPeriod is more than the caCertificateValidityPeriod 2024-08-05 16:15:24 +08:00
Paco Xu
bdb51f28df fix a typo in kubeadm v1beta4 doc 2024-07-25 22:01:04 +08:00
SataQiu
d9001c7b00 kubeadm: the '--feature-gates' flag is deprecated and no-op for 'kubeadm upgrade apply/plan' 2024-06-30 11:22:24 +08:00
SataQiu
975f1c978d kubeadm: fix a bug where the path of the manifest can not be specified when 'upgrade diff' specified a config file 2024-06-28 18:01:19 +08:00
Marko Mudrinić
33466a6606 kubeadm: Add '--yes' flag to the list of allowed flags
Signed-off-by: Marko Mudrinić <mudrinic.mare@gmail.com>
2024-06-18 13:04:17 +02:00
Lubomir I. Ivanov
09078d4810 kubeadM: allow conversion of TimeoutForControlPlane
v1beta3.ClusterConfiguration.APIServer.TimeoutForControlPlane
must be migrated to {Init|Join}Configuration.Timeouts.
.ControlPlaneComponentHealthCheck.

To achieve this sort of cross-Kind migration do the following:
- Use a temporary, thread-safe variable in timeoututils.go
- Make the order of GVKs in documentMapToInitConfiguration
deterministic.
2024-06-17 10:07:33 +03:00
Lubomir I. Ivanov
4af99cd676 kubeadm: deprecate v1beta3
Mark v1beta3 as deprecated by showing a warning when used
and write a note about it in the doc.go file.
2024-06-17 10:07:33 +03:00
Lubomir I. Ivanov
cc539cd600 kubeadm: more validation for Upgrade|ResetConfiguration
- Add unit tests for ValidateUpgrade|ResetConfiguration
- Add two more validation points in ValidateUpgradeConfiguration
2024-06-17 10:07:32 +03:00
Lubomir I. Ivanov
8a5f849c66 kubeadm: keep v1beta3 only in required code paths
Use v1beta4 everywhere and only use v1beta3
in a few required locations:
- kubeadm-config map handling
- unit and integration tests
2024-06-17 10:07:32 +03:00
Lubomir I. Ivanov
d0c656dc19 kubeadm: don't default ExtraEnvs to an empty slice
Instead of defaulting ExtraEnvs for CP components to an empty
slice when converting from/to v1beta3 keep it nil.

This allows for expecting a nil value in the internal
config, similarly to ExtraArgs.
2024-06-17 10:07:32 +03:00
Lubomir I. Ivanov
fb1fcd2d3b kubeadm: move v1beta4 to high priority in API scheme 2024-06-17 10:07:32 +03:00
Lubomir I. Ivanov
6544d19796 kubeadm: update godoc and comments for v1beta4
- Include some more examples related to v1beta4 in the doc.go.
- Fix some typos in v1beta4 field comments.
- Add missing JSON tag for UpgradeConfiguration.Apply.SkipPhases.
2024-06-17 10:07:32 +03:00
Lubomir I. Ivanov
bca0f0836f kubeadm: fix a bug in v1beta3.JoinConfiguration.Discovery.Timeout
After the introduction of v1beta4 if the user inputs the old
v1beta3 discovery timeout the value is ignored. Fix that
by introducing a conversion to v1beta4.

Co-authored-by: penghez (GitHub handle)
2024-06-13 09:41:07 +03:00
Lubomir I. Ivanov
40d185637c kubeadm: add UT for ClusterConfiguration.EncryptionAlgorithmType() 2024-06-11 12:39:24 +03:00
Kubernetes Prow Robot
67012614c3 Merge pull request #124442 from neolit123/1.31-add-image-pull-policy-to-upgrade-config
kubeadm: support image pull mode and policy in UpgradeConfiguration
2024-05-16 20:12:52 -07:00
Lubomir I. Ivanov
0faa2bfbc1 kubeadm: support image pull mode and policy in UpgradeConfiguration
Add Upgrade{Apply|Node}Configuration.{ImagePullPolicy|ImagePullSerial}.
The same feature already exists in NodeRegistrationOptions for
{Init|Join}Configuration.
2024-05-16 11:34:39 +03:00
SataQiu
1329935739 kubeadm: add support for patching a corednsdeployment target 2024-05-11 18:21:20 +08:00
Lubomir I. Ivanov
74e1438d86 kubeadm: add support for custom cert validity period in v1beta4
Allow the user to pass custom cert validity period with
ClusterConfiguration.CertificateValidityPeriod and
CACertificateValidityPeriod.

The defaults remain 1 year for regular cert and 10 years for CA.
Show warnings if the provided values are more than the defaults.

Additional changes:
- In "certs show-expiration" use HumanDuration() to print
more detailed durations instead of ShortHumanDuration().
- Add a new kubeadm util GetStartTime() which can be used
to consistently get a UTC time for tasks like writing certs
and unit tests.
- Update unit tests to validate the new customizable NotAfter.
2024-05-01 19:01:49 +03:00
carlory
4f0ee034ec kubeadm: remove the deprecated output.kubeadm.k8s.io/v1alpha2 2024-04-24 15:01:20 +08:00
Kubernetes Prow Robot
9d39ce04fd Merge pull request #123595 from neolit123/1.30-add-timeouts-upgradeconfig
kubeadm: add timeouts to v1beta4.UpgradeConfiguration
2024-03-04 01:16:44 -08:00
carlory
22adf221a1 print nodename 2024-03-03 11:03:29 +08:00
Lubomir I. Ivanov
ded6354a8f kubeadm: add Timeouts struct to v1beta4.UpgradeConfiguration
Follow the same process of adding the Timeouts struct
to UpgradeConfiguration similarly to how it was done for
other API Kinds.

In the Timeouts struct include one new timeout:
- UpgradeManifests
2024-03-01 13:04:08 +02:00
calvin
466019b1b2 kubeadm: implementation of API types
Signed-off-by: calvin <wen.chen@daocloud.io>
Co-authored-by: Dave Chen <dave.chen@arm.com>
2024-02-29 13:14:21 +08:00
carlory
ea69a5ea98 in the new output API output.kubeadm.k8s.io/v1alpha3 modify the UpgradePlan structure to include a list of multiple available upgrades. 2024-02-27 15:05:29 +08:00
carlory
0c4df64092 fix api 2024-02-22 10:39:30 +08:00
carlory
43ba0bd53b kubeadm certs check-expiration support json/yaml output
Co-authored-by: Lubomir I. Ivanov <neolit123@gmail.com>
Co-authored-by: Paco Xu <paco.xu@daocloud.io>
2024-02-21 01:11:55 +08:00
Lubomir I. Ivanov
2cab79710d kubeadm: enhance encryption algorithm support in v1beta4
Previous v1beta4 work added support for
ClusterConfiguration.EncryptionAlgorithm, however the possible
values were limited to just "RSA" (2048 key size) and "ECDSA" (P256).

Allow more arbitrary algorithm types, that can also include key size
or curve type encoded in the name:
"RSA-2048" (default), "RSA-3072", "RSA-4096" or "ECDSA-P256".

Update the deprecation notice of the PublicKeysECDSA FeatureGate
as ideally it should be removed only after v1beta3 is removed.
2024-01-31 23:49:21 +02:00
Lubomir I. Ivanov
510df7eab1 kubeadm: add validation of ImagePullPolicy in the API
The validation is currently performed on runtime during the
ImagePull preflight check. Given this is an API add the validation
under apis/kubeadm.
2024-01-19 14:26:21 +02:00
Lubomir I. Ivanov
754ffa3477 kubeadm: add ImagePullSerial field to v1beta4 NodeRegistationOptions
ImagePullSerial specifies if image pulling performed
by kubeadm must be done serially or in parallel.
Default: true
2024-01-19 14:26:20 +02:00
Lubomir I. Ivanov
caf5311413 kubeadm: start using the Timeouts struct values
Propagate usage of the Timeout struct values.
Apply sanitazation to timeout constants in contants.go.
2024-01-14 15:07:56 +02:00
Lubomir I. Ivanov
d9e48705ff kubeadm: make the active timeouts structure accessible from anywhere
Currently, timeouts are only accessible if a kubeadm runtime.Object{}
like InitConfiguration is passed around.

Any time a config is loaded or defaulted, store the Timeouts
structure in a thread-safe way in the main kubeadm API package
with SetActiveTimeouts(). Optionally, a deep-copy can be
performed before calling SetActiveTimeouts(). Make this struct
accessible with GetActiveTimeouts(). Ensure these functions
are thread safe.

On init() make sure the struct is defaulted, so that unit
tests can work with these values.
2024-01-05 14:41:16 +02:00
Lubomir I. Ivanov
492c0619dc kubeadm: add a Timeouts struct to v1beta4
The struct is included in InitConfiguration, JoinConfiguration
and ResetConfiguration.

Add conversion and update defaulters and fuzzers.
Include a timeoututils.go that contains a function
to default the internal Timeouts struct.
2024-01-05 14:41:16 +02:00
Lubomir I. Ivanov
2f5121671f kubeadm: add ResetConfiguration.UnmountFlags
Add new a v1beta4.ResetConfiguration.UnmountFlags field that
can be used to pass in Linux unmount2() flags such as MNT_FORCE.
Default value continues to be 0 - i.e. no flags.
2024-01-05 12:58:44 +02:00
Kubernetes Prow Robot
f3560758d2 Merge pull request #114534 from ruquanzhao/skipaddons
kubeadm: Support skipping addons image pull
2023-10-30 04:20:44 +01:00
RuquanZhao
b0491d71bd Support skipping pulling addons image.
Add field DNS.Disabled and Proxy.Disabled in ClusterConfiguration to save status for `join` to read.
Signed-off-by: Ruquan Zhao <ruquan.zhao@arm.com>
2023-10-27 14:33:37 +08:00
Lubomir I. Ivanov
c2a04fa1cf kubeadm: fix export comments to make golangci-lint happy 2023-10-25 19:35:10 +03:00
SataQiu
8ae3277152 kubeadm: remove unused DNSAddOnType from v1beta4 API 2023-10-19 17:44:41 +08:00
Kubernetes Prow Robot
ba7feccfa3 Merge pull request #121290 from pacoxu/revert-119946-ignore_preflight_error
Revert "kubeadm: FeatureGate MergeCLIArgumentsWithConfig is added for ignorePreflightErrors"
2023-10-17 17:21:36 +02:00
Paco Xu
e3c58378bc Revert "kubeadm: FeatureGate MergeCLIArgumentsWithConfig is added for ignorePreflightErrors" 2023-10-17 20:26:58 +08:00
Lubomir I. Ivanov
a45a813d5e kubeadm: fix "eliptic" typo in API package
Should be "elliptic".
2023-10-17 12:16:03 +03:00
Kubernetes Prow Robot
3548ef0092 Merge pull request #119946 from chendave/ignore_preflight_error
kubeadm: FeatureGate MergeCLIArgumentsWithConfig is added for ignorePreflightErrors
2023-10-16 14:41:19 +02:00
Dave Chen
8009530d77 kubeadm: FeatureGate MergeCLIArgumentsWithConfig is added for ignorePreflightErrors
Turn on FeatureGate MergeCLIArgumentsWithConfig to keep the legacy way of management of
ignorePreflightErrors, which means the value defined by the flag `ignore-preflight-errors`
will be merged with the value `ignorePreflightErrors` defined in the config file.

Otherwise, the value defined by the flag will replace the value from the config file if set.

Signed-off-by: Dave Chen <dave.chen@arm.com>
2023-10-16 14:37:10 +08:00