Files
dfw_automation/blueprints/vdefend-form-driven.yaml
fultonbr 24ff9fd2fc On branch main
Initial commit

 Changes to be committed:
	new file:   README.md
	new file:   abx/apply_nsx_tags_for_tiers/README.md
	new file:   abx/apply_nsx_tags_for_tiers/action.py
	new file:   abx/list_vcenter_vms/README.md
	new file:   abx/list_vcenter_vms/action.py
	new file:   abx/send_email/README.md
	new file:   abx/send_email/action.py
	new file:   blueprints/forms/vdefend-form.json
	new file:   blueprints/vdefend-form-driven.yaml
2025-09-18 09:40:08 -05:00

95 lines
2.3 KiB
YAML

formatVersion: 1
name: vdefend-form-driven
version: 1
inputs:
app_name:
type: string
title: Application Name
description: Logical name used to prefix NSX groups and section.
default: vdefend-app
env_value:
type: string
title: Environment
enum:
- prod
- test
- dev
default: prod
requester_email:
type: string
title: Requester Email
# vCenter inventory selection (populated via Custom Form using ABX data source)
vm_web:
type: array
title: Web Tier VMs
description: Select one or more VMs for the Web tier
items:
type: string
vm_app:
type: array
title: App Tier VMs
items:
type: string
vm_db:
type: array
title: DB Tier VMs
items:
type: string
# Port lists (array of numbers; Custom Form will parse CSV input into arrays)
ports_web_to_app:
type: array
title: Ports (Web -> App)
items:
type: number
default:
- 80
- 443
ports_app_to_db:
type: array
title: Ports (App -> DB)
items:
type: number
default:
- 5432
# Endpoints / credentials (map these to Project Secrets in production)
nsx_manager_url:
type: string
title: NSX Manager URL
nsx_username:
type: string
encrypted: true
nsx_password:
type: string
encrypted: true
resources:
vdefendPolicy:
type: Cloud.Terraform
properties:
providers:
- name: nsxt
source: vmware/nsxt
version: ">= 3.9.0"
module:
# point to your Git content source that contains the module path below
source: git::https://your.git/VCFA_Avi_vDefend_kit.git//terraform/vdefend_baseline_module
variables:
nsx_manager_url: ${input.nsx_manager_url}
nsx_username: ${input.nsx_username}
nsx_password: ${input.nsx_password}
domain: "default"
app_name: ${input.app_name}
env_value: ${input.env_value}
services_web_to_app: ${input.ports_web_to_app}
services_app_to_db: ${input.ports_app_to_db}
create_drop_others_rule: false
outputs:
sectionPath:
value: ${resource.vdefendPolicy.outputs.section}
groups:
value:
web: ${resource.vdefendPolicy.outputs.group_web}
app: ${resource.vdefendPolicy.outputs.group_app}
db: ${resource.vdefendPolicy.outputs.group_db}