Packer.Images/scripts/Update-OvfConfiguration.boo...

274 lines
7.8 KiB
YAML

DeploymentConfigurations:
- Id: cp1w1ws0
Label: 'Workload-cluster: 1 control-plane node/1 worker node'
Description: 1 control-plane node/1 worker node
- Id: cp1w1ws1
Label: 'Workload-cluster: 1 control-plane node/1 worker node/1 worker-storage node'
Description: 1 control-plane node/1 worker node/1 worker-storage node
- Id: core
Label: No workload-cluster
Description: Only the metacluster is deployed (useful for recovery scenario's)
DynamicDisks:
- Description: Longhorn persistent storage
UnitSize: GB
Constraints:
Minimum: 100
Maximum: ''
PropertyCategory: 2
PropertyCategories:
- Name: 0) Deployment information
ProductProperties:
- Key: deployment.type
Type: string
Value:
- cp1w1ws0
- cp1w1ws1
- core
UserConfigurable: false
- Name: 1) Meta-cluster
ProductProperties:
- Key: metacluster.fqdn
Type: string(1..)
Label: Meta-cluster FQDN*
Description: Respective subdomains will be available for each component (e.g. storage.example.org); this address should already be configured as a wildcard record within your DNS zone.
DefaultValue: meta.k8s.cluster
Configurations: '*'
UserConfigurable: true
- key: metacluster.vip
Type: ip
Label: Meta-cluster virtual IP address*
Description: Meta-cluster control plane endpoint virtual IP address
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
- key: metacluster.token
Type: string(1..)
Label: K3s install token*
Description: Auto-generated; this value is used to join future new nodes to the metacluster after deployment
DefaultValue: '{{ metacluster.token }}'
Configurations: '*'
UserConfigurable: true
- Name: 2) Meta-cluster initial node
ProductProperties:
- Key: guestinfo.hostname
Type: string(1..15)
Label: Hostname*
Description: ''
DefaultValue: 'meta-{{ hostname.suffix }}'
Configurations: '*'
UserConfigurable: true
- Key: metacluster.password
Type: password(7..)
Label: Appliance password*
Description: 'Initial password for respective administrator accounts within each component'
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
- Key: guestinfo.ipaddress
Type: ip
Label: IP Address*
Description: ''
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
- Key: guestinfo.prefixlength
Type: int(8..32)
Label: Subnet prefix length*
Description: ''
DefaultValue: '24'
Configurations: '*'
UserConfigurable: true
- Key: guestinfo.dnsserver
Type: ip
Label: DNS server*
Description: ''
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
- Key: guestinfo.gateway
Type: ip
Label: Gateway*
Description: 'A default route is *required*, use a dummy IP address if there is no actual gateway router present'
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
# - Key: guestinfo.ntpserver
# Type: string(1..)
# Label: Time server*
# Description: A comma-separated list of timeservers
# DefaultValue: 0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org
# Configurations: '*'
# UserConfigurable: true
- Name: 3) Workload-cluster
ProductProperties:
- Key: workloadcluster.name
Type: string(1..15)
Label: Workload-cluster name*
Description: ''
DefaultValue: 'workload-{{ hostname.suffix }}'
Configurations:
- cp1w1ws0
- cp1w1ws1
UserConfigurable: true
- Key: workloadcluster.vip
Type: ip
Label: Workload-cluster virtual IP address*
Description: Workload-cluster control plane endpoint virtual IP address
DefaultValue: '0.0.0.0'
Configurations:
- cp1w1ws0
- cp1w1ws1
UserConfigurable: true
- Key: ippool.startip
Type: ip
Label: Workload-cluster IP-pool start IP address*
Description: All nodes for the workload-cluster will be provisioned within this IP pool
DefaultValue: '0.0.0.0'
Configurations:
- cp1w1ws0
- cp1w1ws1
UserConfigurable: true
- Key: ippool.endip
Type: ip
Label: Workload-cluster IP-pool end IP address*
Description: All nodes for the workload-cluster will be provisioned within this IP pool
DefaultValue: '0.0.0.0'
Configurations:
- cp1w1ws0
- cp1w1ws1
UserConfigurable: true
- Key: workloadcluster.nodetemplate
Type: string["ubuntu-2204-kube-v1.30.0", "photon-5-kube-v1.30.0.ova"]
Label: Workload-cluster node template
Description: |
All worker and worker-storage nodes for the workload-cluster will be provisioned with this node template.
Note:
Make sure that this exact template has been uploaded to the vCenter instance before powering on this appliance!
DefaultValue: ubuntu-2204-kube-v1.30.0
Configurations:
- cp1w1ws0
- cp1w1ws1
UserConfigurable: true
- Key: workloadcluster.nodesize
Type: string["small", "medium", "large"]
Label: Workload-cluster node size*
Description: |
All worker and worker-storage nodes for the workload-cluster will be provisioned with number of cpu-cores and memory as specified:
- SMALL: 2 vCPU/6GB RAM
- MEDIUM: 4 vCPU/8GB RAM
- LARGE: 8 vCPU/16GB RAM
DefaultValue: 'small'
Configurations:
- cp1w1ws0
- cp1w1ws1
UserConfigurable: true
- Key: workloadcluster.additionaldisk
Type: int(0..120)
Label: Workload-cluster block storage disk size*
Description: 'All worker-storage nodes for the workload-cluster will be provisioned with an additional disk of the specified size'
DefaultValue: '42'
Configurations:
- cp1w1ws1
UserConfigurable: true
- Name: 4) Common
ProductProperties:
- Key: guestinfo.rootsshkey
Type: password(1..)
Label: SSH public key*
Description: Authentication for any node (meta-cluster *and* workloadcluster); this line should start with 'ssh-rsa AAAAB3N'
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
- Name: 5) Hypervisor
ProductProperties:
- Key: hv.fqdn
Type: string(1..)
Label: vCenter FQDN/IP-address*
Description: The address of the vCenter instance which this bootstrap appliance will interact with for provisioning new VM's.
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
- Key: hv.username
Type: string(1..)
Label: vCenter username*
Description: The username which this bootstrap appliance will authenticate with to the vCenter instance.
DefaultValue: 'administrator@vsphere.local'
Configurations: '*'
UserConfigurable: true
- Key: hv.password
Type: password(1..)
Label: vCenter password*
Description: The password which this bootstrap appliance will authenticate with to the vCenter instance.
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
- Name: 6) Identity provider
ProductProperties:
- Key: ldap.fqdn
Type: string(1..)
Label: LDAP server FQDN/IP-address*
Description: The address of the LDAP server which this bootstrap appliance will perform LDAP queries against.
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
- Key: ldap.dn
Type: string(1..)
Label: LDAP bind distinguished name*
Description: The distinguished name of the user account used for LDAP queries; for example 'CN=ldapreader,OU=Useraccounts,DC=example,DC=com'
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
- Key: ldap.password
Type: password(1..)
Label: LDAP bind password*
Description: The password of the user account used for LDAP queries.
DefaultValue: ''
Configurations: '*'
UserConfigurable: true
---
Variables:
- Name: hostname.suffix
Expression: |
(-join ((48..57) + (97..122) | Get-Random -Count 5 | % {[char]$_})).ToLower()
- Name: metacluster.token
Expression: |
(New-Guid).Guid -replace '-', ''