Exemple #1
0
 /// <summary>
 /// Initializes a new instance of the V1beta1Webhook class.
 /// </summary>
 /// <param name="clientConfig">ClientConfig defines how to communicate
 /// with the hook. Required</param>
 /// <param name="name">The name of the admission webhook. Name should
 /// be fully qualified, e.g., imagepolicy.kubernetes.io, where
 /// "imagepolicy" is the name of the webhook, and kubernetes.io is the
 /// name of the organization. Required.</param>
 /// <param name="failurePolicy">FailurePolicy defines how unrecognized
 /// errors from the admission endpoint are handled - allowed values are
 /// Ignore or Fail. Defaults to Ignore.</param>
 /// <param name="namespaceSelector">NamespaceSelector decides whether
 /// to run the webhook on an object based on whether the namespace for
 /// that object matches the selector. If the object itself is a
 /// namespace, the matching is performed on object.metadata.labels. If
 /// the object is another cluster scoped resource, it never skips the
 /// webhook.
 ///
 /// For example, to run the webhook on any objects whose namespace is
 /// not associated with "runlevel" of "0" or "1";  you will set the
 /// selector as follows: "namespaceSelector": {
 /// "matchExpressions": [
 /// {
 /// "key": "runlevel",
 /// "operator": "NotIn",
 /// "values": [
 /// "0",
 /// "1"
 /// ]
 /// }
 /// ]
 /// }
 ///
 /// If instead you want to only run the webhook on any objects whose
 /// namespace is associated with the "environment" of "prod" or
 /// "staging"; you will set the selector as follows:
 /// "namespaceSelector": {
 /// "matchExpressions": [
 /// {
 /// "key": "environment",
 /// "operator": "In",
 /// "values": [
 /// "prod",
 /// "staging"
 /// ]
 /// }
 /// ]
 /// }
 ///
 /// See
 /// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
 /// for more examples of label selectors.
 ///
 /// Default to the empty LabelSelector, which matches
 /// everything.</param>
 /// <param name="rules">Rules describes what operations on what
 /// resources/subresources the webhook cares about. The webhook cares
 /// about an operation if it matches _any_ Rule. However, in order to
 /// prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks
 /// from putting the cluster in a state which cannot be recovered from
 /// without completely disabling the plugin,
 /// ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never
 /// called on admission requests for ValidatingWebhookConfiguration and
 /// MutatingWebhookConfiguration objects.</param>
 /// <param name="sideEffects">SideEffects states whether this webhookk
 /// has side effects. Acceptable values are: Unknown, None, Some,
 /// NoneOnDryRun Webhooks with side effects MUST implement a
 /// reconciliation system, since a request may be rejected by a future
 /// step in the admission change and the side effects therefore need to
 /// be undone. Requests with the dryRun attribute will be auto-rejected
 /// if they match a webhook with sideEffects == Unknown or Some.
 /// Defaults to Unknown.</param>
 public V1beta1Webhook(Admissionregistrationv1beta1WebhookClientConfig clientConfig, string name, string failurePolicy = default(string), V1LabelSelector namespaceSelector = default(V1LabelSelector), IList <V1beta1RuleWithOperations> rules = default(IList <V1beta1RuleWithOperations>), string sideEffects = default(string))
 {
     ClientConfig      = clientConfig;
     FailurePolicy     = failurePolicy;
     Name              = name;
     NamespaceSelector = namespaceSelector;
     Rules             = rules;
     SideEffects       = sideEffects;
     CustomInit();
 }
