From f45b4e8a379516a044625906dc8e1c6ea5d63780 Mon Sep 17 00:00:00 2001 From: Karishma Punwatkar Date: Mon, 20 Oct 2025 12:47:36 +0100 Subject: [PATCH 1/2] feat: Adds TempoStack resource modified: ocp_resources/resource.py new file: ocp_resources/tempo_stack.py modified: ocp_resources/resource.py --- ocp_resources/resource.py | 1 + ocp_resources/tempo_stack.py | 73 ++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 ocp_resources/tempo_stack.py diff --git a/ocp_resources/resource.py b/ocp_resources/resource.py index 0a018fe973..45d400ca8d 100644 --- a/ocp_resources/resource.py +++ b/ocp_resources/resource.py @@ -568,6 +568,7 @@ class ApiGroup: TEKTONTASKS_KUBEVIRT_IO: str = "tektontasks.kubevirt.io" TEMPLATE_KUBEVIRT_IO: str = "template.kubevirt.io" TEMPLATE_OPENSHIFT_IO: str = "template.openshift.io" + TEMPO_GRAFANA_COM: str = "tempo.grafana.com" TRUSTYAI_OPENDATAHUB_IO: str = "trustyai.opendatahub.io" UPLOAD_CDI_KUBEVIRT_IO: str = "upload.cdi.kubevirt.io" USER_OPENSHIFT_IO: str = "user.openshift.io" diff --git a/ocp_resources/tempo_stack.py b/ocp_resources/tempo_stack.py new file mode 100644 index 0000000000..fed52cd135 --- /dev/null +++ b/ocp_resources/tempo_stack.py @@ -0,0 +1,73 @@ +# Generated using https://github.com/RedHatQE/openshift-python-wrapper/blob/main/scripts/resource/README.md + + +from typing import Any +from ocp_resources.resource import NamespacedResource +from ocp_resources.exceptions import MissingRequiredArgumentError + + +class TempoStack(NamespacedResource): + """ + TempoStack manages a Tempo deployment in microservices mode. + """ + + api_group: str = NamespacedResource.ApiGroup.TEMPO_GRAFANA_COM + + def __init__( + self, + management_state: str | None = None, + resources: dict[str, Any] | None = None, + storage: dict[str, Any] | None = None, + storage_size: Any | None = None, + template: dict[str, Any] | None = None, + **kwargs: Any, + ) -> None: + r""" + Args: + management_state (str): ManagementState defines if the CR should be managed by the operator or + not. Default is managed. + + resources (dict[str, Any]): Resources defines resources configuration. + + storage (dict[str, Any]): Storage defines the spec for the object storage endpoint to store + traces. User is required to create secret and supply it. + + storage_size (Any): StorageSize for PVCs used by ingester. Defaults to 10Gi. + + template (dict[str, Any]): Template defines requirements for a set of tempo components. + """ + super().__init__(**kwargs) + + self.management_state = management_state + self.resources = resources + self.storage = storage + self.storage_size = storage_size + self.template = template + + def to_dict(self) -> None: + super().to_dict() + + if not self.kind_dict and not self.yaml_file: + if self.management_state is None: + raise MissingRequiredArgumentError(argument="self.management_state") + + if self.storage is None: + raise MissingRequiredArgumentError(argument="self.storage") + + self.res["spec"] = {} + _spec = self.res["spec"] + + _spec["managementState"] = self.management_state + _spec["storage"] = self.storage + + if self.resources is not None: + _spec["resources"] = self.resources + + + if self.storage_size is not None: + _spec["storageSize"] = self.storage_size + + if self.template is not None: + _spec["template"] = self.template + + # End of generated code From 3b68b53d32eaf88a20050d8518e3b4c2ed4dc200 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:33:16 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- ocp_resources/tempo_stack.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ocp_resources/tempo_stack.py b/ocp_resources/tempo_stack.py index fed52cd135..a2d849115f 100644 --- a/ocp_resources/tempo_stack.py +++ b/ocp_resources/tempo_stack.py @@ -63,7 +63,6 @@ def to_dict(self) -> None: if self.resources is not None: _spec["resources"] = self.resources - if self.storage_size is not None: _spec["storageSize"] = self.storage_size