Simple Hybrid ConfigurationΒΆ

This example shows how to load a YAML configuration file containing a Deployment resource and modify its values in code before serializing the results back to YAML.

import typing

import kuber
from kuber.latest import apps_v1
from kuber.latest import core_v1

# Load YAML configuration file into a Deployment object
d = typing.cast(
    apps_v1.Deployment, kuber.from_yaml_file(file_path="./my-deployment.yaml")
)

# Add an `app` label.
d.metadata.labels.update(app="foo")

# Create a container port to map port 8080 in
# the container to port 80 on the host.
port = apps_v1.ContainerPort(container_port=8080, host_port=80)

# Modify the container named "app" with resource
# limits/requests and an additional port mapping.
with typing.cast(core_v1.Container, d.get_container("app")) as c:
    c.resources.limits.update(cpu="1.5", memory="1Gi")
    c.resources.requests.update(cpu="1.5", memory="800Mi")
    c.ports.append(port)

# Render the results to YAML
print(d.to_yaml())

Complete code for this example is available at: kuber/examples/config-map/