Skip to content

Commit bcf574c

Browse files
deads2ksoltysh
authored andcommitted
UPSTREAM: <carry>: kube-apiserver: allow rewiring
openshift-rebase(v1.24):source=87f75213acc openshift-rebase(v1.24):source=87f75213acc openshift-rebase(v1.24):source=87f75213acc
1 parent 0385e16 commit bcf574c

File tree

6 files changed

+42
-15
lines changed

6 files changed

+42
-15
lines changed

cmd/kube-apiserver/app/options/options.go

+6
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ type ServerRunOptions struct {
8989
ServiceAccountTokenMaxExpiration time.Duration
9090

9191
ShowHiddenMetricsForVersion string
92+
93+
OpenShiftConfig string
9294
}
9395

9496
// NewServerRunOptions creates a new ServerRunOptions object with default parameters
@@ -247,5 +249,9 @@ func (s *ServerRunOptions) Flags() (fss cliflag.NamedFlagSets) {
247249
fs.StringVar(&s.ServiceAccountSigningKeyFile, "service-account-signing-key-file", s.ServiceAccountSigningKeyFile, ""+
248250
"Path to the file that contains the current private key of the service account token issuer. The issuer will sign issued ID tokens with this private key.")
249251

252+
fs.StringVar(&s.OpenShiftConfig, "openshift-config", s.OpenShiftConfig, "config for openshift")
253+
fs.MarkDeprecated("openshift-config", "to be removed")
254+
fs.MarkHidden("openshift-config")
255+
250256
return fss
251257
}

cmd/kube-apiserver/app/patch_openshift.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ import (
44
"k8s.io/apiserver/pkg/admission"
55
genericapiserver "k8s.io/apiserver/pkg/server"
66
clientgoinformers "k8s.io/client-go/informers"
7+
"k8s.io/kubernetes/openshift-kube-apiserver/openshiftkubeapiserver"
78
"k8s.io/kubernetes/pkg/master"
89
)
910

10-
type KubeAPIServerConfigFunc func(config *genericapiserver.Config, versionedInformers clientgoinformers.SharedInformerFactory, pluginInitializers *[]admission.PluginInitializer) (genericapiserver.DelegationTarget, error)
11-
12-
var OpenShiftKubeAPIServerConfigPatch KubeAPIServerConfigFunc = nil
11+
var OpenShiftKubeAPIServerConfigPatch openshiftkubeapiserver.KubeAPIServerConfigFunc = nil
1312

1413
type KubeAPIServerServerFunc func(server *master.Master) error
1514

cmd/kube-apiserver/app/server.go

+33
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ import (
2929
"strings"
3030
"time"
3131

32+
"k8s.io/kubernetes/openshift-kube-apiserver/configdefault"
33+
"k8s.io/kubernetes/openshift-kube-apiserver/enablement"
34+
"k8s.io/kubernetes/openshift-kube-apiserver/openshiftkubeapiserver"
35+
36+
"github.com/go-openapi/spec"
3237
"github.com/spf13/cobra"
3338

3439
oteltrace "go.opentelemetry.io/otel/trace"
@@ -117,6 +122,31 @@ cluster's shared state through which all other components interact.`,
117122
}
118123
cliflag.PrintFlags(fs)
119124

125+
if len(s.OpenShiftConfig) > 0 {
126+
enablement.ForceOpenShift()
127+
openshiftConfig, err := enablement.GetOpenshiftConfig(s.OpenShiftConfig)
128+
if err != nil {
129+
klog.Fatal(err)
130+
}
131+
132+
// this forces a patch to be called
133+
// TODO we're going to try to remove bits of the patching.
134+
configPatchFn, serverPatchContext := openshiftkubeapiserver.NewOpenShiftKubeAPIServerConfigPatch(genericapiserver.NewEmptyDelegate(), openshiftConfig)
135+
OpenShiftKubeAPIServerConfigPatch = configPatchFn
136+
OpenShiftKubeAPIServerServerPatch = serverPatchContext.PatchServer
137+
138+
args, err := openshiftkubeapiserver.ConfigToFlags(openshiftConfig)
139+
if err != nil {
140+
return err
141+
}
142+
// hopefully this resets the flags?
143+
if err := cmd.ParseFlags(args); err != nil {
144+
return err
145+
}
146+
147+
enablement.ForceGlobalInitializationForOpenShift(s)
148+
}
149+
120150
// set default options
121151
completedOptions, err := Complete(s)
122152
if err != nil {
@@ -487,6 +517,9 @@ func buildGenericConfig(
487517
return
488518
}
489519

520+
if enablement.IsOpenShift() {
521+
configdefault.SetAdmissionDefaults(s, versionedInformers, clientgoExternalClient)
522+
}
490523
err = s.Admission.ApplyTo(
491524
genericConfig,
492525
versionedInformers,

pkg/kubeapiserver/options/admission.go

-2
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,6 @@ func (a *AdmissionOptions) ApplyTo(
116116
return nil
117117
}
118118

119-
a.GenericAdmission.Decorators = append(a.GenericAdmission.Decorators, Decorators...)
120-
121119
if a.PluginNames != nil {
122120
// pass PluginNames to generic AdmissionOptions
123121
a.GenericAdmission.EnablePlugins, a.GenericAdmission.DisablePlugins = computePluginNames(a.PluginNames, a.GenericAdmission.RecommendedPluginOrder)

pkg/kubeapiserver/options/patch.go

-9
This file was deleted.

pkg/kubeapiserver/options/plugins.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ func RegisterAllAdmissionPlugins(plugins *admission.Plugins) {
139139
}
140140

141141
// DefaultOffAdmissionPlugins get admission plugins off by default for kube-apiserver.
142-
func defaultOffAdmissionPlugins() sets.String {
142+
func DefaultOffAdmissionPlugins() sets.String {
143143
defaultOnPlugins := sets.NewString(
144144
lifecycle.PluginName, // NamespaceLifecycle
145145
limitranger.PluginName, // LimitRanger

0 commit comments

Comments
 (0)