YAML Samples
YAML (YAML Ain't Markup Language) format examples from simple to complex structures
Key Facts
- Category
- Data Formats
- Items
- 8
- Format Families
- yaml
Sample Overview
YAML (YAML Ain't Markup Language) format examples from simple to complex structures This sample set belongs to Data Formats and can be used to test related workflows inside Elysia Tools.
⚙️ Simple Configuration File
🟢 simple
Basic application configuration file
# Application Configuration
app:
name: "MyWebApp"
version: "1.0.0"
environment: "development"
server:
host: "localhost"
port: 3000
ssl: false
logging:
level: "info"
format: "text"
⚙️ Database Configuration
🟡 intermediate
Database connection configuration example
# Database Configuration
database:
type: "postgresql"
host: "localhost"
port: 5432
name: "myapp_db"
credentials:
username: "db_user"
password: "secure_password"
ssl: true
pool:
min: 2
max: 10
timeout: 30s
connection:
timeout: 10s
retries: 3
backoff: 1s
⚙️ User Profile
🟡 intermediate
YAML structure with user information
# User Profile
user:
id: "USR12345"
username: "johndoe"
email: "[email protected]"
profile:
first_name: "John"
last_name: "Doe"
age: 30
bio: >
Software developer passionate about
creating amazing applications.
Love working with modern technologies.
interests:
- "programming"
- "photography"
- "travel"
preferences:
theme: "dark"
language: "en"
timezone: "UTC-5"
notifications:
email: true
push: false
roles:
- "user"
- "developer"
⚙️ Server Configuration
🟡 intermediate
Web server configuration example
# Server Configuration
server:
name: "Production Web Server"
environment: "production"
http:
host: "0.0.0.0"
port: 80
timeout: 30s
https:
enabled: true
port: 443
certificate: "/etc/ssl/certs/server.crt"
private_key: "/etc/ssl/private/server.key"
middleware:
- cors
- rate_limit
- compression
- logging
rate_limit:
requests_per_minute: 100
burst_size: 20
cors:
origins:
- "https://example.com"
- "https://app.example.com"
methods:
- GET
- POST
- PUT
- DELETE
headers:
- Content-Type
- Authorization
⚙️ Internationalization Messages
🟡 intermediate
Multilingual messages configuration example
# Internationalization Messages
en:
common:
welcome: "Welcome to our application"
login: "Login"
logout: "Logout"
register: "Register"
navigation:
home: "Home"
about: "About"
contact: "Contact"
services: "Services"
messages:
success: "Operation completed successfully"
error: "An error occurred"
loading: "Loading..."
no_data: "No data available"
validation:
required: "This field is required"
email: "Please enter a valid email"
min_length: "Minimum length is {count} characters"
zh:
common:
welcome: "欢迎使用我们的应用程序"
login: "登录"
logout: "登出"
register: "注册"
navigation:
home: "首页"
about: "关于"
contact: "联系"
services: "服务"
messages:
success: "操作成功完成"
error: "发生错误"
loading: "加载中..."
no_data: "暂无数据"
validation:
required: "此字段为必填项"
email: "请输入有效的邮箱地址"
min_length: "最小长度为 {count} 个字符"
es:
common:
welcome: "Bienvenido a nuestra aplicación"
login: "Iniciar sesión"
logout: "Cerrar sesión"
register: "Registrarse"
navigation:
home: "Inicio"
about: "Acerca de"
contact: "Contacto"
services: "Servicios"
messages:
success: "Operación completada exitosamente"
error: "Ocurrió un error"
loading: "Cargando..."
no_data: "No hay datos disponibles"
validation:
required: "Este campo es obligatorio"
email: "Por favor ingrese un email válido"
min_length: "La longitud mínima es {count} caracteres"
⚙️ Docker Compose Configuration
🔴 complex
Containerized application orchestration configuration
# Docker Compose Configuration
version: '3.8'
services:
web:
image: nginx:alpine
container_name: web_server
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./ssl:/etc/ssl:ro
depends_on:
- app
networks:
- frontend
app:
build:
context: .
dockerfile: Dockerfile
container_name: web_app
environment:
NODE_ENV: "production"
DATABASE_URL: "postgresql://user:password@db:5432/myapp"
REDIS_URL: "redis://redis:6379"
ports:
- "3000:3000"
volumes:
- ./app:/usr/src/app
- /usr/src/app/node_modules
depends_on:
- db
- redis
networks:
- frontend
- backend
db:
image: postgres:15
container_name: postgres_db
environment:
POSTGRES_DB: "myapp"
POSTGRES_USER: "user"
POSTGRES_PASSWORD: "password"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
ports:
- "5432:5432"
networks:
- backend
redis:
image: redis:7-alpine
container_name: redis_cache
command: redis-server --appendonly yes
volumes:
- redis_data:/data
ports:
- "6379:6379"
networks:
- backend
volumes:
postgres_data:
redis_data:
networks:
frontend:
driver: bridge
backend:
driver: bridge
⚙️ CI/CD Pipeline
🔴 complex
Continuous integration configuration example
# CI/CD Pipeline Configuration
name: "CI/CD Pipeline"
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20]
steps:
- name: "Checkout code"
uses: actions/checkout@v3
- name: "Setup Node.js ${{ matrix.node-version }}"
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: "Install dependencies"
run: npm ci
- name: "Run linting"
run: npm run lint
- name: "Run type checking"
run: npm run type-check
- name: "Run unit tests"
run: npm run test:unit
- name: "Run integration tests"
run: npm run test:integration
build:
needs: test
runs-on: ubuntu-latest
steps:
- name: "Checkout code"
uses: actions/checkout@v3
- name: "Setup Node.js"
uses: actions/setup-node@v3
with:
node-version: '20'
cache: 'npm'
- name: "Install dependencies"
run: npm ci
- name: "Build application"
run: npm run build
- name: "Upload build artifacts"
uses: actions/upload-artifact@v3
with:
name: build-files
path: dist/
deploy:
needs: build
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
environment: production
steps:
- name: "Download build artifacts"
uses: actions/download-artifact@v3
with:
name: build-files
path: dist/
- name: "Deploy to production"
run: |
echo "Deploying to production server..."
# Add your deployment commands here
- name: "Run smoke tests"
run: npm run test:smoke
⚙️ Kubernetes Deployment
🔴 complex
Container orchestration deployment configuration
# Kubernetes Deployment Configuration
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
namespace: production
labels:
app: web-app
version: v1.0.0
spec:
replicas: 3
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
version: v1.0.0
spec:
containers:
- name: web-app
image: myregistry/web-app:1.0.0
ports:
- containerPort: 3000
protocol: TCP
env:
- name: NODE_ENV
value: "production"
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: app-secrets
key: database-url
- name: REDIS_URL
valueFrom:
configMapKeyRef:
name: app-config
key: redis-url
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 3000
initialDelaySeconds: 5
periodSeconds: 5
volumeMounts:
- name: config-volume
mountPath: /app/config
readOnly: true
volumes:
- name: config-volume
configMap:
name: app-config
imagePullSecrets:
- name: registry-secret
---
apiVersion: v1
kind: Service
metadata:
name: web-app-service
namespace: production
spec:
selector:
app: web-app
ports:
- protocol: TCP
port: 80
targetPort: 3000
type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-app-ingress
namespace: production
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
tls:
- hosts:
- app.example.com
secretName: web-app-tls
rules:
- host: app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web-app-service
port:
number: 80