Skip to content

Deep Dive: VM Template Governance and Self-Service Catalog #223

Description

@acmenezes

Feature Type

Deep dive expanding existing tutorial

Description

Create a deep-dive companion to the existing vm-templates.adoc (639 lines, ~2,700 words) that covers template governance, InstanceType/Preference integration, versioning strategies, and building a self-service VM catalog for development teams. The current tutorial covers creating and using templates but does not address the organizational and governance aspects needed at scale.

Note: Issue #165 (Building a VM Self-Service Portal) is related but focuses on the OpenShift Console UI experience. This deep dive focuses on the template architecture and governance behind the portal.

Key Topics to Cover

  • VirtualMachineClusterInstancetype and VirtualMachineClusterPreference: Modern standardized VM sizing using instance types (u1.small, u1.medium, etc.) and preferences (RHEL defaults, Windows defaults) instead of manual CPU/memory specification
  • Template RBAC: Who can create, modify, and use templates -- ClusterRoles for template administrators vs template consumers
  • Template versioning strategies: Naming conventions (rhel9-web-v2024q4), labels for version tracking, deprecation workflow (marking old templates, preventing new deployments)
  • Template parameterization: Using annotations and template parameters for customizable fields (VM name, namespace, disk size, network)
  • Governance policies: Enforcing mandatory labels, resource limits, network policies, and storage classes on all VMs created from templates via admission webhooks or OPA/Gatekeeper
  • Template testing and validation: CI pipeline for validating templates (syntax check, deploy test VM, verify boot, cleanup)
  • Multi-cluster template distribution: Distributing approved templates across clusters using GitOps (ArgoCD) or ACM policies
  • Building a self-service catalog: Combining InstanceTypes + Preferences + Templates + RBAC into a "VM vending machine" where developers pick from approved configurations

Value Proposition

The current template tutorial teaches how to create one template. Production organizations need to manage dozens of templates across multiple teams, enforce standards, handle versioning, and provide self-service access. This deep dive transforms templates from a convenience feature into an organizational governance tool.

Suggested Module

modules/vm-configuration/

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions