k8s.io/apiserver@v0.31.1/pkg/apis/apiserver/v1/types.go (about)

     1  /*
     2  Copyright 2019 The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package v1
    18  
    19  import (
    20  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    21  	"k8s.io/apimachinery/pkg/runtime"
    22  )
    23  
    24  // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
    25  
    26  // AdmissionConfiguration provides versioned configuration for admission controllers.
    27  type AdmissionConfiguration struct {
    28  	metav1.TypeMeta `json:",inline"`
    29  
    30  	// Plugins allows specifying a configuration per admission control plugin.
    31  	// +optional
    32  	Plugins []AdmissionPluginConfiguration `json:"plugins"`
    33  }
    34  
    35  // AdmissionPluginConfiguration provides the configuration for a single plug-in.
    36  type AdmissionPluginConfiguration struct {
    37  	// Name is the name of the admission controller.
    38  	// It must match the registered admission plugin name.
    39  	Name string `json:"name"`
    40  
    41  	// Path is the path to a configuration file that contains the plugin's
    42  	// configuration
    43  	// +optional
    44  	Path string `json:"path"`
    45  
    46  	// Configuration is an embedded configuration object to be used as the plugin's
    47  	// configuration. If present, it will be used instead of the path to the configuration file.
    48  	// +optional
    49  	Configuration *runtime.Unknown `json:"configuration"`
    50  }