Saltar al contenido
🛠️ToolsShed

Kubernetes YAML Generator

Genera manifiestos Kubernetes para Deployments, Services, ConfigMaps y Namespaces.

Configuración de Despliegue

deployment.yaml
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

Aplicar con: kubectl apply -f deployment.yaml

Acerca de esta herramienta

Kubernetes YAML Generator es una herramienta para desarrolladores que convierte definiciones manuales de manifiestos de Kubernetes en archivos de configuración YAML formateados correctamente. Ya sea que esté implementando aplicaciones contenerizadas, gestionando microservicios o configurando infraestructura como código, esta herramienta elimina la tediosa tarea de escribir YAML de Kubernetes a mano generando manifiestos limpios y sintácticamente válidos para Deployments, Services, ConfigMaps y Namespaces. Garantiza que sus configuraciones sigan las especificaciones de API de Kubernetes y las mejores prácticas.

Para usar la herramienta, rellene el formulario de configuración con los detalles de sus recursos: especifique metadatos de implementación, imágenes de contenedores, puertos de servicio, variables de entorno y otros parámetros. El generador produce automáticamente YAML correctamente indentado y bien estructurado que está listo para aplicarse directamente a su clúster de Kubernetes usando kubectl o su canalización de CI/CD. Puede personalizar nombres de recursos, etiquetas, selectores y todos los demás campos antes de la generación.

Esta herramienta es particularmente valiosa para ingenieros de DevOps, desarrolladores de aplicaciones y equipos de infraestructura que trabajan con Kubernetes. Gestiona casos extremos comunes como asignaciones de puertos, volumeMounts, securityContext y límites de recursos, ahorrando tiempo y reduciendo errores de sintaxis YAML que podrían impedir implementaciones exitosas.

Preguntas Frecuentes

Implementación de Código

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.