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

1# -*- coding: utf-8 -*- 

2 

3from ocp_resources.cluster_role import ClusterRole 

4from ocp_resources.resource import MissingRequiredArgumentError, Resource 

5 

6 

7class ClusterRoleBinding(Resource): 

8 """ 

9 https://kubernetes.io/docs/reference/kubernetes-api/authorization-resources/cluster-role-binding-v1/ 

10 """ 

11 

12 api_group = Resource.ApiGroup.RBAC_AUTHORIZATION_K8S_IO 

13 

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 

28 

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") 

34 

35 self.res.setdefault("roleRef", {}) 

36 self.res["roleRef"] = { 

37 "apiGroup": self.api_group, 

38 "kind": ClusterRole.kind, 

39 "name": self.cluster_role, 

40 } 

41 

42 if self.subjects: 

43 self.res.setdefault("subjects", self.subjects)