Commit Graph

1062 Commits

Author SHA1 Message Date
SataQiu
1a68195626 kubeadm: fix the bug that kubeadm always do CRI detection when --config is passed even if it is not required by subcommand 2023-09-25 16:35:47 +08:00
Lubomir I. Ivanov
b5bffb6d97 kubeadm: add v1beta4.ClusterConfiguration.EncryptionAlgorithm
Add v1beta4.ClusterConfiguration.EncryptionAlgorithm field (string)
and allow the user to configure the cluster asymetric encryption
algorithm to be either "RSA" (default, 2048 pkey size) or "ECDSA" (P-256).
Add validation and fuzzing. Conversion from v1beta3 is not required
because an empty field value is accepted and defaulted to RSA if needed.

Leverage the existing configuration option (feature gate) PublicKeysECDSA
but rename the backend fields, arguments, function names to be more
generic - EncryptionAlgorithm instead of PublicKeyAlgorithm.
That is because once the feature gate is enabled the algorithm
configuration also applies to private keys. It also uses the kubeadm API
type (string) instead of the x509.PublicKeyAlgorithm enum (int).

Deprecate the PublicKeysECDSA feature gate with a message.
It should be removed with the release of v1beta4 or maximum one release
later (it is an alpha FG).
2023-09-21 11:48:48 +03:00
Kubernetes Prow Robot
0241da314e Merge pull request #120514 from fengxsong/patch-1
fix: check if initsystem service exists
2023-09-15 14:08:23 -07:00
SataQiu
15ce5dd990 kubeadm: fix flaky-test TestManifestFilesAreEqual 2023-09-12 23:44:44 +08:00
Kubernetes Prow Robot
e2b03d41c5 Merge pull request #120561 from chendave/dependency
kubeadm: remove reference of k8s.io/kubernetes/pkg/apis/core/v1
2023-09-12 03:44:12 -07:00
SataQiu
4e0c8a9752 kubeadm: remove reference of k8s.io/kubernetes/pkg/apis/core/v1
Co-authored-by: Dave Chen <dave.chen@arm.com>
2023-09-12 17:09:19 +08:00
Kubernetes Prow Robot
35199e42a4 Merge pull request #120549 from pacoxu/kubeadm-etcd-manifests
kubeadm: fix diff order and add tests for new default value manifest
2023-09-12 00:44:13 -07:00
Paco Xu
4d105eb1ce add TestUnmarshalJson for UniversalUnmarshal 2023-09-12 14:41:07 +08:00
Stephen Kitt
e2c1c0d34a kubeadm: drop deprecated pointer package
This replaces deprecated k8s.io/utils/pointer functions with their ptr
equivalent.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2023-09-11 16:41:12 +02:00
Paco Xu
678b958567 use universal decoder and add a check on default dns Policy of static pod for test 2023-09-11 22:31:35 +08:00
Paco Xu
912041ce41 kubeadm: fix diff order and add test for new default value manifest 2023-09-11 10:35:50 +08:00
Paco Xu
b443a841e3 kubeadm: add log for static pod manifest diff 2023-09-09 20:00:31 +08:00
fengxsong
a69f56e137 fix: check if initsystem service exists
when detecting whether a service exists, if it does not, the output result will be like "Unit noneexists.service could not be found." on ubuntu:20.04
2023-09-08 11:15:07 +08:00
dairlair
3c5a58c5f8 Refactor checkErr func
I moved a simpler condition to the beginning of the function (when the error == nil). This has substantially streamlined the function for readability and comprehension of its logic flow.
2023-08-31 17:29:08 +03:00
Kubernetes Prow Robot
e043bc08d4 Merge pull request #119156 from neolit123/1.28-add-support-for-dup-extraargs
kubeadm add support for structured ExtraArgs
2023-08-21 02:49:22 -07:00
xin.li
fd3f82531f kubeadm: increase ut coverage fo util/kubeconfig
Signed-off-by: xin.li <xin.li@daocloud.io>
2023-08-18 14:49:59 +08:00
git-jxj
a5b3a4b738 cleanup: Update deprecated FromInt to FromInt32 (#119858)
* redo commit

* apply suggestions from liggitt

* update Parse function based on suggestions
2023-08-16 09:33:01 -07:00
Lubomir I. Ivanov
f3da0d4ed3 kubeadm: update the rest of the code base for structured ExtraArgs
In all places map[string]string compounds were used directly
for extra args. Modify said locations to use []Arg
and the new utilities Get/SetArgValue(), ArgumentsTo/FromCommand().
2023-08-16 13:27:05 +03:00
Lubomir I. Ivanov
a505c7160e kubeadm: adapt the validation and utils for structured ExtraArgs
Use []kubeadm.Arg instead of map[string]string when
validating ExtraArgs in the API.

Add new GetArgValue() and SetArgValue() utilities
and tests in apis/kubeadm.

Add new utils for constucting commands from and to
a []kubeadm.Arg slice.
2023-08-16 13:27:05 +03:00
Paco Xu
3a2c4d6f09 kubeadm: fix nil pointer when etcd member is already removed 2023-08-04 11:37:00 +08:00
Dave Chen
b883f30501 kubeadm: Support kubeadm config validate for ResetConfiguration
Signed-off-by: Dave Chen <dave.chen@arm.com>
2023-07-15 19:29:18 +08:00
Dave Chen
8f9e2cb8a8 kubeadm: Support kubeadm config migrate for ResetConfiguration
Signed-off-by: Dave Chen <dave.chen@arm.com>
2023-07-15 13:18:47 +08:00
Kubernetes Prow Robot
95c8d61918 Merge pull request #113583 from chendave/POC_resetCfg
kubeadm: implementation of `ResetConfiguration` API types
2023-07-14 04:05:48 -07:00
Dave Chen
2e6715bc77 kubeadm: implementation of ResetConfiguration API types
Signed-off-by: Dave Chen <dave.chen@arm.com>
2023-07-14 17:03:31 +08:00
Kubernetes Prow Robot
20e60a03df Merge pull request #110863 from claudiubelu/path-filepath-update-2
Replaces path.Operation with filepath.Operation (part 2)
2023-07-13 09:56:37 -07:00
Dave Chen
31943cc3f4 kubeadm: check the GV after the config migration
Signed-off-by: Dave Chen <dave.chen@arm.com>
2023-07-05 10:04:12 +08:00
Kubernetes Prow Robot
3149875175 Merge pull request #119059 from pacoxu/migrate-experimental-v1beta4
kubeadm: fix "migrate config --allow-experimental-api" to print v1beta4 kubeadm configurations instead of v1beta3
2023-07-04 06:28:53 -07:00
Paco Xu
01b1174c11 kubeadm: fix "migrate config --allow-experimental-api" to print v1beta4 kubeadm configurations instead of v1beta3 2023-07-04 15:20:43 +08:00
Kubernetes Prow Robot
746b88c6ff Merge pull request #118867 from chendave/env_custom
kubeadm: Support custom env in control plane component
2023-07-03 22:02:52 -07:00
Dave Chen
80b035a116 kubeadm: Support custom env in control plane component
Signed-off-by: Dave Chen <dave.chen@arm.com>
2023-07-04 09:57:07 +08:00
Kubernetes Prow Robot
14b08b82e4 Merge pull request #118941 from neolit123/1.28-restore-test-function-for-config-migrate
kubeadm: restore and generalize the TestMigrateOldConfig test
2023-07-01 03:18:48 -07:00
Lubomir I. Ivanov
0537c1da56 kubeadm: move migrate / validate tests out of config_tests.go
Place the tests in common_tests.go on the backend side in
common_tests.go. A test for migrate TestMigrateOldConfig
was already present there. Apply slightly better coverage to it
and rename desc -> name.

Fix typo in argument oldConfig -> config in ValidateConfig().
2023-06-30 18:14:10 +03:00
Lubomir I. Ivanov
fd15c6791a kubeadm: restore and generalize the TestMigrateOldConfig test
The test required two APIs to be available to test for migration.
Keep it simple and use a variable "gv" on top of the function body
to easily swap the version to be tested once an old API is deleted.
e.g. currently v1beta3 is the "old" API, v1beta4 is the "new" one.

Ultimately, this test only makes sure that the expected kinds are
available post migration.
2023-06-28 18:21:57 +03:00
Etienne Champetier
812556365b kubeadm: backdate generated CAs by 5 minutes
This allow for a small time jump backward after
certificates generation.

Signed-off-by: Etienne Champetier <e.champetier@ateme.com>
2023-06-28 00:12:29 -04:00
Lubomir I. Ivanov
f04484fe77 kubeadm: add the --allow-experimental-api flag to "config" commands
Add the flag --allow-experimental-api to the "config migrate" and
"config validate" commands. The flag allows validating / migrating-to
a unreleased / experimental API version.

Add a new experimentalAPIVersions map in validateSupportedVersion()
that contains v1beta4.
2023-06-26 13:50:47 +03:00
Kubernetes Prow Robot
03ebd4b7ef Merge pull request #116656 from HirazawaUi/fik-fd-leaks
Cleanup fd leaks and file removal cleanup
2023-05-24 22:50:50 -07:00
Kubernetes Prow Robot
90ed8ba687 Merge pull request #118013 from neolit123/1.28-add-config-validate
kubeadm: add the "config validate" subcommand
2023-05-24 20:36:49 -07:00
Lubomir I. Ivanov
72e4c9a82a kubeadm: add the "config validate" subcommand
The command can be used to validate an input --config and throw
warnings and errors.

Add a new argument strctErrors to the functions
documentMapTo{Init|Join}Configuration(). This allows
to return errors from the calls to VerifyUnmarshalStrict().

Add a new function verifyKnownGVKs() in config/common.go
that is used to verify if a list of GVKs in a config file is
known. This function is used by the "validate" and "migrate"
commands.

Both commands now throw errors for unknown APIs or fields.
2023-05-24 21:22:02 +03:00
Kubernetes Prow Robot
589d6f3886 Merge pull request #117630 from skitt/intstr-fromint32-cluster-lifecycle
Cluster lifecycle: use new intstr functions
2023-05-19 08:50:30 -07:00
SataQiu
261de704c2 kubeadm: fix a bug where the static pod changes detection logic is inconsistent with kubelet 2023-05-17 17:05:24 +08:00
Daniel Lipovetsky
ef9f8d7c0c kubeadm: Remove leading zeros from etcd member ID in log messages 2023-05-12 17:38:44 -07:00
Daniel Lipovetsky
ff4c6916ec kubeadm: Fix log message when etcd member is added as learner 2023-05-12 17:38:44 -07:00
Daniel Lipovetsky
5fd5768ef3 kubeadm: Make etcd member removal idempotent
If the etcd member is not found, then it has already been removed, and
kubeadm reset should immediately complete the 'remove-etcd-member'
phase. Previously, the phase would complete only once the
exponential-backoff retry expired, up to 3 minutes duration.

This commit also fixes a semantic error in etcd.GetMemberID. Previously,
the function returned 0 if no member was found, but 0 is not a valid
member ID.
2023-05-10 09:13:31 -07:00
Kubernetes Prow Robot
44a93d0b9d Merge pull request #117792 from dlipovetsky/kubeadm-etcd-client-refactor
kubeadm: Add etcd client unit tests
2023-05-09 11:02:20 -07:00
HirazawaUi
82e3fa0930 fix fd leaks and failed file removing for main pkg and cmd 2023-05-09 09:24:11 -05:00
Min Ni
e865b30abd update serial number to a valid non-zero number in ca certificate (#117791)
* update serial number to a valid non-zero number in ca certificate

* fix the existing problem (0 SerialNumber in all certificate) as part of this PR in a separate commit
2023-05-09 06:34:08 -07:00
Daniel Lipovetsky
05b3449346 kubeadm: Add etcd client unit tests 2023-05-08 13:35:03 -07:00
Daniel Lipovetsky
fc1b228779 kubeadm: Use internal etcd client through an interface 2023-05-08 13:35:03 -07:00
SataQiu
b4560f9e57 kubeadm: fix a bug where file copy(backup) could not be executed correctly on Windows platform during upgrade 2023-05-08 22:17:32 +08:00
Kubernetes Prow Robot
50ce134595 Merge pull request #117835 from pacoxu/kubeadm-crictl
kubeadm: fix crictl pull using wrong flag, use -i and -r
2023-05-06 09:31:15 -07:00