mirror of https://github.com/k3s-io/k3s
Merge pull request #64540 from hanxiaoshuai/fix0531
Automatic merge from submit-queue (batch tested with PRs 62460, 64480, 63774, 64540, 64337). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. kubeadm uses its own scheme instead of kubectl scheme **What this PR does / why we need it**: kubeadm uses its own scheme instead of kubectl scheme **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Fixes # **Special notes for your reviewer**: **Release note**: ```release-note NONE ```pull/8/head
commit
9250d65969
|
@ -8,8 +8,10 @@ go_library(
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/util:go_default_library",
|
"//cmd/kubeadm/app/util:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
||||||
|
"//vendor/k8s.io/apiserver/pkg/apis/audit/install:go_default_library",
|
||||||
"//vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1:go_default_library",
|
"//vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -18,8 +20,9 @@ go_test(
|
||||||
srcs = ["utils_test.go"],
|
srcs = ["utils_test.go"],
|
||||||
embed = [":go_default_library"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/kubectl/scheme:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
||||||
|
"//vendor/k8s.io/apiserver/pkg/apis/audit/install:go_default_library",
|
||||||
"//vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1:go_default_library",
|
"//vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
|
@ -23,8 +23,10 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
|
"k8s.io/apiserver/pkg/apis/audit/install"
|
||||||
auditv1beta1 "k8s.io/apiserver/pkg/apis/audit/v1beta1"
|
auditv1beta1 "k8s.io/apiserver/pkg/apis/audit/v1beta1"
|
||||||
"k8s.io/client-go/kubernetes/scheme"
|
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/util"
|
"k8s.io/kubernetes/cmd/kubeadm/app/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -32,7 +34,7 @@ import (
|
||||||
func CreateDefaultAuditLogPolicy(policyFile string) error {
|
func CreateDefaultAuditLogPolicy(policyFile string) error {
|
||||||
policy := auditv1beta1.Policy{
|
policy := auditv1beta1.Policy{
|
||||||
TypeMeta: metav1.TypeMeta{
|
TypeMeta: metav1.TypeMeta{
|
||||||
APIVersion: "audit.k8s.io/v1beta1",
|
APIVersion: auditv1beta1.SchemeGroupVersion.String(),
|
||||||
Kind: "Policy",
|
Kind: "Policy",
|
||||||
},
|
},
|
||||||
Rules: []auditv1beta1.PolicyRule{
|
Rules: []auditv1beta1.PolicyRule{
|
||||||
|
@ -50,11 +52,15 @@ func writePolicyToDisk(policyFile string, policy *auditv1beta1.Policy) error {
|
||||||
return fmt.Errorf("failed to create directory %q: %v", filepath.Dir(policyFile), err)
|
return fmt.Errorf("failed to create directory %q: %v", filepath.Dir(policyFile), err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Registers auditv1beta1 with the runtime Scheme
|
scheme := runtime.NewScheme()
|
||||||
auditv1beta1.AddToScheme(scheme.Scheme)
|
// Registers the API group with the scheme and adds types to a scheme
|
||||||
|
install.Install(scheme)
|
||||||
|
|
||||||
|
codecs := serializer.NewCodecFactory(scheme)
|
||||||
|
|
||||||
// writes the policy to disk
|
// writes the policy to disk
|
||||||
serialized, err := util.MarshalToYaml(policy, auditv1beta1.SchemeGroupVersion)
|
serialized, err := util.MarshalToYamlForCodecs(policy, auditv1beta1.SchemeGroupVersion, codecs)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to marshal audit policy to YAML: %v", err)
|
return fmt.Errorf("failed to marshal audit policy to YAML: %v", err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,9 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
|
"k8s.io/apiserver/pkg/apis/audit/install"
|
||||||
auditv1beta1 "k8s.io/apiserver/pkg/apis/audit/v1beta1"
|
auditv1beta1 "k8s.io/apiserver/pkg/apis/audit/v1beta1"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func cleanup(t *testing.T, path string) {
|
func cleanup(t *testing.T, path string) {
|
||||||
|
@ -50,8 +51,11 @@ func TestCreateDefaultAuditLogPolicy(t *testing.T) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to read %v: %v", auditPolicyFile, err)
|
t.Fatalf("failed to read %v: %v", auditPolicyFile, err)
|
||||||
}
|
}
|
||||||
|
scheme := runtime.NewScheme()
|
||||||
|
install.Install(scheme)
|
||||||
|
codecs := serializer.NewCodecFactory(scheme)
|
||||||
policy := auditv1beta1.Policy{}
|
policy := auditv1beta1.Policy{}
|
||||||
err = runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), policyBytes, &policy)
|
err = runtime.DecodeInto(codecs.UniversalDecoder(), policyBytes, &policy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to decode written policy: %v", err)
|
t.Fatalf("failed to decode written policy: %v", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue