Versioned cert-manager models for cloudcoil
Project description
cloudcoil-models-cert-manager
Versioned cert-manager models for cloudcoil.
[!WARNING]
This repository is auto-generated from the cloudcoil repository. Please do not submit pull requests here. Instead, submit them to the main repository at https://github.com/cloudcoil/cloudcoil.
🔧 Installation
[!NOTE] For versioning information and compatibility, see the Versioning Guide.
Using uv (recommended):
# Install with cert-manager support
uv add cloudcoil.models.cert_manager
Using pip:
pip install cloudcoil.models.cert_manager
💡 Examples
Using cert-manager Models
from cloudcoil import apimachinery
import cloudcoil.models.cert_manager.v1 as cm
# Create a Certificate
certificate = cm.Certificate(
metadata=apimachinery.ObjectMeta(name="example-cert", namespace="default"),
spec=cm.CertificateSpec(
secret_name="example-cert-tls",
issuer_ref=cm.IssuerRef(name="example-issuer"),
dns_names=["example.com"]
)
).create()
# List Certificates
for cert in cm.Certificate.list(namespace="default"):
print(f"Found certificate: {cert.metadata.name}")
# Update a Certificate
certificate.spec.dns_names.append("www.example.com")
certificate.save()
# Delete a Certificate
cm.Certificate.delete("example-cert", namespace="default")
Using the Fluent Builder API
Cloudcoil provides a powerful fluent builder API for cert-manager resources with full IDE support and rich autocomplete capabilities:
from cloudcoil.models.cert_manager.v1 import Certificate, ClusterIssuer
# Create a Certificate using the fluent builder
# The fluent style is great for one-liners and simple configurations
certificate = (
Certificate.builder()
.metadata(lambda metadata: metadata
.name("example-cert")
.namespace("default")
.labels({"env": "prod"})
)
.spec(lambda cert_spec: cert_spec
.secret_name("example-cert-tls")
.issuer_ref(lambda issuer: issuer
.name("example-issuer")
.kind("ClusterIssuer")
)
.dns_names(["example.com", "www.example.com"])
.subject(lambda subject: subject
.organizations(["Example Corp"])
)
)
.build()
)
# Create a ClusterIssuer using the builder
cluster_issuer = (
ClusterIssuer.builder()
.metadata(lambda m: m.name("letsencrypt-prod"))
.spec(
lambda s: s.acme(
lambda acme: acme.email("admin@example.com")
.server("https://acme-v02.api.letsencrypt.org/directory")
.private_key_secret_ref(lambda ref: ref.name("letsencrypt-account-key"))
.solvers(
lambda solvers: solvers.add(
lambda solver: solver.http01(
lambda http: http.ingress(lambda ing: ing.class_("nginx"))
)
)
)
)
)
.build()
)
Using the Context Manager Builder API
For complex nested resources, Cloudcoil also provides a context manager-based builder pattern that can make the structure more clear:
from cloudcoil.models.cert_manager.v1 import Certificate, ClusterIssuer
# Create a certificate using context managers
with Certificate.new() as cert:
with cert.metadata() as metadata:
metadata.name("example-cert")
metadata.namespace("default")
metadata.labels({"env": "prod"})
with cert.spec() as spec:
spec.secret_name("example-cert-tls")
with spec.issuer_ref() as issuer_ref:
issuer_ref.name("example-issuer")
issuer_ref.kind("ClusterIssuer")
spec.dns_names(["example.com", "www.example.com"])
with spec.subject() as subject:
subject.organizations(["Example Corp"])
final_cert = cert.build()
# Create a ClusterIssuer using context managers
with ClusterIssuer.new() as issuer:
with issuer.metadata() as metadata:
metadata.name("letsencrypt-prod")
with issuer.spec() as spec:
with spec.acme() as acme:
acme.email("admin@example.com")
acme.server("https://acme-v02.api.letsencrypt.org/directory")
with acme.private_key_secret_ref() as key_ref:
key_ref.name("letsencrypt-account-key")
with acme.solvers() as solvers:
with solvers.add() as solver:
with solver.http01() as http:
with http.ingress() as ingress:
ingress.class_("nginx")
final_issuer = issuer.build()
The context manager builder provides:
- 🎭 Clear visual nesting of resource structure
- 🔒 Automatic resource cleanup
- 🎯 Familiar Python context manager pattern
- ✨ Same great IDE support as the fluent builder
Mixing Builder Styles
CloudCoil's intelligent builder system automatically detects which style you're using and provides appropriate IDE support:
from cloudcoil.models.cert_manager.v1 import Certificate
from cloudcoil import apimachinery
# Mixing styles lets you choose the best approach for each part
with Certificate.new() as cert:
# Direct object initialization with full type checking
cert.metadata(apimachinery.ObjectMeta(
name="example-cert",
namespace="default",
labels={"env": "prod"}
))
with cert.spec() as spec:
# Simple fields directly
spec.secret_name("example-cert-tls")
# Fluent style
spec.issuer_ref(lambda ref: ref
.name("example-issuer")
.kind("ClusterIssuer")
)
# Direct assignment
spec.dns_names(["example.com", "www.example.com"])
# Context manager style
with spec.subject() as subject:
subject.organizations(["Example Corp"])
final_cert = cert.build()
This flexibility allows you to:
- 🔀 Choose the most appropriate style for each part of your configuration
- 📖 Maximize readability for both simple and complex structures
- 🎨 Format your code according to your team's preferences
- 🧠 Get full IDE support with automatic style detection
- ✨ Enjoy rich autocomplete in all styles
- ⚡ Benefit from type checking across mixed styles
- 🎯 Receive immediate feedback on type errors
- 🔍 See documentation for all fields regardless of style
📚 Documentation
For complete documentation, visit cloudcoil.github.io/cloudcoil
📜 License
Apache License, Version 2.0 - see LICENSE
Project details
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_cert_manager-1.16.3.1.tar.gz.
File metadata
- Download URL: cloudcoil_models_cert_manager-1.16.3.1.tar.gz
- Upload date:
- Size: 158.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c56512fc1270c32df87ab29ad15f5a85fe76ddbc0a830d80bf56c92cb3b66ed5
|
|
| MD5 |
5b60b2a613e1c58693410d3f854eed6e
|
|
| BLAKE2b-256 |
fb2a33163f12aa35c1096c10f99914c0c1db0f66364d8db6cb2fdae60813d14e
|
Provenance
The following attestation bundles were made for cloudcoil_models_cert_manager-1.16.3.1.tar.gz:
Publisher:
pypi_publish.yml on cloudcoil/models-cert-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cloudcoil_models_cert_manager-1.16.3.1.tar.gz -
Subject digest:
c56512fc1270c32df87ab29ad15f5a85fe76ddbc0a830d80bf56c92cb3b66ed5 - Sigstore transparency entry: 166377167
- Sigstore integration time:
-
Permalink:
cloudcoil/models-cert-manager@6c1bfb47b3ca776fbc5bb86ef681dff719ce7900 -
Branch / Tag:
refs/tags/1.16.3.1 - Owner: https://github.com/cloudcoil
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi_publish.yml@6c1bfb47b3ca776fbc5bb86ef681dff719ce7900 -
Trigger Event:
release
-
Statement type:
File details
Details for the file cloudcoil_models_cert_manager-1.16.3.1-py3-none-any.whl.
File metadata
- Download URL: cloudcoil_models_cert_manager-1.16.3.1-py3-none-any.whl
- Upload date:
- Size: 98.7 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 |
73bbaa55958c2fe41576f4419e009b810f0623646bfb1353d7ca7c91fe7d0ba3
|
|
| MD5 |
0a35e1a86f381bb5a92109560236b71c
|
|
| BLAKE2b-256 |
74e6aafcf334c8fecd768969526872a478aed0100c248142d13181fbed7b25ff
|
Provenance
The following attestation bundles were made for cloudcoil_models_cert_manager-1.16.3.1-py3-none-any.whl:
Publisher:
pypi_publish.yml on cloudcoil/models-cert-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cloudcoil_models_cert_manager-1.16.3.1-py3-none-any.whl -
Subject digest:
73bbaa55958c2fe41576f4419e009b810f0623646bfb1353d7ca7c91fe7d0ba3 - Sigstore transparency entry: 166377168
- Sigstore integration time:
-
Permalink:
cloudcoil/models-cert-manager@6c1bfb47b3ca776fbc5bb86ef681dff719ce7900 -
Branch / Tag:
refs/tags/1.16.3.1 - Owner: https://github.com/cloudcoil
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi_publish.yml@6c1bfb47b3ca776fbc5bb86ef681dff719ce7900 -
Trigger Event:
release
-
Statement type: