Versioned prometheus-operator models for cloudcoil
Project description
cloudcoil-models-prometheus-operator
Versioned prometheus-operator models for cloudcoil.
🔧 Installation
Using uv (recommended):
# Install with Prometheus Operator support
uv add cloudcoil.models.prometheus-operator
Using pip:
pip install cloudcoil.models.prometheus-operator
💡 Examples
Using Prometheus Operator Models
from cloudcoil import apimachinery
import cloudcoil.models.prometheus_operator.v1 as prometheus_operator
# Create a Prometheus instance
prometheus = prometheus_operator.Prometheus(
metadata=apimachinery.ObjectMeta(name="main"),
spec=prometheus_operator.PrometheusSpec(
external_url="http://monitoring.my.systems/prometheus",
resources=apimachinery.ResourceRequirements(
requests={
"memory": "400Mi"
}
)
)
).create()
# Create an Alertmanager instance
alert_manager = prometheus_operator.Alertmanager(
metadata=apimachinery.ObjectMeta(name="main"),
spec=prometheus_operator.AlertmanagerSpec(
replicas=3,
external_url="http://monitoring.my.systems/alertmanager",
resources=apimachinery.ResourceRequirements(
requests={
"memory": "400Mi"
}
)
)
).create()
# List Prometheus instances
for prom in prometheus_operator.Prometheus.list():
print(f"Found Prometheus: {prom.metadata.name}")
Using the Fluent Builder API
Cloudcoil provides a powerful fluent builder API for Prometheus Operator resources:
from cloudcoil.models.prometheus_operator.v1 import Prometheus, Alertmanager
# Create a Prometheus using the builder
prometheus = (
Prometheus.builder()
.metadata(lambda m: m
.name("main")
)
.spec(lambda s: s
.external_url("http://monitoring.my.systems/prometheus")
.resources(lambda r: r
.requests({
"memory": "400Mi"
})
)
)
.build()
)
# Create an Alertmanager using the builder
alert_manager = (
Alertmanager.builder()
.metadata(lambda m: m
.name("main")
)
.spec(lambda s: s
.replicas(3)
.external_url("http://monitoring.my.systems/alertmanager")
.resources(lambda r: r
.requests({
"memory": "400Mi"
})
)
)
.build()
)
Using the Context Manager Builder API
For complex monitoring configurations, you can use the context manager-based builder:
from cloudcoil.models.prometheus_operator.v1 import Prometheus
# Create a Prometheus instance using context managers
with Prometheus.new() as prometheus:
with prometheus.metadata() as metadata:
metadata.name("main")
with prometheus.spec() as spec:
spec.external_url("http://monitoring.my.systems/prometheus")
with spec.resources() as resources:
resources.requests({
"memory": "400Mi"
})
final_prometheus = prometheus.build()
Mixing Builder Styles
You can mix different builder styles based on your needs:
from cloudcoil.models.prometheus_operator.v1 import Alertmanager
from cloudcoil import apimachinery
# Create an Alertmanager using mixed styles
with Alertmanager.new() as alert_manager:
# Direct object initialization
alert_manager.metadata(apimachinery.ObjectMeta(
name="main"
))
# Fluent style for spec
alert_manager.spec(lambda s: s
.replicas(3)
.external_url("http://monitoring.my.systems/alertmanager")
.resources(lambda r: r
.requests({
"memory": "400Mi"
})
)
)
final_alert_manager = alert_manager.build()
📚 Documentation
For complete documentation, visit cloudcoil.github.io/cloudcoil
📜 License
Apache License, Version 2.0 - see LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cloudcoil_models_prometheus_operator-0.79.2.0.tar.gz.
File metadata
- Download URL: cloudcoil_models_prometheus_operator-0.79.2.0.tar.gz
- Upload date:
- Size: 445.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0b495140b105875b3b8093f08ae453106ea90eea4f9115b8167b5fdf06ec294
|
|
| MD5 |
21581bd151f5be9ba60729c469ff6431
|
|
| BLAKE2b-256 |
c7a222123891dd71a7f2d49fa3e6189e28b1294d1e542faa4e395fa13fa72fc6
|
Provenance
The following attestation bundles were made for cloudcoil_models_prometheus_operator-0.79.2.0.tar.gz:
Publisher:
pypi_publish.yml on cloudcoil/models-prometheus-operator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cloudcoil_models_prometheus_operator-0.79.2.0.tar.gz -
Subject digest:
f0b495140b105875b3b8093f08ae453106ea90eea4f9115b8167b5fdf06ec294 - Sigstore transparency entry: 166376042
- Sigstore integration time:
-
Permalink:
cloudcoil/models-prometheus-operator@3caf452d43925ef97cda58421c82f6b4d5f7dc1a -
Branch / Tag:
refs/tags/0.79.2.0 - Owner: https://github.com/cloudcoil
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi_publish.yml@3caf452d43925ef97cda58421c82f6b4d5f7dc1a -
Trigger Event:
release
-
Statement type:
File details
Details for the file cloudcoil_models_prometheus_operator-0.79.2.0-py3-none-any.whl.
File metadata
- Download URL: cloudcoil_models_prometheus_operator-0.79.2.0-py3-none-any.whl
- Upload date:
- Size: 389.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a40cca1adad11e4a051227661247fc27b5c35b69b50b8b4d9766f213a7ff6b87
|
|
| MD5 |
a25c8243073d57e29d543031fbd31b02
|
|
| BLAKE2b-256 |
703be29d59c6fa047ceb48b8b186004e5a5272085a75e6a890537bc209559e5d
|
Provenance
The following attestation bundles were made for cloudcoil_models_prometheus_operator-0.79.2.0-py3-none-any.whl:
Publisher:
pypi_publish.yml on cloudcoil/models-prometheus-operator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cloudcoil_models_prometheus_operator-0.79.2.0-py3-none-any.whl -
Subject digest:
a40cca1adad11e4a051227661247fc27b5c35b69b50b8b4d9766f213a7ff6b87 - Sigstore transparency entry: 166376044
- Sigstore integration time:
-
Permalink:
cloudcoil/models-prometheus-operator@3caf452d43925ef97cda58421c82f6b4d5f7dc1a -
Branch / Tag:
refs/tags/0.79.2.0 - Owner: https://github.com/cloudcoil
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi_publish.yml@3caf452d43925ef97cda58421c82f6b4d5f7dc1a -
Trigger Event:
release
-
Statement type: