...

Source file src/k8s.io/kubernetes/pkg/apis/admissionregistration/v1beta1/defaults.go

Documentation: k8s.io/kubernetes/pkg/apis/admissionregistration/v1beta1

     1  /*
     2  Copyright 2017 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 v1beta1
    18  
    19  import (
    20  	admissionregistrationv1beta1 "k8s.io/api/admissionregistration/v1beta1"
    21  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    22  	"k8s.io/apimachinery/pkg/runtime"
    23  	utilpointer "k8s.io/utils/pointer"
    24  )
    25  
    26  func addDefaultingFuncs(scheme *runtime.Scheme) error {
    27  	return RegisterDefaults(scheme)
    28  }
    29  
    30  // SetDefaults_ValidatingAdmissionPolicySpec sets defaults for ValidatingAdmissionPolicySpec
    31  func SetDefaults_ValidatingAdmissionPolicySpec(obj *admissionregistrationv1beta1.ValidatingAdmissionPolicySpec) {
    32  	if obj.FailurePolicy == nil {
    33  		policy := admissionregistrationv1beta1.Fail
    34  		obj.FailurePolicy = &policy
    35  	}
    36  }
    37  
    38  // SetDefaults_MatchResources sets defaults for MatchResources
    39  func SetDefaults_MatchResources(obj *admissionregistrationv1beta1.MatchResources) {
    40  	if obj.MatchPolicy == nil {
    41  		policy := admissionregistrationv1beta1.Equivalent
    42  		obj.MatchPolicy = &policy
    43  	}
    44  	if obj.NamespaceSelector == nil {
    45  		selector := metav1.LabelSelector{}
    46  		obj.NamespaceSelector = &selector
    47  	}
    48  	if obj.ObjectSelector == nil {
    49  		selector := metav1.LabelSelector{}
    50  		obj.ObjectSelector = &selector
    51  	}
    52  }
    53  
    54  // SetDefaults_ValidatingWebhook sets defaults for webhook validating
    55  func SetDefaults_ValidatingWebhook(obj *admissionregistrationv1beta1.ValidatingWebhook) {
    56  	if obj.FailurePolicy == nil {
    57  		policy := admissionregistrationv1beta1.Ignore
    58  		obj.FailurePolicy = &policy
    59  	}
    60  	if obj.MatchPolicy == nil {
    61  		policy := admissionregistrationv1beta1.Exact
    62  		obj.MatchPolicy = &policy
    63  	}
    64  	if obj.NamespaceSelector == nil {
    65  		selector := metav1.LabelSelector{}
    66  		obj.NamespaceSelector = &selector
    67  	}
    68  	if obj.ObjectSelector == nil {
    69  		selector := metav1.LabelSelector{}
    70  		obj.ObjectSelector = &selector
    71  	}
    72  	if obj.SideEffects == nil {
    73  		// TODO: revisit/remove this default and possibly make the field required when promoting to v1
    74  		unknown := admissionregistrationv1beta1.SideEffectClassUnknown
    75  		obj.SideEffects = &unknown
    76  	}
    77  	if obj.TimeoutSeconds == nil {
    78  		obj.TimeoutSeconds = new(int32)
    79  		*obj.TimeoutSeconds = 30
    80  	}
    81  
    82  	if len(obj.AdmissionReviewVersions) == 0 {
    83  		obj.AdmissionReviewVersions = []string{admissionregistrationv1beta1.SchemeGroupVersion.Version}
    84  	}
    85  }
    86  
    87  // SetDefaults_MutatingWebhook sets defaults for webhook mutating
    88  func SetDefaults_MutatingWebhook(obj *admissionregistrationv1beta1.MutatingWebhook) {
    89  	if obj.FailurePolicy == nil {
    90  		policy := admissionregistrationv1beta1.Ignore
    91  		obj.FailurePolicy = &policy
    92  	}
    93  	if obj.MatchPolicy == nil {
    94  		policy := admissionregistrationv1beta1.Exact
    95  		obj.MatchPolicy = &policy
    96  	}
    97  	if obj.NamespaceSelector == nil {
    98  		selector := metav1.LabelSelector{}
    99  		obj.NamespaceSelector = &selector
   100  	}
   101  	if obj.ObjectSelector == nil {
   102  		selector := metav1.LabelSelector{}
   103  		obj.ObjectSelector = &selector
   104  	}
   105  	if obj.SideEffects == nil {
   106  		// TODO: revisit/remove this default and possibly make the field required when promoting to v1
   107  		unknown := admissionregistrationv1beta1.SideEffectClassUnknown
   108  		obj.SideEffects = &unknown
   109  	}
   110  	if obj.TimeoutSeconds == nil {
   111  		obj.TimeoutSeconds = new(int32)
   112  		*obj.TimeoutSeconds = 30
   113  	}
   114  	if obj.ReinvocationPolicy == nil {
   115  		never := admissionregistrationv1beta1.NeverReinvocationPolicy
   116  		obj.ReinvocationPolicy = &never
   117  	}
   118  
   119  	if len(obj.AdmissionReviewVersions) == 0 {
   120  		obj.AdmissionReviewVersions = []string{admissionregistrationv1beta1.SchemeGroupVersion.Version}
   121  	}
   122  }
   123  
   124  // SetDefaults_ServiceReference sets defaults for Webhook's ServiceReference
   125  func SetDefaults_ServiceReference(obj *admissionregistrationv1beta1.ServiceReference) {
   126  	if obj.Port == nil {
   127  		obj.Port = utilpointer.Int32(443)
   128  	}
   129  }
   130  

View as plain text