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."