lib/defaults.yaml in forj-0.0.48 vs lib/defaults.yaml in forj-1.0.0
- old
+ new
@@ -29,11 +29,11 @@
# Ports to open for Maestro, added to the security group
:security_group: forj
:ports: [22, 80, 443, 3000, 3131-3135, 4505-4506, 5000, 5666, 8000, 8080-8081, 8083, 8125, 8139-8140, 8773-8776, 9292, 29418, 35357]
# Private key file path. Those files (private/public key) will be added to ~/.forj/keypairs/ as respectively 'keypair_name' and 'keypair_name'.pub
- :keypair_path: ~/.ssh/forj-id_rsa
+ :keypair_files: ~/.ssh/forj-id_rsa
:keypair_name: forj
# Network: If network doesn't exist, forj cli will try to create it, and attach it a router.
:network: forj
@@ -41,10 +41,12 @@
:build_config: box
:branch: master
:box_name: maestro
:provider_name: hpcloud
+
+ :maestro_bootstrap_dir: build/maestro/bootstrap
:description:
# Description of build.sh environment variable defined by forj cli for build.sh. (~/.forj/infra/build/<Account>.build.env)
:FORJ_HPC: "HPCloud cli Account used to build your Maestro box"
:FORJ_HPC_COMPUTE: "HPCloud Compute service (like region-b.geo-1) used to run your Maestro Box"
:FORJ_TENANT_NAME: "HPCloud Tenant name used build your <Blueprint> nodes"
@@ -61,10 +63,18 @@
# Following declares generic FORJ data to handle Fog object (compute/network/dns/...)
# It defines the account file structure. section/key=value
# All data can be predefined by default value (config.yaml/defaults.yaml) except
# those identified by :account_exclusive: true
+:setup:
+ :ask_step:
+ - :desc: "Provider configuration:"
+ - :desc: "Maestro Cloud compute configuration:"
+ - :desc: "Maestro and blueprint configuration:"
+ :add:
+ - :keypair_files
+ - :desc: "DNS Configuration for Maestro:"
:sections:
# This section define updatable data available from config.yaml. But will never be added in an account file.
# Used by forj set/get functions
:default:
:account_name:
@@ -87,89 +97,163 @@
:services:
:compute:
:desc: "Generic service identification for compute"
:account_exclusive: true
:account: true
+ :ask_step: 0
:network:
:desc: "Generic service identification for network"
:account_exclusive: true
:account: true
+ :ask_step: 0
# Defines ssh keys credentials
:credentials:
+ :keypair_files:
+ :explanation: |-
+ A keypair is a combination of SSH public and private key files. Usually, generated in your '$HOME/.ssh/' directory.
+ The private key is used to identify yourself to access your box via ssh.
+ The public key is used to configure your server to authorize you to access the box with your private key.
+ This keypair files will be copied to '$HOME/.forj/keypairs/ under <keypair_name> files for 'forj' needs.
+
+ If the keypair does exists locally, it will be created for you.
+ :desc: "Base keypair file name"
+ :default_value: "~/.ssh/id_rsa-forj"
+ :validate_function: :forj_check_keypairs_files
+ :account: true
+ :ask_step: 2
+ :after: :keypair_name
+ :post_step_function: :forj_setup_keypairs_files
:keypair_path:
- :desc: "public key file to send to the cloud under keypair name, and private key to keep on your local forj environment to access your boxes."
+ :desc: "Forj internal copy of private and public key pair files "
:keypair_name:
- :desc: "keypair name defined in your cloud to access your server. By default we named it 'forj'. If it doesn't exist, it will be created."
+ :desc: "keypair name defined in your cloud to access your server. By default we named it 'forj'. If it doesn't exist, it will be created."
+ :validate: !ruby/regexp /^\w?\w*$/
+ :default_value: "forj"
+ :account: true
+ :ask_step: 2
:auth_uri:
- :desc: "Generic service auth url"
- :account_exclusive: true
- :account: true
- :required: true
- :ask_sort: 0
+ :desc: "Generic service auth url"
+ :account_exclusive: true
+ :account: true
+ :required: true
+ :ask_sort: 0
:account_id:
- :desc: "Generic Cloud Account name."
- :account_exclusive: true
- :account: true
- :required: true
+ :desc: "Generic Cloud Account name."
+ :account_exclusive: true
+ :account: true
+ :required: true
:account_key:
- :desc: "Generic cloud account key"
- :account_exclusive: true
- :account: true
- :required: true
+ :desc: "Generic cloud account key"
+ :account_exclusive: true
+ :account: true
+ :required: true
:tenant:
- :desc: "Generic Tenant identification"
- :account_exclusive: true
- :account: true
- :required: true
+ :explanation: |-
+
+ Maestro is currently configured to access your cloud Compute service with fog openstack.
+ Fog openstack is compatible with hpcloud services
+
+ It requires the openstack project name to use, user and password.
+
+ :desc: "Openstack Tenant name"
+ :account_exclusive: true
+ :account: true
+ :required: true
+ :ask_step: 1
:os_user:
- :desc: "User name required by Maestro to access the cloud compute via openstack. Will be obsoleted soon."
- :account_exclusive: true
- :account: true
- :required: true
- :validate: !ruby/regexp /\w+/
+ :desc: "Openstack compute cloud User name"
+ :account_exclusive: true
+ :account: true
+ :required: true
+ :validate: !ruby/regexp /\w+/
+ :ask_step: 1
:os_enckey:
- :desc: "Encrypted password required by Maestro to access the cloud compute via openstack. Will be obsoleted soon."
- :account_exclusive: true
- :encrypted: true
- :account: true
- :required: true
+ :desc: "Openstack compute cloud password"
+ :account_exclusive: true
+ :encrypted: true
+ :account: true
+ :required: true
+ :ask_step: 1
# Defines DNS services for maestro
:dns:
- :service:
- :desc: "DNS service region name Maestro will use."
- :account_exclusive: true
- :tenant_id:
- :desc: "DNS Tenant ID Maestro will use"
- :account_exclusive: true
- :domain_name:
- :desc: "Domain name added to each hosts."
- :account_exclusive: true
+ :domain_name:
+ :desc: "Domain name added to each hosts."
+ :account_exclusive: true
+ :account: true
+ :post_step_function: :forj_DNS_settings
+ :ask_step: 3
+ :dns_service:
+ :desc: "DNS service region name Maestro will use."
+ :account_exclusive: true
+ :account: true
+ :pre_step_function: :forj_DNS_settings?
+ :ask_step: 3
+ :dns_tenant_id:
+ :desc: "DNS Tenant ID Maestro will use"
+ :account_exclusive: true
+ :account: true
+ :pre_step_function: :forj_DNS_settings?
+ :ask_step: 3
:maestro:
:tenant_name:
- :desc: "Tenant name required by fog/openstack on gardener"
+ :desc: "Tenant name required by fog/openstack on gardener"
:network_name:
- :desc: "Network name to attach to each forge boxes. By default we use 'forj'. If it doesn't exist, it will be created."
- :default: network
+ :desc: "Network name to attach to each forge boxes. By default we use 'forj'. If it doesn't exist, it will be created."
+ :default: network
+ :account: true
+ :validate: !ruby/regexp /^\w?\w*$/
+ :default_value: "forj"
+ :ask_step: 2
:security_group:
- :desc: "Security group name to configure and attach to each forge boxes."
+ :desc: "Security group name to configure and attach to each forge boxes."
+ :account: true
+ :validate: !ruby/regexp /^\w?\w*$/
+ :default_value: "forj"
+ :ask_step: 2
:maestro_repo:
:desc: "To use a different Maestro repository already cloned."
:infra_repo:
:desc: "Defines your Infra directory to use while booting."
:box_name:
:desc: "forj cli use 'build.sh' to create Maestro. See box_name option on build.sh to get more information. By default 'maestro'"
:build_config:
:desc: "forj cli use 'build.sh' to create Maestro. See build_config option on build.sh to get more information. By default 'box'"
:bp_flavor:
:desc: "Blueprint nodes default flavor. Usually, blueprint node are smaller than Maestro."
+ :account: true
+ :list_values:
+ :query_type: :query_call # Will execute a query on flavor, query_params is empty for all.
+ :object: :flavor
+ :value: :name
+ :validate: :list_strict
+ :ask_step: 2
:flavor_name:
:desc: "Maestro Flavor name. This flavor is for Maestro only. Your blueprint layout defines each node flavors on needs."
:default: :flavor
+ :account: true
+ :list_values:
+ :query_type: :query_call # Will execute a query on flavor, query_params is empty for all.
+ :object: :flavor
+ :value: :name
+ :validate: :list_strict
+ :ask_step: 2
:image_name:
- :desc: "Image used to create Maestro and all forge boxes. By default, it is 'Ubuntu Precise 12.04.4 LTS Server 64-bit 20140414 (Rescue Image)'"
+ :desc: "Ubuntu image used to create Maestro and all forge boxes. By default, it is 'Ubuntu Precise 12.04.4 LTS Server 64-bit 20140414 (Rescue Image)'"
+ :account: true
+ :ask_step: 2
+ :list_values:
+ :query_type: :query_call # Will execute a query on flavor, query_params is empty for all. No filter currently working.
+ :object: :image
+ :value: :name
+ :validate: :list_strict
+ :ask_step: 2
:ports:
- :desc: "List of security group rules (1 port or range of ports) to open to the external network."
+ :desc: "List of security group rules (1 port or range of ports) to open to the external network."
:branch:
- :desc: "Branch to use to build your forge"
+ :desc: "Branch to use to build your forge"
+ :bootstrap_dirs:
+ :desc: "Additional bootstrap directories (separated by space) to add in the bootstrap loop."
+ :bootstrap_extra_dir:
+ :desc: "Additional bootstrap directory to add in the bootstrap loop, before :bootstrap_dirs and after maestro default bootstrap directory."