Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions cmd/kube-apiserver/app/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ import (
"k8s.io/kubernetes/openshift-kube-apiserver/enablement"
"k8s.io/kubernetes/openshift-kube-apiserver/openshiftkubeapiserver"

configv1 "github.com/openshift/api/config/v1"
"github.com/openshift/library-go/pkg/features"
"github.com/spf13/cobra"

corev1 "k8s.io/api/core/v1"
Expand All @@ -47,6 +49,7 @@ import (
"k8s.io/apiserver/pkg/endpoints/request"
genericapiserver "k8s.io/apiserver/pkg/server"
"k8s.io/apiserver/pkg/server/egressselector"
"k8s.io/apiserver/pkg/util/feature"
utilfeature "k8s.io/apiserver/pkg/util/feature"
"k8s.io/apiserver/pkg/util/notfoundhandler"
"k8s.io/apiserver/pkg/util/webhook"
Expand All @@ -66,7 +69,7 @@ import (
"k8s.io/klog/v2"
aggregatorapiserver "k8s.io/kube-aggregator/pkg/apiserver"
aggregatorscheme "k8s.io/kube-aggregator/pkg/apiserver/scheme"
"k8s.io/kubernetes/pkg/features"
k8sfeatures "k8s.io/kubernetes/pkg/features"

"k8s.io/kubernetes/cmd/kube-apiserver/app/options"
"k8s.io/kubernetes/pkg/api/legacyscheme"
Expand Down Expand Up @@ -119,6 +122,10 @@ cluster's shared state through which all other components interact.`,
// if we are running openshift, we modify the admission chain defaults accordingly
admissionenablement.InstallOpenShiftAdmissionPlugins(s)

if err := features.InitializeFeatureGates(feature.DefaultMutableFeatureGate, configv1.FeatureGateRouteExternalCertificate); err != nil {
return err
}

openshiftConfig, err := enablement.GetOpenshiftConfig(s.OpenShiftConfig)
if err != nil {
klog.Fatal(err)
Expand Down Expand Up @@ -307,7 +314,7 @@ func CreateKubeAPIServerConfig(opts options.CompletedOptions) (
},
}

if utilfeature.DefaultFeatureGate.Enabled(features.UnknownVersionInteroperabilityProxy) {
if utilfeature.DefaultFeatureGate.Enabled(k8sfeatures.UnknownVersionInteroperabilityProxy) {
config.ExtraConfig.PeerEndpointLeaseReconciler, err = controlplaneapiserver.CreatePeerEndpointLeaseReconciler(*genericConfig, storageFactory)
if err != nil {
return nil, nil, nil, err
Expand Down
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ require (
k8s.io/sample-apiserver v0.0.0
k8s.io/system-validators v1.8.0
k8s.io/utils v0.0.0-20230726121419-3b25d923346b
sigs.k8s.io/structured-merge-diff/v4 v4.2.3
sigs.k8s.io/structured-merge-diff/v4 v4.3.0
sigs.k8s.io/yaml v1.3.0
)

Expand Down Expand Up @@ -258,6 +258,7 @@ require (
replace (
github.com/google/cadvisor => github.com/openshift/google-cadvisor v0.47.3-openshift-4.15-1
github.com/onsi/ginkgo/v2 => github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20230811135323-13a5964cc98e
github.com/openshift/library-go => github.com/thejasn/library-go v0.0.0-20231011094227-971698e5dbfc
k8s.io/api => ./staging/src/k8s.io/api
k8s.io/apiextensions-apiserver => ./staging/src/k8s.io/apiextensions-apiserver
k8s.io/apimachinery => ./staging/src/k8s.io/apimachinery
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -716,8 +716,6 @@ github.com/openshift/client-go v0.0.0-20230926161409-848405da69e1 h1:W1N/3nVciqm
github.com/openshift/client-go v0.0.0-20230926161409-848405da69e1/go.mod h1:ihUJrhBcYAGYQrJu/gP2OMgfVds5f5z5kbeLNBqjHLo=
github.com/openshift/google-cadvisor v0.47.3-openshift-4.15-1 h1:eFjNk9Z/65ZdLJTJGIZvDquamMoFxitxVvyalrdTKdw=
github.com/openshift/google-cadvisor v0.47.3-openshift-4.15-1/go.mod h1:oVv5yHVVOLU95NPFplxxFkOiQd+hCBnXW/iH3taVm58=
github.com/openshift/library-go v0.0.0-20230927113136-405c34317fa4 h1:nNPH6wOCPP6XLDyHECflAlgW7xLorcUq7wl0vqyRQ34=
github.com/openshift/library-go v0.0.0-20230927113136-405c34317fa4/go.mod h1:hl8bxWuFMM72N4YH7FKLGWtYhDz/A0xwvaa8Yr5fxYU=
github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20230811135323-13a5964cc98e h1:WgaylNSIB4uff7ieewaqIiEG3mP6jSMER8LCkoOEkys=
github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20230811135323-13a5964cc98e/go.mod h1:gCQYp2Q+kSoIj7ykSVb9nskRSsR6PUj4AiLywzIhbKM=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
Expand Down Expand Up @@ -840,6 +838,8 @@ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
github.com/thejasn/library-go v0.0.0-20231011094227-971698e5dbfc h1:z+LiOT1dtKR3pn4qC/o3glgZw/PFiEG7ptiethmy7ic=
github.com/thejasn/library-go v0.0.0-20231011094227-971698e5dbfc/go.mod h1:hl8bxWuFMM72N4YH7FKLGWtYhDz/A0xwvaa8Yr5fxYU=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE=
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk=
Expand Down Expand Up @@ -1474,8 +1474,8 @@ sigs.k8s.io/kustomize/kustomize/v5 v5.0.4-0.20230601165947-6ce0bf390ce3 h1:vq2Tt
sigs.k8s.io/kustomize/kustomize/v5 v5.0.4-0.20230601165947-6ce0bf390ce3/go.mod h1:/d88dHCvoy7d0AKFT0yytezSGZKjsZBVs9YTkBHSGFk=
sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 h1:W6cLQc5pnqM7vh3b7HvGNfXrJ/xL6BDMS0v1V/HHg5U=
sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3/go.mod h1:JWP1Fj0VWGHyw3YUPjXSQnRnrwezrZSrApfX5S0nIag=
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
sigs.k8s.io/structured-merge-diff/v4 v4.3.0 h1:UZbZAZfX0wV2zr7YZorDz6GXROfDFj6LvqCRm4VUVKk=
sigs.k8s.io/structured-merge-diff/v4 v4.3.0/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package apirequestcount

import (
"context"
"fmt"
"io"
"strings"
Expand Down Expand Up @@ -48,7 +49,7 @@ func toAPIRequestCountV1(uncastObj runtime.Object) (*apiv1.APIRequestCount, fiel
return obj, nil
}

func (a apiRequestCountV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList {
func (a apiRequestCountV1) ValidateCreate(_ context.Context, uncastObj runtime.Object) field.ErrorList {
obj, errs := toAPIRequestCountV1(uncastObj)
if len(errs) > 0 {
return errs
Expand Down Expand Up @@ -81,7 +82,7 @@ func NameToResource(name string) (schema.GroupVersionResource, error) {
return result, nil
}

func (a apiRequestCountV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
func (a apiRequestCountV1) ValidateUpdate(_ context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
obj, errs := toAPIRequestCountV1(uncastObj)
if len(errs) > 0 {
return errs
Expand All @@ -94,7 +95,7 @@ func (a apiRequestCountV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj
return errs
}

func (a apiRequestCountV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
func (a apiRequestCountV1) ValidateStatusUpdate(_ context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
obj, errs := toAPIRequestCountV1(uncastObj)
if len(errs) > 0 {
return errs
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package apirequestcount

import (
"context"
"testing"

apiv1 "github.com/openshift/api/apiserver/v1"
Expand All @@ -20,7 +21,7 @@ func TestApiRequestCountV1_ValidateCreate(t *testing.T) {
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
errs := apiRequestCountV1{}.ValidateCreate(&apiv1.APIRequestCount{ObjectMeta: metav1.ObjectMeta{Name: tc.name}})
errs := apiRequestCountV1{}.ValidateCreate(context.TODO(), &apiv1.APIRequestCount{ObjectMeta: metav1.ObjectMeta{Name: tc.name}})
if tc.errExpected != (len(errs) != 0) {
s := "did not expect "
if tc.errExpected {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ type apiserverV1 struct {
infrastructureGetter func() configv1client.InfrastructuresGetter
}

func (a apiserverV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList {
func (a apiserverV1) ValidateCreate(_ context.Context, uncastObj runtime.Object) field.ErrorList {
obj, errs := toAPIServerV1(uncastObj)
if len(errs) > 0 {
return errs
Expand Down Expand Up @@ -83,7 +83,7 @@ func (a apiserverV1) validateSNINames(obj *configv1.APIServer) field.ErrorList {
return errs
}

func (a apiserverV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
func (a apiserverV1) ValidateUpdate(_ context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
obj, errs := toAPIServerV1(uncastObj)
if len(errs) > 0 {
return errs
Expand All @@ -100,7 +100,7 @@ func (a apiserverV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runti
return errs
}

func (apiserverV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
func (apiserverV1) ValidateStatusUpdate(_ context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
obj, errs := toAPIServerV1(uncastObj)
if len(errs) > 0 {
return errs
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package authentication

import (
"context"
"fmt"
"io"

Expand Down Expand Up @@ -47,7 +48,7 @@ func toAuthenticationV1(uncastObj runtime.Object) (*configv1.Authentication, fie

type authenticationV1 struct{}

func (authenticationV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList {
func (authenticationV1) ValidateCreate(_ context.Context, uncastObj runtime.Object) field.ErrorList {
obj, errs := toAuthenticationV1(uncastObj)
if len(errs) > 0 {
return errs
Expand All @@ -59,7 +60,7 @@ func (authenticationV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList
return errs
}

func (authenticationV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
func (authenticationV1) ValidateUpdate(_ context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
obj, errs := toAuthenticationV1(uncastObj)
if len(errs) > 0 {
return errs
Expand All @@ -75,7 +76,7 @@ func (authenticationV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj ru
return errs
}

func (authenticationV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
func (authenticationV1) ValidateStatusUpdate(_ context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
obj, errs := toAuthenticationV1(uncastObj)
if len(errs) > 0 {
return errs
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package clusterresourcequota

import (
"context"
"fmt"
"io"

Expand Down Expand Up @@ -50,7 +51,7 @@ func toClusterResourceQuota(uncastObj runtime.Object) (*quotav1.ClusterResourceQ
type clusterResourceQuotaV1 struct {
}

func (clusterResourceQuotaV1) ValidateCreate(obj runtime.Object) field.ErrorList {
func (clusterResourceQuotaV1) ValidateCreate(_ context.Context, obj runtime.Object) field.ErrorList {
clusterResourceQuotaObj, errs := toClusterResourceQuota(obj)
if len(errs) > 0 {
return errs
Expand All @@ -62,7 +63,7 @@ func (clusterResourceQuotaV1) ValidateCreate(obj runtime.Object) field.ErrorList
return errs
}

func (clusterResourceQuotaV1) ValidateUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList {
func (clusterResourceQuotaV1) ValidateUpdate(_ context.Context, obj runtime.Object, oldObj runtime.Object) field.ErrorList {
clusterResourceQuotaObj, errs := toClusterResourceQuota(obj)
if len(errs) > 0 {
return errs
Expand All @@ -78,6 +79,6 @@ func (clusterResourceQuotaV1) ValidateUpdate(obj runtime.Object, oldObj runtime.
return errs
}

func (c clusterResourceQuotaV1) ValidateStatusUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList {
return c.ValidateUpdate(obj, oldObj)
func (c clusterResourceQuotaV1) ValidateStatusUpdate(ctx context.Context, obj runtime.Object, oldObj runtime.Object) field.ErrorList {
return c.ValidateUpdate(ctx, obj, oldObj)
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package console

import (
"context"
"fmt"
"io"

Expand Down Expand Up @@ -48,7 +49,7 @@ func toConsoleV1(uncastObj runtime.Object) (*configv1.Console, field.ErrorList)

type consoleV1 struct{}

func (consoleV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList {
func (consoleV1) ValidateCreate(_ context.Context, uncastObj runtime.Object) field.ErrorList {
obj, errs := toConsoleV1(uncastObj)
if len(errs) > 0 {
return errs
Expand All @@ -60,7 +61,7 @@ func (consoleV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList {
return errs
}

func (consoleV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
func (consoleV1) ValidateUpdate(_ context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
obj, errs := toConsoleV1(uncastObj)
if len(errs) > 0 {
return errs
Expand All @@ -76,7 +77,7 @@ func (consoleV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.O
return errs
}

func (consoleV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
func (consoleV1) ValidateStatusUpdate(_ context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
obj, errs := toConsoleV1(uncastObj)
if len(errs) > 0 {
return errs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import (
)

type ObjectValidator interface {
ValidateCreate(obj runtime.Object) field.ErrorList
ValidateUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList
ValidateStatusUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList
ValidateCreate(ctx context.Context, obj runtime.Object) field.ErrorList
ValidateUpdate(ctx context.Context, obj runtime.Object, oldObj runtime.Object) field.ErrorList
ValidateStatusUpdate(ctx context.Context, obj runtime.Object, oldObj runtime.Object) field.ErrorList
}

// ValidateCustomResource is an implementation of admission.Interface.
Expand Down Expand Up @@ -54,7 +54,7 @@ func (a *validateCustomResource) Validate(ctx context.Context, uncastAttributes
if len(attributes.GetSubresource()) > 0 {
return nil
}
errors := validator.ValidateCreate(attributes.GetObject())
errors := validator.ValidateCreate(ctx, attributes.GetObject())
if len(errors) == 0 {
return nil
}
Expand All @@ -63,14 +63,14 @@ func (a *validateCustomResource) Validate(ctx context.Context, uncastAttributes
case admission.Update:
switch attributes.GetSubresource() {
case "":
errors := validator.ValidateUpdate(attributes.GetObject(), attributes.GetOldObject())
errors := validator.ValidateUpdate(ctx, attributes.GetObject(), attributes.GetOldObject())
if len(errors) == 0 {
return nil
}
return apierrors.NewInvalid(attributes.GetKind().GroupKind(), attributes.GetName(), errors)

case "status":
errors := validator.ValidateStatusUpdate(attributes.GetObject(), attributes.GetOldObject())
errors := validator.ValidateStatusUpdate(ctx, attributes.GetObject(), attributes.GetOldObject())
if len(errors) == 0 {
return nil
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,15 @@ func TestCustomResourceValidator(t *testing.T) {
},
map[schema.GroupVersionKind]ObjectValidator{
{Group: testGroup, Version: testVersion, Kind: testKind}: testValidator{
validateCreate: func(obj runtime.Object) field.ErrorList {
validateCreate: func(_ context.Context, obj runtime.Object) field.ErrorList {
createFuncCalled = true
if tc.validateFuncErr {
return field.ErrorList{field.InternalError(field.NewPath("test"), errors.New("TEST Error"))}
}
funcArgObject = obj
return nil
},
validateUpdate: func(obj runtime.Object, oldObj runtime.Object) field.ErrorList {
validateUpdate: func(_ context.Context, obj runtime.Object, oldObj runtime.Object) field.ErrorList {
if tc.validateFuncErr {
return field.ErrorList{field.InternalError(field.NewPath("test"), errors.New("TEST Error"))}
}
Expand All @@ -174,7 +174,7 @@ func TestCustomResourceValidator(t *testing.T) {
funcArgOldObject = oldObj
return nil
},
validateStatusUpdate: func(obj runtime.Object, oldObj runtime.Object) field.ErrorList {
validateStatusUpdate: func(_ context.Context, obj runtime.Object, oldObj runtime.Object) field.ErrorList {
updateStatusFuncCalled = true
if tc.validateFuncErr {
return field.ErrorList{field.InternalError(field.NewPath("test"), errors.New("TEST Error"))}
Expand Down Expand Up @@ -259,20 +259,20 @@ func TestCustomResourceValidator(t *testing.T) {
}

type testValidator struct {
validateCreate func(uncastObj runtime.Object) field.ErrorList
validateUpdate func(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList
validateStatusUpdate func(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList
validateCreate func(_ context.Context, uncastObj runtime.Object) field.ErrorList
validateUpdate func(_ context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList
validateStatusUpdate func(_ context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList
}

func (v testValidator) ValidateCreate(uncastObj runtime.Object) field.ErrorList {
return v.validateCreate(uncastObj)
func (v testValidator) ValidateCreate(ctx context.Context, uncastObj runtime.Object) field.ErrorList {
return v.validateCreate(ctx, uncastObj)
}

func (v testValidator) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
return v.validateUpdate(uncastObj, uncastOldObj)
func (v testValidator) ValidateUpdate(ctx context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
return v.validateUpdate(ctx, uncastObj, uncastOldObj)

}

func (v testValidator) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
return v.validateStatusUpdate(uncastObj, uncastOldObj)
func (v testValidator) ValidateStatusUpdate(ctx context.Context, uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList {
return v.validateStatusUpdate(ctx, uncastObj, uncastOldObj)
}
Loading