mirror of
https://github.com/TECHNOFAB11/kubenix.git
synced 2025-12-12 08:00:06 +01:00
feat(k8s): refactor defaults
This commit is contained in:
parent
9bc2406ff2
commit
d925d71ed7
10 changed files with 682 additions and 586 deletions
|
|
@ -5,6 +5,14 @@ with lib;
|
|||
let
|
||||
removeKubenixOptions = filterAttrs (name: attr: name != "kubenix");
|
||||
|
||||
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.kubernetes.api.defaults);
|
||||
|
||||
moduleToAttrs = value:
|
||||
if isAttrs value
|
||||
then mapAttrs (n: v: moduleToAttrs v) (filterAttrs (n: v: !(hasPrefix "_" n) && v != null) value)
|
||||
|
|
@ -35,32 +43,64 @@ let
|
|||
};
|
||||
|
||||
defaults = mkOption {
|
||||
description = "Kubernetes defaults";
|
||||
type = types.attrsOf (types.coercedTo types.unspecified (value: [value]) (types.listOf types.unspecified));
|
||||
default = {};
|
||||
description = "Kubernetes defaults to apply to resources";
|
||||
type = types.listOf (types.submodule ({config, ...}: {
|
||||
options = {
|
||||
resource = mkOption {
|
||||
description = "Resource to apply default to (all by default)";
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
description = "Group to apply default to (all by default)";
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
version = mkOption {
|
||||
description = "Version to apply default to (all by default)";
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
kind = mkOption {
|
||||
description = "Kind to apply default to (all by default)";
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
default = mkOption {
|
||||
description = "Default to apply";
|
||||
type = types.unspecified;
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
}));
|
||||
default = [];
|
||||
};
|
||||
|
||||
resources = mkOption {
|
||||
type = types.listOf (types.submodule {
|
||||
options = {
|
||||
group = mkOption {
|
||||
description = "Group name";
|
||||
description = "Resoruce group";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
version = mkOption {
|
||||
description = "Version name";
|
||||
description = "Resoruce version";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
kind = mkOption {
|
||||
description = "kind name";
|
||||
description = "Resource kind";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
plural = mkOption {
|
||||
description = "Plural name";
|
||||
type = types.str;
|
||||
resource = mkOption {
|
||||
description = "Resource name";
|
||||
type = type.str;
|
||||
};
|
||||
};
|
||||
});
|
||||
|
|
@ -113,8 +153,7 @@ in {
|
|||
apiVersion = mkOptionDefault "${cr.group}/${cr.version}";
|
||||
kind = mkOptionDefault cr.kind;
|
||||
metadata.name = mkOptionDefault name;
|
||||
}]
|
||||
++ (config.kubernetes.defaults.all or []));
|
||||
}] ++ (getDefaults cr.resource cr.group cr.version cr.kind));
|
||||
}));
|
||||
default = {};
|
||||
};
|
||||
|
|
@ -125,36 +164,37 @@ in {
|
|||
|
||||
options.kubernetes.customResources = mkOption {
|
||||
default = [];
|
||||
description = "List of custom resource definitions to make API for";
|
||||
type = types.listOf (types.submodule ({config, ...}: {
|
||||
options = {
|
||||
group = mkOption {
|
||||
description = "CRD group";
|
||||
description = "Custom resource definition group";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
version = mkOption {
|
||||
description = "CRD version";
|
||||
description = "Custom resource definition version";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
kind = mkOption {
|
||||
description = "CRD kind";
|
||||
description = "Custom resource definition kind";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
plural = mkOption {
|
||||
description = "CRD plural name";
|
||||
resource = mkOption {
|
||||
description = "Custom resource definition resource name";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
description = mkOption {
|
||||
description = "CRD description";
|
||||
description = "Custom resource definition description";
|
||||
type = types.str;
|
||||
default = "";
|
||||
};
|
||||
|
||||
module = mkOption {
|
||||
description = "CRD module";
|
||||
description = "Custom resource definition module";
|
||||
default = types.unspecified;
|
||||
};
|
||||
};
|
||||
|
|
@ -162,7 +202,7 @@ in {
|
|||
};
|
||||
|
||||
config.kubernetes.api.resources = map (cr: {
|
||||
inherit (cr) group version kind plural;
|
||||
inherit (cr) group version kind resource;
|
||||
}) config.kubernetes.customResources;
|
||||
|
||||
options.kubernetes.objects = mkOption {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,14 @@
|
|||
with lib;
|
||||
|
||||
let
|
||||
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";
|
||||
|
|
@ -80,8 +88,7 @@ let
|
|||
# metdata.name cannot use option default, due deep config
|
||||
metadata.name = mkOptionDefault name;
|
||||
}
|
||||
] ++ (config.defaults.${resource} or [])
|
||||
++ (config.defaults.all or []));
|
||||
] ++ (getDefaults resource group version kind));
|
||||
});
|
||||
|
||||
coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (types.coercedTo
|
||||
|
|
@ -29576,412 +29583,412 @@ in {
|
|||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1alpha1";
|
||||
kind = "InitializerConfiguration";
|
||||
plural = "initializerconfigurations";
|
||||
resource = "initializerconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1beta1";
|
||||
kind = "MutatingWebhookConfiguration";
|
||||
plural = "mutatingwebhookconfigurations";
|
||||
resource = "mutatingwebhookconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1beta1";
|
||||
kind = "ValidatingWebhookConfiguration";
|
||||
plural = "validatingwebhookconfigurations";
|
||||
resource = "validatingwebhookconfigurations";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1beta1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v2beta1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1";
|
||||
kind = "Job";
|
||||
plural = "jobs";
|
||||
resource = "jobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1beta1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v2alpha1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "certificates.k8s.io";
|
||||
version = "certificates.k8s.io/v1beta1";
|
||||
kind = "CertificateSigningRequest";
|
||||
plural = "certificatesigningrequests";
|
||||
resource = "certificatesigningrequests";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Binding";
|
||||
plural = "bindings";
|
||||
resource = "bindings";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ConfigMap";
|
||||
plural = "configmaps";
|
||||
resource = "configmaps";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Endpoints";
|
||||
plural = "endpoints";
|
||||
resource = "endpoints";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "LimitRange";
|
||||
plural = "limitranges";
|
||||
resource = "limitranges";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Namespace";
|
||||
plural = "namespaces";
|
||||
resource = "namespaces";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Node";
|
||||
plural = "nodes";
|
||||
resource = "nodes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolume";
|
||||
plural = "persistentvolumes";
|
||||
resource = "persistentvolumes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolumeClaim";
|
||||
plural = "persistentvolumeclaims";
|
||||
resource = "persistentvolumeclaims";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Pod";
|
||||
plural = "pods";
|
||||
resource = "pods";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PodTemplate";
|
||||
plural = "podtemplates";
|
||||
resource = "podtemplates";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ReplicationController";
|
||||
plural = "replicationcontrollers";
|
||||
resource = "replicationcontrollers";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ResourceQuota";
|
||||
plural = "resourcequotas";
|
||||
resource = "resourcequotas";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Secret";
|
||||
plural = "secrets";
|
||||
resource = "secrets";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Service";
|
||||
plural = "services";
|
||||
resource = "services";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ServiceAccount";
|
||||
plural = "serviceaccounts";
|
||||
resource = "serviceaccounts";
|
||||
}{
|
||||
group = "events.k8s.io";
|
||||
version = "events.k8s.io/v1beta1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Ingress";
|
||||
plural = "ingresses";
|
||||
resource = "ingresses";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "networking.k8s.io";
|
||||
version = "networking.k8s.io/v1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "Eviction";
|
||||
plural = "eviction";
|
||||
resource = "eviction";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodDisruptionBudget";
|
||||
plural = "poddisruptionbudgets";
|
||||
resource = "poddisruptionbudgets";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "scheduling.k8s.io";
|
||||
version = "scheduling.k8s.io/v1alpha1";
|
||||
kind = "PriorityClass";
|
||||
plural = "priorityclasses";
|
||||
resource = "priorityclasses";
|
||||
}{
|
||||
group = "settings.k8s.io";
|
||||
version = "settings.k8s.io/v1alpha1";
|
||||
kind = "PodPreset";
|
||||
plural = "podpresets";
|
||||
resource = "podpresets";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1alpha1";
|
||||
kind = "VolumeAttachment";
|
||||
plural = "volumeattachments";
|
||||
resource = "volumeattachments";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "VolumeAttachment";
|
||||
plural = "volumeattachments";
|
||||
resource = "volumeattachments";
|
||||
}{
|
||||
group = "apiextensions.k8s.io";
|
||||
version = "apiextensions.k8s.io/v1beta1";
|
||||
kind = "CustomResourceDefinition";
|
||||
plural = "customresourcedefinitions";
|
||||
resource = "customresourcedefinitions";
|
||||
}{
|
||||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}{
|
||||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1beta1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,14 @@
|
|||
with lib;
|
||||
|
||||
let
|
||||
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";
|
||||
|
|
@ -80,8 +88,7 @@ let
|
|||
# metdata.name cannot use option default, due deep config
|
||||
metadata.name = mkOptionDefault name;
|
||||
}
|
||||
] ++ (config.defaults.${resource} or [])
|
||||
++ (config.defaults.all or []));
|
||||
] ++ (getDefaults resource group version kind));
|
||||
});
|
||||
|
||||
coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (types.coercedTo
|
||||
|
|
@ -30109,417 +30116,417 @@ in {
|
|||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1alpha1";
|
||||
kind = "InitializerConfiguration";
|
||||
plural = "initializerconfigurations";
|
||||
resource = "initializerconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1beta1";
|
||||
kind = "MutatingWebhookConfiguration";
|
||||
plural = "mutatingwebhookconfigurations";
|
||||
resource = "mutatingwebhookconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1beta1";
|
||||
kind = "ValidatingWebhookConfiguration";
|
||||
plural = "validatingwebhookconfigurations";
|
||||
resource = "validatingwebhookconfigurations";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1beta1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v2beta1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1";
|
||||
kind = "Job";
|
||||
plural = "jobs";
|
||||
resource = "jobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1beta1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v2alpha1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "certificates.k8s.io";
|
||||
version = "certificates.k8s.io/v1beta1";
|
||||
kind = "CertificateSigningRequest";
|
||||
plural = "certificatesigningrequests";
|
||||
resource = "certificatesigningrequests";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Binding";
|
||||
plural = "bindings";
|
||||
resource = "bindings";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ConfigMap";
|
||||
plural = "configmaps";
|
||||
resource = "configmaps";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Endpoints";
|
||||
plural = "endpoints";
|
||||
resource = "endpoints";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "LimitRange";
|
||||
plural = "limitranges";
|
||||
resource = "limitranges";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Namespace";
|
||||
plural = "namespaces";
|
||||
resource = "namespaces";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Node";
|
||||
plural = "nodes";
|
||||
resource = "nodes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolume";
|
||||
plural = "persistentvolumes";
|
||||
resource = "persistentvolumes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolumeClaim";
|
||||
plural = "persistentvolumeclaims";
|
||||
resource = "persistentvolumeclaims";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Pod";
|
||||
plural = "pods";
|
||||
resource = "pods";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PodTemplate";
|
||||
plural = "podtemplates";
|
||||
resource = "podtemplates";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ReplicationController";
|
||||
plural = "replicationcontrollers";
|
||||
resource = "replicationcontrollers";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ResourceQuota";
|
||||
plural = "resourcequotas";
|
||||
resource = "resourcequotas";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Secret";
|
||||
plural = "secrets";
|
||||
resource = "secrets";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Service";
|
||||
plural = "services";
|
||||
resource = "services";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ServiceAccount";
|
||||
plural = "serviceaccounts";
|
||||
resource = "serviceaccounts";
|
||||
}{
|
||||
group = "events.k8s.io";
|
||||
version = "events.k8s.io/v1beta1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Ingress";
|
||||
plural = "ingresses";
|
||||
resource = "ingresses";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "networking.k8s.io";
|
||||
version = "networking.k8s.io/v1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "Eviction";
|
||||
plural = "eviction";
|
||||
resource = "eviction";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodDisruptionBudget";
|
||||
plural = "poddisruptionbudgets";
|
||||
resource = "poddisruptionbudgets";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "scheduling.k8s.io";
|
||||
version = "scheduling.k8s.io/v1alpha1";
|
||||
kind = "PriorityClass";
|
||||
plural = "priorityclasses";
|
||||
resource = "priorityclasses";
|
||||
}{
|
||||
group = "scheduling.k8s.io";
|
||||
version = "scheduling.k8s.io/v1beta1";
|
||||
kind = "PriorityClass";
|
||||
plural = "priorityclasses";
|
||||
resource = "priorityclasses";
|
||||
}{
|
||||
group = "settings.k8s.io";
|
||||
version = "settings.k8s.io/v1alpha1";
|
||||
kind = "PodPreset";
|
||||
plural = "podpresets";
|
||||
resource = "podpresets";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1alpha1";
|
||||
kind = "VolumeAttachment";
|
||||
plural = "volumeattachments";
|
||||
resource = "volumeattachments";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "VolumeAttachment";
|
||||
plural = "volumeattachments";
|
||||
resource = "volumeattachments";
|
||||
}{
|
||||
group = "apiextensions.k8s.io";
|
||||
version = "apiextensions.k8s.io/v1beta1";
|
||||
kind = "CustomResourceDefinition";
|
||||
plural = "customresourcedefinitions";
|
||||
resource = "customresourcedefinitions";
|
||||
}{
|
||||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}{
|
||||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1beta1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,14 @@
|
|||
with lib;
|
||||
|
||||
let
|
||||
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";
|
||||
|
|
@ -80,8 +88,7 @@ let
|
|||
# metdata.name cannot use option default, due deep config
|
||||
metadata.name = mkOptionDefault name;
|
||||
}
|
||||
] ++ (config.defaults.${resource} or [])
|
||||
++ (config.defaults.all or []));
|
||||
] ++ (getDefaults resource group version kind));
|
||||
});
|
||||
|
||||
coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (types.coercedTo
|
||||
|
|
@ -30908,427 +30915,427 @@ in {
|
|||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1alpha1";
|
||||
kind = "InitializerConfiguration";
|
||||
plural = "initializerconfigurations";
|
||||
resource = "initializerconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1beta1";
|
||||
kind = "MutatingWebhookConfiguration";
|
||||
plural = "mutatingwebhookconfigurations";
|
||||
resource = "mutatingwebhookconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1beta1";
|
||||
kind = "ValidatingWebhookConfiguration";
|
||||
plural = "validatingwebhookconfigurations";
|
||||
resource = "validatingwebhookconfigurations";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1beta1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v2beta1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v2beta2";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1";
|
||||
kind = "Job";
|
||||
plural = "jobs";
|
||||
resource = "jobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1beta1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v2alpha1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "certificates.k8s.io";
|
||||
version = "certificates.k8s.io/v1beta1";
|
||||
kind = "CertificateSigningRequest";
|
||||
plural = "certificatesigningrequests";
|
||||
resource = "certificatesigningrequests";
|
||||
}{
|
||||
group = "coordination.k8s.io";
|
||||
version = "coordination.k8s.io/v1beta1";
|
||||
kind = "Lease";
|
||||
plural = "leases";
|
||||
resource = "leases";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Binding";
|
||||
plural = "bindings";
|
||||
resource = "bindings";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ConfigMap";
|
||||
plural = "configmaps";
|
||||
resource = "configmaps";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Endpoints";
|
||||
plural = "endpoints";
|
||||
resource = "endpoints";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "LimitRange";
|
||||
plural = "limitranges";
|
||||
resource = "limitranges";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Namespace";
|
||||
plural = "namespaces";
|
||||
resource = "namespaces";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Node";
|
||||
plural = "nodes";
|
||||
resource = "nodes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolume";
|
||||
plural = "persistentvolumes";
|
||||
resource = "persistentvolumes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolumeClaim";
|
||||
plural = "persistentvolumeclaims";
|
||||
resource = "persistentvolumeclaims";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Pod";
|
||||
plural = "pods";
|
||||
resource = "pods";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PodTemplate";
|
||||
plural = "podtemplates";
|
||||
resource = "podtemplates";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ReplicationController";
|
||||
plural = "replicationcontrollers";
|
||||
resource = "replicationcontrollers";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ResourceQuota";
|
||||
plural = "resourcequotas";
|
||||
resource = "resourcequotas";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Secret";
|
||||
plural = "secrets";
|
||||
resource = "secrets";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Service";
|
||||
plural = "services";
|
||||
resource = "services";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ServiceAccount";
|
||||
plural = "serviceaccounts";
|
||||
resource = "serviceaccounts";
|
||||
}{
|
||||
group = "events.k8s.io";
|
||||
version = "events.k8s.io/v1beta1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Ingress";
|
||||
plural = "ingresses";
|
||||
resource = "ingresses";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "networking.k8s.io";
|
||||
version = "networking.k8s.io/v1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "Eviction";
|
||||
plural = "eviction";
|
||||
resource = "eviction";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodDisruptionBudget";
|
||||
plural = "poddisruptionbudgets";
|
||||
resource = "poddisruptionbudgets";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "scheduling.k8s.io";
|
||||
version = "scheduling.k8s.io/v1alpha1";
|
||||
kind = "PriorityClass";
|
||||
plural = "priorityclasses";
|
||||
resource = "priorityclasses";
|
||||
}{
|
||||
group = "scheduling.k8s.io";
|
||||
version = "scheduling.k8s.io/v1beta1";
|
||||
kind = "PriorityClass";
|
||||
plural = "priorityclasses";
|
||||
resource = "priorityclasses";
|
||||
}{
|
||||
group = "settings.k8s.io";
|
||||
version = "settings.k8s.io/v1alpha1";
|
||||
kind = "PodPreset";
|
||||
plural = "podpresets";
|
||||
resource = "podpresets";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1alpha1";
|
||||
kind = "VolumeAttachment";
|
||||
plural = "volumeattachments";
|
||||
resource = "volumeattachments";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "VolumeAttachment";
|
||||
plural = "volumeattachments";
|
||||
resource = "volumeattachments";
|
||||
}{
|
||||
group = "apiextensions.k8s.io";
|
||||
version = "apiextensions.k8s.io/v1beta1";
|
||||
kind = "CustomResourceDefinition";
|
||||
plural = "customresourcedefinitions";
|
||||
resource = "customresourcedefinitions";
|
||||
}{
|
||||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}{
|
||||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1beta1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,14 @@
|
|||
with lib;
|
||||
|
||||
let
|
||||
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";
|
||||
|
|
@ -80,8 +88,7 @@ let
|
|||
# metdata.name cannot use option default, due deep config
|
||||
metadata.name = mkOptionDefault name;
|
||||
}
|
||||
] ++ (config.defaults.${resource} or [])
|
||||
++ (config.defaults.all or []));
|
||||
] ++ (getDefaults resource group version kind));
|
||||
});
|
||||
|
||||
coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (types.coercedTo
|
||||
|
|
@ -31528,437 +31535,437 @@ in {
|
|||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1alpha1";
|
||||
kind = "InitializerConfiguration";
|
||||
plural = "initializerconfigurations";
|
||||
resource = "initializerconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1beta1";
|
||||
kind = "MutatingWebhookConfiguration";
|
||||
plural = "mutatingwebhookconfigurations";
|
||||
resource = "mutatingwebhookconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1beta1";
|
||||
kind = "ValidatingWebhookConfiguration";
|
||||
plural = "validatingwebhookconfigurations";
|
||||
resource = "validatingwebhookconfigurations";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "auditregistration.k8s.io";
|
||||
version = "auditregistration.k8s.io/v1alpha1";
|
||||
kind = "AuditSink";
|
||||
plural = "auditsinks";
|
||||
resource = "auditsinks";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1beta1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v2beta1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v2beta2";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1";
|
||||
kind = "Job";
|
||||
plural = "jobs";
|
||||
resource = "jobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1beta1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v2alpha1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "certificates.k8s.io";
|
||||
version = "certificates.k8s.io/v1beta1";
|
||||
kind = "CertificateSigningRequest";
|
||||
plural = "certificatesigningrequests";
|
||||
resource = "certificatesigningrequests";
|
||||
}{
|
||||
group = "coordination.k8s.io";
|
||||
version = "coordination.k8s.io/v1beta1";
|
||||
kind = "Lease";
|
||||
plural = "leases";
|
||||
resource = "leases";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Binding";
|
||||
plural = "bindings";
|
||||
resource = "bindings";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ConfigMap";
|
||||
plural = "configmaps";
|
||||
resource = "configmaps";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Endpoints";
|
||||
plural = "endpoints";
|
||||
resource = "endpoints";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "LimitRange";
|
||||
plural = "limitranges";
|
||||
resource = "limitranges";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Namespace";
|
||||
plural = "namespaces";
|
||||
resource = "namespaces";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Node";
|
||||
plural = "nodes";
|
||||
resource = "nodes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolume";
|
||||
plural = "persistentvolumes";
|
||||
resource = "persistentvolumes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolumeClaim";
|
||||
plural = "persistentvolumeclaims";
|
||||
resource = "persistentvolumeclaims";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Pod";
|
||||
plural = "pods";
|
||||
resource = "pods";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PodTemplate";
|
||||
plural = "podtemplates";
|
||||
resource = "podtemplates";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ReplicationController";
|
||||
plural = "replicationcontrollers";
|
||||
resource = "replicationcontrollers";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ResourceQuota";
|
||||
plural = "resourcequotas";
|
||||
resource = "resourcequotas";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Secret";
|
||||
plural = "secrets";
|
||||
resource = "secrets";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Service";
|
||||
plural = "services";
|
||||
resource = "services";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ServiceAccount";
|
||||
plural = "serviceaccounts";
|
||||
resource = "serviceaccounts";
|
||||
}{
|
||||
group = "events.k8s.io";
|
||||
version = "events.k8s.io/v1beta1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Ingress";
|
||||
plural = "ingresses";
|
||||
resource = "ingresses";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "networking.k8s.io";
|
||||
version = "networking.k8s.io/v1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "Eviction";
|
||||
plural = "eviction";
|
||||
resource = "eviction";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodDisruptionBudget";
|
||||
plural = "poddisruptionbudgets";
|
||||
resource = "poddisruptionbudgets";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "scheduling.k8s.io";
|
||||
version = "scheduling.k8s.io/v1alpha1";
|
||||
kind = "PriorityClass";
|
||||
plural = "priorityclasses";
|
||||
resource = "priorityclasses";
|
||||
}{
|
||||
group = "scheduling.k8s.io";
|
||||
version = "scheduling.k8s.io/v1beta1";
|
||||
kind = "PriorityClass";
|
||||
plural = "priorityclasses";
|
||||
resource = "priorityclasses";
|
||||
}{
|
||||
group = "settings.k8s.io";
|
||||
version = "settings.k8s.io/v1alpha1";
|
||||
kind = "PodPreset";
|
||||
plural = "podpresets";
|
||||
resource = "podpresets";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1";
|
||||
kind = "VolumeAttachment";
|
||||
plural = "volumeattachments";
|
||||
resource = "volumeattachments";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1alpha1";
|
||||
kind = "VolumeAttachment";
|
||||
plural = "volumeattachments";
|
||||
resource = "volumeattachments";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "VolumeAttachment";
|
||||
plural = "volumeattachments";
|
||||
resource = "volumeattachments";
|
||||
}{
|
||||
group = "apiextensions.k8s.io";
|
||||
version = "apiextensions.k8s.io/v1beta1";
|
||||
kind = "CustomResourceDefinition";
|
||||
plural = "customresourcedefinitions";
|
||||
resource = "customresourcedefinitions";
|
||||
}{
|
||||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}{
|
||||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1beta1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,14 @@
|
|||
with lib;
|
||||
|
||||
let
|
||||
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";
|
||||
|
|
@ -80,8 +88,7 @@ let
|
|||
# metdata.name cannot use option default, due deep config
|
||||
metadata.name = mkOptionDefault name;
|
||||
}
|
||||
] ++ (config.defaults.${resource} or [])
|
||||
++ (config.defaults.all or []));
|
||||
] ++ (getDefaults resource group version kind));
|
||||
});
|
||||
|
||||
coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (types.coercedTo
|
||||
|
|
@ -12700,292 +12707,292 @@ in {
|
|||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1beta1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Binding";
|
||||
plural = "bindings";
|
||||
resource = "bindings";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ConfigMap";
|
||||
plural = "configmaps";
|
||||
resource = "configmaps";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Endpoints";
|
||||
plural = "endpoints";
|
||||
resource = "endpoints";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "LimitRange";
|
||||
plural = "limitranges";
|
||||
resource = "limitranges";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Namespace";
|
||||
plural = "namespaces";
|
||||
resource = "namespaces";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Node";
|
||||
plural = "nodes";
|
||||
resource = "nodes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolume";
|
||||
plural = "persistentvolumes";
|
||||
resource = "persistentvolumes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolumeClaim";
|
||||
plural = "persistentvolumeclaims";
|
||||
resource = "persistentvolumeclaims";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Pod";
|
||||
plural = "pods";
|
||||
resource = "pods";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PodTemplate";
|
||||
plural = "podtemplates";
|
||||
resource = "podtemplates";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ReplicationController";
|
||||
plural = "replicationcontrollers";
|
||||
resource = "replicationcontrollers";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ResourceQuota";
|
||||
plural = "resourcequotas";
|
||||
resource = "resourcequotas";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Secret";
|
||||
plural = "secrets";
|
||||
resource = "secrets";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Service";
|
||||
plural = "services";
|
||||
resource = "services";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ServiceAccount";
|
||||
plural = "serviceaccounts";
|
||||
resource = "serviceaccounts";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1alpha1";
|
||||
kind = "ExternalAdmissionHookConfiguration";
|
||||
plural = "externaladmissionhookconfigurations";
|
||||
resource = "externaladmissionhookconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1alpha1";
|
||||
kind = "InitializerConfiguration";
|
||||
plural = "initializerconfigurations";
|
||||
resource = "initializerconfigurations";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1beta1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v2alpha1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1";
|
||||
kind = "Job";
|
||||
plural = "jobs";
|
||||
resource = "jobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v2alpha1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "certificates.k8s.io";
|
||||
version = "certificates.k8s.io/v1beta1";
|
||||
kind = "CertificateSigningRequest";
|
||||
plural = "certificatesigningrequests";
|
||||
resource = "certificatesigningrequests";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Ingress";
|
||||
plural = "ingresses";
|
||||
resource = "ingresses";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "ThirdPartyResource";
|
||||
plural = "thirdpartyresources";
|
||||
resource = "thirdpartyresources";
|
||||
}{
|
||||
group = "networking.k8s.io";
|
||||
version = "networking.k8s.io/v1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "Eviction";
|
||||
plural = "eviction";
|
||||
resource = "eviction";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodDisruptionBudget";
|
||||
plural = "poddisruptionbudgets";
|
||||
resource = "poddisruptionbudgets";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "settings.k8s.io";
|
||||
version = "settings.k8s.io/v1alpha1";
|
||||
kind = "PodPreset";
|
||||
plural = "podpresets";
|
||||
resource = "podpresets";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,14 @@
|
|||
with lib;
|
||||
|
||||
let
|
||||
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";
|
||||
|
|
@ -80,8 +88,7 @@ let
|
|||
# metdata.name cannot use option default, due deep config
|
||||
metadata.name = mkOptionDefault name;
|
||||
}
|
||||
] ++ (config.defaults.${resource} or [])
|
||||
++ (config.defaults.all or []));
|
||||
] ++ (getDefaults resource group version kind));
|
||||
});
|
||||
|
||||
coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (types.coercedTo
|
||||
|
|
@ -26385,357 +26392,357 @@ in {
|
|||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1alpha1";
|
||||
kind = "ExternalAdmissionHookConfiguration";
|
||||
plural = "externaladmissionhookconfigurations";
|
||||
resource = "externaladmissionhookconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1alpha1";
|
||||
kind = "InitializerConfiguration";
|
||||
plural = "initializerconfigurations";
|
||||
resource = "initializerconfigurations";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1beta1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v2beta1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1";
|
||||
kind = "Job";
|
||||
plural = "jobs";
|
||||
resource = "jobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1beta1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v2alpha1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "certificates.k8s.io";
|
||||
version = "certificates.k8s.io/v1beta1";
|
||||
kind = "CertificateSigningRequest";
|
||||
plural = "certificatesigningrequests";
|
||||
resource = "certificatesigningrequests";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Binding";
|
||||
plural = "bindings";
|
||||
resource = "bindings";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ConfigMap";
|
||||
plural = "configmaps";
|
||||
resource = "configmaps";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Endpoints";
|
||||
plural = "endpoints";
|
||||
resource = "endpoints";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "LimitRange";
|
||||
plural = "limitranges";
|
||||
resource = "limitranges";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Namespace";
|
||||
plural = "namespaces";
|
||||
resource = "namespaces";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Node";
|
||||
plural = "nodes";
|
||||
resource = "nodes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolume";
|
||||
plural = "persistentvolumes";
|
||||
resource = "persistentvolumes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolumeClaim";
|
||||
plural = "persistentvolumeclaims";
|
||||
resource = "persistentvolumeclaims";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Pod";
|
||||
plural = "pods";
|
||||
resource = "pods";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PodTemplate";
|
||||
plural = "podtemplates";
|
||||
resource = "podtemplates";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ReplicationController";
|
||||
plural = "replicationcontrollers";
|
||||
resource = "replicationcontrollers";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ResourceQuota";
|
||||
plural = "resourcequotas";
|
||||
resource = "resourcequotas";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Secret";
|
||||
plural = "secrets";
|
||||
resource = "secrets";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Service";
|
||||
plural = "services";
|
||||
resource = "services";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ServiceAccount";
|
||||
plural = "serviceaccounts";
|
||||
resource = "serviceaccounts";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Ingress";
|
||||
plural = "ingresses";
|
||||
resource = "ingresses";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "networking.k8s.io";
|
||||
version = "networking.k8s.io/v1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "Eviction";
|
||||
plural = "eviction";
|
||||
resource = "eviction";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodDisruptionBudget";
|
||||
plural = "poddisruptionbudgets";
|
||||
resource = "poddisruptionbudgets";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "scheduling.k8s.io";
|
||||
version = "scheduling.k8s.io/v1alpha1";
|
||||
kind = "PriorityClass";
|
||||
plural = "priorityclasses";
|
||||
resource = "priorityclasses";
|
||||
}{
|
||||
group = "settings.k8s.io";
|
||||
version = "settings.k8s.io/v1alpha1";
|
||||
kind = "PodPreset";
|
||||
plural = "podpresets";
|
||||
resource = "podpresets";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "apiextensions.k8s.io";
|
||||
version = "apiextensions.k8s.io/v1beta1";
|
||||
kind = "CustomResourceDefinition";
|
||||
plural = "customresourcedefinitions";
|
||||
resource = "customresourcedefinitions";
|
||||
}{
|
||||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1beta1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,14 @@
|
|||
with lib;
|
||||
|
||||
let
|
||||
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";
|
||||
|
|
@ -80,8 +88,7 @@ let
|
|||
# metdata.name cannot use option default, due deep config
|
||||
metadata.name = mkOptionDefault name;
|
||||
}
|
||||
] ++ (config.defaults.${resource} or [])
|
||||
++ (config.defaults.all or []));
|
||||
] ++ (getDefaults resource group version kind));
|
||||
});
|
||||
|
||||
coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (types.coercedTo
|
||||
|
|
@ -28578,397 +28585,397 @@ in {
|
|||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1alpha1";
|
||||
kind = "InitializerConfiguration";
|
||||
plural = "initializerconfigurations";
|
||||
resource = "initializerconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1beta1";
|
||||
kind = "MutatingWebhookConfiguration";
|
||||
plural = "mutatingwebhookconfigurations";
|
||||
resource = "mutatingwebhookconfigurations";
|
||||
}{
|
||||
group = "admissionregistration.k8s.io";
|
||||
version = "admissionregistration.k8s.io/v1beta1";
|
||||
kind = "ValidatingWebhookConfiguration";
|
||||
plural = "validatingwebhookconfigurations";
|
||||
resource = "validatingwebhookconfigurations";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta1";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ControllerRevision";
|
||||
plural = "controllerrevisions";
|
||||
resource = "controllerrevisions";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "apps";
|
||||
version = "apps/v1beta2";
|
||||
kind = "StatefulSet";
|
||||
plural = "statefulsets";
|
||||
resource = "statefulsets";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authentication.k8s.io";
|
||||
version = "authentication.k8s.io/v1beta1";
|
||||
kind = "TokenReview";
|
||||
plural = "tokenreviews";
|
||||
resource = "tokenreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "LocalSubjectAccessReview";
|
||||
plural = "localsubjectaccessreviews";
|
||||
resource = "localsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectAccessReview";
|
||||
plural = "selfsubjectaccessreviews";
|
||||
resource = "selfsubjectaccessreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SelfSubjectRulesReview";
|
||||
plural = "selfsubjectrulesreviews";
|
||||
resource = "selfsubjectrulesreviews";
|
||||
}{
|
||||
group = "authorization.k8s.io";
|
||||
version = "authorization.k8s.io/v1beta1";
|
||||
kind = "SubjectAccessReview";
|
||||
plural = "subjectaccessreviews";
|
||||
resource = "subjectaccessreviews";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "autoscaling";
|
||||
version = "autoscaling/v2beta1";
|
||||
kind = "HorizontalPodAutoscaler";
|
||||
plural = "horizontalpodautoscalers";
|
||||
resource = "horizontalpodautoscalers";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1";
|
||||
kind = "Job";
|
||||
plural = "jobs";
|
||||
resource = "jobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v1beta1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "batch";
|
||||
version = "batch/v2alpha1";
|
||||
kind = "CronJob";
|
||||
plural = "cronjobs";
|
||||
resource = "cronjobs";
|
||||
}{
|
||||
group = "certificates.k8s.io";
|
||||
version = "certificates.k8s.io/v1beta1";
|
||||
kind = "CertificateSigningRequest";
|
||||
plural = "certificatesigningrequests";
|
||||
resource = "certificatesigningrequests";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Binding";
|
||||
plural = "bindings";
|
||||
resource = "bindings";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ConfigMap";
|
||||
plural = "configmaps";
|
||||
resource = "configmaps";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Endpoints";
|
||||
plural = "endpoints";
|
||||
resource = "endpoints";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "LimitRange";
|
||||
plural = "limitranges";
|
||||
resource = "limitranges";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Namespace";
|
||||
plural = "namespaces";
|
||||
resource = "namespaces";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Node";
|
||||
plural = "nodes";
|
||||
resource = "nodes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolume";
|
||||
plural = "persistentvolumes";
|
||||
resource = "persistentvolumes";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PersistentVolumeClaim";
|
||||
plural = "persistentvolumeclaims";
|
||||
resource = "persistentvolumeclaims";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Pod";
|
||||
plural = "pods";
|
||||
resource = "pods";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "PodTemplate";
|
||||
plural = "podtemplates";
|
||||
resource = "podtemplates";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ReplicationController";
|
||||
plural = "replicationcontrollers";
|
||||
resource = "replicationcontrollers";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ResourceQuota";
|
||||
plural = "resourcequotas";
|
||||
resource = "resourcequotas";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Secret";
|
||||
plural = "secrets";
|
||||
resource = "secrets";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "Service";
|
||||
plural = "services";
|
||||
resource = "services";
|
||||
}{
|
||||
group = "core";
|
||||
version = "v1";
|
||||
kind = "ServiceAccount";
|
||||
plural = "serviceaccounts";
|
||||
resource = "serviceaccounts";
|
||||
}{
|
||||
group = "events.k8s.io";
|
||||
version = "events.k8s.io/v1beta1";
|
||||
kind = "Event";
|
||||
plural = "events";
|
||||
resource = "events";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DaemonSet";
|
||||
plural = "daemonsets";
|
||||
resource = "daemonsets";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Deployment";
|
||||
plural = "deployments";
|
||||
resource = "deployments";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "DeploymentRollback";
|
||||
plural = "rollback";
|
||||
resource = "rollback";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "Ingress";
|
||||
plural = "ingresses";
|
||||
resource = "ingresses";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "PodSecurityPolicy";
|
||||
plural = "podsecuritypolicies";
|
||||
resource = "podsecuritypolicies";
|
||||
}{
|
||||
group = "extensions";
|
||||
version = "extensions/v1beta1";
|
||||
kind = "ReplicaSet";
|
||||
plural = "replicasets";
|
||||
resource = "replicasets";
|
||||
}{
|
||||
group = "networking.k8s.io";
|
||||
version = "networking.k8s.io/v1";
|
||||
kind = "NetworkPolicy";
|
||||
plural = "networkpolicies";
|
||||
resource = "networkpolicies";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "Eviction";
|
||||
plural = "eviction";
|
||||
resource = "eviction";
|
||||
}{
|
||||
group = "policy";
|
||||
version = "policy/v1beta1";
|
||||
kind = "PodDisruptionBudget";
|
||||
plural = "poddisruptionbudgets";
|
||||
resource = "poddisruptionbudgets";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1alpha1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRole";
|
||||
plural = "clusterroles";
|
||||
resource = "clusterroles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "ClusterRoleBinding";
|
||||
plural = "clusterrolebindings";
|
||||
resource = "clusterrolebindings";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "Role";
|
||||
plural = "roles";
|
||||
resource = "roles";
|
||||
}{
|
||||
group = "rbac.authorization.k8s.io";
|
||||
version = "rbac.authorization.k8s.io/v1beta1";
|
||||
kind = "RoleBinding";
|
||||
plural = "rolebindings";
|
||||
resource = "rolebindings";
|
||||
}{
|
||||
group = "scheduling.k8s.io";
|
||||
version = "scheduling.k8s.io/v1alpha1";
|
||||
kind = "PriorityClass";
|
||||
plural = "priorityclasses";
|
||||
resource = "priorityclasses";
|
||||
}{
|
||||
group = "settings.k8s.io";
|
||||
version = "settings.k8s.io/v1alpha1";
|
||||
kind = "PodPreset";
|
||||
plural = "podpresets";
|
||||
resource = "podpresets";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1alpha1";
|
||||
kind = "VolumeAttachment";
|
||||
plural = "volumeattachments";
|
||||
resource = "volumeattachments";
|
||||
}{
|
||||
group = "storage.k8s.io";
|
||||
version = "storage.k8s.io/v1beta1";
|
||||
kind = "StorageClass";
|
||||
plural = "storageclasses";
|
||||
resource = "storageclasses";
|
||||
}{
|
||||
group = "apiextensions.k8s.io";
|
||||
version = "apiextensions.k8s.io/v1beta1";
|
||||
kind = "CustomResourceDefinition";
|
||||
plural = "customresourcedefinitions";
|
||||
resource = "customresourcedefinitions";
|
||||
}{
|
||||
group = "apiregistration.k8s.io";
|
||||
version = "apiregistration.k8s.io/v1beta1";
|
||||
kind = "APIService";
|
||||
plural = "apiservices";
|
||||
resource = "apiservices";
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ let
|
|||
|
||||
kind = path.post."x-kubernetes-group-version-kind".kind;
|
||||
version = if group' != "" then "${group'}/${version'}" else version';
|
||||
plural = last (splitString "/" name);
|
||||
resource = last (splitString "/" name);
|
||||
description = swagger.definitions.${ref}.description;
|
||||
group = if group' == "" then "core" else group';
|
||||
defintion = refDefinition (head path.post.parameters).schema;
|
||||
|
|
@ -238,7 +238,7 @@ let
|
|||
genResourceOptions = resource: with gen; let
|
||||
submoduleForDefinition' = definition: let
|
||||
in submoduleForDefinition
|
||||
definition.ref definition.plural definition.kind definition.group definition.version;
|
||||
definition.ref definition.resource definition.kind definition.group definition.version;
|
||||
in mkOption {
|
||||
description = resource.description;
|
||||
type = types.attrsOf (submoduleForDefinition' resource);
|
||||
|
|
@ -251,6 +251,14 @@ in pkgs.writeText "gen.nix"
|
|||
with lib;
|
||||
|
||||
let
|
||||
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\";
|
||||
|
|
@ -327,8 +335,7 @@ let
|
|||
# metdata.name cannot use option default, due deep config
|
||||
metadata.name = mkOptionDefault name;
|
||||
}
|
||||
] ++ (config.defaults.\${resource} or [])
|
||||
++ (config.defaults.all or []));
|
||||
] ++ (getDefaults resource group version kind));
|
||||
});
|
||||
|
||||
coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (types.coercedTo
|
||||
|
|
@ -354,11 +361,11 @@ in {
|
|||
options = {${concatStrings (mapAttrsToList (name: resource: "
|
||||
\"${resource.group}\".\"${resource.version}\".\"${resource.kind}\" = ${genResourceOptions resource};
|
||||
") resources)}} // {${concatStrings (mapAttrsToList (name: resource: "
|
||||
\"${resource.plural}\" = ${genResourceOptions resource};
|
||||
\"${resource.resource}\" = ${genResourceOptions resource};
|
||||
") latestResourcesByKind)}};
|
||||
|
||||
config = {${concatStrings (mapAttrsToList (name: resource: "
|
||||
\"${resource.group}\".\"${resource.version}\".\"${resource.kind}\" = config.\"${resource.plural}\";
|
||||
\"${resource.group}\".\"${resource.version}\".\"${resource.kind}\" = config.\"${resource.resource}\";
|
||||
") latestResourcesByKind)}} // {
|
||||
inherit definitions;
|
||||
|
||||
|
|
@ -366,7 +373,7 @@ in {
|
|||
group = \"${resource.group}\";
|
||||
version = \"${resource.version}\";
|
||||
kind = \"${resource.kind}\";
|
||||
plural = \"${resource.plural}\";
|
||||
resource = \"${resource.resource}\";
|
||||
}") resources)}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ in {
|
|||
group = "stable.example.com";
|
||||
version = "v1";
|
||||
kind = "CronTab";
|
||||
plural = "crontabs";
|
||||
resource = "crontabs";
|
||||
description = "CronTabs resources";
|
||||
module = {
|
||||
options.schedule = mkOption {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue