1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /*
- Copyright 2017 The Kubernetes Authors.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- package eventratelimit
- import (
- "fmt"
- "io"
- "io/ioutil"
- "k8s.io/apimachinery/pkg/runtime"
- "k8s.io/apimachinery/pkg/runtime/serializer"
- eventratelimitapi "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit"
- "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/install"
- eventratelimitv1alpha1 "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1"
- )
- var (
- scheme = runtime.NewScheme()
- codecs = serializer.NewCodecFactory(scheme)
- )
- func init() {
- install.Install(scheme)
- }
- // LoadConfiguration loads the provided configuration.
- func LoadConfiguration(config io.Reader) (*eventratelimitapi.Configuration, error) {
- // if no config is provided, return a default configuration
- if config == nil {
- externalConfig := &eventratelimitv1alpha1.Configuration{}
- scheme.Default(externalConfig)
- internalConfig := &eventratelimitapi.Configuration{}
- if err := scheme.Convert(externalConfig, internalConfig, nil); err != nil {
- return nil, err
- }
- return internalConfig, nil
- }
- // we have a config so parse it.
- data, err := ioutil.ReadAll(config)
- if err != nil {
- return nil, err
- }
- decoder := codecs.UniversalDecoder()
- decodedObj, err := runtime.Decode(decoder, data)
- if err != nil {
- return nil, err
- }
- resourceQuotaConfiguration, ok := decodedObj.(*eventratelimitapi.Configuration)
- if !ok {
- return nil, fmt.Errorf("unexpected type: %T", decodedObj)
- }
- return resourceQuotaConfiguration, nil
- }
|