|
|
|
|
|
by tdubey
1114 days ago
|
|
The firm I work at developed an internal library (open source soon hopefully!) that does all our templating in Python, example: import os
"""
Imports redacted, but this imports our library
"""
NAME = "my_app"
PORT = 5000
DEPLOY_ENV = os.environ["DEPLOY_ENV"]
deploy_all(
create_stateful_service(
NAME, http_port=PORT, cpu=2000, memory=500
),
create_ingress(
NAME,
service_name=NAME,
service_port=PORT,
hostnames=["myapp.internal.com"],
),
)
In the background, this converts a bunch of objects to YAML, leveraging the fact that objects in Python are just dictionaries. It then takes these objects and sends them to the K8S API. Really improved our DevEx since you can do complex tasks like "define a deployment, deploy it, and then check server status" because it is all just Python at the end of the day.Edit: formatting |
|
I even have a helm plugin that would let you specify all the command line options and values so that it can be tracked in git and consistently applied
There’s also tools for transforms on raw manifests so you can track changes (in code) from upstream manifests