Exemple #2
0
 /// <summary>
 /// Initializes a new instance of the V1beta1Webhook class.
 /// </summary>
 /// <param name="clientConfig">ClientConfig defines how to communicate
 /// with the hook. Required</param>
 /// <param name="name">The name of the admission webhook. Name should
 /// be fully qualified, e.g., imagepolicy.kubernetes.io, where
 /// "imagepolicy" is the name of the webhook, and kubernetes.io is the
 /// name of the organization. Required.</param>
 /// <param name="admissionReviewVersions">AdmissionReviewVersions is an
 /// ordered list of preferred `AdmissionReview` versions the Webhook
 /// expects. API server will try to use first version in the list which
 /// it supports. If none of the versions specified in this list
 /// supported by API server, validation will fail for this object. If a
 /// persisted webhook configuration specifies allowed versions and does
 /// not include any versions known to the API Server, calls to the
 /// webhook will fail and be subject to the failure policy. Default to
 /// `['v1beta1']`.</param>
 /// <param name="failurePolicy">FailurePolicy defines how unrecognized
 /// errors from the admission endpoint are handled - allowed values are
 /// Ignore or Fail. Defaults to Ignore.</param>
 /// <param name="namespaceSelector">NamespaceSelector decides whether
 /// to run the webhook on an object based on whether the namespace for
 /// that object matches the selector. If the object itself is a
 /// namespace, the matching is performed on object.metadata.labels. If
 /// the object is another cluster scoped resource, it never skips the
 /// webhook.
 ///
 /// For example, to run the webhook on any objects whose namespace is
 /// not associated with "runlevel" of "0" or "1";  you will set the
 /// selector as follows: "namespaceSelector": {
 /// "matchExpressions": [
 /// {
 /// "key": "runlevel",
 /// "operator": "NotIn",
 /// "values": [
 /// "0",
 /// "1"
 /// ]
 /// }
 /// ]
 /// }
 ///
 /// If instead you want to only run the webhook on any objects whose
 /// namespace is associated with the "environment" of "prod" or
 /// "staging"; you will set the selector as follows:
 /// "namespaceSelector": {
 /// "matchExpressions": [
 /// {
 /// "key": "environment",
 /// "operator": "In",
 /// "values": [
 /// "prod",
 /// "staging"
 /// ]
 /// }
 /// ]
 /// }
 ///
 /// See
 /// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
 /// for more examples of label selectors.
 ///
 /// Default to the empty LabelSelector, which matches
 /// everything.</param>
 /// <param name="rules">Rules describes what operations on what
 /// resources/subresources the webhook cares about. The webhook cares
 /// about an operation if it matches _any_ Rule. However, in order to
 /// prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks
 /// from putting the cluster in a state which cannot be recovered from
 /// without completely disabling the plugin,
 /// ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never
 /// called on admission requests for ValidatingWebhookConfiguration and
 /// MutatingWebhookConfiguration objects.</param>
 /// <param name="sideEffects">SideEffects states whether this webhookk
 /// has side effects. Acceptable values are: Unknown, None, Some,
 /// NoneOnDryRun Webhooks with side effects MUST implement a
 /// reconciliation system, since a request may be rejected by a future
 /// step in the admission change and the side effects therefore need to
 /// be undone. Requests with the dryRun attribute will be auto-rejected
 /// if they match a webhook with sideEffects == Unknown or Some.
 /// Defaults to Unknown.</param>
 /// <param name="timeoutSeconds">TimeoutSeconds specifies the timeout
 /// for this webhook. After the timeout passes, the webhook call will
 /// be ignored or the API call will fail based on the failure policy.
 /// The timeout value must be between 1 and 30 seconds. Default to 30
 /// seconds.</param>
 public V1beta1Webhook(Admissionregistrationv1beta1WebhookClientConfig clientConfig, string name, IList <string> admissionReviewVersions = default(IList <string>), string failurePolicy = default(string), V1LabelSelector namespaceSelector = default(V1LabelSelector), IList <V1beta1RuleWithOperations> rules = default(IList <V1beta1RuleWithOperations>), string sideEffects = default(string), int?timeoutSeconds = default(int?))
 {
     AdmissionReviewVersions = admissionReviewVersions;
     ClientConfig            = clientConfig;
     FailurePolicy           = failurePolicy;
     Name = name;
     NamespaceSelector = namespaceSelector;
     Rules             = rules;
     SideEffects       = sideEffects;
     TimeoutSeconds    = timeoutSeconds;
     CustomInit();
 }