Commit Graph

3872 Commits

Author SHA1 Message Date
Sambhav Kothari b0cce97d89
Add cloudcoil to client libraries
[CloudCoil](https://github.com/cloudcoil/cloudcoil) - Production-ready Python client for Kubernetes with async support
I've been working on improving the Python development experience for Kubernetes, and I'm excited to share CloudCoil - a modern K8s client that brings features like async/await, type safety, and integrated testing to the Python ecosystem.
Why another Kubernetes client?
In the Python ecosystem, we've been missing features that Go developers take for granted - things like robust client implementations, proper type safety, and integrated testing tools. CloudCoil aims to fix this by providing:
1) Production-focused features:
* 🔥 Elegant, Pythonic API - Feels natural to Python developers
*  Async First - Native async/await support for high performance
* 🛡️ Type Safe - Full mypy support and runtime validation
* 🧪 Testing Ready - Built-in pytest fixtures for K8s integration tests
* 📦 Zero Config - Works with your existing kubeconfig
* 🪶 Minimal Dependencies - Only requires httpx, pydantic, and pyyaml
2) First-class operator support:
- [cert-manager](https://github.com/cloudcoil/models-cert-manager)
- [FluxCD](https://github.com/cloudcoil/models-fluxcd)
- [Kyverno](https://github.com/cloudcoil/models-kyverno)
(More coming soon - let me know what you'd like to see!)
3) Rich features for production use:
Resource watching with async support:
    async for event_type, pod in await core.v1.Pod.async_watch(
        field_selector="metadata.name=mypod"
    ):
        if event_type == "DELETED":
            break
Smart wait conditions:
    pod = core.v1.Pod.get("test-pod")
    status = await pod.async_wait_for({
        "succeeded": lambda _, pod: pod.status.phase == "Succeeded",
        "failed": lambda _, pod: pod.status.phase == "Failed"
    }, timeout=300)
Dynamic CRD support:
    DynamicCRD = resources.get_dynamic_resource(
        "MyCustomResource",
        "example.com/v1"
    )
    resource = DynamicCRD(
        metadata={"name": "example"},
        spec={"someField": "value"}
    ).create()
4) Installation:
Choose your K8s version:
    # Latest version
    pip install cloudcoil[kubernetes]
    # Specific K8s version
    pip install cloudcoil[kubernetes-1-32]
The project is Apache 2.0 licensed and ready for production use. We'd especially love feedback from:
- Teams using Python for K8s automation
- Anyone building operators/controllers in Python
- DevOps engineers managing multiple clusters
Links:
* GitHub: https://github.com/cloudcoil/cloudcoil
* Docs: https://cloudcoil.github.io/cloudcoil
* PyPI: https://pypi.org/project/cloudcoil
Looking forward to your feedback, especially on what operators you'd like to see supported next!
2025-01-22 14:12:06 +00:00
windsonsea a214e105a2 Clean up service-accounts-admin.md 2025-01-21 09:08:14 +08:00
Lubomir I. Ivanov fc222599a9 kubeadm-reset: add notes about more manual cleanup steps 2025-01-17 18:27:11 +02:00
Mohammad Alavi 45182c8c24
change ValidatingAdmissionWebhook to ValidatingAdmissionPolicy 2025-01-14 21:22:05 +07:00
Kubernetes Prow Robot d4ecebf369
Merge pull request #49171 from yuto-kimura-g/fix/49116
Update stale glossary entry for "minikube"
2025-01-13 02:34:32 -08:00
Kubernetes Prow Robot 4635fc7a48
Merge pull request #49355 from tengqm/fg-rdsv-132
Add feature gate for RelaxedDNSSearchValidation in v1.32
2025-01-10 05:14:31 -08:00
Kubernetes Prow Robot 280b7d922b
Merge pull request #49343 from tengqm/fg-kubeproxyversion-132
Fix gate status for DisableNodeKubeProxyVersion
2025-01-10 05:12:32 -08:00
Qiming Teng d7b4f8cfb4 Add feature gate for RelaxedDNSSearchValidation in v1.32 2025-01-10 20:22:19 +08:00
Qiming Teng 2f005c3c16 Fix gate status for DisableNodeKubeProxyVersion
The gate was "deprecated" in v1.31 after several rounds of battles.
2025-01-10 20:14:06 +08:00
Kubernetes Prow Robot 5d3b9c3c43
Merge pull request #49176 from tancheng33/validating-admission-policy-docs
Reorder ValidatingAdmissionPolicy components for logical flow
2025-01-10 01:52:32 -08:00
Kubernetes Prow Robot 88b6be5cea
Merge pull request #49347 from tengqm/fg-scefv-132
Fix gate status for StrictCostEnforcementForVAP in v1.32
2025-01-09 12:40:34 -08:00
Kubernetes Prow Robot 826e29f7b8
Merge pull request #49348 from tengqm/fg-scefw-132
Fix gate status for StrictCostEnforcementForWebhooks in v1.32
2025-01-09 12:38:31 -08:00
Kubernetes Prow Robot c6bd33d9ef
Merge pull request #49351 from tengqm/fg-btree-132
Add feature gate BtreeWatchCache for v1.32.
2025-01-09 08:46:31 -08:00
Kubernetes Prow Robot 05d32fb3e4
Merge pull request #48964 from T-Lakshmi/slis
Corrected featute state for ComponentSLIs
2025-01-09 07:14:33 -08:00
Kubernetes Prow Robot 7f0f7665d9
Merge pull request #49346 from tengqm/fg-svm-132
Fix gate status for StorageVersionMigrator in v1.32
2025-01-09 03:14:31 -08:00
Kubernetes Prow Robot dade3eeeaf
Merge pull request #49344 from tengqm/fg-eventedpleg
Fix status for EventedPLEG
2025-01-09 03:12:33 -08:00
Kubernetes Prow Robot 9babd649b9
Merge pull request #49359 from tengqm/fg-sni-132
Add feature gate StorageNamespaceIndex for v1.32
2025-01-09 00:54:31 -08:00
Kubernetes Prow Robot af83f54f2c
Merge pull request #49353 from tengqm/fg-ippvsec-132
Add feature gate InPlacePodVerticalScalingExclusiveCPUs v1.32
2025-01-09 00:44:30 -08:00
Kubernetes Prow Robot 64dbb90b5b
Merge pull request #49357 from tengqm/fg-scwr-132
Add feature gate SeparateCacheWatchRPC v1.32
2025-01-08 06:32:30 -08:00
Kubernetes Prow Robot 07b9d8d335
Merge pull request #49350 from tengqm/fg-apiserving-132
Add feature gate for APIServingWithRoute
2025-01-08 06:30:30 -08:00
Qiming Teng df8f12d4c6 Add feature gate StorageNamespaceIndex for v1.32 2025-01-08 22:03:29 +08:00
Qiming Teng 3e427915a9 Add feature gate SeparateCacheWatchRPC v1.32 2025-01-08 22:02:31 +08:00
Qiming Teng 3318f46f86 Add feature gate InPlacePodVerticalScalingExclusiveCPUs v1.32 2025-01-08 22:00:48 +08:00
Qiming Teng 6755efa79d Add feature gate BtreeWatchCache for v1.32. 2025-01-08 21:59:39 +08:00
Qiming Teng 2286beaa2b Add feature gate for APIServingWithRoute
This gate was missing since v1.30.
2025-01-08 21:56:53 +08:00
Kubernetes Prow Robot 3592f042ec
Merge pull request #49356 from tengqm/fg-rrhu-132
Add feature gate RemoteRequestHeaderUID v1.32
2025-01-08 05:28:29 -08:00
Kubernetes Prow Robot 321bea3dbe
Merge pull request #49349 from tengqm/fg-windowsgmsa
Fix gate status for WindowsGMSA
2025-01-08 05:26:30 -08:00
Kubernetes Prow Robot 408fb79fc9
Merge pull request #49352 from tengqm/fg-ippvsas-132
Add feature gate InPlacePodVerticalScalingAllocatedStatus v1.32
2025-01-08 05:20:30 -08:00
Kubernetes Prow Robot 7b2f1561f1
Merge pull request #49342 from tengqm/fg-dhnhppt-132
Fix gate status for DefaultHostNetworkHostPortsInPodTemplates
2025-01-08 05:14:30 -08:00
Qiming Teng 3c516a2ef3 Fix gate status for StrictCostEnforcementForVAP in v1.32
The gate `StrictCostEnforcementForVAP` has been GA'ed and locked to
default in v1.32.
2025-01-08 21:10:42 +08:00
Qiming Teng fe53ef9461 Add feature gate RemoteRequestHeaderUID v1.32 2025-01-08 21:01:32 +08:00
Qiming Teng faa257bfbc Add feature gate InPlacePodVerticalScalingAllocatedStatus v1.32 2025-01-08 20:49:34 +08:00
Qiming Teng 3d376460fd Fix gate status for WindowsGMSA
The feature gate `WindowsGMSA` was removed in v1.19.
2025-01-08 20:36:04 +08:00
Qiming Teng b1c841209c Fix gate status for StrictCostEnforcementForWebhooks in v1.32
The feature gate `StrictCostEnforcementForWebhooks` is now stable in
v1.32.
2025-01-08 20:34:28 +08:00
Qiming Teng 089909822a Fix gate status for StorageVersionMigrator in v1.32
The alpha stage for `StorageVersionMigrator` has not ended yet.
2025-01-08 20:30:18 +08:00
Qiming Teng e2d83673a8 Fix gate status for JobManagedBy in v1.32
The default value for `JobManagedBy` is `true`, not `false`.
2025-01-08 20:28:39 +08:00
Qiming Teng 05077e1372 Fix status for EventedPLEG
This gate was introduced in v1.26 rather than v1.25.
2025-01-08 20:27:06 +08:00
Qiming Teng efa6a07c85 Fix gate status for DefaultHostNetworkHostPortsInPodTemplates
The gate was removed in v1.31.
2025-01-08 20:24:04 +08:00
Qiming Teng 3782732ce4 Fix feature gate name conflicts (2/2) 2025-01-08 10:51:36 +08:00
Qiming Teng 58d1204d7d Fix feature gate name conflicts (1/2) 2025-01-08 10:30:42 +08:00
Kubernetes Prow Robot e523212128
Merge pull request #49202 from tengqm/rename-gates
Rename feature gate files to use gate names
2025-01-07 19:30:30 +01:00
Lakshmi Prasuna c0135fc2ec update featute state to beta 2025-01-06 11:47:28 +05:30
Kubernetes Prow Robot 35b261a9b3
Merge pull request #49217 from ahg-g/jobset
Document labels, annotations and taints for JobSet
2025-01-04 19:06:15 +01:00
Kubernetes Prow Robot e70f7015f0
Merge pull request #49248 from abhilasha2418/drainGlossary
Add drain to glossary
2024-12-28 04:04:12 +01:00
abhilasha2418 766f54f1b8 feature: add drain to glossary 2024-12-27 14:25:43 +05:30
ahg-g a94c5e7cb9 Clarify the namespaced-job label on nodes 2024-12-23 18:09:47 +00:00
ahg-g c68175e5bd Document labels, annotations and taints for JobSet 2024-12-23 17:50:41 +00:00
Qiming Teng c8f36598b2 Rename feature gate files to use gate names
The conversion to/from snake-case was not necessary and it is
causing mental burden and extra labor in resyncing changes.
2024-12-22 12:16:27 +08:00
谭成 212637cfb7 Reorder ValidatingAdmissionPolicy components for logical flow 2024-12-20 09:34:38 +08:00
yuto-kimura-g 87bc53bd26 update: stale glossary entry for minikube
internal link
2024-12-20 02:10:02 +09:00