diff --git a/rbacmanager.reactiveops.io/rbacdefinitions_v1alpha1.json b/rbacmanager.reactiveops.io/rbacdefinitions_v1alpha1.json new file mode 100644 index 00000000..d0708e55 --- /dev/null +++ b/rbacmanager.reactiveops.io/rbacdefinitions_v1alpha1.json @@ -0,0 +1,166 @@ +{ + "apiVersion": "apiextensions.k8s.io/v1", + "kind": "CustomResourceDefinition", + "metadata": { + "labels": { + "app": "rbac-manager" + }, + "name": "rbacdefinitions.rbacmanager.reactiveops.io" + }, + "spec": { + "group": "rbacmanager.reactiveops.io", + "names": { + "kind": "RBACDefinition", + "plural": "rbacdefinitions", + "singular": "rbacdefinition", + "shortNames": [ + "rbd", + "rbacdef" + ] + }, + "scope": "Cluster", + "versions": [ + { + "name": "v1beta1", + "served": true, + "storage": true, + "schema": { + "openAPIV3Schema": { + "required": [ + "rbacBindings" + ], + "type": "object", + "properties": { + "rbacBindings": { + "items": { + "properties": { + "clusterRoleBindings": { + "items": { + "properties": { + "clusterRole": { + "type": "string" + } + }, + "required": [ + "clusterRole" + ], + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "roleBindings": { + "items": { + "properties": { + "clusterRole": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "namespaceSelector": { + "type": "object", + "properties": { + "matchLabels": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "matchExpressions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "Exists", + "DoesNotExist", + "In", + "NotIn" + ] + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "key", + "operator" + ] + } + } + } + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "subjects": { + "items": { + "type": "object", + "properties": { + "automountServiceAccountToken": { + "type": "boolean" + }, + "imagePullSecrets": { + "type": "array", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "enum": [ + "Group", + "ServiceAccount", + "User" + ] + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + } + }, + "required": [ + "name", + "kind" + ] + }, + "type": "array" + } + }, + "required": [ + "name", + "subjects" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "type": "object" + } + } + } + } + } + ] + } + } + \ No newline at end of file