Coverage for ocp_resources/cluster_role_binding.py: 0%
17 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-30 10:48 +0200
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-30 10:48 +0200
1# -*- coding: utf-8 -*-
3from ocp_resources.cluster_role import ClusterRole
4from ocp_resources.resource import MissingRequiredArgumentError, Resource
7class ClusterRoleBinding(Resource):
8 """
9 https://kubernetes.io/docs/reference/kubernetes-api/authorization-resources/cluster-role-binding-v1/
10 """
12 api_group = Resource.ApiGroup.RBAC_AUTHORIZATION_K8S_IO
14 def __init__(
15 self,
16 cluster_role=None,
17 subjects=None,
18 **kwargs,
19 ):
20 """
21 Args:
22 cluster_role (str): Name of referenced ClusterRole
23 subjects (list, optional): User subjects that are authorised to access the cluster role
24 """
25 super().__init__(**kwargs)
26 self.cluster_role = cluster_role
27 self.subjects = subjects
29 def to_dict(self) -> None:
30 super().to_dict()
31 if not self.kind_dict and not self.yaml_file:
32 if not self.cluster_role:
33 raise MissingRequiredArgumentError(argument="cluster_role")
35 self.res.setdefault("roleRef", {})
36 self.res["roleRef"] = {
37 "apiGroup": self.api_group,
38 "kind": ClusterRole.kind,
39 "name": self.cluster_role,
40 }
42 if self.subjects:
43 self.res.setdefault("subjects", self.subjects)