Kubernetes YAML Generator
Генерируйте манифесты Kubernetes для Deployments, Services, ConfigMaps и Namespaces.
Конфигурация Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: default
labels:
app: my-app
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
ports:
- containerPort: 80
env:
- name: ENV
value: "production"
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512MiПрименить с помощью: kubectl apply -f deployment.yaml
Об этом инструменте
Kubernetes YAML Generator – это инструмент для разработчиков, который преобразует ручные определения манифестов Kubernetes в правильно отформатированные файлы конфигурации YAML. Независимо от того, развёртываете ли вы контейнеризированные приложения, управляете микросервисами или настраиваете инфраструктуру как код, этот инструмент избавляет вас от утомительной работы по написанию Kubernetes YAML вручную, генерируя чистые, синтаксически правильные манифесты для Deployments, Services, ConfigMaps и Namespaces. Он гарантирует, что ваши конфигурации соответствуют спецификациям Kubernetes API и лучшим практикам.
Чтобы использовать инструмент, заполните форму конфигурации деталями своих ресурсов—укажите метаданные развёртывания, образы контейнеров, порты сервиса, переменные окружения и другие параметры. Генератор автоматически создаёт правильно отступленный, хорошо структурированный YAML, готовый к применению непосредственно к вашему кластеру Kubernetes с помощью kubectl или вашего конвейера CI/CD. Вы можете настроить имена ресурсов, ярлыки, селекторы и все остальные поля перед генерацией.
Этот инструмент особенно ценен для DevOps-инженеров, разработчиков приложений и команд инфраструктуры, работающих с Kubernetes. Он обрабатывает типичные пограничные случаи, такие как сопоставления портов, volumeMounts, securityContext и ограничения ресурсов, экономя время и снижая количество ошибок синтаксиса YAML, которые могут препятствовать успешному развёртыванию.
Часто задаваемые вопросы
Реализация кода
import subprocess
import yaml
import tempfile
import os
def generate_deployment(name, image, replicas=2, port=80, namespace="default"):
"""Generate a Kubernetes Deployment manifest dict."""
return {
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {"name": name, "namespace": namespace},
"spec": {
"replicas": replicas,
"selector": {"matchLabels": {"app": name}},
"template": {
"metadata": {"labels": {"app": name}},
"spec": {
"containers": [{
"name": name,
"image": image,
"ports": [{"containerPort": port}]
}]
}
}
}
}
manifest = generate_deployment("my-app", "nginx:latest", replicas=3)
yaml_str = yaml.dump(manifest, default_flow_style=False)
print(yaml_str)
# Apply using kubectl
with tempfile.NamedTemporaryFile(mode='w', suffix='.yaml', delete=False) as f:
f.write(yaml_str)
tmp = f.name
result = subprocess.run(["kubectl", "apply", "-f", tmp], capture_output=True, text=True)
print(result.stdout)
os.unlink(tmp)Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.