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
« 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
4from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource
7class SealedSecret(NamespacedResource):
8 """
9 https://github.com/bitnami-labs/sealed-secrets/blob/main/pkg/apis/sealedsecrets/v1alpha1/types.go
11 Requires the Sealed Secrets Operator to be installed.
12 """
14 api_group = NamespacedResource.ApiGroup.BITNAMI_COM
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
34 def to_dict(self) -> None:
35 super().to_dict()
37 if not self.kind_dict and not self.yaml_file:
38 if not self.encrypted_data:
39 raise MissingRequiredArgumentError(argument="encrypted_data")
41 self.res["spec"] = {}
42 _spec = self.res["spec"]
43 _spec["encryptedData"] = self.encrypted_data
45 if self.template:
46 _spec["template"] = self.template
48 if self.data:
49 _spec["data"] = self.data
51 @property
52 def keys_to_hash(self):
53 return ["spec>data", "spec>encryptedData"]