2025-10-07 11:12:02 +01:00

143 lines
4.4 KiB
YAML

# Workspace Template Registry Manifest
# Tracks available templates, layers, and their relationships
version: "1.0.0"
created: "2025-09-29"
source: "wuji infrastructure patterns"
# Layer configuration
layers:
- name: "core"
path: "provisioning/extensions"
priority: 100
description: "Core provisioning system extensions"
provides: ["base-schemas", "core-taskservs", "core-providers"]
- name: "workspace"
path: "provisioning/workspace/templates"
priority: 200
description: "Shared workspace templates and patterns"
extends: ["core"]
provides: ["template-patterns", "common-configs", "best-practices"]
- name: "infra"
path: "dynamic" # Resolved at runtime
priority: 300
description: "Infrastructure-specific overrides"
extends: ["workspace", "core"]
provides: ["custom-configs", "overrides", "infra-specific"]
# Available templates
templates:
taskservs:
kubernetes:
base:
version: "0.1.0"
source_file: "templates/taskservs/kubernetes/base.k"
description: "Base Kubernetes configuration template"
compatible_providers: ["upcloud", "aws", "local"]
required_dependencies: ["containerd", "cilium"]
variants:
ha-cluster:
version: "0.1.0"
source_file: "templates/taskservs/kubernetes/variants/ha-cluster.k"
description: "High-availability Kubernetes cluster"
extends: ["kubernetes.base"]
compatible_providers: ["upcloud", "aws"]
single-node:
version: "0.1.0"
source_file: "templates/taskservs/kubernetes/variants/single-node.k"
description: "Single-node Kubernetes setup"
extends: ["kubernetes.base"]
compatible_providers: ["local", "upcloud"]
storage:
rook-ceph:
version: "0.1.0"
source_file: "templates/taskservs/storage/rook-ceph.k"
description: "Rook Ceph storage configuration"
compatible_providers: ["upcloud", "aws"]
mayastor:
version: "0.1.0"
source_file: "templates/taskservs/storage/mayastor.k"
description: "Mayastor storage configuration"
compatible_providers: ["upcloud"]
networking:
cilium:
version: "0.1.0"
source_file: "templates/taskservs/networking/cilium.k"
description: "Cilium CNI configuration"
compatible_providers: ["upcloud", "aws", "local"]
coredns:
version: "0.1.0"
source_file: "templates/taskservs/networking/coredns.k"
description: "CoreDNS configuration"
compatible_providers: ["upcloud", "aws", "local"]
providers:
upcloud:
defaults:
version: "0.1.0"
source_file: "templates/providers/upcloud/defaults.k"
description: "UpCloud provider default configuration"
source: "wuji/defs/upcloud_defaults.k"
aws:
defaults:
version: "0.1.0"
source_file: "templates/providers/aws/defaults.k"
description: "AWS provider default configuration"
source: "wuji/defs/aws_defaults.k"
servers:
control-plane:
version: "0.1.0"
source_file: "templates/servers/control-plane.k"
description: "Kubernetes control plane server template"
source: "wuji patterns"
worker-node:
version: "0.1.0"
source_file: "templates/servers/worker-node.k"
description: "Kubernetes worker node template"
source: "wuji patterns"
# Template relationships
relationships:
extends:
- template: "kubernetes.variants.ha-cluster"
extends: "kubernetes.base"
- template: "kubernetes.variants.single-node"
extends: "kubernetes.base"
requires:
- template: "kubernetes.base"
requires: ["containerd", "cilium"]
- template: "kubernetes.variants.ha-cluster"
requires: ["etcd", "rook-ceph"]
compatible:
- template: "kubernetes.base"
providers: ["upcloud", "aws", "local"]
- template: "rook-ceph"
providers: ["upcloud", "aws"]
not_compatible: ["local"]
# Usage examples
examples:
- name: "Basic Kubernetes cluster"
description: "Single control plane with workers"
templates: ["kubernetes.base", "cilium", "upcloud.defaults"]
- name: "High availability cluster"
description: "HA control plane with Ceph storage"
templates: ["kubernetes.variants.ha-cluster", "rook-ceph", "cilium"]
- name: "Development single node"
description: "Local development setup"
templates: ["kubernetes.variants.single-node", "cilium"]