Portal Structure
Organize cloud forms into dedicated portal groups that align with platform engineering functions.
| Portal Group | Forms | Platform Function |
|---|---|---|
| Cloud Accounts | Cloud Account (Create/Update) | Manage cloud subscriptions |
| Kubernetes | Cluster, Namespace, Deployment | Manage K8s resources |
| Container Platform | Container Registry, Service Mesh | Platform infrastructure |
| Serverless | Serverless Function | Function management |
| Data Services | Managed Database, Object Storage | Data infrastructure |
| Edge & CDN | CDN Distribution | Content delivery |
Form 1: New Cloud Account
Request provisioning of a new AWS account, Azure subscription, or GCP project.
Form Preview
+--------------------------------------------------+
| New Cloud Account |
+--------------------------------------------------+
| |
| Account Name * |
| +--------------------------------------------+ |
| | prod-payments-api | |
| +--------------------------------------------+ |
| Format: {env}-{team}-{purpose} |
| |
| Provider * |
| +--------------------------------------------+ |
| | AWS [v] | |
| +--------------------------------------------+ |
| |
| Owner * |
| +--------------------------------------------+ |
| | platform-team@company.com | |
| +--------------------------------------------+ |
| |
| Cost Center * |
| +--------------------------------------------+ |
| | CC-1234-PLATFORM | |
| +--------------------------------------------+ |
| |
| Environment * |
| +--------------------------------------------+ |
| | Production [v] | |
| +--------------------------------------------+ |
| |
| Estimated Monthly Spend |
| +--------------------------------------------+ |
| | 15000 | |
| +--------------------------------------------+ |
| |
| +------------------+ +---------------------+ |
| | Cancel | | Submit Request | |
| +------------------+ +---------------------+ |
+--------------------------------------------------+
Field Specification
| Field | Type | Required | Validation |
|---|---|---|---|
| Account Name | Text | Yes | Pattern: ^[a-z][a-z0-9\-]+$ |
| Provider | Select | Yes | AWS, Azure, GCP, Other |
| Owner | Text | Yes | Valid email format |
| Cost Center | Text | Yes | Pattern based on org standard |
| Environment | Select | Yes | Production, Staging, Development, Sandbox |
| Monthly Spend | Number | No | Range: 0-10000000 |
Conditional Logic
- When Environment = "Production": Show Business Justification textarea, Compliance Scope multi-select, route to Security review
- When Environment = "Sandbox": Show Expiration Date (max 90 days), enforce $500 spend limit
- When Provider = "AWS": Show AWS Organization select, AWS Region Primary
Form 2: New Kubernetes Cluster
Request provisioning of a new managed Kubernetes cluster (EKS, AKS, GKE).
Field Specification
| Field | Type | Required | Validation |
|---|---|---|---|
| Cluster Name | Text | Yes | Pattern: ^[a-z][a-z0-9\-]+$, max 63 chars |
| Provider | Select | Yes | EKS, AKS, GKE, Self-managed |
| Version | Text | No | Pattern: ^\d+\.\d+(\.\d+)?$ |
| Node Count | Number | No | Range: 1-1000 |
| Region | Text | Yes | Max 50 characters |
| GitOps Repo | URL | No* | Valid URL format (*Required for production) |
| Cloud Account | Object Picker | Yes | Filter: Active Cloud Accounts |
Production Requirement: GitOps Repo is required for all production clusters. Node Count minimum is 3 for production environments.
Form 3: New Namespace
Request creation of a Kubernetes namespace for workload isolation.
Field Specification
| Field | Type | Required | Validation |
|---|---|---|---|
| Namespace Name | Text | Yes | Pattern: ^[a-z][a-z0-9\-]+$, max 63 chars |
| Cluster | Object Picker | Yes | Filter: Active Kubernetes Clusters |
| Team Owner | Text | Yes | Valid email format |
| CPU Quota | Text | No* | Pattern: ^\d+(\.\d+)?( cores?)?$ |
| Memory Quota | Text | No* | Pattern: ^\d+(\.\d+)?(Gi|Mi)?$ |
| Purpose | Textarea | Yes | Min 20 characters, max 1000 |
Validation Patterns
Cloud-Specific Patterns
| Field | Pattern | Examples |
|---|---|---|
| AWS Account ID | ^\d{12}$ |
123456789012 |
| Azure Subscription ID | ^[0-9a-f]{8}-[0-9a-f]{4}-... |
12345678-1234-1234-1234-123456789abc |
| K8s Resource Name | ^[a-z][a-z0-9\-]+$ |
my-deployment, api-gateway-v2 |
| K8s Version | ^\d+\.\d+(\.\d+)?$ |
1.29, 1.29.2 |
| CPU Quota | ^\d+(\.\d+)?( cores?| ?m)?$ |
4 cores, 4000m, 2.5 |
| Memory Quota | ^\d+(\.\d+)?(Gi|Mi)?$ |
16Gi, 16384Mi |
Workflow Steps
Cloud Account Provisioning
- Submitted - Request received, initial validation
- Architecture Review - Cloud Architecture validates naming and placement
- Finance Approval - Finance approves budget and assigns Cost Center
- Security Review - Security confirms baseline requirements
- Provisioning - Platform Engineering creates account
- Baseline Application - Security baseline, IAM, networking configured
- Completed - Account ready, CMDB updated
Kubernetes Cluster Provisioning
- Submitted - Request received, initial validation
- Architecture Review - Platform Engineering validates design
- Security Review - Required for Production
- Account Owner Approval - Cloud Account owner confirms budget
- Provisioning - Platform Engineering creates cluster
- Configuration - GitOps bootstrap, networking, ingress setup
- Completed - Cluster ready for workloads
Schema Forge