blob: faf109d48db07455e43e22250fb3c3397cd9aa0f [file] [log] [blame]
tosca_definitions_version: tosca_simple_yaml_1_0
description: >-
TOSCA simple profile with WordPress, a web server, a MySQL DBMS hosting the application's database
content on the same server. Does not have input defaults or constraints.
metadata:
template_name: webserver-dbms-1
template_author: TOSCA Simple Profile in YAML
template_version: '1.0'
imports:
- ../non-normative-types.yaml
topology_template:
inputs:
cpus:
type: integer
description: Number of CPUs for the server.
db_name:
type: string
description: The name of the database.
db_user:
type: string
description: The username of the DB user.
db_pwd:
type: string
description: The WordPress database admin account password.
db_root_pwd:
type: string
description: Root password for MySQL.
db_port:
type: PortDef
description: Port for the MySQL database
# ARIA NOTE: missing in spec
context_root:
type: string
description: Context root for WordPress.
node_templates:
wordpress:
type: tosca.nodes.WebApplication.WordPress
properties:
context_root: { get_input: context_root }
requirements:
- host: webserver
- database_endpoint: mysql_database
interfaces:
Standard:
create: wordpress_install.sh
configure:
implementation: wordpress_configure.sh
inputs:
wp_db_name: { get_property: [ mysql_database, name ] }
wp_db_user: { get_property: [ mysql_database, user ] }
wp_db_password: { get_property: [ mysql_database, password ] }
# In my own template, find requirement/capability, find port property
wp_db_port: { get_property: [ SELF, database_endpoint, port ] }
mysql_database:
type: Database
properties:
name: { get_input: db_name }
user: { get_input: db_user }
password: { get_input: db_pwd }
port: { get_input: db_port }
capabilities:
database_endpoint:
properties:
port: { get_input: db_port }
requirements:
- host: mysql_dbms
interfaces:
Standard:
configure: mysql_database_configure.sh
mysql_dbms:
type: DBMS
properties:
root_password: { get_input: db_root_pwd }
port: { get_input: db_port }
requirements:
- host: server
interfaces:
Standard:
# ARIA NOTE: not declared in spec
#inputs:
# db_root_password: { get_property: [ mysql_dbms, root_password ] }
create: mysql_dbms_install.sh
start: mysql_dbms_start.sh
configure: mysql_dbms_configure.sh
webserver:
type: WebServer
requirements:
- host: server
interfaces:
Standard:
create: webserver_install.sh
start: webserver_start.sh
server:
type: Compute
capabilities:
host:
properties:
disk_size: 10 GB
num_cpus: { get_input: cpus }
mem_size: 4096 MB
os:
properties:
architecture: x86_64
type: linux
distribution: fedora
version: 17.0
outputs:
website_url:
description: URL for Wordpress wiki.
value: { get_attribute: [ server, public_address ] }