44301 lines
2.1 MiB
Plaintext
44301 lines
2.1 MiB
Plaintext
# This file was generated with nixidy CRD generator, do not edit.
|
|
{
|
|
lib,
|
|
options,
|
|
config,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
hasAttrNotNull = attr: set: hasAttr attr set && set.${attr} != null;
|
|
|
|
attrsToList =
|
|
values:
|
|
if values != null then
|
|
sort (
|
|
a: b:
|
|
if (hasAttrNotNull "_priority" a && hasAttrNotNull "_priority" b) then
|
|
a._priority < b._priority
|
|
else
|
|
false
|
|
) (mapAttrsToList (n: v: v) values)
|
|
else
|
|
values;
|
|
|
|
getDefaults =
|
|
resource: group: version: kind:
|
|
catAttrs "default" (
|
|
filter (
|
|
default:
|
|
(default.resource == null || default.resource == resource)
|
|
&& (default.group == null || default.group == group)
|
|
&& (default.version == null || default.version == version)
|
|
&& (default.kind == null || default.kind == kind)
|
|
) config.defaults
|
|
);
|
|
|
|
types = lib.types // rec {
|
|
str = mkOptionType {
|
|
name = "str";
|
|
description = "string";
|
|
check = isString;
|
|
merge = mergeEqualOption;
|
|
};
|
|
|
|
# Either value of type `finalType` or `coercedType`, the latter is
|
|
# converted to `finalType` using `coerceFunc`.
|
|
coercedTo =
|
|
coercedType: coerceFunc: finalType:
|
|
mkOptionType rec {
|
|
inherit (finalType) getSubOptions getSubModules;
|
|
|
|
name = "coercedTo";
|
|
description = "${finalType.description} or ${coercedType.description}";
|
|
check = x: finalType.check x || coercedType.check x;
|
|
merge =
|
|
loc: defs:
|
|
let
|
|
coerceVal =
|
|
val:
|
|
if finalType.check val then
|
|
val
|
|
else
|
|
let
|
|
coerced = coerceFunc val;
|
|
in
|
|
assert finalType.check coerced;
|
|
coerced;
|
|
in
|
|
finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs);
|
|
substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m);
|
|
typeMerge = t1: t2: null;
|
|
functor = (defaultFunctor name) // {
|
|
wrapped = finalType;
|
|
};
|
|
};
|
|
};
|
|
|
|
mkOptionDefault = mkOverride 1001;
|
|
|
|
mergeValuesByKey =
|
|
attrMergeKey: listMergeKeys: values:
|
|
listToAttrs (
|
|
imap0 (
|
|
i: value:
|
|
nameValuePair (
|
|
if hasAttr attrMergeKey value then
|
|
if isAttrs value.${attrMergeKey} then
|
|
toString value.${attrMergeKey}.content
|
|
else
|
|
(toString value.${attrMergeKey})
|
|
else
|
|
# generate merge key for list elements if it's not present
|
|
"__kubenix_list_merge_key_"
|
|
+ (concatStringsSep "" (
|
|
map (
|
|
key: if isAttrs value.${key} then toString value.${key}.content else (toString value.${key})
|
|
) listMergeKeys
|
|
))
|
|
) (value // { _priority = i; })
|
|
) values
|
|
);
|
|
|
|
submoduleOf =
|
|
ref:
|
|
types.submodule (
|
|
{ name, ... }:
|
|
{
|
|
options = definitions."${ref}".options or { };
|
|
config = definitions."${ref}".config or { };
|
|
}
|
|
);
|
|
|
|
globalSubmoduleOf =
|
|
ref:
|
|
types.submodule (
|
|
{ name, ... }:
|
|
{
|
|
options = config.definitions."${ref}".options or { };
|
|
config = config.definitions."${ref}".config or { };
|
|
}
|
|
);
|
|
|
|
submoduleWithMergeOf =
|
|
ref: mergeKey:
|
|
types.submodule (
|
|
{ name, ... }:
|
|
let
|
|
convertName =
|
|
name: if definitions."${ref}".options.${mergeKey}.type == types.int then toInt name else name;
|
|
in
|
|
{
|
|
options = definitions."${ref}".options // {
|
|
# position in original array
|
|
_priority = mkOption {
|
|
type = types.nullOr types.int;
|
|
default = null;
|
|
};
|
|
};
|
|
config = definitions."${ref}".config // {
|
|
${mergeKey} = mkOverride 1002 (
|
|
# use name as mergeKey only if it is not coming from mergeValuesByKey
|
|
if (!hasPrefix "__kubenix_list_merge_key_" name) then convertName name else null
|
|
);
|
|
};
|
|
}
|
|
);
|
|
|
|
submoduleForDefinition =
|
|
ref: resource: kind: group: version:
|
|
let
|
|
apiVersion = if group == "core" then version else "${group}/${version}";
|
|
in
|
|
types.submodule (
|
|
{ name, ... }:
|
|
{
|
|
inherit (definitions."${ref}") options;
|
|
|
|
imports = getDefaults resource group version kind;
|
|
config = mkMerge [
|
|
definitions."${ref}".config
|
|
{
|
|
kind = mkOptionDefault kind;
|
|
apiVersion = mkOptionDefault apiVersion;
|
|
|
|
# metdata.name cannot use option default, due deep config
|
|
metadata.name = mkOptionDefault name;
|
|
}
|
|
];
|
|
}
|
|
);
|
|
|
|
coerceAttrsOfSubmodulesToListByKey =
|
|
ref: attrMergeKey: listMergeKeys:
|
|
(types.coercedTo (types.listOf (submoduleOf ref)) (mergeValuesByKey attrMergeKey listMergeKeys) (
|
|
types.attrsOf (submoduleWithMergeOf ref attrMergeKey)
|
|
));
|
|
|
|
definitions = {
|
|
"kyverno.io.v1.ClusterPolicy" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy behaviors.";
|
|
type = submoduleOf "kyverno.io.v1.ClusterPolicySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains policy runtime data.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpec" = {
|
|
options = {
|
|
"admission" = mkOption {
|
|
description = "Admission controls if rules are applied during admission.\nOptional. Default value is \"true\".";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"applyRules" = mkOption {
|
|
description = "ApplyRules controls how rules in a policy are applied. Rule are processed in\nthe order of declaration. When set to `One` processing stops after a rule has\nbeen applied i.e. the rule matches and results in a pass, fail, or error. When\nset to `All` all rules in the policy are processed. The default is `All`.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"background" = mkOption {
|
|
description = "Background controls if rules are applied to existing resources during a background scan.\nOptional. Default value is \"true\". The value must be set to \"false\" if the policy rule\nuses variables that are only available in the admission review request (e.g. user name).";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"failurePolicy" = mkOption {
|
|
description = "FailurePolicy defines how unexpected policy errors and webhook response timeout errors are handled.\nRules within the same policy share the same failure behavior.\nThis field should not be accessed directly, instead `GetFailurePolicy()` should be used.\nAllowed values are Ignore or Fail. Defaults to Fail.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"generateExisting" = mkOption {
|
|
description = "GenerateExisting controls whether to trigger generate rule in existing resources\nIf is set to \"true\" generate rule will be triggered and applied to existing matched resources.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"generateExistingOnPolicyUpdate" = mkOption {
|
|
description = "Deprecated, use generateExisting instead";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"mutateExistingOnPolicyUpdate" = mkOption {
|
|
description = "MutateExistingOnPolicyUpdate controls if a mutateExisting policy is applied on policy events.\nDefault value is \"false\".";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"rules" = mkOption {
|
|
description = "Rules is a list of Rule instances. A Policy contains multiple rules and\neach rule can validate, mutate, or generate resources.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRules" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"schemaValidation" = mkOption {
|
|
description = "Deprecated.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"useServerSideApply" = mkOption {
|
|
description = "UseServerSideApply controls whether to use server-side apply for generate rules\nIf is set to \"true\" create & update for generate rules will use apply instead of create/update.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validationFailureAction" = mkOption {
|
|
description = "ValidationFailureAction defines if a validation policy rule violation should block\nthe admission review request (enforce), or allow (audit) the admission review request\nand report an error in a policy report. Optional.\nAllowed values are audit or enforce. The default value is \"Audit\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"validationFailureActionOverrides" = mkOption {
|
|
description = "ValidationFailureActionOverrides is a Cluster Policy attribute that specifies ValidationFailureAction\nnamespace-wise. It overrides ValidationFailureAction for the specified namespaces.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecValidationFailureActionOverrides")
|
|
);
|
|
};
|
|
"webhookConfiguration" = mkOption {
|
|
description = "WebhookConfiguration specifies the custom configuration for Kubernetes admission webhookconfiguration.\nRequires Kubernetes 1.27 or later.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecWebhookConfiguration");
|
|
};
|
|
"webhookTimeoutSeconds" = mkOption {
|
|
description = "WebhookTimeoutSeconds specifies the maximum time in seconds allowed to apply this policy.\nAfter the configured time expires, the admission request may fail, or may simply ignore the policy results,\nbased on the failure policy. The default timeout is 10s, the value must be between 1 and 30 seconds.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"admission" = mkOverride 1002 null;
|
|
"applyRules" = mkOverride 1002 null;
|
|
"background" = mkOverride 1002 null;
|
|
"failurePolicy" = mkOverride 1002 null;
|
|
"generateExisting" = mkOverride 1002 null;
|
|
"generateExistingOnPolicyUpdate" = mkOverride 1002 null;
|
|
"mutateExistingOnPolicyUpdate" = mkOverride 1002 null;
|
|
"rules" = mkOverride 1002 null;
|
|
"schemaValidation" = mkOverride 1002 null;
|
|
"useServerSideApply" = mkOverride 1002 null;
|
|
"validationFailureAction" = mkOverride 1002 null;
|
|
"validationFailureActionOverrides" = mkOverride 1002 null;
|
|
"webhookConfiguration" = mkOverride 1002 null;
|
|
"webhookTimeoutSeconds" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRules" = {
|
|
options = {
|
|
"celPreconditions" = mkOption {
|
|
description = "CELPreconditions are used to determine if a policy rule should be applied by evaluating a\nset of CEL conditions. It can only be used with the validate.cel subrule";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesCelPreconditions" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when this policy rule should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExclude");
|
|
};
|
|
"generate" = mkOption {
|
|
description = "Generation is used to create new resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesGenerate");
|
|
};
|
|
"imageExtractors" = mkOption {
|
|
description = "ImageExtractors defines a mapping from kinds to ImageExtractorConfigs.\nThis config is only valid for verifyImages rules.";
|
|
type = types.nullOr (types.loaOf types.attrs);
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when this policy rule should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatch");
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Mutation is used to modify matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutate");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is a label to identify the rule, It must be unique within the policy.";
|
|
type = types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"skipBackgroundRequests" = mkOption {
|
|
description = "SkipBackgroundRequests bypasses admission requests that are sent by the background controller.\nThe default value is set to \"true\", it must be set to \"false\" to apply\ngenerate and mutateExisting rules to those requests.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Validation is used to validate matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidate");
|
|
};
|
|
"verifyImages" = mkOption {
|
|
description = "VerifyImages is used to verify image signatures and mutate them to add a digest";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImages"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"celPreconditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"generate" = mkOverride 1002 null;
|
|
"imageExtractors" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
"mutate" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"skipBackgroundRequests" = mkOverride 1002 null;
|
|
"validate" = mkOverride 1002 null;
|
|
"verifyImages" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesCelPreconditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesContextGlobalReference");
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAny"));
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesExcludeSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesExcludeAllSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesExcludeAnySubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesExcludeResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesExcludeSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesGenerate" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"clone" = mkOption {
|
|
description = "Clone specifies the source resource used to populate each generated resource.\nAt most one of Data or Clone can be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesGenerateClone");
|
|
};
|
|
"cloneList" = mkOption {
|
|
description = "CloneList specifies the list of source resource used to populate each generated resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesGenerateCloneList");
|
|
};
|
|
"data" = mkOption {
|
|
description = "Data provides the resource declaration used to populate each generated resource.\nAt most one of Data or Clone must be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"orphanDownstreamOnPolicyDelete" = mkOption {
|
|
description = "OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated\nthem is deleted with synchronization enabled. This option is only applicable to generate rules of the data type.\nSee https://kyverno.io/docs/writing-policies/generate/#data-examples.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"synchronize" = mkOption {
|
|
description = "Synchronize controls if generated resources should be kept in-sync with their source resource.\nIf Synchronize is set to \"true\" changes to generated resources will be overwritten with resource\ndata from Data or the resource specified in the Clone declaration.\nOptional. Defaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"clone" = mkOverride 1002 null;
|
|
"cloneList" = mkOverride 1002 null;
|
|
"data" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"orphanDownstreamOnPolicyDelete" = mkOverride 1002 null;
|
|
"synchronize" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesGenerateClone" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name specifies name of the resource.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesGenerateCloneList" = {
|
|
options = {
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels`.\nwildcard characters are not supported.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesGenerateCloneListSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"kinds" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesGenerateCloneListSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesGenerateCloneListSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesGenerateCloneListSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAny"));
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesMatchSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesMatchAllSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesMatchAnySubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMatchResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMatchSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutate" = {
|
|
options = {
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies mutation rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeach")
|
|
);
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"targets" = mkOption {
|
|
description = "Targets defines the target resources to be mutated.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesMutateTargets" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"foreach" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"targets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeach" = {
|
|
options = {
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContext" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"order" = mkOption {
|
|
description = "Order defines the iteration order on the list.\nCan be Ascending to iterate from first to last element or Descending to iterate in from last to first element.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachPreconditions");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"context" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"order" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateForeachPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateTargets" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContext" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesMutateTargetsContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidate" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"cel" = mkOption {
|
|
description = "CEL allows validation checks using the Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/).";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateCel");
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateDeny");
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies validate rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeach")
|
|
);
|
|
};
|
|
"manifests" = mkOption {
|
|
description = "Manifest specifies conditions for manifest verification";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifests");
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message specifies a custom message to be displayed on failure.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity applies exemptions for Kubernetes Pod Security admission\nby specifying exclusions for Pod Security Standards controls.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidatePodSecurity");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"cel" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"manifests" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateCel" = {
|
|
options = {
|
|
"auditAnnotations" = mkOption {
|
|
description = "AuditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateCelAuditAnnotations")
|
|
);
|
|
};
|
|
"expressions" = mkOption {
|
|
description = "Expressions is a list of CELExpression types.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateCelExpressions")
|
|
);
|
|
};
|
|
"paramKind" = mkOption {
|
|
description = "ParamKind is a tuple of Group Kind and Version.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateCelParamKind");
|
|
};
|
|
"paramRef" = mkOption {
|
|
description = "ParamRef references a parameter resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateCelParamRef");
|
|
};
|
|
"variables" = mkOption {
|
|
description = "Variables contain definitions of variables that can be used in composition of other expressions.\nEach variable is defined as a named CEL expression.\nThe variables defined here will be available under `variables` in other expressions of the policy.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesValidateCelVariables" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"auditAnnotations" = mkOverride 1002 null;
|
|
"expressions" = mkOverride 1002 null;
|
|
"paramKind" = mkOverride 1002 null;
|
|
"paramRef" = mkOverride 1002 null;
|
|
"variables" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateCelAuditAnnotations" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key specifies the audit annotation key. The audit annotation keys of\na ValidatingAdmissionPolicy must be unique. The key must be a qualified\nname ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\n\nThe key is combined with the resource name of the\nValidatingAdmissionPolicy to construct an audit annotation key:\n\"{ValidatingAdmissionPolicy name}/{key}\".\n\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\nand the same audit annotation key, the annotation key will be identical.\nIn this case, the first annotation written with the key will be included\nin the audit event and all subsequent annotations with the same key\nwill be discarded.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"valueExpression" = mkOption {
|
|
description = "valueExpression represents the expression which is evaluated by CEL to\nproduce an audit annotation value. The expression must evaluate to either\na string or null value. If the expression evaluates to a string, the\naudit annotation is included with the string value. If the expression\nevaluates to null or empty string the audit annotation will be omitted.\nThe valueExpression may be no longer than 5kb in length.\nIf the result of the valueExpression is more than 10kb in length, it\nwill be truncated to 10kb.\n\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an\nAPI request, then the valueExpression will be evaluated for\neach binding. All unique values produced by the valueExpressions\nwill be joined together in a comma-separated list.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateCelExpressions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests.\n- 'oldObject' - The existing object. The value is null for CREATE requests.\n- 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n- 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n- 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\nobject. No other metadata properties are accessible.\n\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\nAccessible property names are escaped according to the following rules when accessed in the expression:\n- '__' escapes to '__underscores__'\n- '.' escapes to '__dot__'\n- '-' escapes to '__dash__'\n- '/' escapes to '__slash__'\n- Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\nConcatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message represents the message displayed when validation fails. The message is required if the Expression contains\nline breaks. The message must not contain line breaks.\nIf unset, the message is \"failed rule: {Rule}\".\ne.g. \"must be a URL with the host matching spec.host\"\nIf the Expression contains line breaks. Message is required.\nThe message must not contain line breaks.\nIf unset, the message is \"failed Expression: {Expression}\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"messageExpression" = mkOption {
|
|
description = "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\nSince messageExpression is used as a failure message, it must evaluate to a string.\nIf both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\nIf messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\nas if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\nthat contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\nthe fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\nmessageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\nExample:\n\"object.x must be less than max (\"+string(params.max)+\")\"";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "Reason represents a machine-readable description of why this validation failed.\nIf this is the first validation in the list to fail, this reason, as well as the\ncorresponding HTTP response code, are used in the\nHTTP response to the client.\nThe currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\nIf not set, StatusReasonInvalid is used in the response to the client.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"message" = mkOverride 1002 null;
|
|
"messageExpression" = mkOverride 1002 null;
|
|
"reason" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateCelParamKind" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion is the API group version the resources belong to.\nIn format of \"group/version\".\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is the API kind the resources belong to.\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateCelParamRef" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "`name` is the name of the resource being referenced.\n\n\n`name` and `selector` are mutually exclusive properties. If one is set,\nthe other must be unset.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "namespace is the namespace of the referenced resource. Allows limiting\nthe search for params to a specific namespace. Applies to both `name` and\n`selector` fields.\n\n\nA per-namespace parameter may be used by specifying a namespace-scoped\n`paramKind` in the policy and leaving this field empty.\n\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\nfield results in a configuration error.\n\n\n- If `paramKind` is namespace-scoped, the namespace of the object being\nevaluated for admission will be used when this field is left unset. Take\ncare that if this is left empty the binding must not match any cluster-scoped\nresources, which will result in an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"parameterNotFoundAction" = mkOption {
|
|
description = "`parameterNotFoundAction` controls the behavior of the binding when the resource\nexists, and name or selector is valid, but there are no parameters\nmatched by the binding. If the value is set to `Allow`, then no\nmatched parameters will be treated as successful validation by the binding.\nIf set to `Deny`, then no matched parameters will be subject to the\n`failurePolicy` of the policy.\n\n\nAllowed values are `Allow` or `Deny`\nDefault to `Deny`";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "selector can be used to match multiple param objects based on their labels.\nSupply selector: {} to match all resources of the ParamKind.\n\n\nIf multiple params are found, they are all evaluated with the policy expressions\nand the results are ANDed together.\n\n\nOne of `name` or `selector` must be set, but `name` and `selector` are\nmutually exclusive properties. If one is set, the other must be unset.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateCelParamRefSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"parameterNotFoundAction" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateCelParamRefSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateCelParamRefSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateCelParamRefSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateCelVariables" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression is the expression that will be evaluated as the value of the variable.\nThe CEL expression has access to the same identifiers as the CEL expressions in Validation.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\nThe variable can be accessed in other expressions through `variables`\nFor example, if name is \"foo\", the variable will be available as `variables.foo`";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeach" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachDeny");
|
|
};
|
|
"elementScope" = mkOption {
|
|
description = "ElementScope specifies whether to use the current list element as the scope for validation. Defaults to \"true\" if not specified.\nWhen set to \"false\", \"request.object\" is used as the validation scope within the foreach\nblock to allow referencing other elements in the subtree.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"elementScope" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateForeachPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifests" = {
|
|
options = {
|
|
"annotationDomain" = mkOption {
|
|
description = "AnnotationDomain is custom domain of annotation for message and signature. Default is \"cosign.sigstore.dev\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestors")
|
|
);
|
|
};
|
|
"dryRun" = mkOption {
|
|
description = "DryRun configuration";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsDryRun");
|
|
};
|
|
"ignoreFields" = mkOption {
|
|
description = "Fields which will be ignored while comparing manifests.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsIgnoreFields")
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for resource bundle reference.\nThe repository can be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotationDomain" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"dryRun" = mkOverride 1002 null;
|
|
"ignoreFields" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsDryRun" = {
|
|
options = {
|
|
"enable" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"enable" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsIgnoreFields" = {
|
|
options = {
|
|
"fields" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"objects" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsIgnoreFieldsObjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"fields" = mkOverride 1002 null;
|
|
"objects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidateManifestsIgnoreFieldsObjects" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"group" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidatePodSecurity" = {
|
|
options = {
|
|
"exclude" = mkOption {
|
|
description = "Exclude specifies the Pod Security Standard controls to be excluded.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesValidatePodSecurityExclude")
|
|
);
|
|
};
|
|
"level" = mkOption {
|
|
description = "Level defines the Pod Security Standard level to be applied to workloads.\nAllowed values are privileged, baseline, and restricted.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "Version defines the Pod Security Standard versions that Kubernetes supports.\nAllowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"exclude" = mkOverride 1002 null;
|
|
"level" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesValidatePodSecurityExclude" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImages" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "Deprecated.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"annotations" = mkOption {
|
|
description = "Deprecated. Use annotations per Attestor instead.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestations" = mkOption {
|
|
description = "Attestations are optional checks for signed in-toto Statements used to verify the image.\nSee https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the\nOCI registry and decodes them into a list of Statement declarations.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestations")
|
|
);
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestors")
|
|
);
|
|
};
|
|
"image" = mkOption {
|
|
description = "Deprecated. Use ImageReferences instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"imageReferences" = mkOption {
|
|
description = "ImageReferences is a list of matching image reference patterns. At least one pattern in the\nlist must match the image for the rule to apply. Each image reference consists of a registry\naddress (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesImageRegistryCredentials"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"key" = mkOption {
|
|
description = "Deprecated. Use StaticKeyAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"mutateDigest" = mkOption {
|
|
description = "MutateDigest enables replacement of image tags with digests.\nDefaults to true.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule.\nIf specified Repository will override the default OCI image repository configured for the installation.\nThe repository can also be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"required" = mkOption {
|
|
description = "Required validates that images are verified i.e. have matched passed a signature or attestation check.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"skipImageReferences" = mkOption {
|
|
description = "SkipImageReferences is a list of matching image reference patterns that should be skipped.\nAt least one pattern in the list must match the image for the rule to be skipped. Each image reference\nconsists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type specifies the method of signature validation. The allowed options\nare Cosign and Notary. By default Cosign is used if a type is not specified.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"useCache" = mkOption {
|
|
description = "UseCache enables caching of image verify responses for this rule.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"verifyDigest" = mkOption {
|
|
description = "VerifyDigest validates that images have a digest.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestations" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"image" = mkOverride 1002 null;
|
|
"imageReferences" = mkOverride 1002 null;
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"key" = mkOverride 1002 null;
|
|
"mutateDigest" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
"required" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"skipImageReferences" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
"useCache" = mkOverride 1002 null;
|
|
"verifyDigest" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestations" = {
|
|
options = {
|
|
"attestors" = mkOption {
|
|
description = "Attestors specify the required attestors (i.e. authorities).";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestors")
|
|
);
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to verify attributes within a Predicate. If no Conditions are specified\nthe attestation check is satisfied as long there are predicates that match the predicate type.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsConditions")
|
|
);
|
|
};
|
|
"predicateType" = mkOption {
|
|
description = "Deprecated in favour of 'Type', to be removed soon";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type defines the type of attestation contained within the Statement.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"attestors" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"predicateType" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsConditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsConditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestationsConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecRulesVerifyImagesImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecValidationFailureActionOverrides" = {
|
|
options = {
|
|
"action" = mkOption {
|
|
description = "ValidationFailureAction defines the policy validation failure action";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "A label selector is a label query over a set of resources. The result of matchLabels and\nmatchExpressions are ANDed. An empty label selector matches all objects. A null\nlabel selector matches no objects.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecValidationFailureActionOverridesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"action" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecValidationFailureActionOverridesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicySpecValidationFailureActionOverridesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecValidationFailureActionOverridesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecWebhookConfiguration" = {
|
|
options = {
|
|
"matchConditions" = mkOption {
|
|
description = "MatchCondition configures admission webhook matchConditions.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v1.ClusterPolicySpecWebhookConfigurationMatchConditions"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchConditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicySpecWebhookConfigurationMatchConditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatus" = {
|
|
options = {
|
|
"autogen" = mkOption {
|
|
description = "AutogenStatus contains autogen status information.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogen");
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusConditions"));
|
|
};
|
|
"ready" = mkOption {
|
|
description = "Deprecated in favor of Conditions";
|
|
type = types.bool;
|
|
};
|
|
"rulecount" = mkOption {
|
|
description = "RuleCountStatus contains four variables which describes counts for\nvalidate, generate, mutate and verify images rules";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusRulecount");
|
|
};
|
|
"validatingadmissionpolicy" = mkOption {
|
|
description = "ValidatingAdmissionPolicy contains status information";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusValidatingadmissionpolicy");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"autogen" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"rulecount" = mkOverride 1002 null;
|
|
"validatingadmissionpolicy" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogen" = {
|
|
options = {
|
|
"rules" = mkOption {
|
|
description = "Rules is a list of Rule instances. It contains auto generated rules added for pod controllers";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicyStatusAutogenRules" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"rules" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRules" = {
|
|
options = {
|
|
"celPreconditions" = mkOption {
|
|
description = "CELPreconditions are used to determine if a policy rule should be applied by evaluating a\nset of CEL conditions. It can only be used with the validate.cel subrule";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicyStatusAutogenRulesCelPreconditions"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicyStatusAutogenRulesContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when this policy rule should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExclude");
|
|
};
|
|
"generate" = mkOption {
|
|
description = "Generation is used to create new resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesGenerate");
|
|
};
|
|
"imageExtractors" = mkOption {
|
|
description = "ImageExtractors defines a mapping from kinds to ImageExtractorConfigs.\nThis config is only valid for verifyImages rules.";
|
|
type = types.nullOr (types.loaOf types.attrs);
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when this policy rule should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatch");
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Mutation is used to modify matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutate");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is a label to identify the rule, It must be unique within the policy.";
|
|
type = types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"skipBackgroundRequests" = mkOption {
|
|
description = "SkipBackgroundRequests bypasses admission requests that are sent by the background controller.\nThe default value is set to \"true\", it must be set to \"false\" to apply\ngenerate and mutateExisting rules to those requests.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Validation is used to validate matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidate");
|
|
};
|
|
"verifyImages" = mkOption {
|
|
description = "VerifyImages is used to verify image signatures and mutate them to add a digest";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImages")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"celPreconditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"generate" = mkOverride 1002 null;
|
|
"imageExtractors" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
"mutate" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"skipBackgroundRequests" = mkOverride 1002 null;
|
|
"validate" = mkOverride 1002 null;
|
|
"verifyImages" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesCelPreconditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAny")
|
|
);
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllResources"
|
|
);
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnyResources"
|
|
);
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesExcludeSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesGenerate" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"clone" = mkOption {
|
|
description = "Clone specifies the source resource used to populate each generated resource.\nAt most one of Data or Clone can be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesGenerateClone");
|
|
};
|
|
"cloneList" = mkOption {
|
|
description = "CloneList specifies the list of source resource used to populate each generated resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesGenerateCloneList");
|
|
};
|
|
"data" = mkOption {
|
|
description = "Data provides the resource declaration used to populate each generated resource.\nAt most one of Data or Clone must be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"orphanDownstreamOnPolicyDelete" = mkOption {
|
|
description = "OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated\nthem is deleted with synchronization enabled. This option is only applicable to generate rules of the data type.\nSee https://kyverno.io/docs/writing-policies/generate/#data-examples.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"synchronize" = mkOption {
|
|
description = "Synchronize controls if generated resources should be kept in-sync with their source resource.\nIf Synchronize is set to \"true\" changes to generated resources will be overwritten with resource\ndata from Data or the resource specified in the Clone declaration.\nOptional. Defaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"clone" = mkOverride 1002 null;
|
|
"cloneList" = mkOverride 1002 null;
|
|
"data" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"orphanDownstreamOnPolicyDelete" = mkOverride 1002 null;
|
|
"synchronize" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesGenerateClone" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name specifies name of the resource.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesGenerateCloneList" = {
|
|
options = {
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels`.\nwildcard characters are not supported.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesGenerateCloneListSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"kinds" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesGenerateCloneListSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesGenerateCloneListSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesGenerateCloneListSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAny")
|
|
);
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMatchSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutate" = {
|
|
options = {
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies mutation rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeach")
|
|
);
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"targets" = mkOption {
|
|
description = "Targets defines the target resources to be mutated.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargets"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"foreach" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"targets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeach" = {
|
|
options = {
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"order" = mkOption {
|
|
description = "Order defines the iteration order on the list.\nCan be Ascending to iterate from first to last element or Descending to iterate in from last to first element.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"context" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"order" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargets" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesMutateTargetsContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidate" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"cel" = mkOption {
|
|
description = "CEL allows validation checks using the Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/).";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCel");
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateDeny");
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies validate rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeach")
|
|
);
|
|
};
|
|
"manifests" = mkOption {
|
|
description = "Manifest specifies conditions for manifest verification";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifests");
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message specifies a custom message to be displayed on failure.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity applies exemptions for Kubernetes Pod Security admission\nby specifying exclusions for Pod Security Standards controls.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidatePodSecurity"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"cel" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"manifests" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCel" = {
|
|
options = {
|
|
"auditAnnotations" = mkOption {
|
|
description = "AuditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelAuditAnnotations"
|
|
)
|
|
);
|
|
};
|
|
"expressions" = mkOption {
|
|
description = "Expressions is a list of CELExpression types.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelExpressions")
|
|
);
|
|
};
|
|
"paramKind" = mkOption {
|
|
description = "ParamKind is a tuple of Group Kind and Version.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelParamKind"
|
|
);
|
|
};
|
|
"paramRef" = mkOption {
|
|
description = "ParamRef references a parameter resource.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelParamRef"
|
|
);
|
|
};
|
|
"variables" = mkOption {
|
|
description = "Variables contain definitions of variables that can be used in composition of other expressions.\nEach variable is defined as a named CEL expression.\nThe variables defined here will be available under `variables` in other expressions of the policy.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelVariables"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"auditAnnotations" = mkOverride 1002 null;
|
|
"expressions" = mkOverride 1002 null;
|
|
"paramKind" = mkOverride 1002 null;
|
|
"paramRef" = mkOverride 1002 null;
|
|
"variables" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelAuditAnnotations" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key specifies the audit annotation key. The audit annotation keys of\na ValidatingAdmissionPolicy must be unique. The key must be a qualified\nname ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\n\nThe key is combined with the resource name of the\nValidatingAdmissionPolicy to construct an audit annotation key:\n\"{ValidatingAdmissionPolicy name}/{key}\".\n\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\nand the same audit annotation key, the annotation key will be identical.\nIn this case, the first annotation written with the key will be included\nin the audit event and all subsequent annotations with the same key\nwill be discarded.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"valueExpression" = mkOption {
|
|
description = "valueExpression represents the expression which is evaluated by CEL to\nproduce an audit annotation value. The expression must evaluate to either\na string or null value. If the expression evaluates to a string, the\naudit annotation is included with the string value. If the expression\nevaluates to null or empty string the audit annotation will be omitted.\nThe valueExpression may be no longer than 5kb in length.\nIf the result of the valueExpression is more than 10kb in length, it\nwill be truncated to 10kb.\n\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an\nAPI request, then the valueExpression will be evaluated for\neach binding. All unique values produced by the valueExpressions\nwill be joined together in a comma-separated list.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelExpressions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests.\n- 'oldObject' - The existing object. The value is null for CREATE requests.\n- 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n- 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n- 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\nobject. No other metadata properties are accessible.\n\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\nAccessible property names are escaped according to the following rules when accessed in the expression:\n- '__' escapes to '__underscores__'\n- '.' escapes to '__dot__'\n- '-' escapes to '__dash__'\n- '/' escapes to '__slash__'\n- Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\nConcatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message represents the message displayed when validation fails. The message is required if the Expression contains\nline breaks. The message must not contain line breaks.\nIf unset, the message is \"failed rule: {Rule}\".\ne.g. \"must be a URL with the host matching spec.host\"\nIf the Expression contains line breaks. Message is required.\nThe message must not contain line breaks.\nIf unset, the message is \"failed Expression: {Expression}\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"messageExpression" = mkOption {
|
|
description = "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\nSince messageExpression is used as a failure message, it must evaluate to a string.\nIf both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\nIf messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\nas if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\nthat contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\nthe fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\nmessageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\nExample:\n\"object.x must be less than max (\"+string(params.max)+\")\"";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "Reason represents a machine-readable description of why this validation failed.\nIf this is the first validation in the list to fail, this reason, as well as the\ncorresponding HTTP response code, are used in the\nHTTP response to the client.\nThe currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\nIf not set, StatusReasonInvalid is used in the response to the client.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"message" = mkOverride 1002 null;
|
|
"messageExpression" = mkOverride 1002 null;
|
|
"reason" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelParamKind" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion is the API group version the resources belong to.\nIn format of \"group/version\".\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is the API kind the resources belong to.\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelParamRef" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "`name` is the name of the resource being referenced.\n\n\n`name` and `selector` are mutually exclusive properties. If one is set,\nthe other must be unset.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "namespace is the namespace of the referenced resource. Allows limiting\nthe search for params to a specific namespace. Applies to both `name` and\n`selector` fields.\n\n\nA per-namespace parameter may be used by specifying a namespace-scoped\n`paramKind` in the policy and leaving this field empty.\n\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\nfield results in a configuration error.\n\n\n- If `paramKind` is namespace-scoped, the namespace of the object being\nevaluated for admission will be used when this field is left unset. Take\ncare that if this is left empty the binding must not match any cluster-scoped\nresources, which will result in an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"parameterNotFoundAction" = mkOption {
|
|
description = "`parameterNotFoundAction` controls the behavior of the binding when the resource\nexists, and name or selector is valid, but there are no parameters\nmatched by the binding. If the value is set to `Allow`, then no\nmatched parameters will be treated as successful validation by the binding.\nIf set to `Deny`, then no matched parameters will be subject to the\n`failurePolicy` of the policy.\n\n\nAllowed values are `Allow` or `Deny`\nDefault to `Deny`";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "selector can be used to match multiple param objects based on their labels.\nSupply selector: {} to match all resources of the ParamKind.\n\n\nIf multiple params are found, they are all evaluated with the policy expressions\nand the results are ANDed together.\n\n\nOne of `name` or `selector` must be set, but `name` and `selector` are\nmutually exclusive properties. If one is set, the other must be unset.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelParamRefSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"parameterNotFoundAction" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelParamRefSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelParamRefSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelParamRefSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateCelVariables" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression is the expression that will be evaluated as the value of the variable.\nThe CEL expression has access to the same identifiers as the CEL expressions in Validation.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\nThe variable can be accessed in other expressions through `variables`\nFor example, if name is \"foo\", the variable will be available as `variables.foo`";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeach" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachDeny"
|
|
);
|
|
};
|
|
"elementScope" = mkOption {
|
|
description = "ElementScope specifies whether to use the current list element as the scope for validation. Defaults to \"true\" if not specified.\nWhen set to \"false\", \"request.object\" is used as the validation scope within the foreach\nblock to allow referencing other elements in the subtree.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"elementScope" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifests" = {
|
|
options = {
|
|
"annotationDomain" = mkOption {
|
|
description = "AnnotationDomain is custom domain of annotation for message and signature. Default is \"cosign.sigstore.dev\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestors")
|
|
);
|
|
};
|
|
"dryRun" = mkOption {
|
|
description = "DryRun configuration";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsDryRun"
|
|
);
|
|
};
|
|
"ignoreFields" = mkOption {
|
|
description = "Fields which will be ignored while comparing manifests.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsIgnoreFields"
|
|
)
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for resource bundle reference.\nThe repository can be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotationDomain" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"dryRun" = mkOverride 1002 null;
|
|
"ignoreFields" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsDryRun" = {
|
|
options = {
|
|
"enable" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"enable" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsIgnoreFields" = {
|
|
options = {
|
|
"fields" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"objects" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsIgnoreFieldsObjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"fields" = mkOverride 1002 null;
|
|
"objects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidateManifestsIgnoreFieldsObjects" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"group" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidatePodSecurity" = {
|
|
options = {
|
|
"exclude" = mkOption {
|
|
description = "Exclude specifies the Pod Security Standard controls to be excluded.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidatePodSecurityExclude")
|
|
);
|
|
};
|
|
"level" = mkOption {
|
|
description = "Level defines the Pod Security Standard level to be applied to workloads.\nAllowed values are privileged, baseline, and restricted.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "Version defines the Pod Security Standard versions that Kubernetes supports.\nAllowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"exclude" = mkOverride 1002 null;
|
|
"level" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesValidatePodSecurityExclude" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImages" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "Deprecated.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"annotations" = mkOption {
|
|
description = "Deprecated. Use annotations per Attestor instead.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestations" = mkOption {
|
|
description = "Attestations are optional checks for signed in-toto Statements used to verify the image.\nSee https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the\nOCI registry and decodes them into a list of Statement declarations.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestations")
|
|
);
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestors")
|
|
);
|
|
};
|
|
"image" = mkOption {
|
|
description = "Deprecated. Use ImageReferences instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"imageReferences" = mkOption {
|
|
description = "ImageReferences is a list of matching image reference patterns. At least one pattern in the\nlist must match the image for the rule to apply. Each image reference consists of a registry\naddress (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesImageRegistryCredentials"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"key" = mkOption {
|
|
description = "Deprecated. Use StaticKeyAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"mutateDigest" = mkOption {
|
|
description = "MutateDigest enables replacement of image tags with digests.\nDefaults to true.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule.\nIf specified Repository will override the default OCI image repository configured for the installation.\nThe repository can also be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"required" = mkOption {
|
|
description = "Required validates that images are verified i.e. have matched passed a signature or attestation check.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"skipImageReferences" = mkOption {
|
|
description = "SkipImageReferences is a list of matching image reference patterns that should be skipped.\nAt least one pattern in the list must match the image for the rule to be skipped. Each image reference\nconsists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type specifies the method of signature validation. The allowed options\nare Cosign and Notary. By default Cosign is used if a type is not specified.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"useCache" = mkOption {
|
|
description = "UseCache enables caching of image verify responses for this rule.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"verifyDigest" = mkOption {
|
|
description = "VerifyDigest validates that images have a digest.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestations" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"image" = mkOverride 1002 null;
|
|
"imageReferences" = mkOverride 1002 null;
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"key" = mkOverride 1002 null;
|
|
"mutateDigest" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
"required" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"skipImageReferences" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
"useCache" = mkOverride 1002 null;
|
|
"verifyDigest" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestations" = {
|
|
options = {
|
|
"attestors" = mkOption {
|
|
description = "Attestors specify the required attestors (i.e. authorities).";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestors"
|
|
)
|
|
);
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to verify attributes within a Predicate. If no Conditions are specified\nthe attestation check is satisfied as long there are predicates that match the predicate type.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditions"
|
|
)
|
|
);
|
|
};
|
|
"predicateType" = mkOption {
|
|
description = "Deprecated in favour of 'Type', to be removed soon";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type defines the type of attestation contained within the Statement.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"attestors" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"predicateType" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusAutogenRulesVerifyImagesImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusRulecount" = {
|
|
options = {
|
|
"generate" = mkOption {
|
|
description = "Count for generate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Count for mutate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Count for validate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"verifyimages" = mkOption {
|
|
description = "Count for verify image rules in policy";
|
|
type = types.int;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.ClusterPolicyStatusValidatingadmissionpolicy" = {
|
|
options = {
|
|
"generated" = mkOption {
|
|
description = "Generated indicates whether a validating admission policy is generated from the policy or not";
|
|
type = types.bool;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is a human readable message indicating details about the generation of validating admission policy\nIt is an empty string when validating admission policy is successfully generated.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.Policy" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec defines policy behaviors and contains one or more rules.";
|
|
type = submoduleOf "kyverno.io.v1.PolicySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Deprecated. Policy metrics are available via the metrics endpoint";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpec" = {
|
|
options = {
|
|
"admission" = mkOption {
|
|
description = "Admission controls if rules are applied during admission.\nOptional. Default value is \"true\".";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"applyRules" = mkOption {
|
|
description = "ApplyRules controls how rules in a policy are applied. Rule are processed in\nthe order of declaration. When set to `One` processing stops after a rule has\nbeen applied i.e. the rule matches and results in a pass, fail, or error. When\nset to `All` all rules in the policy are processed. The default is `All`.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"background" = mkOption {
|
|
description = "Background controls if rules are applied to existing resources during a background scan.\nOptional. Default value is \"true\". The value must be set to \"false\" if the policy rule\nuses variables that are only available in the admission review request (e.g. user name).";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"failurePolicy" = mkOption {
|
|
description = "FailurePolicy defines how unexpected policy errors and webhook response timeout errors are handled.\nRules within the same policy share the same failure behavior.\nThis field should not be accessed directly, instead `GetFailurePolicy()` should be used.\nAllowed values are Ignore or Fail. Defaults to Fail.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"generateExisting" = mkOption {
|
|
description = "GenerateExisting controls whether to trigger generate rule in existing resources\nIf is set to \"true\" generate rule will be triggered and applied to existing matched resources.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"generateExistingOnPolicyUpdate" = mkOption {
|
|
description = "Deprecated, use generateExisting instead";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"mutateExistingOnPolicyUpdate" = mkOption {
|
|
description = "MutateExistingOnPolicyUpdate controls if a mutateExisting policy is applied on policy events.\nDefault value is \"false\".";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"rules" = mkOption {
|
|
description = "Rules is a list of Rule instances. A Policy contains multiple rules and\neach rule can validate, mutate, or generate resources.";
|
|
type = types.nullOr (coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRules" "name" [ ]);
|
|
apply = attrsToList;
|
|
};
|
|
"schemaValidation" = mkOption {
|
|
description = "Deprecated.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"useServerSideApply" = mkOption {
|
|
description = "UseServerSideApply controls whether to use server-side apply for generate rules\nIf is set to \"true\" create & update for generate rules will use apply instead of create/update.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validationFailureAction" = mkOption {
|
|
description = "ValidationFailureAction defines if a validation policy rule violation should block\nthe admission review request (enforce), or allow (audit) the admission review request\nand report an error in a policy report. Optional.\nAllowed values are audit or enforce. The default value is \"Audit\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"validationFailureActionOverrides" = mkOption {
|
|
description = "ValidationFailureActionOverrides is a Cluster Policy attribute that specifies ValidationFailureAction\nnamespace-wise. It overrides ValidationFailureAction for the specified namespaces.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecValidationFailureActionOverrides")
|
|
);
|
|
};
|
|
"webhookConfiguration" = mkOption {
|
|
description = "WebhookConfiguration specifies the custom configuration for Kubernetes admission webhookconfiguration.\nRequires Kubernetes 1.27 or later.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecWebhookConfiguration");
|
|
};
|
|
"webhookTimeoutSeconds" = mkOption {
|
|
description = "WebhookTimeoutSeconds specifies the maximum time in seconds allowed to apply this policy.\nAfter the configured time expires, the admission request may fail, or may simply ignore the policy results,\nbased on the failure policy. The default timeout is 10s, the value must be between 1 and 30 seconds.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"admission" = mkOverride 1002 null;
|
|
"applyRules" = mkOverride 1002 null;
|
|
"background" = mkOverride 1002 null;
|
|
"failurePolicy" = mkOverride 1002 null;
|
|
"generateExisting" = mkOverride 1002 null;
|
|
"generateExistingOnPolicyUpdate" = mkOverride 1002 null;
|
|
"mutateExistingOnPolicyUpdate" = mkOverride 1002 null;
|
|
"rules" = mkOverride 1002 null;
|
|
"schemaValidation" = mkOverride 1002 null;
|
|
"useServerSideApply" = mkOverride 1002 null;
|
|
"validationFailureAction" = mkOverride 1002 null;
|
|
"validationFailureActionOverrides" = mkOverride 1002 null;
|
|
"webhookConfiguration" = mkOverride 1002 null;
|
|
"webhookTimeoutSeconds" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRules" = {
|
|
options = {
|
|
"celPreconditions" = mkOption {
|
|
description = "CELPreconditions are used to determine if a policy rule should be applied by evaluating a\nset of CEL conditions. It can only be used with the validate.cel subrule";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesCelPreconditions" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when this policy rule should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesExclude");
|
|
};
|
|
"generate" = mkOption {
|
|
description = "Generation is used to create new resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesGenerate");
|
|
};
|
|
"imageExtractors" = mkOption {
|
|
description = "ImageExtractors defines a mapping from kinds to ImageExtractorConfigs.\nThis config is only valid for verifyImages rules.";
|
|
type = types.nullOr (types.loaOf types.attrs);
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when this policy rule should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMatch");
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Mutation is used to modify matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutate");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is a label to identify the rule, It must be unique within the policy.";
|
|
type = types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"skipBackgroundRequests" = mkOption {
|
|
description = "SkipBackgroundRequests bypasses admission requests that are sent by the background controller.\nThe default value is set to \"true\", it must be set to \"false\" to apply\ngenerate and mutateExisting rules to those requests.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Validation is used to validate matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidate");
|
|
};
|
|
"verifyImages" = mkOption {
|
|
description = "VerifyImages is used to verify image signatures and mutate them to add a digest";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImages"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"celPreconditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"generate" = mkOverride 1002 null;
|
|
"imageExtractors" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
"mutate" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"skipBackgroundRequests" = mkOverride 1002 null;
|
|
"validate" = mkOverride 1002 null;
|
|
"verifyImages" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesCelPreconditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesContextGlobalReference");
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesContextApiCallData"));
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAny"));
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesExcludeSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesExcludeAllSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesExcludeAnySubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeResourcesNamespaceSelector");
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesExcludeResourcesSelectorMatchExpressions")
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesExcludeSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesGenerate" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"clone" = mkOption {
|
|
description = "Clone specifies the source resource used to populate each generated resource.\nAt most one of Data or Clone can be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesGenerateClone");
|
|
};
|
|
"cloneList" = mkOption {
|
|
description = "CloneList specifies the list of source resource used to populate each generated resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesGenerateCloneList");
|
|
};
|
|
"data" = mkOption {
|
|
description = "Data provides the resource declaration used to populate each generated resource.\nAt most one of Data or Clone must be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"orphanDownstreamOnPolicyDelete" = mkOption {
|
|
description = "OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated\nthem is deleted with synchronization enabled. This option is only applicable to generate rules of the data type.\nSee https://kyverno.io/docs/writing-policies/generate/#data-examples.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"synchronize" = mkOption {
|
|
description = "Synchronize controls if generated resources should be kept in-sync with their source resource.\nIf Synchronize is set to \"true\" changes to generated resources will be overwritten with resource\ndata from Data or the resource specified in the Clone declaration.\nOptional. Defaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"clone" = mkOverride 1002 null;
|
|
"cloneList" = mkOverride 1002 null;
|
|
"data" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"orphanDownstreamOnPolicyDelete" = mkOverride 1002 null;
|
|
"synchronize" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesGenerateClone" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name specifies name of the resource.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesGenerateCloneList" = {
|
|
options = {
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels`.\nwildcard characters are not supported.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesGenerateCloneListSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"kinds" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesGenerateCloneListSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesGenerateCloneListSelectorMatchExpressions")
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesGenerateCloneListSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAny"));
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesMatchSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesMatchAllSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAllResourcesNamespaceSelector");
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAllResourcesSelectorMatchExpressions")
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesMatchAnySubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAnyResourcesNamespaceSelector");
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchAnyResourcesSelectorMatchExpressions")
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchResourcesNamespaceSelector");
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesMatchResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesMatchResourcesSelectorMatchExpressions")
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMatchSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutate" = {
|
|
options = {
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies mutation rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeach"));
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"targets" = mkOption {
|
|
description = "Targets defines the target resources to be mutated.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesMutateTargets" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"foreach" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"targets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeach" = {
|
|
options = {
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesMutateForeachContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"order" = mkOption {
|
|
description = "Order defines the iteration order on the list.\nCan be Ascending to iterate from first to last element or Descending to iterate in from last to first element.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachPreconditions");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"context" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"order" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateForeachPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateTargets" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesMutateTargetsContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateTargetsContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateTargetsContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateTargetsContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesMutateTargetsContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateTargetsContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateTargetsContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateTargetsContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateTargetsContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesMutateTargetsContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateTargetsContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateTargetsContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateTargetsContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateTargetsContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateTargetsContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesMutateTargetsContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateTargetsContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesMutateTargetsContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidate" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"cel" = mkOption {
|
|
description = "CEL allows validation checks using the Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/).";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateCel");
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateDeny");
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies validate rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeach"));
|
|
};
|
|
"manifests" = mkOption {
|
|
description = "Manifest specifies conditions for manifest verification";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifests");
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message specifies a custom message to be displayed on failure.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity applies exemptions for Kubernetes Pod Security admission\nby specifying exclusions for Pod Security Standards controls.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidatePodSecurity");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"cel" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"manifests" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateCel" = {
|
|
options = {
|
|
"auditAnnotations" = mkOption {
|
|
description = "AuditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateCelAuditAnnotations")
|
|
);
|
|
};
|
|
"expressions" = mkOption {
|
|
description = "Expressions is a list of CELExpression types.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateCelExpressions")
|
|
);
|
|
};
|
|
"paramKind" = mkOption {
|
|
description = "ParamKind is a tuple of Group Kind and Version.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateCelParamKind");
|
|
};
|
|
"paramRef" = mkOption {
|
|
description = "ParamRef references a parameter resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateCelParamRef");
|
|
};
|
|
"variables" = mkOption {
|
|
description = "Variables contain definitions of variables that can be used in composition of other expressions.\nEach variable is defined as a named CEL expression.\nThe variables defined here will be available under `variables` in other expressions of the policy.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesValidateCelVariables" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"auditAnnotations" = mkOverride 1002 null;
|
|
"expressions" = mkOverride 1002 null;
|
|
"paramKind" = mkOverride 1002 null;
|
|
"paramRef" = mkOverride 1002 null;
|
|
"variables" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateCelAuditAnnotations" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key specifies the audit annotation key. The audit annotation keys of\na ValidatingAdmissionPolicy must be unique. The key must be a qualified\nname ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\n\nThe key is combined with the resource name of the\nValidatingAdmissionPolicy to construct an audit annotation key:\n\"{ValidatingAdmissionPolicy name}/{key}\".\n\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\nand the same audit annotation key, the annotation key will be identical.\nIn this case, the first annotation written with the key will be included\nin the audit event and all subsequent annotations with the same key\nwill be discarded.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"valueExpression" = mkOption {
|
|
description = "valueExpression represents the expression which is evaluated by CEL to\nproduce an audit annotation value. The expression must evaluate to either\na string or null value. If the expression evaluates to a string, the\naudit annotation is included with the string value. If the expression\nevaluates to null or empty string the audit annotation will be omitted.\nThe valueExpression may be no longer than 5kb in length.\nIf the result of the valueExpression is more than 10kb in length, it\nwill be truncated to 10kb.\n\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an\nAPI request, then the valueExpression will be evaluated for\neach binding. All unique values produced by the valueExpressions\nwill be joined together in a comma-separated list.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateCelExpressions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests.\n- 'oldObject' - The existing object. The value is null for CREATE requests.\n- 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n- 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n- 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\nobject. No other metadata properties are accessible.\n\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\nAccessible property names are escaped according to the following rules when accessed in the expression:\n- '__' escapes to '__underscores__'\n- '.' escapes to '__dot__'\n- '-' escapes to '__dash__'\n- '/' escapes to '__slash__'\n- Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\nConcatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message represents the message displayed when validation fails. The message is required if the Expression contains\nline breaks. The message must not contain line breaks.\nIf unset, the message is \"failed rule: {Rule}\".\ne.g. \"must be a URL with the host matching spec.host\"\nIf the Expression contains line breaks. Message is required.\nThe message must not contain line breaks.\nIf unset, the message is \"failed Expression: {Expression}\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"messageExpression" = mkOption {
|
|
description = "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\nSince messageExpression is used as a failure message, it must evaluate to a string.\nIf both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\nIf messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\nas if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\nthat contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\nthe fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\nmessageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\nExample:\n\"object.x must be less than max (\"+string(params.max)+\")\"";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "Reason represents a machine-readable description of why this validation failed.\nIf this is the first validation in the list to fail, this reason, as well as the\ncorresponding HTTP response code, are used in the\nHTTP response to the client.\nThe currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\nIf not set, StatusReasonInvalid is used in the response to the client.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"message" = mkOverride 1002 null;
|
|
"messageExpression" = mkOverride 1002 null;
|
|
"reason" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateCelParamKind" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion is the API group version the resources belong to.\nIn format of \"group/version\".\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is the API kind the resources belong to.\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateCelParamRef" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "`name` is the name of the resource being referenced.\n\n\n`name` and `selector` are mutually exclusive properties. If one is set,\nthe other must be unset.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "namespace is the namespace of the referenced resource. Allows limiting\nthe search for params to a specific namespace. Applies to both `name` and\n`selector` fields.\n\n\nA per-namespace parameter may be used by specifying a namespace-scoped\n`paramKind` in the policy and leaving this field empty.\n\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\nfield results in a configuration error.\n\n\n- If `paramKind` is namespace-scoped, the namespace of the object being\nevaluated for admission will be used when this field is left unset. Take\ncare that if this is left empty the binding must not match any cluster-scoped\nresources, which will result in an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"parameterNotFoundAction" = mkOption {
|
|
description = "`parameterNotFoundAction` controls the behavior of the binding when the resource\nexists, and name or selector is valid, but there are no parameters\nmatched by the binding. If the value is set to `Allow`, then no\nmatched parameters will be treated as successful validation by the binding.\nIf set to `Deny`, then no matched parameters will be subject to the\n`failurePolicy` of the policy.\n\n\nAllowed values are `Allow` or `Deny`\nDefault to `Deny`";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "selector can be used to match multiple param objects based on their labels.\nSupply selector: {} to match all resources of the ParamKind.\n\n\nIf multiple params are found, they are all evaluated with the policy expressions\nand the results are ANDed together.\n\n\nOne of `name` or `selector` must be set, but `name` and `selector` are\nmutually exclusive properties. If one is set, the other must be unset.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateCelParamRefSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"parameterNotFoundAction" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateCelParamRefSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateCelParamRefSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateCelParamRefSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateCelVariables" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression is the expression that will be evaluated as the value of the variable.\nThe CEL expression has access to the same identifiers as the CEL expressions in Validation.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\nThe variable can be accessed in other expressions through `variables`\nFor example, if name is \"foo\", the variable will be available as `variables.foo`";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeach" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecRulesValidateForeachContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachDeny");
|
|
};
|
|
"elementScope" = mkOption {
|
|
description = "ElementScope specifies whether to use the current list element as the scope for validation. Defaults to \"true\" if not specified.\nWhen set to \"false\", \"request.object\" is used as the validation scope within the foreach\nblock to allow referencing other elements in the subtree.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachPreconditions");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"elementScope" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateForeachPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifests" = {
|
|
options = {
|
|
"annotationDomain" = mkOption {
|
|
description = "AnnotationDomain is custom domain of annotation for message and signature. Default is \"cosign.sigstore.dev\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestors")
|
|
);
|
|
};
|
|
"dryRun" = mkOption {
|
|
description = "DryRun configuration";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsDryRun");
|
|
};
|
|
"ignoreFields" = mkOption {
|
|
description = "Fields which will be ignored while comparing manifests.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsIgnoreFields")
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for resource bundle reference.\nThe repository can be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotationDomain" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"dryRun" = mkOverride 1002 null;
|
|
"ignoreFields" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsDryRun" = {
|
|
options = {
|
|
"enable" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"enable" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsIgnoreFields" = {
|
|
options = {
|
|
"fields" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"objects" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsIgnoreFieldsObjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"fields" = mkOverride 1002 null;
|
|
"objects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidateManifestsIgnoreFieldsObjects" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"group" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidatePodSecurity" = {
|
|
options = {
|
|
"exclude" = mkOption {
|
|
description = "Exclude specifies the Pod Security Standard controls to be excluded.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesValidatePodSecurityExclude")
|
|
);
|
|
};
|
|
"level" = mkOption {
|
|
description = "Level defines the Pod Security Standard level to be applied to workloads.\nAllowed values are privileged, baseline, and restricted.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "Version defines the Pod Security Standard versions that Kubernetes supports.\nAllowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"exclude" = mkOverride 1002 null;
|
|
"level" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesValidatePodSecurityExclude" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImages" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "Deprecated.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"annotations" = mkOption {
|
|
description = "Deprecated. Use annotations per Attestor instead.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestations" = mkOption {
|
|
description = "Attestations are optional checks for signed in-toto Statements used to verify the image.\nSee https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the\nOCI registry and decodes them into a list of Statement declarations.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestations")
|
|
);
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestors")
|
|
);
|
|
};
|
|
"image" = mkOption {
|
|
description = "Deprecated. Use ImageReferences instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"imageReferences" = mkOption {
|
|
description = "ImageReferences is a list of matching image reference patterns. At least one pattern in the\nlist must match the image for the rule to apply. Each image reference consists of a registry\naddress (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesImageRegistryCredentials"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"key" = mkOption {
|
|
description = "Deprecated. Use StaticKeyAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"mutateDigest" = mkOption {
|
|
description = "MutateDigest enables replacement of image tags with digests.\nDefaults to true.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule.\nIf specified Repository will override the default OCI image repository configured for the installation.\nThe repository can also be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"required" = mkOption {
|
|
description = "Required validates that images are verified i.e. have matched passed a signature or attestation check.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"skipImageReferences" = mkOption {
|
|
description = "SkipImageReferences is a list of matching image reference patterns that should be skipped.\nAt least one pattern in the list must match the image for the rule to be skipped. Each image reference\nconsists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type specifies the method of signature validation. The allowed options\nare Cosign and Notary. By default Cosign is used if a type is not specified.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"useCache" = mkOption {
|
|
description = "UseCache enables caching of image verify responses for this rule.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"verifyDigest" = mkOption {
|
|
description = "VerifyDigest validates that images have a digest.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestations" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"image" = mkOverride 1002 null;
|
|
"imageReferences" = mkOverride 1002 null;
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"key" = mkOverride 1002 null;
|
|
"mutateDigest" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
"required" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"skipImageReferences" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
"useCache" = mkOverride 1002 null;
|
|
"verifyDigest" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestations" = {
|
|
options = {
|
|
"attestors" = mkOption {
|
|
description = "Attestors specify the required attestors (i.e. authorities).";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestors")
|
|
);
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to verify attributes within a Predicate. If no Conditions are specified\nthe attestation check is satisfied as long there are predicates that match the predicate type.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsConditions")
|
|
);
|
|
};
|
|
"predicateType" = mkOption {
|
|
description = "Deprecated in favour of 'Type', to be removed soon";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type defines the type of attestation contained within the Statement.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"attestors" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"predicateType" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestationsConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeys");
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicySpecRulesVerifyImagesImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecValidationFailureActionOverrides" = {
|
|
options = {
|
|
"action" = mkOption {
|
|
description = "ValidationFailureAction defines the policy validation failure action";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "A label selector is a label query over a set of resources. The result of matchLabels and\nmatchExpressions are ANDed. An empty label selector matches all objects. A null\nlabel selector matches no objects.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicySpecValidationFailureActionOverridesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"action" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecValidationFailureActionOverridesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicySpecValidationFailureActionOverridesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecValidationFailureActionOverridesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecWebhookConfiguration" = {
|
|
options = {
|
|
"matchConditions" = mkOption {
|
|
description = "MatchCondition configures admission webhook matchConditions.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicySpecWebhookConfigurationMatchConditions"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchConditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicySpecWebhookConfigurationMatchConditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatus" = {
|
|
options = {
|
|
"autogen" = mkOption {
|
|
description = "AutogenStatus contains autogen status information.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogen");
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusConditions"));
|
|
};
|
|
"ready" = mkOption {
|
|
description = "Deprecated in favor of Conditions";
|
|
type = types.bool;
|
|
};
|
|
"rulecount" = mkOption {
|
|
description = "RuleCountStatus contains four variables which describes counts for\nvalidate, generate, mutate and verify images rules";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusRulecount");
|
|
};
|
|
"validatingadmissionpolicy" = mkOption {
|
|
description = "ValidatingAdmissionPolicy contains status information";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusValidatingadmissionpolicy");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"autogen" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"rulecount" = mkOverride 1002 null;
|
|
"validatingadmissionpolicy" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogen" = {
|
|
options = {
|
|
"rules" = mkOption {
|
|
description = "Rules is a list of Rule instances. It contains auto generated rules added for pod controllers";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRules" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"rules" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRules" = {
|
|
options = {
|
|
"celPreconditions" = mkOption {
|
|
description = "CELPreconditions are used to determine if a policy rule should be applied by evaluating a\nset of CEL conditions. It can only be used with the validate.cel subrule";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesCelPreconditions" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when this policy rule should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExclude");
|
|
};
|
|
"generate" = mkOption {
|
|
description = "Generation is used to create new resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesGenerate");
|
|
};
|
|
"imageExtractors" = mkOption {
|
|
description = "ImageExtractors defines a mapping from kinds to ImageExtractorConfigs.\nThis config is only valid for verifyImages rules.";
|
|
type = types.nullOr (types.loaOf types.attrs);
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when this policy rule should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatch");
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Mutation is used to modify matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutate");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is a label to identify the rule, It must be unique within the policy.";
|
|
type = types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"skipBackgroundRequests" = mkOption {
|
|
description = "SkipBackgroundRequests bypasses admission requests that are sent by the background controller.\nThe default value is set to \"true\", it must be set to \"false\" to apply\ngenerate and mutateExisting rules to those requests.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Validation is used to validate matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidate");
|
|
};
|
|
"verifyImages" = mkOption {
|
|
description = "VerifyImages is used to verify image signatures and mutate them to add a digest";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImages")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"celPreconditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"generate" = mkOverride 1002 null;
|
|
"imageExtractors" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
"mutate" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"skipBackgroundRequests" = mkOverride 1002 null;
|
|
"validate" = mkOverride 1002 null;
|
|
"verifyImages" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesCelPreconditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesContextGlobalReference");
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAny"));
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesExcludeSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnySubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesExcludeResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesExcludeSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesGenerate" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"clone" = mkOption {
|
|
description = "Clone specifies the source resource used to populate each generated resource.\nAt most one of Data or Clone can be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesGenerateClone");
|
|
};
|
|
"cloneList" = mkOption {
|
|
description = "CloneList specifies the list of source resource used to populate each generated resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesGenerateCloneList");
|
|
};
|
|
"data" = mkOption {
|
|
description = "Data provides the resource declaration used to populate each generated resource.\nAt most one of Data or Clone must be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"orphanDownstreamOnPolicyDelete" = mkOption {
|
|
description = "OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated\nthem is deleted with synchronization enabled. This option is only applicable to generate rules of the data type.\nSee https://kyverno.io/docs/writing-policies/generate/#data-examples.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"synchronize" = mkOption {
|
|
description = "Synchronize controls if generated resources should be kept in-sync with their source resource.\nIf Synchronize is set to \"true\" changes to generated resources will be overwritten with resource\ndata from Data or the resource specified in the Clone declaration.\nOptional. Defaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"clone" = mkOverride 1002 null;
|
|
"cloneList" = mkOverride 1002 null;
|
|
"data" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"orphanDownstreamOnPolicyDelete" = mkOverride 1002 null;
|
|
"synchronize" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesGenerateClone" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name specifies name of the resource.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesGenerateCloneList" = {
|
|
options = {
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels`.\nwildcard characters are not supported.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesGenerateCloneListSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"kinds" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesGenerateCloneListSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesGenerateCloneListSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesGenerateCloneListSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAny"));
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesMatchSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesMatchAllSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesMatchAnySubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMatchResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMatchSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutate" = {
|
|
options = {
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies mutation rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeach")
|
|
);
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"targets" = mkOption {
|
|
description = "Targets defines the target resources to be mutated.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesMutateTargets" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"foreach" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"targets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeach" = {
|
|
options = {
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"order" = mkOption {
|
|
description = "Order defines the iteration order on the list.\nCan be Ascending to iterate from first to last element or Descending to iterate in from last to first element.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"context" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"order" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateTargets" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesMutateTargetsContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidate" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"cel" = mkOption {
|
|
description = "CEL allows validation checks using the Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/).";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateCel");
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateDeny");
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies validate rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeach")
|
|
);
|
|
};
|
|
"manifests" = mkOption {
|
|
description = "Manifest specifies conditions for manifest verification";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifests");
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message specifies a custom message to be displayed on failure.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity applies exemptions for Kubernetes Pod Security admission\nby specifying exclusions for Pod Security Standards controls.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidatePodSecurity");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"cel" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"manifests" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateCel" = {
|
|
options = {
|
|
"auditAnnotations" = mkOption {
|
|
description = "AuditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateCelAuditAnnotations")
|
|
);
|
|
};
|
|
"expressions" = mkOption {
|
|
description = "Expressions is a list of CELExpression types.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateCelExpressions")
|
|
);
|
|
};
|
|
"paramKind" = mkOption {
|
|
description = "ParamKind is a tuple of Group Kind and Version.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateCelParamKind");
|
|
};
|
|
"paramRef" = mkOption {
|
|
description = "ParamRef references a parameter resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateCelParamRef");
|
|
};
|
|
"variables" = mkOption {
|
|
description = "Variables contain definitions of variables that can be used in composition of other expressions.\nEach variable is defined as a named CEL expression.\nThe variables defined here will be available under `variables` in other expressions of the policy.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesValidateCelVariables"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"auditAnnotations" = mkOverride 1002 null;
|
|
"expressions" = mkOverride 1002 null;
|
|
"paramKind" = mkOverride 1002 null;
|
|
"paramRef" = mkOverride 1002 null;
|
|
"variables" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateCelAuditAnnotations" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key specifies the audit annotation key. The audit annotation keys of\na ValidatingAdmissionPolicy must be unique. The key must be a qualified\nname ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\n\nThe key is combined with the resource name of the\nValidatingAdmissionPolicy to construct an audit annotation key:\n\"{ValidatingAdmissionPolicy name}/{key}\".\n\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\nand the same audit annotation key, the annotation key will be identical.\nIn this case, the first annotation written with the key will be included\nin the audit event and all subsequent annotations with the same key\nwill be discarded.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"valueExpression" = mkOption {
|
|
description = "valueExpression represents the expression which is evaluated by CEL to\nproduce an audit annotation value. The expression must evaluate to either\na string or null value. If the expression evaluates to a string, the\naudit annotation is included with the string value. If the expression\nevaluates to null or empty string the audit annotation will be omitted.\nThe valueExpression may be no longer than 5kb in length.\nIf the result of the valueExpression is more than 10kb in length, it\nwill be truncated to 10kb.\n\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an\nAPI request, then the valueExpression will be evaluated for\neach binding. All unique values produced by the valueExpressions\nwill be joined together in a comma-separated list.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateCelExpressions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests.\n- 'oldObject' - The existing object. The value is null for CREATE requests.\n- 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n- 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n- 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\nobject. No other metadata properties are accessible.\n\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\nAccessible property names are escaped according to the following rules when accessed in the expression:\n- '__' escapes to '__underscores__'\n- '.' escapes to '__dot__'\n- '-' escapes to '__dash__'\n- '/' escapes to '__slash__'\n- Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\nConcatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message represents the message displayed when validation fails. The message is required if the Expression contains\nline breaks. The message must not contain line breaks.\nIf unset, the message is \"failed rule: {Rule}\".\ne.g. \"must be a URL with the host matching spec.host\"\nIf the Expression contains line breaks. Message is required.\nThe message must not contain line breaks.\nIf unset, the message is \"failed Expression: {Expression}\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"messageExpression" = mkOption {
|
|
description = "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\nSince messageExpression is used as a failure message, it must evaluate to a string.\nIf both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\nIf messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\nas if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\nthat contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\nthe fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\nmessageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\nExample:\n\"object.x must be less than max (\"+string(params.max)+\")\"";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "Reason represents a machine-readable description of why this validation failed.\nIf this is the first validation in the list to fail, this reason, as well as the\ncorresponding HTTP response code, are used in the\nHTTP response to the client.\nThe currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\nIf not set, StatusReasonInvalid is used in the response to the client.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"message" = mkOverride 1002 null;
|
|
"messageExpression" = mkOverride 1002 null;
|
|
"reason" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateCelParamKind" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion is the API group version the resources belong to.\nIn format of \"group/version\".\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is the API kind the resources belong to.\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateCelParamRef" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "`name` is the name of the resource being referenced.\n\n\n`name` and `selector` are mutually exclusive properties. If one is set,\nthe other must be unset.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "namespace is the namespace of the referenced resource. Allows limiting\nthe search for params to a specific namespace. Applies to both `name` and\n`selector` fields.\n\n\nA per-namespace parameter may be used by specifying a namespace-scoped\n`paramKind` in the policy and leaving this field empty.\n\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\nfield results in a configuration error.\n\n\n- If `paramKind` is namespace-scoped, the namespace of the object being\nevaluated for admission will be used when this field is left unset. Take\ncare that if this is left empty the binding must not match any cluster-scoped\nresources, which will result in an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"parameterNotFoundAction" = mkOption {
|
|
description = "`parameterNotFoundAction` controls the behavior of the binding when the resource\nexists, and name or selector is valid, but there are no parameters\nmatched by the binding. If the value is set to `Allow`, then no\nmatched parameters will be treated as successful validation by the binding.\nIf set to `Deny`, then no matched parameters will be subject to the\n`failurePolicy` of the policy.\n\n\nAllowed values are `Allow` or `Deny`\nDefault to `Deny`";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "selector can be used to match multiple param objects based on their labels.\nSupply selector: {} to match all resources of the ParamKind.\n\n\nIf multiple params are found, they are all evaluated with the policy expressions\nand the results are ANDed together.\n\n\nOne of `name` or `selector` must be set, but `name` and `selector` are\nmutually exclusive properties. If one is set, the other must be unset.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateCelParamRefSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"parameterNotFoundAction" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateCelParamRefSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateCelParamRefSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateCelParamRefSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateCelVariables" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression is the expression that will be evaluated as the value of the variable.\nThe CEL expression has access to the same identifiers as the CEL expressions in Validation.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\nThe variable can be accessed in other expressions through `variables`\nFor example, if name is \"foo\", the variable will be available as `variables.foo`";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeach" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachDeny");
|
|
};
|
|
"elementScope" = mkOption {
|
|
description = "ElementScope specifies whether to use the current list element as the scope for validation. Defaults to \"true\" if not specified.\nWhen set to \"false\", \"request.object\" is used as the validation scope within the foreach\nblock to allow referencing other elements in the subtree.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"elementScope" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifests" = {
|
|
options = {
|
|
"annotationDomain" = mkOption {
|
|
description = "AnnotationDomain is custom domain of annotation for message and signature. Default is \"cosign.sigstore.dev\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestors")
|
|
);
|
|
};
|
|
"dryRun" = mkOption {
|
|
description = "DryRun configuration";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsDryRun");
|
|
};
|
|
"ignoreFields" = mkOption {
|
|
description = "Fields which will be ignored while comparing manifests.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsIgnoreFields")
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for resource bundle reference.\nThe repository can be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotationDomain" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"dryRun" = mkOverride 1002 null;
|
|
"ignoreFields" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsDryRun" = {
|
|
options = {
|
|
"enable" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"enable" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsIgnoreFields" = {
|
|
options = {
|
|
"fields" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"objects" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsIgnoreFieldsObjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"fields" = mkOverride 1002 null;
|
|
"objects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidateManifestsIgnoreFieldsObjects" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"group" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidatePodSecurity" = {
|
|
options = {
|
|
"exclude" = mkOption {
|
|
description = "Exclude specifies the Pod Security Standard controls to be excluded.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesValidatePodSecurityExclude")
|
|
);
|
|
};
|
|
"level" = mkOption {
|
|
description = "Level defines the Pod Security Standard level to be applied to workloads.\nAllowed values are privileged, baseline, and restricted.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "Version defines the Pod Security Standard versions that Kubernetes supports.\nAllowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"exclude" = mkOverride 1002 null;
|
|
"level" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesValidatePodSecurityExclude" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImages" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "Deprecated.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"annotations" = mkOption {
|
|
description = "Deprecated. Use annotations per Attestor instead.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestations" = mkOption {
|
|
description = "Attestations are optional checks for signed in-toto Statements used to verify the image.\nSee https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the\nOCI registry and decodes them into a list of Statement declarations.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestations")
|
|
);
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestors")
|
|
);
|
|
};
|
|
"image" = mkOption {
|
|
description = "Deprecated. Use ImageReferences instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"imageReferences" = mkOption {
|
|
description = "ImageReferences is a list of matching image reference patterns. At least one pattern in the\nlist must match the image for the rule to apply. Each image reference consists of a registry\naddress (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesImageRegistryCredentials"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"key" = mkOption {
|
|
description = "Deprecated. Use StaticKeyAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"mutateDigest" = mkOption {
|
|
description = "MutateDigest enables replacement of image tags with digests.\nDefaults to true.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule.\nIf specified Repository will override the default OCI image repository configured for the installation.\nThe repository can also be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"required" = mkOption {
|
|
description = "Required validates that images are verified i.e. have matched passed a signature or attestation check.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"skipImageReferences" = mkOption {
|
|
description = "SkipImageReferences is a list of matching image reference patterns that should be skipped.\nAt least one pattern in the list must match the image for the rule to be skipped. Each image reference\nconsists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type specifies the method of signature validation. The allowed options\nare Cosign and Notary. By default Cosign is used if a type is not specified.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"useCache" = mkOption {
|
|
description = "UseCache enables caching of image verify responses for this rule.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"verifyDigest" = mkOption {
|
|
description = "VerifyDigest validates that images have a digest.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestations" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"image" = mkOverride 1002 null;
|
|
"imageReferences" = mkOverride 1002 null;
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"key" = mkOverride 1002 null;
|
|
"mutateDigest" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
"required" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"skipImageReferences" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
"useCache" = mkOverride 1002 null;
|
|
"verifyDigest" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestations" = {
|
|
options = {
|
|
"attestors" = mkOption {
|
|
description = "Attestors specify the required attestors (i.e. authorities).";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestors")
|
|
);
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to verify attributes within a Predicate. If no Conditions are specified\nthe attestation check is satisfied as long there are predicates that match the predicate type.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditions"
|
|
)
|
|
);
|
|
};
|
|
"predicateType" = mkOption {
|
|
description = "Deprecated in favour of 'Type', to be removed soon";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type defines the type of attestation contained within the Statement.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"attestors" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"predicateType" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusAutogenRulesVerifyImagesImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1.PolicyStatusRulecount" = {
|
|
options = {
|
|
"generate" = mkOption {
|
|
description = "Count for generate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Count for mutate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Count for validate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"verifyimages" = mkOption {
|
|
description = "Count for verify image rules in policy";
|
|
type = types.int;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1.PolicyStatusValidatingadmissionpolicy" = {
|
|
options = {
|
|
"generated" = mkOption {
|
|
description = "Generated indicates whether a validating admission policy is generated from the policy or not";
|
|
type = types.bool;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is a human readable message indicating details about the generation of validating admission policy\nIt is an empty string when validating admission policy is successfully generated.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequest" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "ResourceSpec is the information to identify the trigger resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1beta1.UpdateRequestSpec");
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains statistics related to update request.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1beta1.UpdateRequestStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"spec" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpec" = {
|
|
options = {
|
|
"context" = mkOption {
|
|
description = "Context ...";
|
|
type = submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecContext";
|
|
};
|
|
"deleteDownstream" = mkOption {
|
|
description = "DeleteDownstream represents whether the downstream needs to be deleted.";
|
|
type = types.bool;
|
|
};
|
|
"policy" = mkOption {
|
|
description = "Specifies the name of the policy.";
|
|
type = types.str;
|
|
};
|
|
"requestType" = mkOption {
|
|
description = "Type represents request type for background processing";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"resource" = mkOption {
|
|
description = "ResourceSpec is the information to identify the trigger resource.";
|
|
type = submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecResource";
|
|
};
|
|
"rule" = mkOption {
|
|
description = "Rule is the associate rule name of the current UR.";
|
|
type = types.str;
|
|
};
|
|
"synchronize" = mkOption {
|
|
description = "Synchronize represents the sync behavior of the corresponding rule\nOptional. Defaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"requestType" = mkOverride 1002 null;
|
|
"synchronize" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecContext" = {
|
|
options = {
|
|
"admissionRequestInfo" = mkOption {
|
|
description = "AdmissionRequestInfoObject stores the admission request and operation details";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfo");
|
|
};
|
|
"userInfo" = mkOption {
|
|
description = "RequestInfo contains permission info carried in an admission request.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecContextUserInfo");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"admissionRequestInfo" = mkOverride 1002 null;
|
|
"userInfo" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfo" = {
|
|
options = {
|
|
"admissionRequest" = mkOption {
|
|
description = "AdmissionRequest describes the admission.Attributes for the admission request.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequest"
|
|
);
|
|
};
|
|
"operation" = mkOption {
|
|
description = "Operation is the type of resource operation being checked for admission control";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"admissionRequest" = mkOverride 1002 null;
|
|
"operation" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequest" = {
|
|
options = {
|
|
"dryRun" = mkOption {
|
|
description = "DryRun indicates that modifications will definitely not be persisted for this request.\nDefaults to false.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is the fully-qualified type of object being submitted (for example, v1.Pod or autoscaling.v1.Scale)";
|
|
type = submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestKind";
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the object as presented in the request. On a CREATE operation, the client may omit name and\nrely on the server to generate the name. If that is the case, this field will contain an empty string.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the namespace associated with the request (if any).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"object" = mkOption {
|
|
description = "Object is the object from the incoming request.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"oldObject" = mkOption {
|
|
description = "OldObject is the existing object. Only populated for DELETE and UPDATE requests.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"operation" = mkOption {
|
|
description = "Operation is the operation being performed. This may be different than the operation\nrequested. e.g. a patch can result in either a CREATE or UPDATE Operation.";
|
|
type = types.str;
|
|
};
|
|
"options" = mkOption {
|
|
description = "Options is the operation option structure of the operation being performed.\ne.g. `meta.k8s.io/v1.DeleteOptions` or `meta.k8s.io/v1.CreateOptions`. This may be\ndifferent than the options the caller provided. e.g. for a patch request the performed\nOperation might be a CREATE, in which case the Options will a\n`meta.k8s.io/v1.CreateOptions` even though the caller provided `meta.k8s.io/v1.PatchOptions`.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"requestKind" = mkOption {
|
|
description = "RequestKind is the fully-qualified type of the original API request (for example, v1.Pod or autoscaling.v1.Scale).\nIf this is specified and differs from the value in \"kind\", an equivalent match and conversion was performed.\n\n\nFor example, if deployments can be modified via apps/v1 and apps/v1beta1, and a webhook registered a rule of\n`apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]` and `matchPolicy: Equivalent`,\nan API request to apps/v1beta1 deployments would be converted and sent to the webhook\nwith `kind: {group:\"apps\", version:\"v1\", kind:\"Deployment\"}` (matching the rule the webhook registered for),\nand `requestKind: {group:\"apps\", version:\"v1beta1\", kind:\"Deployment\"}` (indicating the kind of the original API request).\n\n\nSee documentation for the \"matchPolicy\" field in the webhook configuration type for more details.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestRequestKind"
|
|
);
|
|
};
|
|
"requestResource" = mkOption {
|
|
description = "RequestResource is the fully-qualified resource of the original API request (for example, v1.pods).\nIf this is specified and differs from the value in \"resource\", an equivalent match and conversion was performed.\n\n\nFor example, if deployments can be modified via apps/v1 and apps/v1beta1, and a webhook registered a rule of\n`apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]` and `matchPolicy: Equivalent`,\nan API request to apps/v1beta1 deployments would be converted and sent to the webhook\nwith `resource: {group:\"apps\", version:\"v1\", resource:\"deployments\"}` (matching the resource the webhook registered for),\nand `requestResource: {group:\"apps\", version:\"v1beta1\", resource:\"deployments\"}` (indicating the resource of the original API request).\n\n\nSee documentation for the \"matchPolicy\" field in the webhook configuration type.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestRequestResource"
|
|
);
|
|
};
|
|
"requestSubResource" = mkOption {
|
|
description = "RequestSubResource is the name of the subresource of the original API request, if any (for example, \"status\" or \"scale\")\nIf this is specified and differs from the value in \"subResource\", an equivalent match and conversion was performed.\nSee documentation for the \"matchPolicy\" field in the webhook configuration type.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"resource" = mkOption {
|
|
description = "Resource is the fully-qualified resource being requested (for example, v1.pods)";
|
|
type = submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestResource";
|
|
};
|
|
"subResource" = mkOption {
|
|
description = "SubResource is the subresource being requested, if any (for example, \"status\" or \"scale\")";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID is an identifier for the individual request/response. It allows us to distinguish instances of requests which are\notherwise identical (parallel requests, requests when earlier requests did not modify etc)\nThe UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.\nIt is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.";
|
|
type = types.str;
|
|
};
|
|
"userInfo" = mkOption {
|
|
description = "UserInfo is information about the requesting user";
|
|
type = submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestUserInfo";
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"dryRun" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"object" = mkOverride 1002 null;
|
|
"oldObject" = mkOverride 1002 null;
|
|
"options" = mkOverride 1002 null;
|
|
"requestKind" = mkOverride 1002 null;
|
|
"requestResource" = mkOverride 1002 null;
|
|
"requestSubResource" = mkOverride 1002 null;
|
|
"subResource" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestKind" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestRequestKind" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestRequestResource" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"resource" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestResource" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"resource" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestUserInfo" = {
|
|
options = {
|
|
"extra" = mkOption {
|
|
description = "Any additional information provided by the authenticator.";
|
|
type = types.nullOr (types.loaOf types.str);
|
|
};
|
|
"groups" = mkOption {
|
|
description = "The names of groups this user is a part of.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"uid" = mkOption {
|
|
description = "A unique value that identifies this user across time. If this user is\ndeleted and another user by the same name is added, they will have\ndifferent UIDs.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"username" = mkOption {
|
|
description = "The name that uniquely identifies this user among all active users.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"extra" = mkOverride 1002 null;
|
|
"groups" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
"username" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecContextUserInfo" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is a list of possible clusterRoles send the request.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is a list of possible role send the request.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"userInfo" = mkOption {
|
|
description = "UserInfo is the userInfo carried in the admission request.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v1beta1.UpdateRequestSpecContextUserInfoUserInfo");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"userInfo" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecContextUserInfoUserInfo" = {
|
|
options = {
|
|
"extra" = mkOption {
|
|
description = "Any additional information provided by the authenticator.";
|
|
type = types.nullOr (types.loaOf types.str);
|
|
};
|
|
"groups" = mkOption {
|
|
description = "The names of groups this user is a part of.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"uid" = mkOption {
|
|
description = "A unique value that identifies this user across time. If this user is\ndeleted and another user by the same name is added, they will have\ndifferent UIDs.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"username" = mkOption {
|
|
description = "The name that uniquely identifies this user among all active users.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"extra" = mkOverride 1002 null;
|
|
"groups" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
"username" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestSpecResource" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestStatus" = {
|
|
options = {
|
|
"generatedResources" = mkOption {
|
|
description = "This will track the resources that are updated by the generate Policy.\nWill be used during clean up resources.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v1beta1.UpdateRequestStatusGeneratedResources" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"handler" = mkOption {
|
|
description = "Deprecated";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Specifies request status message.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"retryCount" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"state" = mkOption {
|
|
description = "State represents state of the update request.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"generatedResources" = mkOverride 1002 null;
|
|
"handler" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"retryCount" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v1beta1.UpdateRequestStatusGeneratedResources" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicy" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy behaviors.";
|
|
type = submoduleOf "kyverno.io.v2.CleanupPolicySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains policy runtime data.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicyStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpec" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Conditions defines the conditions used to select the resources which will be cleaned up.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecConditions");
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.CleanupPolicySpecContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when cleanuppolicy should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecExclude");
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when cleanuppolicy should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecMatch");
|
|
};
|
|
"schedule" = mkOption {
|
|
description = "The schedule in Cron format";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.CleanupPolicySpecConditionsAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.CleanupPolicySpecConditionsAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecContextGlobalReference");
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2.CleanupPolicySpecContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.CleanupPolicySpecExcludeAllSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.CleanupPolicySpecExcludeAnySubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.CleanupPolicySpecMatchAllSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.CleanupPolicySpecMatchAnySubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.CleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicySpecMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicyStatus" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.CleanupPolicyStatusConditions"));
|
|
};
|
|
"lastExecutionTime" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"lastExecutionTime" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.CleanupPolicyStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicy" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy behaviors.";
|
|
type = submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains policy runtime data.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicyStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpec" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Conditions defines the conditions used to select the resources which will be cleaned up.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecConditions");
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.ClusterCleanupPolicySpecContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when cleanuppolicy should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExclude");
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when cleanuppolicy should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatch");
|
|
};
|
|
"schedule" = mkOption {
|
|
description = "The schedule in Cron format";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecContextGlobalReference");
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnySubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.ClusterCleanupPolicySpecMatchAllSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.ClusterCleanupPolicySpecMatchAnySubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.ClusterCleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicySpecMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicyStatus" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2.ClusterCleanupPolicyStatusConditions")
|
|
);
|
|
};
|
|
"lastExecutionTime" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"lastExecutionTime" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.ClusterCleanupPolicyStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyException" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy exception behaviors.";
|
|
type = submoduleOf "kyverno.io.v2.PolicyExceptionSpec";
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpec" = {
|
|
options = {
|
|
"background" = mkOption {
|
|
description = "Background controls if exceptions are applied to existing policies during a background scan.\nOptional. Default value is \"true\". The value must be set to \"false\" if the policy rule\nuses variables that are only available in the admission review request (e.g. user name).";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to determine if a resource applies to the exception by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.PolicyExceptionSpecConditions");
|
|
};
|
|
"exceptions" = mkOption {
|
|
description = "Exceptions is a list policy/rules to be excluded";
|
|
type = types.listOf (submoduleOf "kyverno.io.v2.PolicyExceptionSpecExceptions");
|
|
};
|
|
"match" = mkOption {
|
|
description = "Match defines match clause used to check if a resource applies to the exception";
|
|
type = submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatch";
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity specifies the Pod Security Standard controls to be excluded.\nApplicable only to policies that have validate.podSecurity subrule.";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.PolicyExceptionSpecPodSecurity"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"background" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.PolicyExceptionSpecConditionsAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.PolicyExceptionSpecConditionsAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecExceptions" = {
|
|
options = {
|
|
"policyName" = mkOption {
|
|
description = "PolicyName identifies the policy to which the exception is applied.\nThe policy name uses the format <namespace>/<name> unless it\nreferences a ClusterPolicy.";
|
|
type = types.str;
|
|
};
|
|
"ruleNames" = mkOption {
|
|
description = "RuleNames identifies the rules to which the exception is applied.";
|
|
type = types.listOf types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.PolicyExceptionSpecMatchAllSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.PolicyExceptionSpecMatchAnySubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2.PolicyExceptionSpecMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.PolicyExceptionSpecPodSecurity" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequest" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "ResourceSpec is the information to identify the trigger resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.UpdateRequestSpec");
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains statistics related to update request.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.UpdateRequestStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"spec" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpec" = {
|
|
options = {
|
|
"context" = mkOption {
|
|
description = "Context ...";
|
|
type = submoduleOf "kyverno.io.v2.UpdateRequestSpecContext";
|
|
};
|
|
"deleteDownstream" = mkOption {
|
|
description = "DeleteDownstream represents whether the downstream needs to be deleted.";
|
|
type = types.bool;
|
|
};
|
|
"policy" = mkOption {
|
|
description = "Specifies the name of the policy.";
|
|
type = types.str;
|
|
};
|
|
"requestType" = mkOption {
|
|
description = "Type represents request type for background processing";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"resource" = mkOption {
|
|
description = "ResourceSpec is the information to identify the trigger resource.";
|
|
type = submoduleOf "kyverno.io.v2.UpdateRequestSpecResource";
|
|
};
|
|
"rule" = mkOption {
|
|
description = "Rule is the associate rule name of the current UR.";
|
|
type = types.str;
|
|
};
|
|
"synchronize" = mkOption {
|
|
description = "Synchronize represents the sync behavior of the corresponding rule\nOptional. Defaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"requestType" = mkOverride 1002 null;
|
|
"synchronize" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecContext" = {
|
|
options = {
|
|
"admissionRequestInfo" = mkOption {
|
|
description = "AdmissionRequestInfoObject stores the admission request and operation details";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfo");
|
|
};
|
|
"userInfo" = mkOption {
|
|
description = "RequestInfo contains permission info carried in an admission request.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.UpdateRequestSpecContextUserInfo");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"admissionRequestInfo" = mkOverride 1002 null;
|
|
"userInfo" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfo" = {
|
|
options = {
|
|
"admissionRequest" = mkOption {
|
|
description = "AdmissionRequest describes the admission.Attributes for the admission request.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequest"
|
|
);
|
|
};
|
|
"operation" = mkOption {
|
|
description = "Operation is the type of resource operation being checked for admission control";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"admissionRequest" = mkOverride 1002 null;
|
|
"operation" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequest" = {
|
|
options = {
|
|
"dryRun" = mkOption {
|
|
description = "DryRun indicates that modifications will definitely not be persisted for this request.\nDefaults to false.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is the fully-qualified type of object being submitted (for example, v1.Pod or autoscaling.v1.Scale)";
|
|
type = submoduleOf "kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestKind";
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the object as presented in the request. On a CREATE operation, the client may omit name and\nrely on the server to generate the name. If that is the case, this field will contain an empty string.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the namespace associated with the request (if any).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"object" = mkOption {
|
|
description = "Object is the object from the incoming request.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"oldObject" = mkOption {
|
|
description = "OldObject is the existing object. Only populated for DELETE and UPDATE requests.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"operation" = mkOption {
|
|
description = "Operation is the operation being performed. This may be different than the operation\nrequested. e.g. a patch can result in either a CREATE or UPDATE Operation.";
|
|
type = types.str;
|
|
};
|
|
"options" = mkOption {
|
|
description = "Options is the operation option structure of the operation being performed.\ne.g. `meta.k8s.io/v1.DeleteOptions` or `meta.k8s.io/v1.CreateOptions`. This may be\ndifferent than the options the caller provided. e.g. for a patch request the performed\nOperation might be a CREATE, in which case the Options will a\n`meta.k8s.io/v1.CreateOptions` even though the caller provided `meta.k8s.io/v1.PatchOptions`.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"requestKind" = mkOption {
|
|
description = "RequestKind is the fully-qualified type of the original API request (for example, v1.Pod or autoscaling.v1.Scale).\nIf this is specified and differs from the value in \"kind\", an equivalent match and conversion was performed.\n\n\nFor example, if deployments can be modified via apps/v1 and apps/v1beta1, and a webhook registered a rule of\n`apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]` and `matchPolicy: Equivalent`,\nan API request to apps/v1beta1 deployments would be converted and sent to the webhook\nwith `kind: {group:\"apps\", version:\"v1\", kind:\"Deployment\"}` (matching the rule the webhook registered for),\nand `requestKind: {group:\"apps\", version:\"v1beta1\", kind:\"Deployment\"}` (indicating the kind of the original API request).\n\n\nSee documentation for the \"matchPolicy\" field in the webhook configuration type for more details.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestRequestKind"
|
|
);
|
|
};
|
|
"requestResource" = mkOption {
|
|
description = "RequestResource is the fully-qualified resource of the original API request (for example, v1.pods).\nIf this is specified and differs from the value in \"resource\", an equivalent match and conversion was performed.\n\n\nFor example, if deployments can be modified via apps/v1 and apps/v1beta1, and a webhook registered a rule of\n`apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]` and `matchPolicy: Equivalent`,\nan API request to apps/v1beta1 deployments would be converted and sent to the webhook\nwith `resource: {group:\"apps\", version:\"v1\", resource:\"deployments\"}` (matching the resource the webhook registered for),\nand `requestResource: {group:\"apps\", version:\"v1beta1\", resource:\"deployments\"}` (indicating the resource of the original API request).\n\n\nSee documentation for the \"matchPolicy\" field in the webhook configuration type.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestRequestResource"
|
|
);
|
|
};
|
|
"requestSubResource" = mkOption {
|
|
description = "RequestSubResource is the name of the subresource of the original API request, if any (for example, \"status\" or \"scale\")\nIf this is specified and differs from the value in \"subResource\", an equivalent match and conversion was performed.\nSee documentation for the \"matchPolicy\" field in the webhook configuration type.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"resource" = mkOption {
|
|
description = "Resource is the fully-qualified resource being requested (for example, v1.pods)";
|
|
type = submoduleOf "kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestResource";
|
|
};
|
|
"subResource" = mkOption {
|
|
description = "SubResource is the subresource being requested, if any (for example, \"status\" or \"scale\")";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID is an identifier for the individual request/response. It allows us to distinguish instances of requests which are\notherwise identical (parallel requests, requests when earlier requests did not modify etc)\nThe UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.\nIt is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.";
|
|
type = types.str;
|
|
};
|
|
"userInfo" = mkOption {
|
|
description = "UserInfo is information about the requesting user";
|
|
type = submoduleOf "kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestUserInfo";
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"dryRun" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"object" = mkOverride 1002 null;
|
|
"oldObject" = mkOverride 1002 null;
|
|
"options" = mkOverride 1002 null;
|
|
"requestKind" = mkOverride 1002 null;
|
|
"requestResource" = mkOverride 1002 null;
|
|
"requestSubResource" = mkOverride 1002 null;
|
|
"subResource" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestKind" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestRequestKind" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestRequestResource" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"resource" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestResource" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"resource" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecContextAdmissionRequestInfoAdmissionRequestUserInfo" = {
|
|
options = {
|
|
"extra" = mkOption {
|
|
description = "Any additional information provided by the authenticator.";
|
|
type = types.nullOr (types.loaOf types.str);
|
|
};
|
|
"groups" = mkOption {
|
|
description = "The names of groups this user is a part of.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"uid" = mkOption {
|
|
description = "A unique value that identifies this user across time. If this user is\ndeleted and another user by the same name is added, they will have\ndifferent UIDs.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"username" = mkOption {
|
|
description = "The name that uniquely identifies this user among all active users.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"extra" = mkOverride 1002 null;
|
|
"groups" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
"username" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecContextUserInfo" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is a list of possible clusterRoles send the request.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is a list of possible role send the request.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"userInfo" = mkOption {
|
|
description = "UserInfo is the userInfo carried in the admission request.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2.UpdateRequestSpecContextUserInfoUserInfo");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"userInfo" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecContextUserInfoUserInfo" = {
|
|
options = {
|
|
"extra" = mkOption {
|
|
description = "Any additional information provided by the authenticator.";
|
|
type = types.nullOr (types.loaOf types.str);
|
|
};
|
|
"groups" = mkOption {
|
|
description = "The names of groups this user is a part of.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"uid" = mkOption {
|
|
description = "A unique value that identifies this user across time. If this user is\ndeleted and another user by the same name is added, they will have\ndifferent UIDs.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"username" = mkOption {
|
|
description = "The name that uniquely identifies this user among all active users.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"extra" = mkOverride 1002 null;
|
|
"groups" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
"username" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequestSpecResource" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequestStatus" = {
|
|
options = {
|
|
"generatedResources" = mkOption {
|
|
description = "This will track the resources that are updated by the generate Policy.\nWill be used during clean up resources.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2.UpdateRequestStatusGeneratedResources" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Specifies request status message.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"retryCount" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"state" = mkOption {
|
|
description = "State represents state of the update request.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"generatedResources" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"retryCount" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2.UpdateRequestStatusGeneratedResources" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicy" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy behaviors.";
|
|
type = submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains policy runtime data.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicyStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpec" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Conditions defines the conditions used to select the resources which will be cleaned up.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecConditions");
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.CleanupPolicySpecContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when cleanuppolicy should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExclude");
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when cleanuppolicy should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatch");
|
|
};
|
|
"schedule" = mkOption {
|
|
description = "The schedule in Cron format";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecContextGlobalReference");
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnySubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.CleanupPolicySpecMatchAllSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.CleanupPolicySpecMatchAnySubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.CleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicySpecMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicyStatus" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.CleanupPolicyStatusConditions")
|
|
);
|
|
};
|
|
"lastExecutionTime" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"lastExecutionTime" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.CleanupPolicyStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicy" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy behaviors.";
|
|
type = submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains policy runtime data.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicyStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpec" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Conditions defines the conditions used to select the resources which will be cleaned up.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecConditions");
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.ClusterCleanupPolicySpecContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when cleanuppolicy should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExclude");
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when cleanuppolicy should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatch");
|
|
};
|
|
"schedule" = mkOption {
|
|
description = "The schedule in Cron format";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicySpecMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicyStatus" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.ClusterCleanupPolicyStatusConditions")
|
|
);
|
|
};
|
|
"lastExecutionTime" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"lastExecutionTime" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.ClusterCleanupPolicyStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.GlobalContextEntry" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy exception behaviors.";
|
|
type = submoduleOf "kyverno.io.v2alpha1.GlobalContextEntrySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains globalcontextentry runtime data.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.GlobalContextEntryStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.GlobalContextEntrySpec" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "Stores results from an API call which will be cached.\nMutually exclusive with KubernetesResource.\nThis can be used to make calls to external (non-Kubernetes API server) services.\nIt can also be used to make calls to the Kubernetes API server in such cases:\n1. A POST is needed to create a resource.\n2. Finer-grained control is needed. Example: To restrict the number of resources cached.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.GlobalContextEntrySpecApiCall");
|
|
};
|
|
"kubernetesResource" = mkOption {
|
|
description = "Stores a list of Kubernetes resources which will be cached.\nMutually exclusive with APICall.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.GlobalContextEntrySpecKubernetesResource");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"kubernetesResource" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.GlobalContextEntrySpecApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.GlobalContextEntrySpecApiCallData")
|
|
);
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"refreshInterval" = mkOption {
|
|
description = "RefreshInterval defines the interval in duration at which to poll the APICall.\nThe duration is a sequence of decimal numbers, each with optional fraction and a unit suffix,\nsuch as \"300ms\", \"1.5h\" or \"2h45m\". Valid time units are \"ns\", \"us\" (or \"u00b5s\"), \"ms\", \"s\", \"m\", \"h\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.GlobalContextEntrySpecApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"refreshInterval" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.GlobalContextEntrySpecApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2alpha1.GlobalContextEntrySpecApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.GlobalContextEntrySpecKubernetesResource" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "Group defines the group of the resource.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace defines the namespace of the resource. Leave empty for cluster scoped resources.\nIf left empty for namespaced resources, all resources from all namespaces will be cached.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"resource" = mkOption {
|
|
description = "Resource defines the type of the resource.\nRequires the pluralized form of the resource kind in lowercase. (Ex., \"deployments\")";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "Version defines the version of the resource.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"group" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"resource" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.GlobalContextEntryStatus" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.GlobalContextEntryStatusConditions")
|
|
);
|
|
};
|
|
"lastRefreshTime" = mkOption {
|
|
description = "Indicates the time when the globalcontextentry was last refreshed successfully for the API Call";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ready" = mkOption {
|
|
description = "Deprecated in favor of Conditions";
|
|
type = types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"lastRefreshTime" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.GlobalContextEntryStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyException" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy exception behaviors.";
|
|
type = submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpec";
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpec" = {
|
|
options = {
|
|
"background" = mkOption {
|
|
description = "Background controls if exceptions are applied to existing policies during a background scan.\nOptional. Default value is \"true\". The value must be set to \"false\" if the policy rule\nuses variables that are only available in the admission review request (e.g. user name).";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to determine if a resource applies to the exception by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecConditions");
|
|
};
|
|
"exceptions" = mkOption {
|
|
description = "Exceptions is a list policy/rules to be excluded";
|
|
type = types.listOf (submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecExceptions");
|
|
};
|
|
"match" = mkOption {
|
|
description = "Match defines match clause used to check if a resource applies to the exception";
|
|
type = submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatch";
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity specifies the Pod Security Standard controls to be excluded.\nApplicable only to policies that have validate.podSecurity subrule.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecPodSecurity")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"background" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecExceptions" = {
|
|
options = {
|
|
"policyName" = mkOption {
|
|
description = "PolicyName identifies the policy to which the exception is applied.\nThe policy name uses the format <namespace>/<name> unless it\nreferences a ClusterPolicy.";
|
|
type = types.str;
|
|
};
|
|
"ruleNames" = mkOption {
|
|
description = "RuleNames identifies the rules to which the exception is applied.";
|
|
type = types.listOf types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnySubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2alpha1.PolicyExceptionSpecPodSecurity" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicy" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy behaviors.";
|
|
type = submoduleOf "kyverno.io.v2beta1.CleanupPolicySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains policy runtime data.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicyStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpec" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Conditions defines the conditions used to select the resources which will be cleaned up.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecConditions");
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.CleanupPolicySpecContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when cleanuppolicy should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExclude");
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when cleanuppolicy should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatch");
|
|
};
|
|
"schedule" = mkOption {
|
|
description = "The schedule in Cron format";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecContextGlobalReference");
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.CleanupPolicySpecExcludeAllSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.CleanupPolicySpecExcludeAnySubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.CleanupPolicySpecMatchAllSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.CleanupPolicySpecMatchAnySubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.CleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicySpecMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicyStatus" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.CleanupPolicyStatusConditions"));
|
|
};
|
|
"lastExecutionTime" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"lastExecutionTime" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.CleanupPolicyStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicy" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy behaviors.";
|
|
type = submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains policy runtime data.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicyStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpec" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Conditions defines the conditions used to select the resources which will be cleaned up.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecConditions");
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterCleanupPolicySpecContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when cleanuppolicy should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExclude");
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when cleanuppolicy should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatch");
|
|
};
|
|
"schedule" = mkOption {
|
|
description = "The schedule in Cron format";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicySpecMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicyStatus" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterCleanupPolicyStatusConditions")
|
|
);
|
|
};
|
|
"lastExecutionTime" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
"lastExecutionTime" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterCleanupPolicyStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicy" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy behaviors.";
|
|
type = submoduleOf "kyverno.io.v2beta1.ClusterPolicySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains policy runtime data.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpec" = {
|
|
options = {
|
|
"admission" = mkOption {
|
|
description = "Admission controls if rules are applied during admission.\nOptional. Default value is \"true\".";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"applyRules" = mkOption {
|
|
description = "ApplyRules controls how rules in a policy are applied. Rule are processed in\nthe order of declaration. When set to `One` processing stops after a rule has\nbeen applied i.e. the rule matches and results in a pass, fail, or error. When\nset to `All` all rules in the policy are processed. The default is `All`.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"background" = mkOption {
|
|
description = "Background controls if rules are applied to existing resources during a background scan.\nOptional. Default value is \"true\". The value must be set to \"false\" if the policy rule\nuses variables that are only available in the admission review request (e.g. user name).";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"failurePolicy" = mkOption {
|
|
description = "FailurePolicy defines how unexpected policy errors and webhook response timeout errors are handled.\nRules within the same policy share the same failure behavior.\nAllowed values are Ignore or Fail. Defaults to Fail.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"generateExisting" = mkOption {
|
|
description = "GenerateExisting controls whether to trigger generate rule in existing resources\nIf is set to \"true\" generate rule will be triggered and applied to existing matched resources.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"generateExistingOnPolicyUpdate" = mkOption {
|
|
description = "Deprecated, use generateExisting instead";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"mutateExistingOnPolicyUpdate" = mkOption {
|
|
description = "MutateExistingOnPolicyUpdate controls if a mutateExisting policy is applied on policy events.\nDefault value is \"false\".";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"rules" = mkOption {
|
|
description = "Rules is a list of Rule instances. A Policy contains multiple rules and\neach rule can validate, mutate, or generate resources.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRules" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"schemaValidation" = mkOption {
|
|
description = "Deprecated.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"useServerSideApply" = mkOption {
|
|
description = "UseServerSideApply controls whether to use server-side apply for generate rules\nIf is set to \"true\" create & update for generate rules will use apply instead of create/update.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validationFailureAction" = mkOption {
|
|
description = "ValidationFailureAction defines if a validation policy rule violation should block\nthe admission review request (enforce), or allow (audit) the admission review request\nand report an error in a policy report. Optional.\nAllowed values are audit or enforce. The default value is \"Audit\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"validationFailureActionOverrides" = mkOption {
|
|
description = "ValidationFailureActionOverrides is a Cluster Policy attribute that specifies ValidationFailureAction\nnamespace-wise. It overrides ValidationFailureAction for the specified namespaces.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecValidationFailureActionOverrides")
|
|
);
|
|
};
|
|
"webhookConfiguration" = mkOption {
|
|
description = "WebhookConfiguration specifies the custom configuration for Kubernetes admission webhookconfiguration.\nRequires Kubernetes 1.27 or later.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecWebhookConfiguration");
|
|
};
|
|
"webhookTimeoutSeconds" = mkOption {
|
|
description = "WebhookTimeoutSeconds specifies the maximum time in seconds allowed to apply this policy.\nAfter the configured time expires, the admission request may fail, or may simply ignore the policy results,\nbased on the failure policy. The default timeout is 10s, the value must be between 1 and 30 seconds.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"admission" = mkOverride 1002 null;
|
|
"applyRules" = mkOverride 1002 null;
|
|
"background" = mkOverride 1002 null;
|
|
"failurePolicy" = mkOverride 1002 null;
|
|
"generateExisting" = mkOverride 1002 null;
|
|
"generateExistingOnPolicyUpdate" = mkOverride 1002 null;
|
|
"mutateExistingOnPolicyUpdate" = mkOverride 1002 null;
|
|
"rules" = mkOverride 1002 null;
|
|
"schemaValidation" = mkOverride 1002 null;
|
|
"useServerSideApply" = mkOverride 1002 null;
|
|
"validationFailureAction" = mkOverride 1002 null;
|
|
"validationFailureActionOverrides" = mkOverride 1002 null;
|
|
"webhookConfiguration" = mkOverride 1002 null;
|
|
"webhookTimeoutSeconds" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRules" = {
|
|
options = {
|
|
"celPreconditions" = mkOption {
|
|
description = "CELPreconditions are used to determine if a policy rule should be applied by evaluating a\nset of CEL conditions. It can only be used with the validate.cel subrule";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesCelPreconditions"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when this policy rule should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExclude");
|
|
};
|
|
"generate" = mkOption {
|
|
description = "Generation is used to create new resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesGenerate");
|
|
};
|
|
"imageExtractors" = mkOption {
|
|
description = "ImageExtractors defines a mapping from kinds to ImageExtractorConfigs.\nThis config is only valid for verifyImages rules.";
|
|
type = types.nullOr (types.loaOf types.attrs);
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when this policy rule should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatch");
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Mutation is used to modify matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutate");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is a label to identify the rule, It must be unique within the policy.";
|
|
type = types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesPreconditions");
|
|
};
|
|
"skipBackgroundRequests" = mkOption {
|
|
description = "SkipBackgroundRequests bypasses admission requests that are sent by the background controller.\nThe default value is set to \"true\", it must be set to \"false\" to apply\ngenerate and mutateExisting rules to those requests.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Validation is used to validate matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidate");
|
|
};
|
|
"verifyImages" = mkOption {
|
|
description = "VerifyImages is used to verify image signatures and mutate them to add a digest";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImages")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"celPreconditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"generate" = mkOverride 1002 null;
|
|
"imageExtractors" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
"mutate" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"skipBackgroundRequests" = mkOverride 1002 null;
|
|
"validate" = mkOverride 1002 null;
|
|
"verifyImages" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesCelPreconditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesContextGlobalReference");
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesGenerate" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"clone" = mkOption {
|
|
description = "Clone specifies the source resource used to populate each generated resource.\nAt most one of Data or Clone can be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesGenerateClone");
|
|
};
|
|
"cloneList" = mkOption {
|
|
description = "CloneList specifies the list of source resource used to populate each generated resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesGenerateCloneList");
|
|
};
|
|
"data" = mkOption {
|
|
description = "Data provides the resource declaration used to populate each generated resource.\nAt most one of Data or Clone must be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"orphanDownstreamOnPolicyDelete" = mkOption {
|
|
description = "OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated\nthem is deleted with synchronization enabled. This option is only applicable to generate rules of the data type.\nSee https://kyverno.io/docs/writing-policies/generate/#data-examples.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"synchronize" = mkOption {
|
|
description = "Synchronize controls if generated resources should be kept in-sync with their source resource.\nIf Synchronize is set to \"true\" changes to generated resources will be overwritten with resource\ndata from Data or the resource specified in the Clone declaration.\nOptional. Defaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"clone" = mkOverride 1002 null;
|
|
"cloneList" = mkOverride 1002 null;
|
|
"data" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"orphanDownstreamOnPolicyDelete" = mkOverride 1002 null;
|
|
"synchronize" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesGenerateClone" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name specifies name of the resource.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesGenerateCloneList" = {
|
|
options = {
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels`.\nwildcard characters are not supported.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesGenerateCloneListSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"kinds" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesGenerateCloneListSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesGenerateCloneListSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesGenerateCloneListSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutate" = {
|
|
options = {
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies mutation rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeach")
|
|
);
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"targets" = mkOption {
|
|
description = "Targets defines the target resources to be mutated.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargets" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"foreach" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"targets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeach" = {
|
|
options = {
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"order" = mkOption {
|
|
description = "Order defines the iteration order on the list.\nCan be Ascending to iterate from first to last element or Descending to iterate in from last to first element.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"context" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"order" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargets" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesMutateTargetsContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidate" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"cel" = mkOption {
|
|
description = "CEL allows validation checks using the Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/).";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCel");
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateDeny");
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies validate rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeach")
|
|
);
|
|
};
|
|
"manifests" = mkOption {
|
|
description = "Manifest specifies conditions for manifest verification";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifests");
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message specifies a custom message to be displayed on failure.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity applies exemptions for Kubernetes Pod Security admission\nby specifying exclusions for Pod Security Standards controls.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidatePodSecurity");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"cel" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"manifests" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCel" = {
|
|
options = {
|
|
"auditAnnotations" = mkOption {
|
|
description = "AuditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelAuditAnnotations")
|
|
);
|
|
};
|
|
"expressions" = mkOption {
|
|
description = "Expressions is a list of CELExpression types.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelExpressions")
|
|
);
|
|
};
|
|
"paramKind" = mkOption {
|
|
description = "ParamKind is a tuple of Group Kind and Version.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelParamKind");
|
|
};
|
|
"paramRef" = mkOption {
|
|
description = "ParamRef references a parameter resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelParamRef");
|
|
};
|
|
"variables" = mkOption {
|
|
description = "Variables contain definitions of variables that can be used in composition of other expressions.\nEach variable is defined as a named CEL expression.\nThe variables defined here will be available under `variables` in other expressions of the policy.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelVariables"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"auditAnnotations" = mkOverride 1002 null;
|
|
"expressions" = mkOverride 1002 null;
|
|
"paramKind" = mkOverride 1002 null;
|
|
"paramRef" = mkOverride 1002 null;
|
|
"variables" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelAuditAnnotations" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key specifies the audit annotation key. The audit annotation keys of\na ValidatingAdmissionPolicy must be unique. The key must be a qualified\nname ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\n\nThe key is combined with the resource name of the\nValidatingAdmissionPolicy to construct an audit annotation key:\n\"{ValidatingAdmissionPolicy name}/{key}\".\n\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\nand the same audit annotation key, the annotation key will be identical.\nIn this case, the first annotation written with the key will be included\nin the audit event and all subsequent annotations with the same key\nwill be discarded.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"valueExpression" = mkOption {
|
|
description = "valueExpression represents the expression which is evaluated by CEL to\nproduce an audit annotation value. The expression must evaluate to either\na string or null value. If the expression evaluates to a string, the\naudit annotation is included with the string value. If the expression\nevaluates to null or empty string the audit annotation will be omitted.\nThe valueExpression may be no longer than 5kb in length.\nIf the result of the valueExpression is more than 10kb in length, it\nwill be truncated to 10kb.\n\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an\nAPI request, then the valueExpression will be evaluated for\neach binding. All unique values produced by the valueExpressions\nwill be joined together in a comma-separated list.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelExpressions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests.\n- 'oldObject' - The existing object. The value is null for CREATE requests.\n- 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n- 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n- 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\nobject. No other metadata properties are accessible.\n\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\nAccessible property names are escaped according to the following rules when accessed in the expression:\n- '__' escapes to '__underscores__'\n- '.' escapes to '__dot__'\n- '-' escapes to '__dash__'\n- '/' escapes to '__slash__'\n- Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\nConcatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message represents the message displayed when validation fails. The message is required if the Expression contains\nline breaks. The message must not contain line breaks.\nIf unset, the message is \"failed rule: {Rule}\".\ne.g. \"must be a URL with the host matching spec.host\"\nIf the Expression contains line breaks. Message is required.\nThe message must not contain line breaks.\nIf unset, the message is \"failed Expression: {Expression}\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"messageExpression" = mkOption {
|
|
description = "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\nSince messageExpression is used as a failure message, it must evaluate to a string.\nIf both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\nIf messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\nas if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\nthat contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\nthe fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\nmessageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\nExample:\n\"object.x must be less than max (\"+string(params.max)+\")\"";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "Reason represents a machine-readable description of why this validation failed.\nIf this is the first validation in the list to fail, this reason, as well as the\ncorresponding HTTP response code, are used in the\nHTTP response to the client.\nThe currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\nIf not set, StatusReasonInvalid is used in the response to the client.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"message" = mkOverride 1002 null;
|
|
"messageExpression" = mkOverride 1002 null;
|
|
"reason" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelParamKind" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion is the API group version the resources belong to.\nIn format of \"group/version\".\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is the API kind the resources belong to.\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelParamRef" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "`name` is the name of the resource being referenced.\n\n\n`name` and `selector` are mutually exclusive properties. If one is set,\nthe other must be unset.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "namespace is the namespace of the referenced resource. Allows limiting\nthe search for params to a specific namespace. Applies to both `name` and\n`selector` fields.\n\n\nA per-namespace parameter may be used by specifying a namespace-scoped\n`paramKind` in the policy and leaving this field empty.\n\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\nfield results in a configuration error.\n\n\n- If `paramKind` is namespace-scoped, the namespace of the object being\nevaluated for admission will be used when this field is left unset. Take\ncare that if this is left empty the binding must not match any cluster-scoped\nresources, which will result in an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"parameterNotFoundAction" = mkOption {
|
|
description = "`parameterNotFoundAction` controls the behavior of the binding when the resource\nexists, and name or selector is valid, but there are no parameters\nmatched by the binding. If the value is set to `Allow`, then no\nmatched parameters will be treated as successful validation by the binding.\nIf set to `Deny`, then no matched parameters will be subject to the\n`failurePolicy` of the policy.\n\n\nAllowed values are `Allow` or `Deny`\nDefault to `Deny`";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "selector can be used to match multiple param objects based on their labels.\nSupply selector: {} to match all resources of the ParamKind.\n\n\nIf multiple params are found, they are all evaluated with the policy expressions\nand the results are ANDed together.\n\n\nOne of `name` or `selector` must be set, but `name` and `selector` are\nmutually exclusive properties. If one is set, the other must be unset.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelParamRefSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"parameterNotFoundAction" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelParamRefSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelParamRefSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelParamRefSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateCelVariables" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression is the expression that will be evaluated as the value of the variable.\nThe CEL expression has access to the same identifiers as the CEL expressions in Validation.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\nThe variable can be accessed in other expressions through `variables`\nFor example, if name is \"foo\", the variable will be available as `variables.foo`";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateDenyConditions");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateDenyConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateDenyConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateDenyConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateDenyConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateDenyConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeach" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachDeny");
|
|
};
|
|
"elementScope" = mkOption {
|
|
description = "ElementScope specifies whether to use the current list element as the scope for validation. Defaults to \"true\" if not specified.\nWhen set to \"false\", \"request.object\" is used as the validation scope within the foreach\nblock to allow referencing other elements in the subtree.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"elementScope" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachPreconditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachPreconditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifests" = {
|
|
options = {
|
|
"annotationDomain" = mkOption {
|
|
description = "AnnotationDomain is custom domain of annotation for message and signature. Default is \"cosign.sigstore.dev\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestors")
|
|
);
|
|
};
|
|
"dryRun" = mkOption {
|
|
description = "DryRun configuration";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsDryRun"
|
|
);
|
|
};
|
|
"ignoreFields" = mkOption {
|
|
description = "Fields which will be ignored while comparing manifests.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsIgnoreFields")
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for resource bundle reference.\nThe repository can be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotationDomain" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"dryRun" = mkOverride 1002 null;
|
|
"ignoreFields" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsDryRun" = {
|
|
options = {
|
|
"enable" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"enable" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsIgnoreFields" = {
|
|
options = {
|
|
"fields" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"objects" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsIgnoreFieldsObjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"fields" = mkOverride 1002 null;
|
|
"objects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidateManifestsIgnoreFieldsObjects" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"group" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidatePodSecurity" = {
|
|
options = {
|
|
"exclude" = mkOption {
|
|
description = "Exclude specifies the Pod Security Standard controls to be excluded.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesValidatePodSecurityExclude")
|
|
);
|
|
};
|
|
"level" = mkOption {
|
|
description = "Level defines the Pod Security Standard level to be applied to workloads.\nAllowed values are privileged, baseline, and restricted.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "Version defines the Pod Security Standard versions that Kubernetes supports.\nAllowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"exclude" = mkOverride 1002 null;
|
|
"level" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesValidatePodSecurityExclude" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImages" = {
|
|
options = {
|
|
"attestations" = mkOption {
|
|
description = "Attestations are optional checks for signed in-toto Statements used to verify the image.\nSee https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the\nOCI registry and decodes them into a list of Statement declarations.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestations")
|
|
);
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestors")
|
|
);
|
|
};
|
|
"imageReferences" = mkOption {
|
|
description = "ImageReferences is a list of matching image reference patterns. At least one pattern in the\nlist must match the image for the rule to apply. Each image reference consists of a registry\naddress (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesImageRegistryCredentials"
|
|
);
|
|
};
|
|
"mutateDigest" = mkOption {
|
|
description = "MutateDigest enables replacement of image tags with digests.\nDefaults to true.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule.\nIf specified Repository will override the default OCI image repository configured for the installation.\nThe repository can also be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"required" = mkOption {
|
|
description = "Required validates that images are verified i.e. have matched passed a signature or attestation check.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"skipImageReferences" = mkOption {
|
|
description = "SkipImageReferences is a list of matching image reference patterns that should be skipped.\nAt least one pattern in the list must match the image for the rule to be skipped. Each image reference\nconsists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type specifies the method of signature validation. The allowed options\nare Cosign and Notary. By default Cosign is used if a type is not specified.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"useCache" = mkOption {
|
|
description = "UseCache enables caching of image verify responses for this rule";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"verifyDigest" = mkOption {
|
|
description = "VerifyDigest validates that images have a digest.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"attestations" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"imageReferences" = mkOverride 1002 null;
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"mutateDigest" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
"required" = mkOverride 1002 null;
|
|
"skipImageReferences" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
"useCache" = mkOverride 1002 null;
|
|
"verifyDigest" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestations" = {
|
|
options = {
|
|
"attestors" = mkOption {
|
|
description = "Attestors specify the required attestors (i.e. authorities).";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestors"
|
|
)
|
|
);
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to verify attributes within a Predicate. If no Conditions are specified\nthe attestation check is satisfied as long there are predicates that match the predicate type.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsConditions"
|
|
)
|
|
);
|
|
};
|
|
"predicateType" = mkOption {
|
|
description = "Deprecated in favour of 'Type', to be removed soon";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type defines the type of attestation contained within the Statement.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"attestors" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"predicateType" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsConditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsConditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestationsConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecRulesVerifyImagesImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecValidationFailureActionOverrides" = {
|
|
options = {
|
|
"action" = mkOption {
|
|
description = "ValidationFailureAction defines the policy validation failure action";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "A label selector is a label query over a set of resources. The result of matchLabels and\nmatchExpressions are ANDed. An empty label selector matches all objects. A null\nlabel selector matches no objects.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecValidationFailureActionOverridesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"action" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecValidationFailureActionOverridesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicySpecValidationFailureActionOverridesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecValidationFailureActionOverridesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecWebhookConfiguration" = {
|
|
options = {
|
|
"matchConditions" = mkOption {
|
|
description = "MatchCondition configures admission webhook matchConditions.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicySpecWebhookConfigurationMatchConditions"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchConditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicySpecWebhookConfigurationMatchConditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatus" = {
|
|
options = {
|
|
"autogen" = mkOption {
|
|
description = "AutogenStatus contains autogen status information.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogen");
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusConditions"));
|
|
};
|
|
"ready" = mkOption {
|
|
description = "Deprecated in favor of Conditions";
|
|
type = types.bool;
|
|
};
|
|
"rulecount" = mkOption {
|
|
description = "RuleCountStatus contains four variables which describes counts for\nvalidate, generate, mutate and verify images rules";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusRulecount");
|
|
};
|
|
"validatingadmissionpolicy" = mkOption {
|
|
description = "ValidatingAdmissionPolicy contains status information";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusValidatingadmissionpolicy");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"autogen" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"rulecount" = mkOverride 1002 null;
|
|
"validatingadmissionpolicy" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogen" = {
|
|
options = {
|
|
"rules" = mkOption {
|
|
description = "Rules is a list of Rule instances. It contains auto generated rules added for pod controllers";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRules" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"rules" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRules" = {
|
|
options = {
|
|
"celPreconditions" = mkOption {
|
|
description = "CELPreconditions are used to determine if a policy rule should be applied by evaluating a\nset of CEL conditions. It can only be used with the validate.cel subrule";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesCelPreconditions"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when this policy rule should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExclude");
|
|
};
|
|
"generate" = mkOption {
|
|
description = "Generation is used to create new resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesGenerate");
|
|
};
|
|
"imageExtractors" = mkOption {
|
|
description = "ImageExtractors defines a mapping from kinds to ImageExtractorConfigs.\nThis config is only valid for verifyImages rules.";
|
|
type = types.nullOr (types.loaOf types.attrs);
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when this policy rule should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatch");
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Mutation is used to modify matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutate");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is a label to identify the rule, It must be unique within the policy.";
|
|
type = types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"skipBackgroundRequests" = mkOption {
|
|
description = "SkipBackgroundRequests bypasses admission requests that are sent by the background controller.\nThe default value is set to \"true\", it must be set to \"false\" to apply\ngenerate and mutateExisting rules to those requests.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Validation is used to validate matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidate");
|
|
};
|
|
"verifyImages" = mkOption {
|
|
description = "VerifyImages is used to verify image signatures and mutate them to add a digest";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImages")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"celPreconditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"generate" = mkOverride 1002 null;
|
|
"imageExtractors" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
"mutate" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"skipBackgroundRequests" = mkOverride 1002 null;
|
|
"validate" = mkOverride 1002 null;
|
|
"verifyImages" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesCelPreconditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAny")
|
|
);
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeResources"
|
|
);
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllResources"
|
|
);
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnyResources"
|
|
);
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesExcludeSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesGenerate" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"clone" = mkOption {
|
|
description = "Clone specifies the source resource used to populate each generated resource.\nAt most one of Data or Clone can be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesGenerateClone");
|
|
};
|
|
"cloneList" = mkOption {
|
|
description = "CloneList specifies the list of source resource used to populate each generated resource.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesGenerateCloneList"
|
|
);
|
|
};
|
|
"data" = mkOption {
|
|
description = "Data provides the resource declaration used to populate each generated resource.\nAt most one of Data or Clone must be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"orphanDownstreamOnPolicyDelete" = mkOption {
|
|
description = "OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated\nthem is deleted with synchronization enabled. This option is only applicable to generate rules of the data type.\nSee https://kyverno.io/docs/writing-policies/generate/#data-examples.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"synchronize" = mkOption {
|
|
description = "Synchronize controls if generated resources should be kept in-sync with their source resource.\nIf Synchronize is set to \"true\" changes to generated resources will be overwritten with resource\ndata from Data or the resource specified in the Clone declaration.\nOptional. Defaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"clone" = mkOverride 1002 null;
|
|
"cloneList" = mkOverride 1002 null;
|
|
"data" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"orphanDownstreamOnPolicyDelete" = mkOverride 1002 null;
|
|
"synchronize" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesGenerateClone" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name specifies name of the resource.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesGenerateCloneList" = {
|
|
options = {
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels`.\nwildcard characters are not supported.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesGenerateCloneListSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"kinds" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesGenerateCloneListSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesGenerateCloneListSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesGenerateCloneListSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAny")
|
|
);
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchResources"
|
|
);
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllResources"
|
|
);
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnyResources"
|
|
);
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMatchSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutate" = {
|
|
options = {
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies mutation rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeach")
|
|
);
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"targets" = mkOption {
|
|
description = "Targets defines the target resources to be mutated.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargets"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"foreach" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"targets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeach" = {
|
|
options = {
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"order" = mkOption {
|
|
description = "Order defines the iteration order on the list.\nCan be Ascending to iterate from first to last element or Descending to iterate in from last to first element.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"context" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"order" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargets" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesMutateTargetsContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidate" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"cel" = mkOption {
|
|
description = "CEL allows validation checks using the Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/).";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCel");
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateDeny");
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies validate rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeach")
|
|
);
|
|
};
|
|
"manifests" = mkOption {
|
|
description = "Manifest specifies conditions for manifest verification";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifests"
|
|
);
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message specifies a custom message to be displayed on failure.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity applies exemptions for Kubernetes Pod Security admission\nby specifying exclusions for Pod Security Standards controls.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidatePodSecurity"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"cel" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"manifests" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCel" = {
|
|
options = {
|
|
"auditAnnotations" = mkOption {
|
|
description = "AuditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelAuditAnnotations"
|
|
)
|
|
);
|
|
};
|
|
"expressions" = mkOption {
|
|
description = "Expressions is a list of CELExpression types.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelExpressions"
|
|
)
|
|
);
|
|
};
|
|
"paramKind" = mkOption {
|
|
description = "ParamKind is a tuple of Group Kind and Version.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelParamKind"
|
|
);
|
|
};
|
|
"paramRef" = mkOption {
|
|
description = "ParamRef references a parameter resource.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelParamRef"
|
|
);
|
|
};
|
|
"variables" = mkOption {
|
|
description = "Variables contain definitions of variables that can be used in composition of other expressions.\nEach variable is defined as a named CEL expression.\nThe variables defined here will be available under `variables` in other expressions of the policy.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelVariables"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"auditAnnotations" = mkOverride 1002 null;
|
|
"expressions" = mkOverride 1002 null;
|
|
"paramKind" = mkOverride 1002 null;
|
|
"paramRef" = mkOverride 1002 null;
|
|
"variables" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelAuditAnnotations" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key specifies the audit annotation key. The audit annotation keys of\na ValidatingAdmissionPolicy must be unique. The key must be a qualified\nname ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\n\nThe key is combined with the resource name of the\nValidatingAdmissionPolicy to construct an audit annotation key:\n\"{ValidatingAdmissionPolicy name}/{key}\".\n\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\nand the same audit annotation key, the annotation key will be identical.\nIn this case, the first annotation written with the key will be included\nin the audit event and all subsequent annotations with the same key\nwill be discarded.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"valueExpression" = mkOption {
|
|
description = "valueExpression represents the expression which is evaluated by CEL to\nproduce an audit annotation value. The expression must evaluate to either\na string or null value. If the expression evaluates to a string, the\naudit annotation is included with the string value. If the expression\nevaluates to null or empty string the audit annotation will be omitted.\nThe valueExpression may be no longer than 5kb in length.\nIf the result of the valueExpression is more than 10kb in length, it\nwill be truncated to 10kb.\n\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an\nAPI request, then the valueExpression will be evaluated for\neach binding. All unique values produced by the valueExpressions\nwill be joined together in a comma-separated list.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelExpressions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests.\n- 'oldObject' - The existing object. The value is null for CREATE requests.\n- 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n- 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n- 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\nobject. No other metadata properties are accessible.\n\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\nAccessible property names are escaped according to the following rules when accessed in the expression:\n- '__' escapes to '__underscores__'\n- '.' escapes to '__dot__'\n- '-' escapes to '__dash__'\n- '/' escapes to '__slash__'\n- Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\nConcatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message represents the message displayed when validation fails. The message is required if the Expression contains\nline breaks. The message must not contain line breaks.\nIf unset, the message is \"failed rule: {Rule}\".\ne.g. \"must be a URL with the host matching spec.host\"\nIf the Expression contains line breaks. Message is required.\nThe message must not contain line breaks.\nIf unset, the message is \"failed Expression: {Expression}\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"messageExpression" = mkOption {
|
|
description = "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\nSince messageExpression is used as a failure message, it must evaluate to a string.\nIf both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\nIf messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\nas if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\nthat contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\nthe fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\nmessageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\nExample:\n\"object.x must be less than max (\"+string(params.max)+\")\"";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "Reason represents a machine-readable description of why this validation failed.\nIf this is the first validation in the list to fail, this reason, as well as the\ncorresponding HTTP response code, are used in the\nHTTP response to the client.\nThe currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\nIf not set, StatusReasonInvalid is used in the response to the client.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"message" = mkOverride 1002 null;
|
|
"messageExpression" = mkOverride 1002 null;
|
|
"reason" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelParamKind" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion is the API group version the resources belong to.\nIn format of \"group/version\".\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is the API kind the resources belong to.\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelParamRef" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "`name` is the name of the resource being referenced.\n\n\n`name` and `selector` are mutually exclusive properties. If one is set,\nthe other must be unset.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "namespace is the namespace of the referenced resource. Allows limiting\nthe search for params to a specific namespace. Applies to both `name` and\n`selector` fields.\n\n\nA per-namespace parameter may be used by specifying a namespace-scoped\n`paramKind` in the policy and leaving this field empty.\n\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\nfield results in a configuration error.\n\n\n- If `paramKind` is namespace-scoped, the namespace of the object being\nevaluated for admission will be used when this field is left unset. Take\ncare that if this is left empty the binding must not match any cluster-scoped\nresources, which will result in an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"parameterNotFoundAction" = mkOption {
|
|
description = "`parameterNotFoundAction` controls the behavior of the binding when the resource\nexists, and name or selector is valid, but there are no parameters\nmatched by the binding. If the value is set to `Allow`, then no\nmatched parameters will be treated as successful validation by the binding.\nIf set to `Deny`, then no matched parameters will be subject to the\n`failurePolicy` of the policy.\n\n\nAllowed values are `Allow` or `Deny`\nDefault to `Deny`";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "selector can be used to match multiple param objects based on their labels.\nSupply selector: {} to match all resources of the ParamKind.\n\n\nIf multiple params are found, they are all evaluated with the policy expressions\nand the results are ANDed together.\n\n\nOne of `name` or `selector` must be set, but `name` and `selector` are\nmutually exclusive properties. If one is set, the other must be unset.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelParamRefSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"parameterNotFoundAction" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelParamRefSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelParamRefSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelParamRefSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateCelVariables" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression is the expression that will be evaluated as the value of the variable.\nThe CEL expression has access to the same identifiers as the CEL expressions in Validation.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\nThe variable can be accessed in other expressions through `variables`\nFor example, if name is \"foo\", the variable will be available as `variables.foo`";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeach" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachDeny"
|
|
);
|
|
};
|
|
"elementScope" = mkOption {
|
|
description = "ElementScope specifies whether to use the current list element as the scope for validation. Defaults to \"true\" if not specified.\nWhen set to \"false\", \"request.object\" is used as the validation scope within the foreach\nblock to allow referencing other elements in the subtree.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"elementScope" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifests" = {
|
|
options = {
|
|
"annotationDomain" = mkOption {
|
|
description = "AnnotationDomain is custom domain of annotation for message and signature. Default is \"cosign.sigstore.dev\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestors"
|
|
)
|
|
);
|
|
};
|
|
"dryRun" = mkOption {
|
|
description = "DryRun configuration";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsDryRun"
|
|
);
|
|
};
|
|
"ignoreFields" = mkOption {
|
|
description = "Fields which will be ignored while comparing manifests.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsIgnoreFields"
|
|
)
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for resource bundle reference.\nThe repository can be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotationDomain" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"dryRun" = mkOverride 1002 null;
|
|
"ignoreFields" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsDryRun" = {
|
|
options = {
|
|
"enable" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"enable" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsIgnoreFields" = {
|
|
options = {
|
|
"fields" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"objects" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsIgnoreFieldsObjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"fields" = mkOverride 1002 null;
|
|
"objects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidateManifestsIgnoreFieldsObjects" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"group" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidatePodSecurity" = {
|
|
options = {
|
|
"exclude" = mkOption {
|
|
description = "Exclude specifies the Pod Security Standard controls to be excluded.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidatePodSecurityExclude"
|
|
)
|
|
);
|
|
};
|
|
"level" = mkOption {
|
|
description = "Level defines the Pod Security Standard level to be applied to workloads.\nAllowed values are privileged, baseline, and restricted.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "Version defines the Pod Security Standard versions that Kubernetes supports.\nAllowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"exclude" = mkOverride 1002 null;
|
|
"level" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesValidatePodSecurityExclude" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImages" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "Deprecated.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"annotations" = mkOption {
|
|
description = "Deprecated. Use annotations per Attestor instead.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestations" = mkOption {
|
|
description = "Attestations are optional checks for signed in-toto Statements used to verify the image.\nSee https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the\nOCI registry and decodes them into a list of Statement declarations.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestations"
|
|
)
|
|
);
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestors")
|
|
);
|
|
};
|
|
"image" = mkOption {
|
|
description = "Deprecated. Use ImageReferences instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"imageReferences" = mkOption {
|
|
description = "ImageReferences is a list of matching image reference patterns. At least one pattern in the\nlist must match the image for the rule to apply. Each image reference consists of a registry\naddress (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesImageRegistryCredentials"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"key" = mkOption {
|
|
description = "Deprecated. Use StaticKeyAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"mutateDigest" = mkOption {
|
|
description = "MutateDigest enables replacement of image tags with digests.\nDefaults to true.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule.\nIf specified Repository will override the default OCI image repository configured for the installation.\nThe repository can also be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"required" = mkOption {
|
|
description = "Required validates that images are verified i.e. have matched passed a signature or attestation check.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"skipImageReferences" = mkOption {
|
|
description = "SkipImageReferences is a list of matching image reference patterns that should be skipped.\nAt least one pattern in the list must match the image for the rule to be skipped. Each image reference\nconsists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type specifies the method of signature validation. The allowed options\nare Cosign and Notary. By default Cosign is used if a type is not specified.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"useCache" = mkOption {
|
|
description = "UseCache enables caching of image verify responses for this rule.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"verifyDigest" = mkOption {
|
|
description = "VerifyDigest validates that images have a digest.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestations" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"image" = mkOverride 1002 null;
|
|
"imageReferences" = mkOverride 1002 null;
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"key" = mkOverride 1002 null;
|
|
"mutateDigest" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
"required" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"skipImageReferences" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
"useCache" = mkOverride 1002 null;
|
|
"verifyDigest" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestations" = {
|
|
options = {
|
|
"attestors" = mkOption {
|
|
description = "Attestors specify the required attestors (i.e. authorities).";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestors"
|
|
)
|
|
);
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to verify attributes within a Predicate. If no Conditions are specified\nthe attestation check is satisfied as long there are predicates that match the predicate type.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditions"
|
|
)
|
|
);
|
|
};
|
|
"predicateType" = mkOption {
|
|
description = "Deprecated in favour of 'Type', to be removed soon";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type defines the type of attestation contained within the Statement.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"attestors" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"predicateType" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusAutogenRulesVerifyImagesImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusRulecount" = {
|
|
options = {
|
|
"generate" = mkOption {
|
|
description = "Count for generate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Count for mutate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Count for validate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"verifyimages" = mkOption {
|
|
description = "Count for verify image rules in policy";
|
|
type = types.int;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.ClusterPolicyStatusValidatingadmissionpolicy" = {
|
|
options = {
|
|
"generated" = mkOption {
|
|
description = "Generated indicates whether a validating admission policy is generated from the policy or not";
|
|
type = types.bool;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is a human readable message indicating details about the generation of validating admission policy\nIt is an empty string when validating admission policy is successfully generated.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.Policy" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec defines policy behaviors and contains one or more rules.";
|
|
type = submoduleOf "kyverno.io.v2beta1.PolicySpec";
|
|
};
|
|
"status" = mkOption {
|
|
description = "Status contains policy runtime data.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatus");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
"status" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyException" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"metadata" = mkOption {
|
|
description = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata";
|
|
type = types.nullOr (globalSubmoduleOf "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta");
|
|
};
|
|
"spec" = mkOption {
|
|
description = "Spec declares policy exception behaviors.";
|
|
type = submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpec";
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"metadata" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpec" = {
|
|
options = {
|
|
"background" = mkOption {
|
|
description = "Background controls if exceptions are applied to existing policies during a background scan.\nOptional. Default value is \"true\". The value must be set to \"false\" if the policy rule\nuses variables that are only available in the admission review request (e.g. user name).";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to determine if a resource applies to the exception by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecConditions");
|
|
};
|
|
"exceptions" = mkOption {
|
|
description = "Exceptions is a list policy/rules to be excluded";
|
|
type = types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecExceptions");
|
|
};
|
|
"match" = mkOption {
|
|
description = "Match defines match clause used to check if a resource applies to the exception";
|
|
type = submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatch";
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity specifies the Pod Security Standard controls to be excluded.\nApplicable only to policies that have validate.podSecurity subrule.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecPodSecurity")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"background" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecExceptions" = {
|
|
options = {
|
|
"policyName" = mkOption {
|
|
description = "PolicyName identifies the policy to which the exception is applied.\nThe policy name uses the format <namespace>/<name> unless it\nreferences a ClusterPolicy.";
|
|
type = types.str;
|
|
};
|
|
"ruleNames" = mkOption {
|
|
description = "RuleNames identifies the rules to which the exception is applied.";
|
|
type = types.listOf types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyExceptionSpecMatchAllSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyExceptionSpecMatchAnySubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyExceptionSpecMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyExceptionSpecPodSecurity" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpec" = {
|
|
options = {
|
|
"admission" = mkOption {
|
|
description = "Admission controls if rules are applied during admission.\nOptional. Default value is \"true\".";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"applyRules" = mkOption {
|
|
description = "ApplyRules controls how rules in a policy are applied. Rule are processed in\nthe order of declaration. When set to `One` processing stops after a rule has\nbeen applied i.e. the rule matches and results in a pass, fail, or error. When\nset to `All` all rules in the policy are processed. The default is `All`.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"background" = mkOption {
|
|
description = "Background controls if rules are applied to existing resources during a background scan.\nOptional. Default value is \"true\". The value must be set to \"false\" if the policy rule\nuses variables that are only available in the admission review request (e.g. user name).";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"failurePolicy" = mkOption {
|
|
description = "FailurePolicy defines how unexpected policy errors and webhook response timeout errors are handled.\nRules within the same policy share the same failure behavior.\nAllowed values are Ignore or Fail. Defaults to Fail.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"generateExisting" = mkOption {
|
|
description = "GenerateExisting controls whether to trigger generate rule in existing resources\nIf is set to \"true\" generate rule will be triggered and applied to existing matched resources.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"generateExistingOnPolicyUpdate" = mkOption {
|
|
description = "Deprecated, use generateExisting instead";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"mutateExistingOnPolicyUpdate" = mkOption {
|
|
description = "MutateExistingOnPolicyUpdate controls if a mutateExisting policy is applied on policy events.\nDefault value is \"false\".";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"rules" = mkOption {
|
|
description = "Rules is a list of Rule instances. A Policy contains multiple rules and\neach rule can validate, mutate, or generate resources.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRules" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"schemaValidation" = mkOption {
|
|
description = "Deprecated.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"useServerSideApply" = mkOption {
|
|
description = "UseServerSideApply controls whether to use server-side apply for generate rules\nIf is set to \"true\" create & update for generate rules will use apply instead of create/update.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validationFailureAction" = mkOption {
|
|
description = "ValidationFailureAction defines if a validation policy rule violation should block\nthe admission review request (enforce), or allow (audit) the admission review request\nand report an error in a policy report. Optional.\nAllowed values are audit or enforce. The default value is \"Audit\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"validationFailureActionOverrides" = mkOption {
|
|
description = "ValidationFailureActionOverrides is a Cluster Policy attribute that specifies ValidationFailureAction\nnamespace-wise. It overrides ValidationFailureAction for the specified namespaces.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecValidationFailureActionOverrides")
|
|
);
|
|
};
|
|
"webhookConfiguration" = mkOption {
|
|
description = "WebhookConfiguration specifies the custom configuration for Kubernetes admission webhookconfiguration.\nRequires Kubernetes 1.27 or later.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecWebhookConfiguration");
|
|
};
|
|
"webhookTimeoutSeconds" = mkOption {
|
|
description = "WebhookTimeoutSeconds specifies the maximum time in seconds allowed to apply this policy.\nAfter the configured time expires, the admission request may fail, or may simply ignore the policy results,\nbased on the failure policy. The default timeout is 10s, the value must be between 1 and 30 seconds.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"admission" = mkOverride 1002 null;
|
|
"applyRules" = mkOverride 1002 null;
|
|
"background" = mkOverride 1002 null;
|
|
"failurePolicy" = mkOverride 1002 null;
|
|
"generateExisting" = mkOverride 1002 null;
|
|
"generateExistingOnPolicyUpdate" = mkOverride 1002 null;
|
|
"mutateExistingOnPolicyUpdate" = mkOverride 1002 null;
|
|
"rules" = mkOverride 1002 null;
|
|
"schemaValidation" = mkOverride 1002 null;
|
|
"useServerSideApply" = mkOverride 1002 null;
|
|
"validationFailureAction" = mkOverride 1002 null;
|
|
"validationFailureActionOverrides" = mkOverride 1002 null;
|
|
"webhookConfiguration" = mkOverride 1002 null;
|
|
"webhookTimeoutSeconds" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRules" = {
|
|
options = {
|
|
"celPreconditions" = mkOption {
|
|
description = "CELPreconditions are used to determine if a policy rule should be applied by evaluating a\nset of CEL conditions. It can only be used with the validate.cel subrule";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesCelPreconditions" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when this policy rule should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExclude");
|
|
};
|
|
"generate" = mkOption {
|
|
description = "Generation is used to create new resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesGenerate");
|
|
};
|
|
"imageExtractors" = mkOption {
|
|
description = "ImageExtractors defines a mapping from kinds to ImageExtractorConfigs.\nThis config is only valid for verifyImages rules.";
|
|
type = types.nullOr (types.loaOf types.attrs);
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when this policy rule should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatch");
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Mutation is used to modify matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutate");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is a label to identify the rule, It must be unique within the policy.";
|
|
type = types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesPreconditions");
|
|
};
|
|
"skipBackgroundRequests" = mkOption {
|
|
description = "SkipBackgroundRequests bypasses admission requests that are sent by the background controller.\nThe default value is set to \"true\", it must be set to \"false\" to apply\ngenerate and mutateExisting rules to those requests.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Validation is used to validate matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidate");
|
|
};
|
|
"verifyImages" = mkOption {
|
|
description = "VerifyImages is used to verify image signatures and mutate them to add a digest";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImages"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"celPreconditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"generate" = mkOverride 1002 null;
|
|
"imageExtractors" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
"mutate" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"skipBackgroundRequests" = mkOverride 1002 null;
|
|
"validate" = mkOverride 1002 null;
|
|
"verifyImages" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesCelPreconditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesContextGlobalReference");
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesContextApiCallService");
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesExcludeAllSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesExcludeAnySubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesGenerate" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"clone" = mkOption {
|
|
description = "Clone specifies the source resource used to populate each generated resource.\nAt most one of Data or Clone can be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesGenerateClone");
|
|
};
|
|
"cloneList" = mkOption {
|
|
description = "CloneList specifies the list of source resource used to populate each generated resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesGenerateCloneList");
|
|
};
|
|
"data" = mkOption {
|
|
description = "Data provides the resource declaration used to populate each generated resource.\nAt most one of Data or Clone must be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"orphanDownstreamOnPolicyDelete" = mkOption {
|
|
description = "OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated\nthem is deleted with synchronization enabled. This option is only applicable to generate rules of the data type.\nSee https://kyverno.io/docs/writing-policies/generate/#data-examples.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"synchronize" = mkOption {
|
|
description = "Synchronize controls if generated resources should be kept in-sync with their source resource.\nIf Synchronize is set to \"true\" changes to generated resources will be overwritten with resource\ndata from Data or the resource specified in the Clone declaration.\nOptional. Defaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"clone" = mkOverride 1002 null;
|
|
"cloneList" = mkOverride 1002 null;
|
|
"data" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"orphanDownstreamOnPolicyDelete" = mkOverride 1002 null;
|
|
"synchronize" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesGenerateClone" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name specifies name of the resource.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesGenerateCloneList" = {
|
|
options = {
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels`.\nwildcard characters are not supported.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesGenerateCloneListSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"kinds" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesGenerateCloneListSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesGenerateCloneListSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesGenerateCloneListSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAll"));
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAny"));
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesMatchAllSubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAllResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesMatchAnySubjects" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAnyResourcesSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutate" = {
|
|
options = {
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies mutation rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeach"));
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"targets" = mkOption {
|
|
description = "Targets defines the target resources to be mutated.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesMutateTargets" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"foreach" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"targets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeach" = {
|
|
options = {
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesMutateForeachContext" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"order" = mkOption {
|
|
description = "Order defines the iteration order on the list.\nCan be Ascending to iterate from first to last element or Descending to iterate in from last to first element.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachPreconditions");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"context" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"order" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateForeachPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateTargets" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContext" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesMutateTargetsContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidate" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"cel" = mkOption {
|
|
description = "CEL allows validation checks using the Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/).";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateCel");
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateDeny");
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies validate rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeach")
|
|
);
|
|
};
|
|
"manifests" = mkOption {
|
|
description = "Manifest specifies conditions for manifest verification";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifests");
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message specifies a custom message to be displayed on failure.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity applies exemptions for Kubernetes Pod Security admission\nby specifying exclusions for Pod Security Standards controls.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidatePodSecurity");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"cel" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"manifests" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateCel" = {
|
|
options = {
|
|
"auditAnnotations" = mkOption {
|
|
description = "AuditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateCelAuditAnnotations")
|
|
);
|
|
};
|
|
"expressions" = mkOption {
|
|
description = "Expressions is a list of CELExpression types.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateCelExpressions")
|
|
);
|
|
};
|
|
"paramKind" = mkOption {
|
|
description = "ParamKind is a tuple of Group Kind and Version.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateCelParamKind");
|
|
};
|
|
"paramRef" = mkOption {
|
|
description = "ParamRef references a parameter resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateCelParamRef");
|
|
};
|
|
"variables" = mkOption {
|
|
description = "Variables contain definitions of variables that can be used in composition of other expressions.\nEach variable is defined as a named CEL expression.\nThe variables defined here will be available under `variables` in other expressions of the policy.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesValidateCelVariables" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"auditAnnotations" = mkOverride 1002 null;
|
|
"expressions" = mkOverride 1002 null;
|
|
"paramKind" = mkOverride 1002 null;
|
|
"paramRef" = mkOverride 1002 null;
|
|
"variables" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateCelAuditAnnotations" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key specifies the audit annotation key. The audit annotation keys of\na ValidatingAdmissionPolicy must be unique. The key must be a qualified\nname ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\n\nThe key is combined with the resource name of the\nValidatingAdmissionPolicy to construct an audit annotation key:\n\"{ValidatingAdmissionPolicy name}/{key}\".\n\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\nand the same audit annotation key, the annotation key will be identical.\nIn this case, the first annotation written with the key will be included\nin the audit event and all subsequent annotations with the same key\nwill be discarded.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"valueExpression" = mkOption {
|
|
description = "valueExpression represents the expression which is evaluated by CEL to\nproduce an audit annotation value. The expression must evaluate to either\na string or null value. If the expression evaluates to a string, the\naudit annotation is included with the string value. If the expression\nevaluates to null or empty string the audit annotation will be omitted.\nThe valueExpression may be no longer than 5kb in length.\nIf the result of the valueExpression is more than 10kb in length, it\nwill be truncated to 10kb.\n\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an\nAPI request, then the valueExpression will be evaluated for\neach binding. All unique values produced by the valueExpressions\nwill be joined together in a comma-separated list.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateCelExpressions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests.\n- 'oldObject' - The existing object. The value is null for CREATE requests.\n- 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n- 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n- 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\nobject. No other metadata properties are accessible.\n\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\nAccessible property names are escaped according to the following rules when accessed in the expression:\n- '__' escapes to '__underscores__'\n- '.' escapes to '__dot__'\n- '-' escapes to '__dash__'\n- '/' escapes to '__slash__'\n- Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\nConcatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message represents the message displayed when validation fails. The message is required if the Expression contains\nline breaks. The message must not contain line breaks.\nIf unset, the message is \"failed rule: {Rule}\".\ne.g. \"must be a URL with the host matching spec.host\"\nIf the Expression contains line breaks. Message is required.\nThe message must not contain line breaks.\nIf unset, the message is \"failed Expression: {Expression}\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"messageExpression" = mkOption {
|
|
description = "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\nSince messageExpression is used as a failure message, it must evaluate to a string.\nIf both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\nIf messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\nas if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\nthat contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\nthe fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\nmessageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\nExample:\n\"object.x must be less than max (\"+string(params.max)+\")\"";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "Reason represents a machine-readable description of why this validation failed.\nIf this is the first validation in the list to fail, this reason, as well as the\ncorresponding HTTP response code, are used in the\nHTTP response to the client.\nThe currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\nIf not set, StatusReasonInvalid is used in the response to the client.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"message" = mkOverride 1002 null;
|
|
"messageExpression" = mkOverride 1002 null;
|
|
"reason" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateCelParamKind" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion is the API group version the resources belong to.\nIn format of \"group/version\".\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is the API kind the resources belong to.\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateCelParamRef" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "`name` is the name of the resource being referenced.\n\n\n`name` and `selector` are mutually exclusive properties. If one is set,\nthe other must be unset.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "namespace is the namespace of the referenced resource. Allows limiting\nthe search for params to a specific namespace. Applies to both `name` and\n`selector` fields.\n\n\nA per-namespace parameter may be used by specifying a namespace-scoped\n`paramKind` in the policy and leaving this field empty.\n\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\nfield results in a configuration error.\n\n\n- If `paramKind` is namespace-scoped, the namespace of the object being\nevaluated for admission will be used when this field is left unset. Take\ncare that if this is left empty the binding must not match any cluster-scoped\nresources, which will result in an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"parameterNotFoundAction" = mkOption {
|
|
description = "`parameterNotFoundAction` controls the behavior of the binding when the resource\nexists, and name or selector is valid, but there are no parameters\nmatched by the binding. If the value is set to `Allow`, then no\nmatched parameters will be treated as successful validation by the binding.\nIf set to `Deny`, then no matched parameters will be subject to the\n`failurePolicy` of the policy.\n\n\nAllowed values are `Allow` or `Deny`\nDefault to `Deny`";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "selector can be used to match multiple param objects based on their labels.\nSupply selector: {} to match all resources of the ParamKind.\n\n\nIf multiple params are found, they are all evaluated with the policy expressions\nand the results are ANDed together.\n\n\nOne of `name` or `selector` must be set, but `name` and `selector` are\nmutually exclusive properties. If one is set, the other must be unset.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateCelParamRefSelector");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"parameterNotFoundAction" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateCelParamRefSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateCelParamRefSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateCelParamRefSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateCelVariables" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression is the expression that will be evaluated as the value of the variable.\nThe CEL expression has access to the same identifiers as the CEL expressions in Validation.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\nThe variable can be accessed in other expressions through `variables`\nFor example, if name is \"foo\", the variable will be available as `variables.foo`";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateDenyConditions");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateDenyConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateDenyConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateDenyConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateDenyConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateDenyConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeach" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicySpecRulesValidateForeachContext" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachDeny");
|
|
};
|
|
"elementScope" = mkOption {
|
|
description = "ElementScope specifies whether to use the current list element as the scope for validation. Defaults to \"true\" if not specified.\nWhen set to \"false\", \"request.object\" is used as the validation scope within the foreach\nblock to allow referencing other elements in the subtree.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachPreconditions");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"elementScope" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachPreconditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateForeachPreconditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifests" = {
|
|
options = {
|
|
"annotationDomain" = mkOption {
|
|
description = "AnnotationDomain is custom domain of annotation for message and signature. Default is \"cosign.sigstore.dev\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestors")
|
|
);
|
|
};
|
|
"dryRun" = mkOption {
|
|
description = "DryRun configuration";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsDryRun");
|
|
};
|
|
"ignoreFields" = mkOption {
|
|
description = "Fields which will be ignored while comparing manifests.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsIgnoreFields")
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for resource bundle reference.\nThe repository can be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotationDomain" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"dryRun" = mkOverride 1002 null;
|
|
"ignoreFields" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsDryRun" = {
|
|
options = {
|
|
"enable" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"enable" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsIgnoreFields" = {
|
|
options = {
|
|
"fields" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"objects" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsIgnoreFieldsObjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"fields" = mkOverride 1002 null;
|
|
"objects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidateManifestsIgnoreFieldsObjects" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"group" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidatePodSecurity" = {
|
|
options = {
|
|
"exclude" = mkOption {
|
|
description = "Exclude specifies the Pod Security Standard controls to be excluded.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesValidatePodSecurityExclude")
|
|
);
|
|
};
|
|
"level" = mkOption {
|
|
description = "Level defines the Pod Security Standard level to be applied to workloads.\nAllowed values are privileged, baseline, and restricted.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "Version defines the Pod Security Standard versions that Kubernetes supports.\nAllowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"exclude" = mkOverride 1002 null;
|
|
"level" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesValidatePodSecurityExclude" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImages" = {
|
|
options = {
|
|
"attestations" = mkOption {
|
|
description = "Attestations are optional checks for signed in-toto Statements used to verify the image.\nSee https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the\nOCI registry and decodes them into a list of Statement declarations.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestations")
|
|
);
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestors")
|
|
);
|
|
};
|
|
"imageReferences" = mkOption {
|
|
description = "ImageReferences is a list of matching image reference patterns. At least one pattern in the\nlist must match the image for the rule to apply. Each image reference consists of a registry\naddress (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesImageRegistryCredentials"
|
|
);
|
|
};
|
|
"mutateDigest" = mkOption {
|
|
description = "MutateDigest enables replacement of image tags with digests.\nDefaults to true.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule.\nIf specified Repository will override the default OCI image repository configured for the installation.\nThe repository can also be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"required" = mkOption {
|
|
description = "Required validates that images are verified i.e. have matched passed a signature or attestation check.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"skipImageReferences" = mkOption {
|
|
description = "SkipImageReferences is a list of matching image reference patterns that should be skipped.\nAt least one pattern in the list must match the image for the rule to be skipped. Each image reference\nconsists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type specifies the method of signature validation. The allowed options\nare Cosign and Notary. By default Cosign is used if a type is not specified.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"useCache" = mkOption {
|
|
description = "UseCache enables caching of image verify responses for this rule";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"verifyDigest" = mkOption {
|
|
description = "VerifyDigest validates that images have a digest.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"attestations" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"imageReferences" = mkOverride 1002 null;
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"mutateDigest" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
"required" = mkOverride 1002 null;
|
|
"skipImageReferences" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
"useCache" = mkOverride 1002 null;
|
|
"verifyDigest" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestations" = {
|
|
options = {
|
|
"attestors" = mkOption {
|
|
description = "Attestors specify the required attestors (i.e. authorities).";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestors")
|
|
);
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to verify attributes within a Predicate. If no Conditions are specified\nthe attestation check is satisfied as long there are predicates that match the predicate type.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsConditions")
|
|
);
|
|
};
|
|
"predicateType" = mkOption {
|
|
description = "Deprecated in favour of 'Type', to be removed soon";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type defines the type of attestation contained within the Statement.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"attestors" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"predicateType" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsConditionsAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsConditionsAny")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestationsConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecRulesVerifyImagesImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecValidationFailureActionOverrides" = {
|
|
options = {
|
|
"action" = mkOption {
|
|
description = "ValidationFailureAction defines the policy validation failure action";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "A label selector is a label query over a set of resources. The result of matchLabels and\nmatchExpressions are ANDed. An empty label selector matches all objects. A null\nlabel selector matches no objects.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecValidationFailureActionOverridesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"action" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecValidationFailureActionOverridesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicySpecValidationFailureActionOverridesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecValidationFailureActionOverridesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecWebhookConfiguration" = {
|
|
options = {
|
|
"matchConditions" = mkOption {
|
|
description = "MatchCondition configures admission webhook matchConditions.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.PolicySpecWebhookConfigurationMatchConditions"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchConditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicySpecWebhookConfigurationMatchConditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatus" = {
|
|
options = {
|
|
"autogen" = mkOption {
|
|
description = "AutogenStatus contains autogen status information.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogen");
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusConditions"));
|
|
};
|
|
"ready" = mkOption {
|
|
description = "Deprecated in favor of Conditions";
|
|
type = types.bool;
|
|
};
|
|
"rulecount" = mkOption {
|
|
description = "RuleCountStatus contains four variables which describes counts for\nvalidate, generate, mutate and verify images rules";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusRulecount");
|
|
};
|
|
"validatingadmissionpolicy" = mkOption {
|
|
description = "ValidatingAdmissionPolicy contains status information";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusValidatingadmissionpolicy");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"autogen" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"rulecount" = mkOverride 1002 null;
|
|
"validatingadmissionpolicy" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogen" = {
|
|
options = {
|
|
"rules" = mkOption {
|
|
description = "Rules is a list of Rule instances. It contains auto generated rules added for pod controllers";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRules" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"rules" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRules" = {
|
|
options = {
|
|
"celPreconditions" = mkOption {
|
|
description = "CELPreconditions are used to determine if a policy rule should be applied by evaluating a\nset of CEL conditions. It can only be used with the validate.cel subrule";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesCelPreconditions"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesContext" "name" [ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"exclude" = mkOption {
|
|
description = "ExcludeResources defines when this policy rule should not be applied. The exclude\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the name or role.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExclude");
|
|
};
|
|
"generate" = mkOption {
|
|
description = "Generation is used to create new resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesGenerate");
|
|
};
|
|
"imageExtractors" = mkOption {
|
|
description = "ImageExtractors defines a mapping from kinds to ImageExtractorConfigs.\nThis config is only valid for verifyImages rules.";
|
|
type = types.nullOr (types.loaOf types.attrs);
|
|
};
|
|
"match" = mkOption {
|
|
description = "MatchResources defines when this policy rule should be applied. The match\ncriteria can include resource information (e.g. kind, name, namespace, labels)\nand admission review request information like the user name or role.\nAt least one kind is required.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatch");
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Mutation is used to modify matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutate");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is a label to identify the rule, It must be unique within the policy.";
|
|
type = types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"skipBackgroundRequests" = mkOption {
|
|
description = "SkipBackgroundRequests bypasses admission requests that are sent by the background controller.\nThe default value is set to \"true\", it must be set to \"false\" to apply\ngenerate and mutateExisting rules to those requests.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Validation is used to validate matching resources.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidate");
|
|
};
|
|
"verifyImages" = mkOption {
|
|
description = "VerifyImages is used to verify image signatures and mutate them to add a digest";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImages")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"celPreconditions" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"exclude" = mkOverride 1002 null;
|
|
"generate" = mkOverride 1002 null;
|
|
"imageExtractors" = mkOverride 1002 null;
|
|
"match" = mkOverride 1002 null;
|
|
"mutate" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"skipBackgroundRequests" = mkOverride 1002 null;
|
|
"validate" = mkOverride 1002 null;
|
|
"verifyImages" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesCelPreconditions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\nCEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n\n'object' - The object from the incoming request. The value is null for DELETE requests.\n'oldObject' - The existing object. The value is null for CREATE requests.\n'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is an identifier for this match condition, used for strategic merging of MatchConditions,\nas well as providing an identifier for logging purposes. A good name should be descriptive of\nthe associated expression.\nName must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\nmust start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or\n'123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\noptional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesContextApiCall");
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesContextConfigMap");
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesContextImageRegistry");
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesContextVariable");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesContextApiCallData")
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExclude" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAny")
|
|
);
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesExcludeSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesGenerate" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"clone" = mkOption {
|
|
description = "Clone specifies the source resource used to populate each generated resource.\nAt most one of Data or Clone can be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesGenerateClone");
|
|
};
|
|
"cloneList" = mkOption {
|
|
description = "CloneList specifies the list of source resource used to populate each generated resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesGenerateCloneList");
|
|
};
|
|
"data" = mkOption {
|
|
description = "Data provides the resource declaration used to populate each generated resource.\nAt most one of Data or Clone must be specified. If neither are provided, the generated\nresource will be created with default data only.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"orphanDownstreamOnPolicyDelete" = mkOption {
|
|
description = "OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated\nthem is deleted with synchronization enabled. This option is only applicable to generate rules of the data type.\nSee https://kyverno.io/docs/writing-policies/generate/#data-examples.\nDefaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"synchronize" = mkOption {
|
|
description = "Synchronize controls if generated resources should be kept in-sync with their source resource.\nIf Synchronize is set to \"true\" changes to generated resources will be overwritten with resource\ndata from Data or the resource specified in the Clone declaration.\nOptional. Defaults to \"false\" if not specified.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"clone" = mkOverride 1002 null;
|
|
"cloneList" = mkOverride 1002 null;
|
|
"data" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"orphanDownstreamOnPolicyDelete" = mkOverride 1002 null;
|
|
"synchronize" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesGenerateClone" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name specifies name of the resource.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesGenerateCloneList" = {
|
|
options = {
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies source resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels`.\nwildcard characters are not supported.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesGenerateCloneListSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"kinds" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesGenerateCloneListSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesGenerateCloneListSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesGenerateCloneListSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatch" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "All allows specifying resources which will be ANDed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAll")
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "Any allows specifying resources which will be ORed";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAny")
|
|
);
|
|
};
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.\nRequires at least one tag to be specified when under MatchResources.\nSpecifying ResourceDescription directly under match is being deprecated.\nPlease specify under \"any\" or \"all\" instead.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchSubjects" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAll" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllSubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAllSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAny" = {
|
|
options = {
|
|
"clusterRoles" = mkOption {
|
|
description = "ClusterRoles is the list of cluster-wide role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"resources" = mkOption {
|
|
description = "ResourceDescription contains information about the resource being created or modified.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnyResources");
|
|
};
|
|
"roles" = mkOption {
|
|
description = "Roles is the list of namespaced role names for the user.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subjects" = mkOption {
|
|
description = "Subjects is the list of subject names like users, user groups, and service accounts.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnySubjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"clusterRoles" = mkOverride 1002 null;
|
|
"resources" = mkOverride 1002 null;
|
|
"roles" = mkOverride 1002 null;
|
|
"subjects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnyResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnyResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnyResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnyResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnyResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnyResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchAnySubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchResources" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations is a map of annotations (key-value pairs of type string). Annotation keys\nand values support the wildcard characters \"*\" (matches zero or many characters) and\n\"?\" (matches at least one character).";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"kinds" = mkOption {
|
|
description = "Kinds is a list of resource kinds.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the resource. The name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).\nNOTE: \"Name\" is being deprecated in favor of \"Names\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"names" = mkOption {
|
|
description = "Names are the names of the resources. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"namespaceSelector" = mkOption {
|
|
description = "NamespaceSelector is a label selector for the resource namespace. Label keys and values\nin `matchLabels` support the wildcard characters `*` (matches zero or many characters)\nand `?` (matches one character).Wildcards allows writing label selectors like\n[\"storage.k8s.io/*\": \"*\"]. Note that using [\"*\" : \"*\"] matches any key and value but\ndoes not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchResourcesNamespaceSelector"
|
|
);
|
|
};
|
|
"namespaces" = mkOption {
|
|
description = "Namespaces is a list of namespaces names. Each name supports wildcard characters\n\"*\" (matches zero or many characters) and \"?\" (at least one character).";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"operations" = mkOption {
|
|
description = "Operations can contain values [\"CREATE, \"UPDATE\", \"CONNECT\", \"DELETE\"], which are used to match a specific action.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"selector" = mkOption {
|
|
description = "Selector is a label selector. Label keys and values in `matchLabels` support the wildcard\ncharacters `*` (matches zero or many characters) and `?` (matches one character).\nWildcards allows writing label selectors like [\"storage.k8s.io/*\": \"*\"]. Note that\nusing [\"*\" : \"*\"] matches any key and value but does not match an empty label set.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchResourcesSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"kinds" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"names" = mkOverride 1002 null;
|
|
"namespaceSelector" = mkOverride 1002 null;
|
|
"namespaces" = mkOverride 1002 null;
|
|
"operations" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchResourcesNamespaceSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchResourcesNamespaceSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchResourcesNamespaceSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchResourcesSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchResourcesSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchResourcesSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMatchSubjects" = {
|
|
options = {
|
|
"apiGroup" = mkOption {
|
|
description = "APIGroup holds the API group of the referenced subject.\nDefaults to \"\" for ServiceAccount subjects.\nDefaults to \"rbac.authorization.k8s.io\" for User and Group subjects.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\nIf the Authorizer does not recognized the kind value, the Authorizer should report an error.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the object being referenced.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\nthe Authorizer should report an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiGroup" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutate" = {
|
|
options = {
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies mutation rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeach")
|
|
);
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"targets" = mkOption {
|
|
description = "Targets defines the target resources to be mutated.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargets" "name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"foreach" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"targets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeach" = {
|
|
options = {
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"order" = mkOption {
|
|
description = "Order defines the iteration order on the list.\nCan be Ascending to iterate from first to last element or Descending to iterate in from last to first element.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"patchStrategicMerge" = mkOption {
|
|
description = "PatchStrategicMerge is a strategic merge patch used to modify resources.\nSee https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/\nand https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"patchesJson6902" = mkOption {
|
|
description = "PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources.\nSee https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"context" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"order" = mkOverride 1002 null;
|
|
"patchStrategicMerge" = mkOverride 1002 null;
|
|
"patchesJson6902" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachPreconditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachPreconditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargets" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion specifies resource apiVersion.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind specifies resource kind.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name specifies the resource name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace specifies resource namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "Preconditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements. A direct list\nof conditions (without `any` or `all` statements is supported for backwards compatibility but\nwill be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"uid" = mkOption {
|
|
description = "UID specifies the resource uid.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
"uid" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesMutateTargetsContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidate" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"cel" = mkOption {
|
|
description = "CEL allows validation checks using the Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/).";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCel");
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateDeny");
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "ForEach applies validate rules to a list of sub-elements by creating a context for each entry in the list and looping over it to apply the specified logic.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeach")
|
|
);
|
|
};
|
|
"manifests" = mkOption {
|
|
description = "Manifest specifies conditions for manifest verification";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifests");
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message specifies a custom message to be displayed on failure.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"podSecurity" = mkOption {
|
|
description = "PodSecurity applies exemptions for Kubernetes Pod Security admission\nby specifying exclusions for Pod Security Standards controls.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidatePodSecurity");
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"cel" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"manifests" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"podSecurity" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCel" = {
|
|
options = {
|
|
"auditAnnotations" = mkOption {
|
|
description = "AuditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelAuditAnnotations")
|
|
);
|
|
};
|
|
"expressions" = mkOption {
|
|
description = "Expressions is a list of CELExpression types.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelExpressions")
|
|
);
|
|
};
|
|
"paramKind" = mkOption {
|
|
description = "ParamKind is a tuple of Group Kind and Version.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelParamKind");
|
|
};
|
|
"paramRef" = mkOption {
|
|
description = "ParamRef references a parameter resource.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelParamRef");
|
|
};
|
|
"variables" = mkOption {
|
|
description = "Variables contain definitions of variables that can be used in composition of other expressions.\nEach variable is defined as a named CEL expression.\nThe variables defined here will be available under `variables` in other expressions of the policy.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelVariables"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"auditAnnotations" = mkOverride 1002 null;
|
|
"expressions" = mkOverride 1002 null;
|
|
"paramKind" = mkOverride 1002 null;
|
|
"paramRef" = mkOverride 1002 null;
|
|
"variables" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelAuditAnnotations" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key specifies the audit annotation key. The audit annotation keys of\na ValidatingAdmissionPolicy must be unique. The key must be a qualified\nname ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\n\nThe key is combined with the resource name of the\nValidatingAdmissionPolicy to construct an audit annotation key:\n\"{ValidatingAdmissionPolicy name}/{key}\".\n\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\nand the same audit annotation key, the annotation key will be identical.\nIn this case, the first annotation written with the key will be included\nin the audit event and all subsequent annotations with the same key\nwill be discarded.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"valueExpression" = mkOption {
|
|
description = "valueExpression represents the expression which is evaluated by CEL to\nproduce an audit annotation value. The expression must evaluate to either\na string or null value. If the expression evaluates to a string, the\naudit annotation is included with the string value. If the expression\nevaluates to null or empty string the audit annotation will be omitted.\nThe valueExpression may be no longer than 5kb in length.\nIf the result of the valueExpression is more than 10kb in length, it\nwill be truncated to 10kb.\n\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an\nAPI request, then the valueExpression will be evaluated for\neach binding. All unique values produced by the valueExpressions\nwill be joined together in a comma-separated list.\n\n\nRequired.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelExpressions" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression represents the expression which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests.\n- 'oldObject' - The existing object. The value is null for CREATE requests.\n- 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n- 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n- 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\nobject. No other metadata properties are accessible.\n\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\nAccessible property names are escaped according to the following rules when accessed in the expression:\n- '__' escapes to '__underscores__'\n- '.' escapes to '__dot__'\n- '-' escapes to '__dash__'\n- '/' escapes to '__slash__'\n- Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\nConcatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message represents the message displayed when validation fails. The message is required if the Expression contains\nline breaks. The message must not contain line breaks.\nIf unset, the message is \"failed rule: {Rule}\".\ne.g. \"must be a URL with the host matching spec.host\"\nIf the Expression contains line breaks. Message is required.\nThe message must not contain line breaks.\nIf unset, the message is \"failed Expression: {Expression}\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"messageExpression" = mkOption {
|
|
description = "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\nSince messageExpression is used as a failure message, it must evaluate to a string.\nIf both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\nIf messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\nas if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\nthat contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\nthe fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\nmessageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\nExample:\n\"object.x must be less than max (\"+string(params.max)+\")\"";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "Reason represents a machine-readable description of why this validation failed.\nIf this is the first validation in the list to fail, this reason, as well as the\ncorresponding HTTP response code, are used in the\nHTTP response to the client.\nThe currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\nIf not set, StatusReasonInvalid is used in the response to the client.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"message" = mkOverride 1002 null;
|
|
"messageExpression" = mkOverride 1002 null;
|
|
"reason" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelParamKind" = {
|
|
options = {
|
|
"apiVersion" = mkOption {
|
|
description = "APIVersion is the API group version the resources belong to.\nIn format of \"group/version\".\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "Kind is the API kind the resources belong to.\nRequired.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiVersion" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelParamRef" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "`name` is the name of the resource being referenced.\n\n\n`name` and `selector` are mutually exclusive properties. If one is set,\nthe other must be unset.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "namespace is the namespace of the referenced resource. Allows limiting\nthe search for params to a specific namespace. Applies to both `name` and\n`selector` fields.\n\n\nA per-namespace parameter may be used by specifying a namespace-scoped\n`paramKind` in the policy and leaving this field empty.\n\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\nfield results in a configuration error.\n\n\n- If `paramKind` is namespace-scoped, the namespace of the object being\nevaluated for admission will be used when this field is left unset. Take\ncare that if this is left empty the binding must not match any cluster-scoped\nresources, which will result in an error.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"parameterNotFoundAction" = mkOption {
|
|
description = "`parameterNotFoundAction` controls the behavior of the binding when the resource\nexists, and name or selector is valid, but there are no parameters\nmatched by the binding. If the value is set to `Allow`, then no\nmatched parameters will be treated as successful validation by the binding.\nIf set to `Deny`, then no matched parameters will be subject to the\n`failurePolicy` of the policy.\n\n\nAllowed values are `Allow` or `Deny`\nDefault to `Deny`";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"selector" = mkOption {
|
|
description = "selector can be used to match multiple param objects based on their labels.\nSupply selector: {} to match all resources of the ParamKind.\n\n\nIf multiple params are found, they are all evaluated with the policy expressions\nand the results are ANDed together.\n\n\nOne of `name` or `selector` must be set, but `name` and `selector` are\nmutually exclusive properties. If one is set, the other must be unset.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelParamRefSelector"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"parameterNotFoundAction" = mkOverride 1002 null;
|
|
"selector" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelParamRefSelector" = {
|
|
options = {
|
|
"matchExpressions" = mkOption {
|
|
description = "matchExpressions is a list of label selector requirements. The requirements are ANDed.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelParamRefSelectorMatchExpressions"
|
|
)
|
|
);
|
|
};
|
|
"matchLabels" = mkOption {
|
|
description = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"matchExpressions" = mkOverride 1002 null;
|
|
"matchLabels" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelParamRefSelectorMatchExpressions" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "key is the label key that the selector applies to.";
|
|
type = types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.";
|
|
type = types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateCelVariables" = {
|
|
options = {
|
|
"expression" = mkOption {
|
|
description = "Expression is the expression that will be evaluated as the value of the variable.\nThe CEL expression has access to the same identifiers as the CEL expressions in Validation.";
|
|
type = types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\nThe variable can be accessed in other expressions through `variables`\nFor example, if name is \"foo\", the variable will be available as `variables.foo`";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeach" = {
|
|
options = {
|
|
"anyPattern" = mkOption {
|
|
description = "AnyPattern specifies list of validation patterns. At least one of the patterns\nmust be satisfied for the validation rule to succeed.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"context" = mkOption {
|
|
description = "Context defines variables and data sources that can be used during rule execution.";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContext"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
"deny" = mkOption {
|
|
description = "Deny defines conditions used to pass or fail a validation rule.";
|
|
type = types.nullOr (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachDeny");
|
|
};
|
|
"elementScope" = mkOption {
|
|
description = "ElementScope specifies whether to use the current list element as the scope for validation. Defaults to \"true\" if not specified.\nWhen set to \"false\", \"request.object\" is used as the validation scope within the foreach\nblock to allow referencing other elements in the subtree.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"foreach" = mkOption {
|
|
description = "Foreach declares a nested foreach iterator";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"list" = mkOption {
|
|
description = "List specifies a JMESPath expression that results in one or more elements\nto which the validation logic is applied.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"pattern" = mkOption {
|
|
description = "Pattern specifies an overlay-style pattern used to check resources.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"preconditions" = mkOption {
|
|
description = "AnyAllConditions are used to determine if a policy rule should be applied by evaluating a\nset of conditions. The declaration can contain nested `any` or `all` statements.\nSee: https://kyverno.io/docs/writing-policies/preconditions/";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachPreconditions"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"anyPattern" = mkOverride 1002 null;
|
|
"context" = mkOverride 1002 null;
|
|
"deny" = mkOverride 1002 null;
|
|
"elementScope" = mkOverride 1002 null;
|
|
"foreach" = mkOverride 1002 null;
|
|
"list" = mkOverride 1002 null;
|
|
"pattern" = mkOverride 1002 null;
|
|
"preconditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContext" = {
|
|
options = {
|
|
"apiCall" = mkOption {
|
|
description = "APICall is an HTTP request to the Kubernetes API server, or other JSON web service.\nThe data returned is stored in the context with the name for the context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextApiCall"
|
|
);
|
|
};
|
|
"configMap" = mkOption {
|
|
description = "ConfigMap is the ConfigMap reference.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextConfigMap"
|
|
);
|
|
};
|
|
"globalReference" = mkOption {
|
|
description = "GlobalContextEntryReference is a reference to a cached global context entry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextGlobalReference"
|
|
);
|
|
};
|
|
"imageRegistry" = mkOption {
|
|
description = "ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image\ndetails.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextImageRegistry"
|
|
);
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name is the variable name.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"variable" = mkOption {
|
|
description = "Variable defines an arbitrary JMESPath context variable that can be defined inline.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextVariable"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"apiCall" = mkOverride 1002 null;
|
|
"configMap" = mkOverride 1002 null;
|
|
"globalReference" = mkOverride 1002 null;
|
|
"imageRegistry" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"variable" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextApiCall" = {
|
|
options = {
|
|
"data" = mkOption {
|
|
description = "The data object specifies the POST data sent to the server.\nOnly applicable when the method field is set to POST.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextApiCallData"
|
|
)
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"method" = mkOption {
|
|
description = "Method is the HTTP request type (GET or POST).";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"service" = mkOption {
|
|
description = "Service is an API call to a JSON web service.\nThis is used for non-Kubernetes API server calls.\nIt's mutually exclusive with the URLPath field.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextApiCallService"
|
|
);
|
|
};
|
|
"urlPath" = mkOption {
|
|
description = "URLPath is the URL path to be used in the HTTP GET or POST request to the\nKubernetes API server (e.g. \"/api/v1/namespaces\" or \"/apis/apps/v1/deployments\").\nThe format required is the same format used by the `kubectl get --raw` command.\nSee https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls\nfor details.\nIt's mutually exclusive with the Service field.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"data" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"method" = mkOverride 1002 null;
|
|
"service" = mkOverride 1002 null;
|
|
"urlPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextApiCallData" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is a unique identifier for the data value";
|
|
type = types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the data value";
|
|
type = types.attrs;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextApiCallService" = {
|
|
options = {
|
|
"caBundle" = mkOption {
|
|
description = "CABundle is a PEM encoded CA bundle which will be used to validate\nthe server certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the JSON web service URL. A typical form is\n`https://{service}.{namespace}:{port}/{path}`.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"caBundle" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextConfigMap" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name is the ConfigMap name.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace is the ConfigMap namespace.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextGlobalReference" = {
|
|
options = {
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the JSON response returned from the server. For example\na JMESPath of \"items | length(@)\" applied to the API server response\nfor the URLPath \"/apis/apps/v1/deployments\" will return the total count\nof deployments across all namespaces.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "Name of the global context entry";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextImageRegistry" = {
|
|
options = {
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextImageRegistryImageRegistryCredentials"
|
|
);
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JSON Match Expression that can be used to\ntransform the ImageData struct returned as a result of processing\nthe image reference.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"reference" = mkOption {
|
|
description = "Reference is image reference to a container image in the registry.\nExample: ghcr.io/kyverno/kyverno:latest";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextImageRegistryImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachContextVariable" = {
|
|
options = {
|
|
"default" = mkOption {
|
|
description = "Default is an optional arbitrary JSON object that the variable may take if the JMESPath\nexpression evaluates to nil";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"jmesPath" = mkOption {
|
|
description = "JMESPath is an optional JMESPath Expression that can be used to\ntransform the variable.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is any arbitrary JSON object representable in YAML or JSON form.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"default" = mkOverride 1002 null;
|
|
"jmesPath" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachDeny" = {
|
|
options = {
|
|
"conditions" = mkOption {
|
|
description = "Multiple conditions can be declared under an `any` or `all` statement. A direct list\nof conditions (without `any` or `all` statements) is also supported for backwards compatibility\nbut will be deprecated in the next major release.\nSee: https://kyverno.io/docs/writing-policies/validate/#deny-rules";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"conditions" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachPreconditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachPreconditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachPreconditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachPreconditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateForeachPreconditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifests" = {
|
|
options = {
|
|
"annotationDomain" = mkOption {
|
|
description = "AnnotationDomain is custom domain of annotation for message and signature. Default is \"cosign.sigstore.dev\".";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestors")
|
|
);
|
|
};
|
|
"dryRun" = mkOption {
|
|
description = "DryRun configuration";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsDryRun"
|
|
);
|
|
};
|
|
"ignoreFields" = mkOption {
|
|
description = "Fields which will be ignored while comparing manifests.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsIgnoreFields"
|
|
)
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for resource bundle reference.\nThe repository can be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotationDomain" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"dryRun" = mkOverride 1002 null;
|
|
"ignoreFields" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsDryRun" = {
|
|
options = {
|
|
"enable" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"enable" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsIgnoreFields" = {
|
|
options = {
|
|
"fields" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"objects" = mkOption {
|
|
description = "";
|
|
type = types.nullOr (
|
|
coerceAttrsOfSubmodulesToListByKey
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsIgnoreFieldsObjects"
|
|
"name"
|
|
[ ]
|
|
);
|
|
apply = attrsToList;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"fields" = mkOverride 1002 null;
|
|
"objects" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidateManifestsIgnoreFieldsObjects" = {
|
|
options = {
|
|
"group" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"kind" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"name" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"group" = mkOverride 1002 null;
|
|
"kind" = mkOverride 1002 null;
|
|
"name" = mkOverride 1002 null;
|
|
"namespace" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidatePodSecurity" = {
|
|
options = {
|
|
"exclude" = mkOption {
|
|
description = "Exclude specifies the Pod Security Standard controls to be excluded.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesValidatePodSecurityExclude")
|
|
);
|
|
};
|
|
"level" = mkOption {
|
|
description = "Level defines the Pod Security Standard level to be applied to workloads.\nAllowed values are privileged, baseline, and restricted.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"version" = mkOption {
|
|
description = "Version defines the Pod Security Standard versions that Kubernetes supports.\nAllowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"exclude" = mkOverride 1002 null;
|
|
"level" = mkOverride 1002 null;
|
|
"version" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesValidatePodSecurityExclude" = {
|
|
options = {
|
|
"controlName" = mkOption {
|
|
description = "ControlName specifies the name of the Pod Security Standard control.\nSee: https://kubernetes.io/docs/concepts/security/pod-security-standards/";
|
|
type = types.str;
|
|
};
|
|
"images" = mkOption {
|
|
description = "Images selects matching containers and applies the container level PSS.\nEach image is the image name consisting of the registry address, repository, image, and tag.\nEmpty list matches no containers, PSS checks are applied at the pod level only.\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"restrictedField" = mkOption {
|
|
description = "RestrictedField selects the field for the given Pod Security Standard control.\nWhen not set, all restricted fields for the control are selected.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"values" = mkOption {
|
|
description = "Values defines the allowed values that can be excluded.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"images" = mkOverride 1002 null;
|
|
"restrictedField" = mkOverride 1002 null;
|
|
"values" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImages" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "Deprecated.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"annotations" = mkOption {
|
|
description = "Deprecated. Use annotations per Attestor instead.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestations" = mkOption {
|
|
description = "Attestations are optional checks for signed in-toto Statements used to verify the image.\nSee https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the\nOCI registry and decodes them into a list of Statement declarations.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestations")
|
|
);
|
|
};
|
|
"attestors" = mkOption {
|
|
description = "Attestors specified the required attestors (i.e. authorities)";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestors")
|
|
);
|
|
};
|
|
"image" = mkOption {
|
|
description = "Deprecated. Use ImageReferences instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"imageReferences" = mkOption {
|
|
description = "ImageReferences is a list of matching image reference patterns. At least one pattern in the\nlist must match the image for the rule to apply. Each image reference consists of a registry\naddress (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"imageRegistryCredentials" = mkOption {
|
|
description = "ImageRegistryCredentials provides credentials that will be used for authentication with registry.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesImageRegistryCredentials"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"key" = mkOption {
|
|
description = "Deprecated. Use StaticKeyAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"mutateDigest" = mkOption {
|
|
description = "MutateDigest enables replacement of image tags with digests.\nDefaults to true.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule.\nIf specified Repository will override the default OCI image repository configured for the installation.\nThe repository can also be overridden per Attestor or Attestation.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"required" = mkOption {
|
|
description = "Required validates that images are verified i.e. have matched passed a signature or attestation check.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"skipImageReferences" = mkOption {
|
|
description = "SkipImageReferences is a list of matching image reference patterns that should be skipped.\nAt least one pattern in the list must match the image for the rule to be skipped. Each image reference\nconsists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest).\nWildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Deprecated. Use KeylessAttestor instead.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type specifies the method of signature validation. The allowed options\nare Cosign and Notary. By default Cosign is used if a type is not specified.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"useCache" = mkOption {
|
|
description = "UseCache enables caching of image verify responses for this rule.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"verifyDigest" = mkOption {
|
|
description = "VerifyDigest validates that images have a digest.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestations" = mkOverride 1002 null;
|
|
"attestors" = mkOverride 1002 null;
|
|
"image" = mkOverride 1002 null;
|
|
"imageReferences" = mkOverride 1002 null;
|
|
"imageRegistryCredentials" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"key" = mkOverride 1002 null;
|
|
"mutateDigest" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
"required" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"skipImageReferences" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
"useCache" = mkOverride 1002 null;
|
|
"verifyDigest" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestations" = {
|
|
options = {
|
|
"attestors" = mkOption {
|
|
description = "Attestors specify the required attestors (i.e. authorities).";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestors"
|
|
)
|
|
);
|
|
};
|
|
"conditions" = mkOption {
|
|
description = "Conditions are used to verify attributes within a Predicate. If no Conditions are specified\nthe attestation check is satisfied as long there are predicates that match the predicate type.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditions"
|
|
)
|
|
);
|
|
};
|
|
"predicateType" = mkOption {
|
|
description = "Deprecated in favour of 'Type', to be removed soon";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "Type defines the type of attestation contained within the Statement.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"attestors" = mkOverride 1002 null;
|
|
"conditions" = mkOverride 1002 null;
|
|
"predicateType" = mkOverride 1002 null;
|
|
"type" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntries"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditions" = {
|
|
options = {
|
|
"all" = mkOption {
|
|
description = "AllConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, all of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAll"
|
|
)
|
|
);
|
|
};
|
|
"any" = mkOption {
|
|
description = "AnyConditions enable variable-based conditional rule execution. This is useful for\nfiner control of when an rule is applied. A condition can reference object data\nusing JMESPath notation.\nHere, at least one of the conditions need to pass";
|
|
type = types.nullOr (
|
|
types.listOf (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAny"
|
|
)
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"all" = mkOverride 1002 null;
|
|
"any" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAll" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestationsConditionsAny" = {
|
|
options = {
|
|
"key" = mkOption {
|
|
description = "Key is the context entry (using JMESPath) for conditional rule evaluation.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is an optional display message";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"operator" = mkOption {
|
|
description = "Operator is the conditional operation to perform. Valid operators are:\nEquals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals,\nGreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan,\nDurationLessThanOrEquals, DurationLessThan";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"value" = mkOption {
|
|
description = "Value is the conditional value, or set of values. The values can be fixed set\nor can be variables declared using JMESPath.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"key" = mkOverride 1002 null;
|
|
"message" = mkOverride 1002 null;
|
|
"operator" = mkOverride 1002 null;
|
|
"value" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestors" = {
|
|
options = {
|
|
"count" = mkOption {
|
|
description = "Count specifies the required number of entries that must match. If the count is null, all entries must match\n(a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a\nvalue N, then N must be less than or equal to the size of entries, and at least N entries must match.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"entries" = mkOption {
|
|
description = "Entries contains the available attestors. An attestor can be a static key,\nattributes for keyless verification, or a nested attestor declaration.";
|
|
type = types.nullOr (
|
|
types.listOf (submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntries")
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"count" = mkOverride 1002 null;
|
|
"entries" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntries" = {
|
|
options = {
|
|
"annotations" = mkOption {
|
|
description = "Annotations are used for image verification.\nEvery specified key-value pair must exist and match in the verified payload.\nThe payload may contain other key-value pairs.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"attestor" = mkOption {
|
|
description = "Attestor is a nested set of Attestor used to specify a more complex set of match authorities.";
|
|
type = types.nullOr types.attrs;
|
|
};
|
|
"certificates" = mkOption {
|
|
description = "Certificates specifies one or more certificates.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificates"
|
|
);
|
|
};
|
|
"keyless" = mkOption {
|
|
description = "Keyless is a set of attribute used to verify a Sigstore keyless attestor.\nSee https://github.com/sigstore/cosign/blob/main/KEYLESS.md.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeyless"
|
|
);
|
|
};
|
|
"keys" = mkOption {
|
|
description = "Keys specifies one or more public keys.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeys"
|
|
);
|
|
};
|
|
"repository" = mkOption {
|
|
description = "Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule.\nIf specified Repository will override other OCI image repository locations for this Attestor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"annotations" = mkOverride 1002 null;
|
|
"attestor" = mkOverride 1002 null;
|
|
"certificates" = mkOverride 1002 null;
|
|
"keyless" = mkOverride 1002 null;
|
|
"keys" = mkOverride 1002 null;
|
|
"repository" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificates" = {
|
|
options = {
|
|
"cert" = mkOption {
|
|
description = "Cert is an optional PEM-encoded public certificate.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"certChain" = mkOption {
|
|
description = "CertChain is an optional PEM encoded set of certificates used to verify.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesCtlog"
|
|
);
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesRekor"
|
|
);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"cert" = mkOverride 1002 null;
|
|
"certChain" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesCertificatesRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeyless" = {
|
|
options = {
|
|
"additionalExtensions" = mkOption {
|
|
description = "AdditionalExtensions are certificate-extensions used for keyless signing.";
|
|
type = types.nullOr (types.attrsOf types.str);
|
|
};
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessCtlog"
|
|
);
|
|
};
|
|
"issuer" = mkOption {
|
|
description = "Issuer is the certificate issuer used for keyless signing.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessRekor"
|
|
);
|
|
};
|
|
"roots" = mkOption {
|
|
description = "Roots is an optional set of PEM encoded trusted root certificates.\nIf not provided, the system roots are used.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"subject" = mkOption {
|
|
description = "Subject is the verified identity used for keyless signing, for example the email address.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"additionalExtensions" = mkOverride 1002 null;
|
|
"ctlog" = mkOverride 1002 null;
|
|
"issuer" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"roots" = mkOverride 1002 null;
|
|
"subject" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeylessRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeys" = {
|
|
options = {
|
|
"ctlog" = mkOption {
|
|
description = "CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate\nTimestamps (SCTs). If the value is unset, the default behavior by Cosign is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysCtlog"
|
|
);
|
|
};
|
|
"kms" = mkOption {
|
|
description = "KMS provides the URI to the public key stored in a Key Management System. See:\nhttps://github.com/sigstore/cosign/blob/main/KMS.md";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"publicKeys" = mkOption {
|
|
description = "Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly\nspecified or can be a variable reference to a key specified in a ConfigMap (see\nhttps://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret\nelsewhere in the cluster by specifying it in the format \"k8s://<namespace>/<secret_name>\".\nThe named Secret must specify a key `cosign.pub` containing the public key used for\nverification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret).\nWhen multiple keys are specified each key is processed as a separate staticKey entry\n(.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"rekor" = mkOption {
|
|
description = "Rekor provides configuration for the Rekor transparency log service. If an empty object\nis provided the public instance of Rekor (https://rekor.sigstore.dev) is used.";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysRekor"
|
|
);
|
|
};
|
|
"secret" = mkOption {
|
|
description = "Reference to a Secret resource that contains a public key";
|
|
type = types.nullOr (
|
|
submoduleOf "kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysSecret"
|
|
);
|
|
};
|
|
"signatureAlgorithm" = mkOption {
|
|
description = "Specify signature algorithm for public keys. Supported values are sha224, sha256, sha384 and sha512.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ctlog" = mkOverride 1002 null;
|
|
"kms" = mkOverride 1002 null;
|
|
"publicKeys" = mkOverride 1002 null;
|
|
"rekor" = mkOverride 1002 null;
|
|
"secret" = mkOverride 1002 null;
|
|
"signatureAlgorithm" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysCtlog" = {
|
|
options = {
|
|
"ignoreSCT" = mkOption {
|
|
description = "IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate\ntimestamp. Default is false. Set to true if this was opted out during signing.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "PubKey, if set, is used to validate SCTs against a custom source.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreSCT" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysRekor" = {
|
|
options = {
|
|
"ignoreTlog" = mkOption {
|
|
description = "IgnoreTlog skips transparency log verification.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"pubkey" = mkOption {
|
|
description = "RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor.\nIf set, this will be used to validate transparency log signatures from a custom Rekor.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
"url" = mkOption {
|
|
description = "URL is the address of the transparency log. Defaults to the public Rekor log instance https://rekor.sigstore.dev.";
|
|
type = types.nullOr types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"ignoreTlog" = mkOverride 1002 null;
|
|
"pubkey" = mkOverride 1002 null;
|
|
"url" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesAttestorsEntriesKeysSecret" = {
|
|
options = {
|
|
"name" = mkOption {
|
|
description = "Name of the secret. The provided secret must contain a key named cosign.pub.";
|
|
type = types.str;
|
|
};
|
|
"namespace" = mkOption {
|
|
description = "Namespace name where the Secret exists.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusAutogenRulesVerifyImagesImageRegistryCredentials" = {
|
|
options = {
|
|
"allowInsecureRegistry" = mkOption {
|
|
description = "AllowInsecureRegistry allows insecure access to a registry.";
|
|
type = types.nullOr types.bool;
|
|
};
|
|
"providers" = mkOption {
|
|
description = "Providers specifies a list of OCI Registry names, whose authentication providers are provided.\nIt can be of one of these values: default,google,azure,amazon,github.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
"secrets" = mkOption {
|
|
description = "Secrets specifies a list of secrets that are provided for credentials.\nSecrets must live in the Kyverno namespace.";
|
|
type = types.nullOr (types.listOf types.str);
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"allowInsecureRegistry" = mkOverride 1002 null;
|
|
"providers" = mkOverride 1002 null;
|
|
"secrets" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusConditions" = {
|
|
options = {
|
|
"lastTransitionTime" = mkOption {
|
|
description = "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.";
|
|
type = types.str;
|
|
};
|
|
"message" = mkOption {
|
|
description = "message is a human readable message indicating details about the transition.\nThis may be an empty string.";
|
|
type = types.str;
|
|
};
|
|
"observedGeneration" = mkOption {
|
|
description = "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.";
|
|
type = types.nullOr types.int;
|
|
};
|
|
"reason" = mkOption {
|
|
description = "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.";
|
|
type = types.str;
|
|
};
|
|
"status" = mkOption {
|
|
description = "status of the condition, one of True, False, Unknown.";
|
|
type = types.str;
|
|
};
|
|
"type" = mkOption {
|
|
description = "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"observedGeneration" = mkOverride 1002 null;
|
|
};
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusRulecount" = {
|
|
options = {
|
|
"generate" = mkOption {
|
|
description = "Count for generate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"mutate" = mkOption {
|
|
description = "Count for mutate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"validate" = mkOption {
|
|
description = "Count for validate rules in policy";
|
|
type = types.int;
|
|
};
|
|
"verifyimages" = mkOption {
|
|
description = "Count for verify image rules in policy";
|
|
type = types.int;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
"kyverno.io.v2beta1.PolicyStatusValidatingadmissionpolicy" = {
|
|
options = {
|
|
"generated" = mkOption {
|
|
description = "Generated indicates whether a validating admission policy is generated from the policy or not";
|
|
type = types.bool;
|
|
};
|
|
"message" = mkOption {
|
|
description = "Message is a human readable message indicating details about the generation of validating admission policy\nIt is an empty string when validating admission policy is successfully generated.";
|
|
type = types.str;
|
|
};
|
|
};
|
|
|
|
config = { };
|
|
};
|
|
};
|
|
in
|
|
{
|
|
# all resource versions
|
|
options = {
|
|
resources =
|
|
{
|
|
"kyverno.io"."v1"."ClusterPolicy" = mkOption {
|
|
description = "ClusterPolicy declares validation, mutation, and generation behaviors for matching resources.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v1.ClusterPolicy" "clusterpolicies" "ClusterPolicy" "kyverno.io"
|
|
"v1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v1"."Policy" = mkOption {
|
|
description = "Policy declares validation, mutation, and generation behaviors for matching resources.\nSee: https://kyverno.io/docs/writing-policies/ for more information.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v1.Policy" "policies" "Policy" "kyverno.io" "v1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v1beta1"."UpdateRequest" = mkOption {
|
|
description = "UpdateRequest is a request to process mutate and generate rules in background.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v1beta1.UpdateRequest" "updaterequests" "UpdateRequest"
|
|
"kyverno.io"
|
|
"v1beta1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2"."CleanupPolicy" = mkOption {
|
|
description = "CleanupPolicy defines a rule for resource cleanup.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2.CleanupPolicy" "cleanuppolicies" "CleanupPolicy" "kyverno.io"
|
|
"v2"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2"."ClusterCleanupPolicy" = mkOption {
|
|
description = "ClusterCleanupPolicy defines rule for resource cleanup.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2.ClusterCleanupPolicy" "clustercleanuppolicies"
|
|
"ClusterCleanupPolicy"
|
|
"kyverno.io"
|
|
"v2"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2"."PolicyException" = mkOption {
|
|
description = "PolicyException declares resources to be excluded from specified policies.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2.PolicyException" "policyexceptions" "PolicyException"
|
|
"kyverno.io"
|
|
"v2"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2"."UpdateRequest" = mkOption {
|
|
description = "UpdateRequest is a request to process mutate and generate rules in background.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2.UpdateRequest" "updaterequests" "UpdateRequest" "kyverno.io"
|
|
"v2"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2alpha1"."CleanupPolicy" = mkOption {
|
|
description = "CleanupPolicy defines a rule for resource cleanup.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2alpha1.CleanupPolicy" "cleanuppolicies" "CleanupPolicy"
|
|
"kyverno.io"
|
|
"v2alpha1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2alpha1"."ClusterCleanupPolicy" = mkOption {
|
|
description = "ClusterCleanupPolicy defines rule for resource cleanup.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2alpha1.ClusterCleanupPolicy" "clustercleanuppolicies"
|
|
"ClusterCleanupPolicy"
|
|
"kyverno.io"
|
|
"v2alpha1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2alpha1"."GlobalContextEntry" = mkOption {
|
|
description = "GlobalContextEntry declares resources to be cached.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2alpha1.GlobalContextEntry" "globalcontextentries"
|
|
"GlobalContextEntry"
|
|
"kyverno.io"
|
|
"v2alpha1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2alpha1"."PolicyException" = mkOption {
|
|
description = "PolicyException declares resources to be excluded from specified policies.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2alpha1.PolicyException" "policyexceptions" "PolicyException"
|
|
"kyverno.io"
|
|
"v2alpha1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2beta1"."CleanupPolicy" = mkOption {
|
|
description = "CleanupPolicy defines a rule for resource cleanup.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2beta1.CleanupPolicy" "cleanuppolicies" "CleanupPolicy"
|
|
"kyverno.io"
|
|
"v2beta1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2beta1"."ClusterCleanupPolicy" = mkOption {
|
|
description = "ClusterCleanupPolicy defines rule for resource cleanup.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2beta1.ClusterCleanupPolicy" "clustercleanuppolicies"
|
|
"ClusterCleanupPolicy"
|
|
"kyverno.io"
|
|
"v2beta1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2beta1"."ClusterPolicy" = mkOption {
|
|
description = "ClusterPolicy declares validation, mutation, and generation behaviors for matching resources.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2beta1.ClusterPolicy" "clusterpolicies" "ClusterPolicy"
|
|
"kyverno.io"
|
|
"v2beta1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2beta1"."Policy" = mkOption {
|
|
description = "Policy declares validation, mutation, and generation behaviors for matching resources.\nSee: https://kyverno.io/docs/writing-policies/ for more information.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2beta1.Policy" "policies" "Policy" "kyverno.io" "v2beta1"
|
|
);
|
|
default = { };
|
|
};
|
|
"kyverno.io"."v2beta1"."PolicyException" = mkOption {
|
|
description = "PolicyException declares resources to be excluded from specified policies.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2beta1.PolicyException" "policyexceptions" "PolicyException"
|
|
"kyverno.io"
|
|
"v2beta1"
|
|
);
|
|
default = { };
|
|
};
|
|
}
|
|
// {
|
|
"cleanupPolicies" = mkOption {
|
|
description = "CleanupPolicy defines a rule for resource cleanup.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2.CleanupPolicy" "cleanuppolicies" "CleanupPolicy" "kyverno.io"
|
|
"v2"
|
|
);
|
|
default = { };
|
|
};
|
|
"clusterCleanupPolicies" = mkOption {
|
|
description = "ClusterCleanupPolicy defines rule for resource cleanup.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2.ClusterCleanupPolicy" "clustercleanuppolicies"
|
|
"ClusterCleanupPolicy"
|
|
"kyverno.io"
|
|
"v2"
|
|
);
|
|
default = { };
|
|
};
|
|
"clusterPolicies" = mkOption {
|
|
description = "ClusterPolicy declares validation, mutation, and generation behaviors for matching resources.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2beta1.ClusterPolicy" "clusterpolicies" "ClusterPolicy"
|
|
"kyverno.io"
|
|
"v2beta1"
|
|
);
|
|
default = { };
|
|
};
|
|
"globalContextEntries" = mkOption {
|
|
description = "GlobalContextEntry declares resources to be cached.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2alpha1.GlobalContextEntry" "globalcontextentries"
|
|
"GlobalContextEntry"
|
|
"kyverno.io"
|
|
"v2alpha1"
|
|
);
|
|
default = { };
|
|
};
|
|
"policies" = mkOption {
|
|
description = "Policy declares validation, mutation, and generation behaviors for matching resources.\nSee: https://kyverno.io/docs/writing-policies/ for more information.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2beta1.Policy" "policies" "Policy" "kyverno.io" "v2beta1"
|
|
);
|
|
default = { };
|
|
};
|
|
"policyExceptions" = mkOption {
|
|
description = "PolicyException declares resources to be excluded from specified policies.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2.PolicyException" "policyexceptions" "PolicyException"
|
|
"kyverno.io"
|
|
"v2"
|
|
);
|
|
default = { };
|
|
};
|
|
"updateRequests" = mkOption {
|
|
description = "UpdateRequest is a request to process mutate and generate rules in background.";
|
|
type = types.attrsOf (
|
|
submoduleForDefinition "kyverno.io.v2.UpdateRequest" "updaterequests" "UpdateRequest" "kyverno.io"
|
|
"v2"
|
|
);
|
|
default = { };
|
|
};
|
|
};
|
|
};
|
|
|
|
config = {
|
|
# expose resource definitions
|
|
inherit definitions;
|
|
|
|
# register resource types
|
|
types = [
|
|
{
|
|
name = "clusterpolicies";
|
|
group = "kyverno.io";
|
|
version = "v1";
|
|
kind = "ClusterPolicy";
|
|
attrName = "clusterPolicies";
|
|
}
|
|
{
|
|
name = "policies";
|
|
group = "kyverno.io";
|
|
version = "v1";
|
|
kind = "Policy";
|
|
attrName = "policies";
|
|
}
|
|
{
|
|
name = "updaterequests";
|
|
group = "kyverno.io";
|
|
version = "v1beta1";
|
|
kind = "UpdateRequest";
|
|
attrName = "updateRequests";
|
|
}
|
|
{
|
|
name = "cleanuppolicies";
|
|
group = "kyverno.io";
|
|
version = "v2";
|
|
kind = "CleanupPolicy";
|
|
attrName = "cleanupPolicies";
|
|
}
|
|
{
|
|
name = "clustercleanuppolicies";
|
|
group = "kyverno.io";
|
|
version = "v2";
|
|
kind = "ClusterCleanupPolicy";
|
|
attrName = "clusterCleanupPolicies";
|
|
}
|
|
{
|
|
name = "policyexceptions";
|
|
group = "kyverno.io";
|
|
version = "v2";
|
|
kind = "PolicyException";
|
|
attrName = "policyExceptions";
|
|
}
|
|
{
|
|
name = "updaterequests";
|
|
group = "kyverno.io";
|
|
version = "v2";
|
|
kind = "UpdateRequest";
|
|
attrName = "updateRequests";
|
|
}
|
|
{
|
|
name = "cleanuppolicies";
|
|
group = "kyverno.io";
|
|
version = "v2alpha1";
|
|
kind = "CleanupPolicy";
|
|
attrName = "cleanupPolicies";
|
|
}
|
|
{
|
|
name = "clustercleanuppolicies";
|
|
group = "kyverno.io";
|
|
version = "v2alpha1";
|
|
kind = "ClusterCleanupPolicy";
|
|
attrName = "clusterCleanupPolicies";
|
|
}
|
|
{
|
|
name = "globalcontextentries";
|
|
group = "kyverno.io";
|
|
version = "v2alpha1";
|
|
kind = "GlobalContextEntry";
|
|
attrName = "globalContextEntries";
|
|
}
|
|
{
|
|
name = "policyexceptions";
|
|
group = "kyverno.io";
|
|
version = "v2alpha1";
|
|
kind = "PolicyException";
|
|
attrName = "policyExceptions";
|
|
}
|
|
{
|
|
name = "cleanuppolicies";
|
|
group = "kyverno.io";
|
|
version = "v2beta1";
|
|
kind = "CleanupPolicy";
|
|
attrName = "cleanupPolicies";
|
|
}
|
|
{
|
|
name = "clustercleanuppolicies";
|
|
group = "kyverno.io";
|
|
version = "v2beta1";
|
|
kind = "ClusterCleanupPolicy";
|
|
attrName = "clusterCleanupPolicies";
|
|
}
|
|
{
|
|
name = "clusterpolicies";
|
|
group = "kyverno.io";
|
|
version = "v2beta1";
|
|
kind = "ClusterPolicy";
|
|
attrName = "clusterPolicies";
|
|
}
|
|
{
|
|
name = "policies";
|
|
group = "kyverno.io";
|
|
version = "v2beta1";
|
|
kind = "Policy";
|
|
attrName = "policies";
|
|
}
|
|
{
|
|
name = "policyexceptions";
|
|
group = "kyverno.io";
|
|
version = "v2beta1";
|
|
kind = "PolicyException";
|
|
attrName = "policyExceptions";
|
|
}
|
|
];
|
|
|
|
resources = {
|
|
"kyverno.io"."v2"."CleanupPolicy" = mkAliasDefinitions options.resources."cleanupPolicies";
|
|
"kyverno.io"."v2"."ClusterCleanupPolicy" =
|
|
mkAliasDefinitions
|
|
options.resources."clusterCleanupPolicies";
|
|
"kyverno.io"."v2beta1"."ClusterPolicy" = mkAliasDefinitions options.resources."clusterPolicies";
|
|
"kyverno.io"."v2alpha1"."GlobalContextEntry" =
|
|
mkAliasDefinitions
|
|
options.resources."globalContextEntries";
|
|
"kyverno.io"."v2beta1"."Policy" = mkAliasDefinitions options.resources."policies";
|
|
"kyverno.io"."v2"."PolicyException" = mkAliasDefinitions options.resources."policyExceptions";
|
|
"kyverno.io"."v2"."UpdateRequest" = mkAliasDefinitions options.resources."updateRequests";
|
|
};
|
|
|
|
defaults = [
|
|
{
|
|
group = "kyverno.io";
|
|
version = "v1";
|
|
kind = "Policy";
|
|
default.metadata.namespace = lib.mkDefault config.namespace;
|
|
}
|
|
{
|
|
group = "kyverno.io";
|
|
version = "v1beta1";
|
|
kind = "UpdateRequest";
|
|
default.metadata.namespace = lib.mkDefault config.namespace;
|
|
}
|
|
{
|
|
group = "kyverno.io";
|
|
version = "v2";
|
|
kind = "CleanupPolicy";
|
|
default.metadata.namespace = lib.mkDefault config.namespace;
|
|
}
|
|
{
|
|
group = "kyverno.io";
|
|
version = "v2";
|
|
kind = "PolicyException";
|
|
default.metadata.namespace = lib.mkDefault config.namespace;
|
|
}
|
|
{
|
|
group = "kyverno.io";
|
|
version = "v2";
|
|
kind = "UpdateRequest";
|
|
default.metadata.namespace = lib.mkDefault config.namespace;
|
|
}
|
|
{
|
|
group = "kyverno.io";
|
|
version = "v2alpha1";
|
|
kind = "CleanupPolicy";
|
|
default.metadata.namespace = lib.mkDefault config.namespace;
|
|
}
|
|
{
|
|
group = "kyverno.io";
|
|
version = "v2alpha1";
|
|
kind = "PolicyException";
|
|
default.metadata.namespace = lib.mkDefault config.namespace;
|
|
}
|
|
{
|
|
group = "kyverno.io";
|
|
version = "v2beta1";
|
|
kind = "CleanupPolicy";
|
|
default.metadata.namespace = lib.mkDefault config.namespace;
|
|
}
|
|
{
|
|
group = "kyverno.io";
|
|
version = "v2beta1";
|
|
kind = "Policy";
|
|
default.metadata.namespace = lib.mkDefault config.namespace;
|
|
}
|
|
{
|
|
group = "kyverno.io";
|
|
version = "v2beta1";
|
|
kind = "PolicyException";
|
|
default.metadata.namespace = lib.mkDefault config.namespace;
|
|
}
|
|
];
|
|
};
|
|
}
|