diff --git a/docs/design/reference.deploy.yml b/docs/design/reference.deploy.yml index d25be15e..36752306 100644 --- a/docs/design/reference.deploy.yml +++ b/docs/design/reference.deploy.yml @@ -1,4 +1,4 @@ -# deploy.yml reference implementation v2.5.0 +# deploy.yml reference implementation v2.6.0 # [Optional] # By changing the license_accepted boolean value to "true" you are @@ -8,6 +8,15 @@ licensing: license_accepted: false +#autonames: +# custom: +# - ecs01 +# - ecs02 +# - ecs03 +# - ecs04 +# - ecs05 +# - ecs06 + # [Required] # Deployment facts reference facts: @@ -63,7 +72,7 @@ facts: # VFS path to source of randomness # Defaults to /dev/urandom for speed considerations. If you prefer /dev/random, put that here. # If you have a /dev/srandom implementation or special entropy hardware, you may use that too - # so long as it implements a /dev/random type device abstraction. + # so long as it implements a /dev/random type device. entropy_source: /dev/urandom # # [Optional] @@ -71,7 +80,9 @@ facts: # Available options: # - "moons" (ECS CE default) # - "cities" (ECS SKU-flavored) - autonaming: moons + # - "custom" (uncomment and use the top-level autonames block to define these) + # autonaming: custom + # # [Optional] # If your ECS comes with differing default credentials, you can specify those here diff --git a/patches/3.1.0.2/Dockerfile b/patches/3.1.0.2/Dockerfile new file mode 100644 index 00000000..7c7cb7c3 --- /dev/null +++ b/patches/3.1.0.2/Dockerfile @@ -0,0 +1,23 @@ +# Fixes to the default 3.1.0.2 reduced image. + +# Build on object-reduced image (GA release) +FROM emcvipr/object:3.1.0.2-95467.5ec917e-reduced + +# Increase memory for transformsvc +RUN sed -i s/-Xmx128m/-Xmx512m/ /opt/storageos/bin/transformsvc + +# Fix disk partitioning script +RUN sed -i '/VMware/ s/$/ \&\& [ ! -e \/data\/is_community_edition ]/' /opt/storageos/bin/storageserver-partition-config.sh +RUN /usr/bin/chmod +x /opt/storageos/bin/storageserver-partition-config.sh + +# Set VNets useSeperateThreadPools to True +RUN f=/opt/storageos/conf/vnest-common-conf-template.xml; grep -q "object.UseSeparateThreadPools" $f || sed -i '/properties id="serviceProperties"/a \ \ \ \ \ \ \ \ true' $f + +# Set georeceiver's initialBufferNumOnHeap to something smaller for CE +RUN f=/opt/storageos/conf/georeceiver-conf.xml; grep -q 'name="initialBufferNumOnHeap" value="10"' $f || sed -i 's/name="initialBufferNumOnHeap" value="60"/name="initialBufferNumOnHeap" value="10"/' $f + +# Configure CM Object properties: Disable minimum storage device count +RUN f=/opt/storageos/conf/cm.object.properties; grep -q 'MustHaveEnoughResources=false' $f || sed -i 's/MustHaveEnoughResources=true/MustHaveEnoughResources=false/' $f + +# Allow allocation of different blocks of a chunk to be stored on the same partition +RUN sed -i 's###g' /opt/storageos/conf/ssm-cf-conf.xml diff --git a/release.conf b/release.conf index b0555f8d..04b0c4f9 100644 --- a/release.conf +++ b/release.conf @@ -11,6 +11,12 @@ # DO NOT specify an alternate registry here. Use the -r argument to # bootstrap.sh for that. # +### Older versions ( 3.1 ) +# release_artifact="emccorp/ecs-software-3.0.1" +# release_tag="3.1.0.0" +# release_tag="3.1.0.1" +# release_tag="latest" +# ### Older versions ( 3.0 ) # release_artifact="emccorp/ecs-software-3.0.0" # release_tag="3.0.0.1" diff --git a/ui/ansible/roles/installer_generate_ssh_keys/vars/main.yml b/ui/ansible/roles/installer_generate_ssh_keys/vars/main.yml index 7f2c1c27..178809a3 100644 --- a/ui/ansible/roles/installer_generate_ssh_keys/vars/main.yml +++ b/ui/ansible/roles/installer_generate_ssh_keys/vars/main.yml @@ -1,3 +1,5 @@ +# This is all now in ui/ansible/templates/all.j2 + #keys_rsa: # keygen_cmd: ssh-keygen -N '' -t rsa -b 4096 -o -a 100 -f # priv_key: /opt/ssh/id_rsa diff --git a/ui/ansible/templates/autonames.yml.j2 b/ui/ansible/templates/autonames.yml.j2 index 9835138d..08a50b2b 100644 --- a/ui/ansible/templates/autonames.yml.j2 +++ b/ui/ansible/templates/autonames.yml.j2 @@ -1,5 +1,7 @@ +--- +# Selected autonames: {{ facts['node_defaults']['autonaming'] }} autonames: -{%- set autonaming = facts['autonaming'] | default('moons') -%} +{%- set autonaming = facts['node_defaults']['autonaming'] | default('moons') -%} {%- for name in autonames[autonaming] %} - {{ name -}} {% endfor %} diff --git a/ui/ecsconfig.py b/ui/ecsconfig.py index f09d8cbc..d7cb4b66 100755 --- a/ui/ecsconfig.py +++ b/ui/ecsconfig.py @@ -296,14 +296,17 @@ def do_ping(): if resp_dict is not None: if resp_dict['common_name'] is not None: dt_status = conf.diag_dt_status() - o('PONG: api_endpoint={} username={} {}'.format(conf.api_endpoint, - resp_dict['common_name'], - dt_status['text'])) if x: if dt_status['status'] is True: pinging = False + o('PONG: api_endpoint={} username={} {}'.format(conf.api_endpoint, + resp_dict['common_name'], + dt_status['text'])) else: pinging = True + o('WAIT: api_endpoint={} username={} {}'.format(conf.api_endpoint, + resp_dict['common_name'], + dt_status['text'])) else: raise ECSClientException("Unexpected response from API") except requests.ConnectionError or httplib.HTTPException: diff --git a/ui/etc/config.yml b/ui/etc/config.yml index 92343c25..c8e3abd6 100644 --- a/ui/etc/config.yml +++ b/ui/etc/config.yml @@ -13,7 +13,7 @@ --- ui: name: ECS Community Edition Install Node - version: 2.5.2 + version: 2.6.0 host_root_dir: /opt/emc/ecs-install state_file: /opt/state.yml deploy_file: /opt/deploy.yml @@ -32,7 +32,7 @@ ui: ffx_sem: /opt/ffx.sem product: name: ECS - version: 3.1.0.1 + version: 3.1.0.2 vendor: Dell EMC flavor: Community Edition slogan: Free and Frictionless diff --git a/ui/etc/release.conf b/ui/etc/release.conf index 445f42ca..6426f0f9 100644 --- a/ui/etc/release.conf +++ b/ui/etc/release.conf @@ -8,10 +8,10 @@ # it is provided by or on behalf of EMC. release_name="ECS Community Edition" -release_version="3.1.0.1" +release_version="3.1.0.2" release_product="ECS Software" release_artifact="emccorp/ecs-software-3.1.0" -release_tag="hf1" +release_tag="3.1.0.2" release_common_name="emccorp/ecs-software:latest" docker_host_root="/opt/emc/ecs-install" @@ -32,8 +32,8 @@ repo_name='emccorp' image_name='ecs-install' tag='latest' ver_maj='2' -ver_min='5' -ver_rev='2' +ver_min='6' +ver_rev='0' ver_tag='r' serial=0 diff --git a/ui/etc/schema.yml b/ui/etc/schema.yml index 556b8063..dd3a761c 100644 --- a/ui/etc/schema.yml +++ b/ui/etc/schema.yml @@ -9,6 +9,18 @@ mapping: license_accepted: type: bool + autonames: + type: map + required: False + mapping: + custom: + type: seq + required: True + sequence: + - type: str + required: True + func: valid_hostname + facts: type: map required: True diff --git a/ui/run.sh b/ui/run.sh index 631aa667..10d1dc2f 100755 --- a/ui/run.sh +++ b/ui/run.sh @@ -112,7 +112,7 @@ case "$(basename ${0})" in #run ecsdeploy load || exit $? run ecsdeploy cache || exit $? ;; - island-step2|ova-step1) + island-step2) #run ecsdeploy load || exit $? run ecsdeploy access || exit $? run ecsdeploy check || exit $? @@ -123,6 +123,14 @@ case "$(basename ${0})" in run ecsdeploy deploy || exit $? run ecsdeploy start || exit $? ;; + ova-step1) + #run ecsdeploy load || exit $? + run ecsdeploy access || exit $? + run ecsdeploy check || exit $? + run ecsdeploy bootstrap || exit $? + run ecsdeploy deploy || exit $? + run ecsdeploy start || exit $? + ;; step1) #run ecsdeploy load || exit $? run ecsdeploy access || exit $? diff --git a/ui/setup.py b/ui/setup.py index 73ada285..a406ad22 100755 --- a/ui/setup.py +++ b/ui/setup.py @@ -3,7 +3,7 @@ setup( name='ecsdeploy', - version='2.5.2', + version='2.6.0', packages=find_packages(), scripts=['ui.py', 'ecsdeploy.py', diff --git a/ui/tui/schema_functions.py b/ui/tui/schema_functions.py index 727d8fe2..fa682cb0 100644 --- a/ui/tui/schema_functions.py +++ b/ui/tui/schema_functions.py @@ -36,7 +36,7 @@ def alphanumeric(value, rule_obj, path): __validate_regex(AlphanumericRegex, value, "Not a valid name: '%s' (%s)" % (value, path)) return True -def docker_image(value, rule_obj,path): +def docker_image(value, rule_obj, path): __validate_regex(DockerImageRegex, value, "Not a valid Docker image: '%s' (%s)" % (value, path)) return True @@ -47,3 +47,7 @@ def s3_secret_key(value, rule_obj, path): def valid_crypto_method(value, rule_obj, path): __validate_regex(ValidCryptoMethodRegex, value, "Not a supported crypto method: '%s' (%s)" % (value, path)) return True + +def valid_hostname(value, rule_obj, path): + __validate_regex(HostnameRegex, value, "Not a valid hostname: '%s' (%s)" % (value, path)) + return True