ci-cd-pipeline-app-murano/LBaaS/LBaaS-ops-manager-tile/metadata/example-product.yml

240 lines
21 KiB
YAML

---
name: example-load-balancer
product_version: "1.6.4.1"
metadata_version: "1.6"
label: 'Load Balancer for Pivotal Cloud Foundry'
description: An example Load Balancer integration with PCF.
rank: 1
stemcell_criteria:
os: ubuntu-trusty
requires_cpi: false
version: "3146.5" # Bosh stemcell should match Ops Manager with same version
releases:
- name: example-release
file: example-release-10.tgz
version: "10"
pre_delete_errands:
- name: delete-lbaas
form_types:
- name: openstack-form
label: OpenStack Properties
description: Provide OpenStack credentials for deploying LBaaS.
property_inputs:
- reference: .properties.os_auth_url
label: OpenStack Keystone auth HOST
description: 'Configure OpenStack Keystone auth URL, e.g. 192.168.1.2 or openstack-host'
- reference: .properties.os_username
label: OpenStack Keystone username
description: 'Configure OpenStack username'
- reference: .properties.os_tenant_name
label: OpenStack tenant name
description: 'Configure OpenStack tenant name'
- reference: .properties.os_password
label: OpenStack password
description: 'Configure OpenStack Keystone password'
- name: lbaas-form
label: LBaaS Configuration
description: Provide properties for LBaaS configuration.
property_inputs:
- reference: .properties.pcf_router_ips
label: PCF Router IP/host list
description: 'Configure PCF router IPs'
- reference: .properties.image_name
label: Murano image name
description: 'Provide name of image containing murano agent.'
- reference: .properties.lbaas_impl
label: LBaaS implementation
description: 'Configure a property'
- reference: .properties.private_key_ssh
label: Private key for SSH access to LBaaS
description: 'Configure private key'
- reference: .properties.ssl_rsa_cert
label: RSA cert and key for configuring HTTPS on load balancer
description: 'Configure a property'
property_blueprints:
- name: os_auth_url
type: http_url
configurable: true
default: http://127.0.0.1:5000/v3
- name: os_username
type: string
configurable: true
default: admin
- name: os_tenant_name
type: string
configurable: true
default: admin
- name: os_password
type: secret
configurable: true
- name: pcf_router_ips
type: network_address_list
configurable: true
- name: image_name
type: string
default: ubuntu14.04-x64-agent
configurable: true
- name: ssl_rsa_cert
type: text
configurable: true
- name: private_key_ssh
type: rsa_pkey_credentials
- name: lbaas_impl
type: dropdown_select
configurable: true
default: haproxy
options:
- name: haproxy
label: haproxy
job_types:
- name: lbaas-config
resource_label: Job which installs LBaaS.
templates:
- name: lbaas-config
release: example-release
resource_definitions:
- name: ram
type: integer
configurable: true
default: 2048
- name: ephemeral_disk
type: integer
configurable: true
default: 1024
- name: persistent_disk
type: integer
configurable: false
default: 0
- name: cpu
type: integer
configurable: true
default: 1
static_ip: 0
dynamic_ip: 1
max_in_flight: 1
canary_watch_time: 90000
update_watch_time: 90000
instance_definitions:
- name: instances
type: integer
configurable: false
default: 1
property_blueprints:
- name: vm_credentials
type: salted_credentials
default:
identity: vcap
manifest: |
openstack:
root_rsa_certificate: (( $ops_manager.ca_certificate ))
os_auth_url: (( .properties.os_auth_url.value ))
os_username: (( .properties.os_username.value ))
os_tenant_name: (( .properties.os_tenant_name.value ))
os_password: (( .properties.os_password.value ))
lbaas:
pcf_router_ips: (( .properties.pcf_router_ips.value ))
private_key_ssh: (( .properties.private_key_ssh.private_key_pem ))
public_key_ssh: (( .properties.private_key_ssh.public_key_openssh ))
ssl_rsa_cert: (( .properties.ssl_rsa_cert.value ))
lbaas_impl: (( .properties.lbaas_impl.value ))
image_name: (( .properties.image_name.value ))
- name: delete-lbaas
resource_label: Job which deletes LBaaS.
templates:
- name: delete-lbaas
release: example-release
errand: true
resource_definitions:
- name: ram
type: integer
configurable: true
default: 2048
- name: ephemeral_disk
type: integer
configurable: true
default: 1024
- name: persistent_disk
type: integer
configurable: false
default: 0
- name: cpu
type: integer
configurable: true
default: 1
static_ip: 0
dynamic_ip: 1
max_in_flight: 1
instance_definitions:
- name: instances
type: integer
configurable: false
default: 1
property_blueprints:
- name: vm_credentials
type: salted_credentials
default:
identity: vcap
manifest: |
openstack:
root_rsa_certificate: (( $ops_manager.ca_certificate ))
os_auth_url: (( .properties.os_auth_url.value ))
os_username: (( .properties.os_username.value ))
os_tenant_name: (( .properties.os_tenant_name.value ))
os_password: (( .properties.os_password.value ))
lbaas:
pcf_router_ips: (( .properties.pcf_router_ips.value ))
private_key_ssh: (( .properties.private_key_ssh.private_key_pem ))
public_key_ssh: (( .properties.private_key_ssh.public_key_openssh ))
ssl_rsa_cert: (( .properties.ssl_rsa_cert.value ))
lbaas_impl: (( .properties.lbaas_impl.value ))
image_name: (( .properties.image_name.value ))
- name: compilation
resource_label: compilation
static_ip: 0
dynamic_ip: 1
max_in_flight: 1
resource_definitions:
- name: ram
type: integer
configurable: true
default: 2048
- name: ephemeral_disk
type: integer
configurable: true
default: 2048
- name: persistent_disk
type: integer
configurable: true
default: 8_192
- name: cpu
type: integer
configurable: true
default: 2
instance_definitions:
- name: instances
type: integer
configurable: true
default: 1
icon_image: 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