Coverage for ocp_resources/sealed_secret.py: 0%

25 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2025-01-30 10:48 +0200

1from __future__ import annotations 

2from typing import Any, Dict 

3 

4from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource 

5 

6 

7class SealedSecret(NamespacedResource): 

8 """ 

9 https://github.com/bitnami-labs/sealed-secrets/blob/main/pkg/apis/sealedsecrets/v1alpha1/types.go 

10 

11 Requires the Sealed Secrets Operator to be installed. 

12 """ 

13 

14 api_group = NamespacedResource.ApiGroup.BITNAMI_COM 

15 

16 def __init__( 

17 self, 

18 encrypted_data: Dict[str, Any] | None = None, 

19 template: Dict[str, Any] | None = None, 

20 data: Dict[str, Any] | None = None, 

21 **kwargs: Any, 

22 ) -> None: 

23 """ 

24 Args: 

25 encrypted_data (dict): secret encrypted data 

26 template (dict): defines the structure of the Secret that will be created from this sealed secret 

27 data (dict): secret encrypted data 

28 """ 

29 super().__init__(**kwargs) 

30 self.encrypted_data = encrypted_data 

31 self.template = template 

32 self.data = data 

33 

34 def to_dict(self) -> None: 

35 super().to_dict() 

36 

37 if not self.kind_dict and not self.yaml_file: 

38 if not self.encrypted_data: 

39 raise MissingRequiredArgumentError(argument="encrypted_data") 

40 

41 self.res["spec"] = {} 

42 _spec = self.res["spec"] 

43 _spec["encryptedData"] = self.encrypted_data 

44 

45 if self.template: 

46 _spec["template"] = self.template 

47 

48 if self.data: 

49 _spec["data"] = self.data 

50 

51 @property 

52 def keys_to_hash(self): 

53 return ["spec>data", "spec>encryptedData"]