From 23d8a951d96bf2a4094667c4bfe7739960acfd4c Mon Sep 17 00:00:00 2001 From: Gwynne Monahan Date: Fri, 18 Jul 2025 10:09:46 -0500 Subject: [PATCH 1/3] [POWERMON] POWERMON-629 API Sepc TP 0.5 --- _topic_maps/_topic_map.yml | 2 + .../power-monitoring-api-specifications.adoc | 139 ++++++++++++++++++ .../power-monitoring-api-reference.adoc | 14 ++ 3 files changed, 155 insertions(+) create mode 100644 modules/power-monitoring-api-specifications.adoc create mode 100644 observability/power_monitoring/power-monitoring-api-reference.adoc diff --git a/_topic_maps/_topic_map.yml b/_topic_maps/_topic_map.yml index bc25dc0fe383..4fc611191608 100644 --- a/_topic_maps/_topic_map.yml +++ b/_topic_maps/_topic_map.yml @@ -3300,6 +3300,8 @@ Topics: File: visualizing-power-monitoring-metrics - Name: Uninstalling power monitoring File: uninstalling-power-monitoring + - Name: Power monitoring API reference + File: power-monitoring-api-reference --- Name: Scalability and performance Dir: scalability_and_performance diff --git a/modules/power-monitoring-api-specifications.adoc b/modules/power-monitoring-api-specifications.adoc new file mode 100644 index 000000000000..0e2199a1f513 --- /dev/null +++ b/modules/power-monitoring-api-specifications.adoc @@ -0,0 +1,139 @@ +// Automatically generated by 'kepler.system.sustainable.computing.io'. Do not edit. +:_mod-docs-content-type: REFERENCE +[id="power-monitoring-api-specifications_{context}"] += PowerMonitoring API specifications + +PowerMonitor + + +PowerMonitor is the schema for the PowerMonitor API. + +[cols="1,1,4,1", options="header"] +|=== +| Name +| Type +| Description +| Required + +| *apiVersion* +| string +| kepler.system.sustainable.computing.io/v1alpha1 +| true + +| *kind* +| string +| PowerMonitor +| true + +| link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#objectmeta-v1-meta[metadata] +| object +| Refer to the Kubernetes API documentation for the fields of the metadata field. +| true + +| xref:powermonitorspec[spec] +| object +| PowerMonitorSpec defines the desired state of the Power Monitor. +| false + +| xref:powermonitorstatus[status] +| object +| PowerMonitorStatus defines the observed state of the Power Monitor. +| false +|=== + +PowerMonitor.status.conditions +(Parent: powermonitorstatus) + +[cols="1,1,4,1", options="header"] +|=== +| Name +| Type +| Description +| Required + +| *lastTransitionTime* +| string +| The last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + +Format: date-time +| true + +| *message* +| string +| A human-readable message indicating details about the transition. This may be an empty string. +| true + +| *reason* +| string +| Contains a programmatic identifier indicating the reason for the condition's last transition. +| true + +| *status* +| string +| The status of the condition, which can be one of True, False, or Unknown. +| true + +| *type* +| string +| The type of Kepler Condition, such as Reconciled or Available. +| true + +| *observedGeneration* +| integer +| Represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date. + +Format: int64 + +Minimum: 0 +| false +|=== + +PowerMonitor.status.kepler +(Parent: powermonitorstatus) + +[cols="1,1,4,1", options="header"] +|=== +| Name +| Type +| Description +| Required + +| *currentNumberScheduled* +| integer +| The number of nodes that are running at least one power-monitor pod and are supposed to run it. + +Format: int32 +| true + +| *desiredNumberScheduled* +| integer +| The total number of nodes that should be running the power-monitor pod. + +Format: int32 +| true + +| *numberMisscheduled* +| integer +| The number of nodes running the power-monitor pod that are not supposed to. + +Format: int32 +| true + +| *numberReady* +| integer +| The number of nodes that should be running the power-monitor pod and have at least one pod with a Ready condition. + +Format: int32 +| true + +| *numberAvailable* +| integer +| The number of nodes that should be running the power-monitor pod and have at least one pod running and available. + +Format: int32 +| false + +| *numberUnavailable* +| integer +| The number of nodes that should be running the power-monitor pod but have no pods running and available. + +Format: int32 +| false + +| *updatedNumberScheduled* +| integer +| The total number of nodes that are running an updated power-monitor pod. + +Format: int32 +| false +|=== \ No newline at end of file diff --git a/observability/power_monitoring/power-monitoring-api-reference.adoc b/observability/power_monitoring/power-monitoring-api-reference.adoc new file mode 100644 index 000000000000..17d39d57c25e --- /dev/null +++ b/observability/power_monitoring/power-monitoring-api-reference.adoc @@ -0,0 +1,14 @@ +:_mod-docs-content-type: ASSEMBLY +[id="power-monitoring-api-reference_{context}"] += Power monitoring API reference +include::_attributes/common-attributes.adoc[] +:context: power-monitoring-kepler-power-attribution-guide + +toc::[] + +:FeatureName: Power monitoring +include::snippets/technology-preview.adoc[leveloffset=+2] + +PowerMonitor is the Schema for the PowerMonitor API. + +include::modules/power-monitoring-api-specifications.adoc[leveloffset=+1] \ No newline at end of file From 5f86c690ad9cb6efb9476247ab1e70c776724369 Mon Sep 17 00:00:00 2001 From: Gwynne Monahan Date: Fri, 18 Jul 2025 10:57:14 -0500 Subject: [PATCH 2/3] Squash --- modules/power-monitoring-api-specifications.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/power-monitoring-api-specifications.adoc b/modules/power-monitoring-api-specifications.adoc index 0e2199a1f513..cfa04fbf139b 100644 --- a/modules/power-monitoring-api-specifications.adoc +++ b/modules/power-monitoring-api-specifications.adoc @@ -42,7 +42,6 @@ PowerMonitor is the schema for the PowerMonitor API. |=== PowerMonitor.status.conditions -(Parent: powermonitorstatus) [cols="1,1,4,1", options="header"] |=== @@ -86,7 +85,6 @@ Minimum: 0 |=== PowerMonitor.status.kepler -(Parent: powermonitorstatus) [cols="1,1,4,1", options="header"] |=== From 1c7a0c2bf2ee61ab027eca69208cfe67d93e7dd7 Mon Sep 17 00:00:00 2001 From: Gwynne Monahan Date: Fri, 18 Jul 2025 11:19:31 -0500 Subject: [PATCH 3/3] xref removed (Squash) --- modules/power-monitoring-api-specifications.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/power-monitoring-api-specifications.adoc b/modules/power-monitoring-api-specifications.adoc index cfa04fbf139b..52b311ff3443 100644 --- a/modules/power-monitoring-api-specifications.adoc +++ b/modules/power-monitoring-api-specifications.adoc @@ -25,17 +25,17 @@ PowerMonitor is the schema for the PowerMonitor API. | PowerMonitor | true -| link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#objectmeta-v1-meta[metadata] +| link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#objectmeta-v1-meta[*metadata*] | object | Refer to the Kubernetes API documentation for the fields of the metadata field. | true -| xref:powermonitorspec[spec] +| *spec* | object | PowerMonitorSpec defines the desired state of the Power Monitor. | false -| xref:powermonitorstatus[status] +| *status* | object | PowerMonitorStatus defines the observed state of the Power Monitor. | false