Skip to content

Commit 8cbe593

Browse files
authored
Merge pull request kubernetes#122786 from HirazawaUi/remove-kubeadm-useless-code
kubeadm: remove code to be removed in 1.30
2 parents 74888e4 + 6e5e1d0 commit 8cbe593

File tree

4 files changed

+0
-238
lines changed

4 files changed

+0
-238
lines changed

cmd/kubeadm/app/phases/certs/renewal/manager.go

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -423,48 +423,5 @@ func certToConfig(cert *x509.Certificate) certutil.Config {
423423
}
424424

425425
func loadCertConfigMutators(certBaseName string) []certConfigMutatorFunc {
426-
// TODO: Remove these mutators after the organization migration is complete in a future release
427-
// https://github.com/kubernetes/kubeadm/issues/2414
428-
switch certBaseName {
429-
case kubeadmconstants.EtcdHealthcheckClientCertAndKeyBaseName,
430-
kubeadmconstants.APIServerEtcdClientCertAndKeyBaseName:
431-
return []certConfigMutatorFunc{
432-
removeSystemPrivilegedGroupMutator(),
433-
}
434-
case kubeadmconstants.APIServerKubeletClientCertAndKeyBaseName:
435-
return []certConfigMutatorFunc{
436-
removeSystemPrivilegedGroupMutator(),
437-
addClusterAdminsGroupMutator(),
438-
}
439-
}
440426
return nil
441427
}
442-
443-
func removeSystemPrivilegedGroupMutator() certConfigMutatorFunc {
444-
return func(c *certutil.Config) error {
445-
organizations := make([]string, 0, len(c.Organization))
446-
for _, org := range c.Organization {
447-
if org != kubeadmconstants.SystemPrivilegedGroup {
448-
organizations = append(organizations, org)
449-
}
450-
}
451-
c.Organization = organizations
452-
return nil
453-
}
454-
}
455-
456-
func addClusterAdminsGroupMutator() certConfigMutatorFunc {
457-
return func(c *certutil.Config) error {
458-
found := false
459-
for _, org := range c.Organization {
460-
if org == kubeadmconstants.ClusterAdminsGroupAndClusterRoleBinding {
461-
found = true
462-
break
463-
}
464-
}
465-
if !found {
466-
c.Organization = append(c.Organization, kubeadmconstants.ClusterAdminsGroupAndClusterRoleBinding)
467-
}
468-
return nil
469-
}
470-
}

cmd/kubeadm/app/phases/certs/renewal/manager_test.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import (
3232
netutils "k8s.io/utils/net"
3333

3434
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
35-
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
3635
certtestutil "k8s.io/kubernetes/cmd/kubeadm/app/util/certs"
3736
"k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil"
3837
testutil "k8s.io/kubernetes/cmd/kubeadm/test"
@@ -146,22 +145,6 @@ func TestRenewUsingLocalCA(t *testing.T) {
146145
},
147146
expectedOrganization: testCertOrganization,
148147
},
149-
{
150-
name: "apiserver-etcd-client cert should not contain SystemPrivilegedGroup after renewal",
151-
certName: "apiserver-etcd-client",
152-
createCertFunc: func() *x509.Certificate {
153-
return writeTestCertificate(t, dir, "apiserver-etcd-client", testCACert, testCAKey, []string{kubeadmconstants.SystemPrivilegedGroup})
154-
},
155-
expectedOrganization: []string{},
156-
},
157-
{
158-
name: "apiserver-kubelet-client cert should replace SystemPrivilegedGroup with ClusterAdminsGroup after renewal",
159-
certName: "apiserver-kubelet-client",
160-
createCertFunc: func() *x509.Certificate {
161-
return writeTestCertificate(t, dir, "apiserver-kubelet-client", testCACert, testCAKey, []string{kubeadmconstants.SystemPrivilegedGroup})
162-
},
163-
expectedOrganization: []string{kubeadmconstants.ClusterAdminsGroupAndClusterRoleBinding},
164-
},
165148
}
166149

