# cloudcoil-models-kpack
Versioned kpack models for cloudcoil.
> [!WARNING]
> This repository is auto-generated from the [cloudcoil repository](https://github.com/cloudcoil/cloudcoil/tree/main/models/kpack). 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](https://github.com/cloudcoil/cloudcoil/blob/main/VERSIONING.md).
Using [uv](https://github.com/astral-sh/uv) (recommended):
```bash
# Install with kpack support
uv add cloudcoil.models.kpack
```
Using pip:
```bash
pip install cloudcoil.models.kpack
```
## 💡 Examples
### Using kpack Models
```python
from cloudcoil import apimachinery
import cloudcoil.models.kpack.v1alpha2 as kpack
import cloudcoil.models.kpack.core as core
import cloudcoil.models.kubernetes.core.v1 as k8score
# Create an Image resource
image = kpack.Image(
metadata=apimachinery.ObjectMeta(name="my-app"),
spec=kpack.ImageSpec(
tag="registry.example.com/my-app",
builder_=k8score.ObjectReference(
name="my-builder",
kind="ClusterBuilder"
),
source=core.SourceConfig(
git=core.Git(
url="https://github.com/my-org/my-app.git",
revision="main"
)
)
)
).create()
# Create a Builder
builder = kpack.BuilderResource(
metadata=apimachinery.ObjectMeta(name="my-builder"),
spec=kpack.BuilderSpec(
tag="registry.example.com/builder",
stack=k8score.ObjectReference(
name="base",
kind="ClusterStack"
),
store=k8score.ObjectReference(
name="default",
kind="ClusterStore"
)
)
).create()
# List Images
for img in kpack.Image.list():
print(f"Found image: {img.metadata.name}")
# Update an Image
image.spec.source.git.revision = "v1.0.0"
image.save()
# Delete resources
kpack.Image.delete("my-app")
kpack.BuilderResource.delete("my-builder")
```
### Using the Fluent Builder API
```python
from cloudcoil.models.kpack.v1alpha2 import Image
# Create an Image using the fluent builder
image = (
Image.builder()
.metadata(lambda m: m
.name("my-app")
.namespace("default")
)
.spec(lambda s: s
.tag("registry.example.com/my-app")
.builder_(lambda b: b
.name("my-builder")
.kind("ClusterBuilder")
)
.source(lambda src: src
.git(lambda g: g
.url("https://github.com/my-org/my-app.git")
.revision("main")
)
)
)
.build()
)
```
### Using the Context Manager Builder API
```python
from cloudcoil.models.kpack.v1alpha2 import Image, BuilderResource
# Create an image using context managers
with Image.new() as app_image:
with app_image.metadata() as metadata:
metadata.name("my-app")
metadata.namespace("default")
with app_image.spec() as spec:
spec.tag("registry.example.com/my-app")
with spec.builder_() as builder:
builder.name("my-builder")
builder.kind("ClusterBuilder")
with spec.source() as source:
with source.git() as git:
git.url("https://github.com/my-org/my-app.git")
git.revision("main")
final_image = app_image.build()
# Create a builder using context managers
with BuilderResource.new() as builder:
with builder.metadata() as metadata:
metadata.name("my-builder")
metadata.namespace("default")
with builder.spec() as spec:
spec.tag("registry.example.com/builder")
with spec.stack() as stack:
stack.name("base")
stack.kind("ClusterStack")
with spec.store() as store:
store.name("default")
store.kind("ClusterStore")
# Add buildpacks to the builder
with spec.buildpacks() as buildpacks:
with buildpacks.add() as pack:
pack.id("paketo-buildpacks/java")
pack.version("3.0.0")
final_builder = builder.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
## 📚 Documentation
For complete documentation, visit [cloudcoil.github.io/cloudcoil](https://cloudcoil.github.io/cloudcoil)
## 📜 License
Apache License, Version 2.0 - see [LICENSE](LICENSE)
Raw data
{
"_id": null,
"home_page": null,
"name": "cloudcoil.models.kpack",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Sambhav Kothari <sambhavs.email@gmail.com>",
"keywords": "async, cloud-native, cloudcoil, cloudcoil-models, kpack, kubernetes, pydantic, python",
"author": null,
"author_email": "Sambhav Kothari <sambhavs.email@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/24/47/48c11de84332bcb3f4c65e46b5d83732cc4dc19c49ed4794c6c5f2cdfc4c/cloudcoil_models_kpack-0.16.1.1.tar.gz",
"platform": null,
"description": "# cloudcoil-models-kpack\n\nVersioned kpack models for cloudcoil.\n> [!WARNING] \n> This repository is auto-generated from the [cloudcoil repository](https://github.com/cloudcoil/cloudcoil/tree/main/models/kpack). Please do not submit pull requests here. Instead, submit them to the main repository at https://github.com/cloudcoil/cloudcoil.\n\n## \ud83d\udd27 Installation\n\n> [!NOTE]\n> For versioning information and compatibility, see the [Versioning Guide](https://github.com/cloudcoil/cloudcoil/blob/main/VERSIONING.md).\n\nUsing [uv](https://github.com/astral-sh/uv) (recommended):\n\n```bash\n# Install with kpack support\nuv add cloudcoil.models.kpack\n```\n\nUsing pip:\n\n```bash\npip install cloudcoil.models.kpack\n```\n\n## \ud83d\udca1 Examples\n\n### Using kpack Models\n\n```python\nfrom cloudcoil import apimachinery\nimport cloudcoil.models.kpack.v1alpha2 as kpack\nimport cloudcoil.models.kpack.core as core\nimport cloudcoil.models.kubernetes.core.v1 as k8score\n\n# Create an Image resource\nimage = kpack.Image(\n metadata=apimachinery.ObjectMeta(name=\"my-app\"),\n spec=kpack.ImageSpec(\n tag=\"registry.example.com/my-app\",\n builder_=k8score.ObjectReference(\n name=\"my-builder\",\n kind=\"ClusterBuilder\"\n ),\n source=core.SourceConfig(\n git=core.Git(\n url=\"https://github.com/my-org/my-app.git\",\n revision=\"main\"\n )\n )\n )\n).create()\n\n# Create a Builder\nbuilder = kpack.BuilderResource(\n metadata=apimachinery.ObjectMeta(name=\"my-builder\"),\n spec=kpack.BuilderSpec(\n tag=\"registry.example.com/builder\",\n stack=k8score.ObjectReference(\n name=\"base\",\n kind=\"ClusterStack\"\n ),\n store=k8score.ObjectReference(\n name=\"default\",\n kind=\"ClusterStore\"\n )\n )\n).create()\n\n# List Images\nfor img in kpack.Image.list():\n print(f\"Found image: {img.metadata.name}\")\n\n# Update an Image\nimage.spec.source.git.revision = \"v1.0.0\"\nimage.save()\n\n# Delete resources\nkpack.Image.delete(\"my-app\")\nkpack.BuilderResource.delete(\"my-builder\")\n```\n\n### Using the Fluent Builder API\n\n```python\nfrom cloudcoil.models.kpack.v1alpha2 import Image\n\n# Create an Image using the fluent builder\nimage = (\n Image.builder()\n .metadata(lambda m: m\n .name(\"my-app\")\n .namespace(\"default\")\n )\n .spec(lambda s: s\n .tag(\"registry.example.com/my-app\")\n .builder_(lambda b: b\n .name(\"my-builder\")\n .kind(\"ClusterBuilder\")\n )\n .source(lambda src: src\n .git(lambda g: g\n .url(\"https://github.com/my-org/my-app.git\")\n .revision(\"main\")\n )\n )\n )\n .build()\n)\n```\n\n### Using the Context Manager Builder API\n\n```python\nfrom cloudcoil.models.kpack.v1alpha2 import Image, BuilderResource\n\n# Create an image using context managers\nwith Image.new() as app_image:\n with app_image.metadata() as metadata:\n metadata.name(\"my-app\")\n metadata.namespace(\"default\")\n \n with app_image.spec() as spec:\n spec.tag(\"registry.example.com/my-app\")\n \n with spec.builder_() as builder:\n builder.name(\"my-builder\")\n builder.kind(\"ClusterBuilder\")\n \n with spec.source() as source:\n with source.git() as git:\n git.url(\"https://github.com/my-org/my-app.git\")\n git.revision(\"main\")\n\nfinal_image = app_image.build()\n\n# Create a builder using context managers\nwith BuilderResource.new() as builder:\n with builder.metadata() as metadata:\n metadata.name(\"my-builder\")\n metadata.namespace(\"default\")\n \n with builder.spec() as spec:\n spec.tag(\"registry.example.com/builder\")\n \n with spec.stack() as stack:\n stack.name(\"base\")\n stack.kind(\"ClusterStack\")\n \n with spec.store() as store:\n store.name(\"default\")\n store.kind(\"ClusterStore\")\n \n # Add buildpacks to the builder\n with spec.buildpacks() as buildpacks:\n with buildpacks.add() as pack:\n pack.id(\"paketo-buildpacks/java\")\n pack.version(\"3.0.0\")\n\nfinal_builder = builder.build()\n```\n\nThe context manager builder provides:\n- \ud83c\udfad Clear visual nesting of resource structure\n- \ud83d\udd12 Automatic resource cleanup\n- \ud83c\udfaf Familiar Python context manager pattern\n- \u2728 Same great IDE support as the fluent builder\n\n## \ud83d\udcda Documentation\n\nFor complete documentation, visit [cloudcoil.github.io/cloudcoil](https://cloudcoil.github.io/cloudcoil)\n\n## \ud83d\udcdc License\n\nApache License, Version 2.0 - see [LICENSE](LICENSE)\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Versioned kpack models for cloudcoil",
"version": "0.16.1.1",
"project_urls": {
"Changelog": "https://github.com/cloudcoil/models-kpack/releases",
"Documentation": "https://cloudcoil.github.io/cloudcoil",
"Homepage": "https://github.com/cloudcoil/cloudcoil",
"Issues": "https://github.com/cloudcoil/models-kpack/issues",
"Repository": "https://github.com/cloudcoil/models-kpack"
},
"split_keywords": [
"async",
" cloud-native",
" cloudcoil",
" cloudcoil-models",
" kpack",
" kubernetes",
" pydantic",
" python"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "015fe950c61826f89ccf959211a0b823c498b2d8b043f9f101ab27d1f681a939",
"md5": "f8214f9d3198f95e2edad40dafaf566f",
"sha256": "a3db533a9c53ea5cd2d5876a19ddf00f518cc76ad147da3af8dec09a10dffdcc"
},
"downloads": -1,
"filename": "cloudcoil_models_kpack-0.16.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f8214f9d3198f95e2edad40dafaf566f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 34414,
"upload_time": "2025-02-10T04:27:58",
"upload_time_iso_8601": "2025-02-10T04:27:58.323991Z",
"url": "https://files.pythonhosted.org/packages/01/5f/e950c61826f89ccf959211a0b823c498b2d8b043f9f101ab27d1f681a939/cloudcoil_models_kpack-0.16.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "244748c11de84332bcb3f4c65e46b5d83732cc4dc19c49ed4794c6c5f2cdfc4c",
"md5": "e881c750b9fe114474f872bf4c072099",
"sha256": "6e778db6c1534c2b07325221bac7dec6ad877ef369076a1eb3361953cb91a076"
},
"downloads": -1,
"filename": "cloudcoil_models_kpack-0.16.1.1.tar.gz",
"has_sig": false,
"md5_digest": "e881c750b9fe114474f872bf4c072099",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 94675,
"upload_time": "2025-02-10T04:28:00",
"upload_time_iso_8601": "2025-02-10T04:28:00.185687Z",
"url": "https://files.pythonhosted.org/packages/24/47/48c11de84332bcb3f4c65e46b5d83732cc4dc19c49ed4794c6c5f2cdfc4c/cloudcoil_models_kpack-0.16.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-10 04:28:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cloudcoil",
"github_project": "models-kpack",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "cloudcoil.models.kpack"
}