167150
for _, test := range tests {

cmd/kubeadm/app/phases/upgrade/postupgrade.go

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ import (
4040
"k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy"
4141
"k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo"
4242
nodebootstraptoken "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node"
43-
kubeconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubeconfig"
4443
kubeletphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet"
4544
patchnodephase "k8s.io/kubernetes/cmd/kubeadm/app/phases/patchnode"
4645
"k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig"
@@ -70,12 +69,6 @@ func PerformPostUpgradeTasks(client clientset.Interface, cfg *kubeadmapi.InitCon
7069
errs = append(errs, err)
7170
}
7271

73-
// TODO: remove this in the 1.30 release cycle:
74-
// https://github.com/kubernetes/kubeadm/issues/2414
75-
if err := createSuperAdminKubeConfig(cfg, kubeadmconstants.KubernetesDir, dryRun, nil, nil); err != nil {
76-
errs = append(errs, err)
77-
}
78-
7972
// Annotate the node with the crisocket information, sourced either from the InitConfiguration struct or
8073
// --cri-socket.
8174
// TODO: In the future we want to use something more official like NodeStatus or similar for detecting this properly
@@ -304,64 +297,3 @@ func GetKubeletDir(dryRun bool) (string, error) {
304297
}
305298
return kubeadmconstants.KubeletRunDirectory, nil
306299
}
307-
308-
// createSuperAdminKubeConfig creates new admin.conf and super-admin.conf and then
309-
// ensures that the admin.conf client has RBAC permissions to be cluster-admin.
310-
// TODO: this code must not be present in the 1.30 release, remove it during the 1.30
311-
// release cycle:
312-
// https://github.com/kubernetes/kubeadm/issues/2414
313-
func createSuperAdminKubeConfig(cfg *kubeadmapi.InitConfiguration, outDir string, dryRun bool,
314-
ensureRBACFunc kubeconfigphase.EnsureRBACFunc,
315-
createKubeConfigFileFunc kubeconfigphase.CreateKubeConfigFileFunc) error {
316-
317-
if dryRun {
318-
fmt.Printf("[dryrun] Would create a separate %s and RBAC for %s",
319-
kubeadmconstants.SuperAdminKubeConfigFileName, kubeadmconstants.AdminKubeConfigFileName)
320-
return nil
321-
}
322-
323-
if ensureRBACFunc == nil {
324-
ensureRBACFunc = kubeconfigphase.EnsureAdminClusterRoleBindingImpl
325-
}
326-
if createKubeConfigFileFunc == nil {
327-
createKubeConfigFileFunc = kubeconfigphase.CreateKubeConfigFile
328-
}
329-
330-
var (
331-
err error
332-
adminPath = filepath.Join(outDir, kubeadmconstants.AdminKubeConfigFileName)
333-
adminBackupPath = adminPath + ".backup"
334-
superAdminPath = filepath.Join(outDir, kubeadmconstants.SuperAdminKubeConfigFileName)
335-
superAdminBackupPath = superAdminPath + ".backup"
336-
)
337-
338-
// Create new admin.conf and super-admin.conf.
339-
// If something goes wrong, old existing files will be restored from backup as a best effort.
340-
341-
restoreBackup := func() {
342-
_ = os.Rename(adminBackupPath, adminPath)
343-
_ = os.Rename(superAdminBackupPath, superAdminPath)
344-
}
345-
346-
_ = os.Rename(adminPath, adminBackupPath)
347-
if err = createKubeConfigFileFunc(kubeadmconstants.AdminKubeConfigFileName, outDir, cfg); err != nil {
348-
restoreBackup()
349-
return err
350-
}
351-
352-
_ = os.Rename(superAdminPath, superAdminBackupPath)
353-
if err = createKubeConfigFileFunc(kubeadmconstants.SuperAdminKubeConfigFileName, outDir, cfg); err != nil {
354-
restoreBackup()
355-
return err
356-
}
357-
358-
// Ensure the RBAC for admin.conf exists.
359-
if _, err = kubeconfigphase.EnsureAdminClusterRoleBinding(outDir, ensureRBACFunc); err != nil {
360-
restoreBackup()
361-
return err
362-
}
363-
364-
_ = os.Remove(adminBackupPath)
365-
_ = os.Remove(superAdminBackupPath)
366-
return nil
367-
}

cmd/kubeadm/app/phases/upgrade/postupgrade_test.go

Lines changed: 0 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,18 @@ limitations under the License.
1717
package upgrade
1818

1919
import (
20-
"context"
2120
"os"
2221
"path/filepath"
23-
"reflect"
2422
"regexp"
2523
"strings"
2624
"testing"
27-
"time"
2825

2926
"github.com/pkg/errors"
3027

3128
errorsutil "k8s.io/apimachinery/pkg/util/errors"
32-
clientset "k8s.io/client-go/kubernetes"
33-
3429
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
3530
"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs"
3631
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
37-
certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs"
38-
kubeconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubeconfig"
3932
"k8s.io/kubernetes/cmd/kubeadm/app/preflight"
4033
testutil "k8s.io/kubernetes/cmd/kubeadm/test"
4134
)
@@ -237,106 +230,3 @@ func rollbackFiles(files map[string]string, originalErr error) error {
237230
}
238231
return errors.Errorf("couldn't move these files: %v. Got errors: %v", files, errorsutil.NewAggregate(errs))
239232
}
240-
241-
// TODO: Remove this unit test during the 1.30 release cycle:
242-
// https://github.com/kubernetes/kubeadm/issues/2414
243-
func TestCreateSuperAdminKubeConfig(t *testing.T) {
244-
dir := testutil.SetupTempDir(t)
245-
defer os.RemoveAll(dir)
246-
247-
cfg := testutil.GetDefaultInternalConfig(t)
248-
cfg.CertificatesDir = dir
249-
250-
ca := certsphase.KubeadmCertRootCA()
251-
_, _, err := ca.CreateAsCA(cfg)
252-
if err != nil {
253-
t.Fatal(err)
254-
}
255-
256-
tests := []struct {
257-
name string
258-
kubeConfigExist bool
259-
expectRBACError bool
260-
expectedError bool
261-
expectKubeConfigError bool
262-
}{
263-
{
264-
name: "no error",
265-
},
266-
{
267-
name: "no error, kubeconfig files already exist",
268-
kubeConfigExist: true,
269-
},
270-
{
271-
name: "return RBAC error",
272-
expectRBACError: true,
273-
expectedError: true,
274-
},
275-
{
276-
name: "return kubeconfig error",
277-
expectKubeConfigError: true,
278-
expectedError: true,
279-
},
280-
}
281-
282-
for _, tc := range tests {
283-
t.Run(tc.name, func(t *testing.T) {
284-
285-
// Define a custom RBAC test function, so that there is no test coverage overlap.
286-
ensureRBACFunc := func(context.Context, clientset.Interface, clientset.Interface,
287-
time.Duration, time.Duration) (clientset.Interface, error) {
288-
289-
if tc.expectRBACError {
290-
return nil, errors.New("ensureRBACFunc error")
291-
}
292-
return nil, nil
293-
}
294-
295-
// Define a custom kubeconfig function so that we can fail at least one call.
296-
kubeConfigFunc := func(a string, b string, cfg *kubeadmapi.InitConfiguration) error {
297-
if tc.expectKubeConfigError {
298-
return errors.New("kubeConfigFunc error")
299-
}
300-
return kubeconfigphase.CreateKubeConfigFile(a, b, cfg)
301-
}
302-
303-
// If kubeConfigExist is true, pre-create the admin.conf and super-admin.conf files.
304-
if tc.kubeConfigExist {
305-
b := []byte("foo")
306-
if err := os.WriteFile(filepath.Join(dir, constants.AdminKubeConfigFileName), b, 0644); err != nil {
307-
t.Fatal(err)
308-
}
309-
if err := os.WriteFile(filepath.Join(dir, constants.SuperAdminKubeConfigFileName), b, 0644); err != nil {
310-
t.Fatal(err)
311-
}
312-
}
313-
314-
// Call createSuperAdminKubeConfig() with a custom ensureRBACFunc().
315-
err := createSuperAdminKubeConfig(cfg, dir, false, ensureRBACFunc, kubeConfigFunc)
316-
if (err != nil) != tc.expectedError {
317-
t.Fatalf("expected error: %v, got: %v, error: %v", err != nil, tc.expectedError, err)
318-
}
319-
320-
// Obtain the list of files in the directory after createSuperAdminKubeConfig() is done.
321-
var files []string
322-
fileInfo, err := os.ReadDir(dir)
323-
if err != nil {
324-
t.Fatal(err)
325-
}
326-
for _, file := range fileInfo {
327-
files = append(files, file.Name())
328-
}
329-
330-
// Verify the expected files.
331-
expectedFiles := []string{
332-
constants.AdminKubeConfigFileName,
333-
constants.CACertName,
334-
constants.CAKeyName,
335-
constants.SuperAdminKubeConfigFileName,
336-
}
337-
if !reflect.DeepEqual(expectedFiles, files) {
338-
t.Fatalf("expected files: %v, got: %v", expectedFiles, files)
339-
}
340-
})
341-
}
342-
}

0 commit comments

Comments
 (0)