<div dir="ltr">Hello everyone,<br><br>We are pleased to announce the release of the 2.7 version of Software Factory.<br>Please find the changelog, digests and packages diff below.<br><br>Release Notes<br>===========<br><br>New Features<br>--------------------<br><br>- Add a --provision-demo sfconfig argument to create demo projects and user.<br>- Add --disable-fqdn-redirection sfconfig argument to disable fqdn redirection<br>  when gateway is accessed with ip address.<br>- A nodepool OCI driver is provided to running jobs in OCI containers.<br>- sfconfig's nodepool/nodepool3 sections get new OpenStack domain-related options,<br>  these are necessary when using version 3 and above of keystone's authentication<br>  API.<br>- A new sfconfig.yaml logserver expiry option enable old logs purge<br>  configuration, default to 2 months.<br>- The Zuul and Nodepool v3 services are now part of the minimal reference<br>  architecture.<br>- NodepoolV3 services are running with the rh-python35 SCL which allows to run<br>  the new services on the same node as the previous one (allinone).<br>- ZuulV3 services are running with the rh-python35 SCL which allows to run<br>  the new services on the same node as the previous one (allinone).<br>- A new sfconfig.yaml setting enable to setup custom static nodes.<br>- sfconfig won't restart zuul services if jobs are running, it will wait up<br>  to 10 minutes before giving up and sending a mail to an adminstrator to<br>  request a manual restart. This prevent loosing pipeline queues when changing<br>  operator setting such as zuul_log_level or when adding an external gerrit.<br>- New --zuul-ssh-key and --zuul3-ssh-key sfconfig argument enable using user<br>  provided ssh key for the Zuul services.<br>- A new sfconfig argument is added to simplify third-party-ci configuration,<br>  "--zuul3-gerrit-connections name#hostname#port#puburl#username"<br>- A new sfconfig option and argument is added to re-use the<br>  <a href="http://openstack.org/openstack-infra/zuul-jobs">openstack.org/openstack-infra/zuul-jobs</a> collections,<br>  "--zuul3-upstream-zuul-jobs"<br><br>Bug Fixes<br>---------------<br><br>- Cloud-init services are now disabled after first deployment to prevent<br>  ssh authorized keys modification.<br>- The zuul-launcher service is no longer hard restarted, instead a graceful<br>  command is performed before to prevent leaking nodepool attached instance.<br><br>Security fixes<br>--------------------<br><br>- The zuul-merger script used to merge the zuul configuration was using the<br>  insecure yaml.load instead of yaml.safe_load.<br><br>Deprecation Notes<br>---------------------------<br><br>- The export-backup feature has been removed. The new backup/restore<br>  documentation reflect that change. Software Factory, now, only<br>  provides a local backup playbook and a recover command. Backup data<br>  extraction should be managed by the operator.<br>- The zuul-swift-upload is no longer supported and logs swift settings are<br>  removed from sfconfig.yaml.<br><br>New Packages<br>----------------------<br><br>ansible-lint-3.4.17-1.el7<br>ara-0.14.4-1.el7<br>bubblewrap-0.1.8-2.el7<br>cauth-0.10.0-3.el7<br>etherpad-1.6.1-2.el7<br>gerrit-2.11.10-2.el7<br>managesf-0.15.1-3.el7<br>nodepool-0.4.0-10.20170713.56e0172.el7<br>pysflib-0.9.1-2.el7<br>python-oic-0.9.4-6.el7<br>python-sfmanager-0.4.0-3.el7<br>python-testinfra-1.6.5-2.el7<br>repoxplorer-1.0.2-1.el7<br>rh-python35-GitPython-2.1.7-1.el7<br>rh-python35-ara-0.14.5-1.el7<br>rh-python35-diskimage-builder-2.8.0-1.el7<br>rh-python35-enable-py3-0.1-2.el7<br>rh-python35-nodepool-0.4.0-8.20171102.d20a13d.el7<br>rh-python35-pyflakes-1.5.0-1.el7<br>rh-python35-python-XStatic-1.0.1-1.el7<br>rh-python35-python-XStatic-Bootstrap-SCSS-3.3.7.1-1.el7<br>rh-python35-python-XStatic-DataTables-1.10.15.1-1.el7<br>rh-python35-python-XStatic-Patternfly-3.21.0.1-1.el7<br>rh-python35-python-XStatic-Patternfly-Bootstrap-Treeview-2.1.3.2-1.el7<br>rh-python35-python-XStatic-jQuery-1.10.2.1-1.el7<br>rh-python35-python-aiohttp-2.2.3-1.el7<br>rh-python35-python-appdirs-1.4.3-1.el7<br>rh-python35-python-babel-2.5.0-1.el7<br>rh-python35-python-cinderclient-3.1.0-1.el7<br>rh-python35-python-click-6.7-1.el7<br>rh-python35-python-cliff-2.8.0-1.el7<br>rh-python35-python-cmd2-0.7.6-1.el7<br>rh-python35-python-debtcollector-1.17.0-1.el7<br>rh-python35-python-decorator-4.1.2-1.el7<br>rh-python35-python-deprecation-1.0.1-1.el7<br>rh-python35-python-dogpile-cache-0.6.4-1.el7<br>rh-python35-python-flake8-3.4.1-1.el7<br>rh-python35-python-flask-0.12.2-1.el7<br>rh-python35-python-flask-frozen-0.15-1.el7<br>rh-python35-python-flask-migrate-2.1.0-1.el7<br>rh-python35-python-flask-script-2.0.5-1.el7<br>rh-python35-python-flask-sqlalchemy-2.2-1.el7<br>rh-python35-python-glanceclient-2.8.0-1.el7<br>rh-python35-python-ipaddress-1.0.18-1.el7<br>rh-python35-python-ironicclient-1.16.0-1.el7<br>rh-python35-python-itsdangerous-0.24-1.el7<br>rh-python35-python-jinja2-2.9.6-1.el7<br>rh-python35-python-jmespath-0.9.3-1.el7<br>rh-python35-python-jsonpatch-1.16-1.el7<br>rh-python35-python-jsonpointer-1.10-1.el7<br>rh-python35-python-jsonschema-2.6.0-1.el7<br>rh-python35-python-junit-xml-1.7-1.el7<br>rh-python35-python-keystoneauth1-3.1.0-1.el7<br>rh-python35-python-keystoneclient-3.13.0-1.el7<br>rh-python35-python-mccabe-0.6.1-1.el7<br>rh-python35-python-monotonic-1.3-1.el7<br>rh-python35-python-munch-2.2.0-1.el7<br>rh-python35-python-netaddr-0.7.19-1.el7<br>rh-python35-python-netifaces-0.10.6-1.el7<br>rh-python35-python-networkx-1.11-1.el7<br>rh-python35-python-novaclient-9.1.0-1.el7<br>rh-python35-python-openstackclient-3.12.0-1.el7<br>rh-python35-python-openstacksdk-0.9.17-1.el7<br>rh-python35-python-os-client-config-1.28.0-1.el7<br>rh-python35-python-osc-lib-1.7.0-1.el7<br>rh-python35-python-oslo-config-4.11.0-1.el7<br>rh-python35-python-oslo-i18n-3.17.0-1.el7<br>rh-python35-python-oslo-serialization-2.20.0-1.el7<br>rh-python35-python-oslo-utils-3.28.0-1.el7<br>rh-python35-python-paho-mqtt-1.1-1.el7<br>rh-python35-python-positional-1.2.1-1.el7<br>rh-python35-python-pycodestyle-2.3.1-1.el7<br>rh-python35-python-pyfakefs-3.2-1.el7<br>rh-python35-python-pygments-2.2.0-1.el7<br>rh-python35-python-pyperclip-1.5.27-1.el7<br>rh-python35-python-pytest-runner-2.11.1-1.el7<br>rh-python35-python-requestsexceptions-1.3.0-1.el7<br>rh-python35-python-rfc3986-1.1.0-1.el7<br>rh-python35-python-shade-1.22.2-1.el7<br>rh-python35-python-simplejson-3.11.1-1.el7<br>rh-python35-python-stevedore-1.25.0-1.el7<br>rh-python35-python-subunit-1.2.0-1.el7<br>rh-python35-python-testtools-2.3.0-1.el7<br>rh-python35-python-unicodecsv-0.14.1-1.el7<br>rh-python35-python-vcversioner-2.16.0.0-1.el7<br>rh-python35-python-warlock-1.2.0-1.el7<br>rh-python35-python-werkzeug-0.12.2-1.el7<br>rh-python35-python-wrapt-1.10.11-1.el7<br>rh-python35-zuul-3.0.0-12.20171103.d646c12.el7<br>sf-config-2.7.3-2.el7<br>sf-docs-2.7.1-1.el7<br>sf-elements-0.3.0-2.el7<br>sf-release-2.7.1-1.el7<br>umurmur-0.2.17-1.el7<br>zookeeper-lite-3.4.10-3.el7<br>zuul-2.5.1-21.20170920.5c273594.el7<br><br>The release 2.7 RPM, image and digest:<br><br>- Release RPM: <a href="https://softwarefactory-project.io/repos/sf-release-2.7.rpm">https://softwarefactory-project.io/repos/sf-release-2.7.rpm</a><br>- Qcow2 image: <a href="https://softwarefactory-project.io/releases/sf-2.7/sf-2.7.qcow2">https://softwarefactory-project.io/releases/sf-2.7/sf-2.7.qcow2</a><br>- Signed Release digest: <a href="https://softwarefactory-project.io/releases/sf-2.7/sf-2.7.digest">https://softwarefactory-project.io/releases/sf-2.7/sf-2.7.digest</a><br><br>Digest<br>---------<br><br>-----BEGIN PGP SIGNED MESSAGE-----<br>Hash: SHA1<br><br>16839d114dcdd827ca99609570d9d880692617f7c308af664edd905a14b41b9b  sf-2.7-allinone-fixed-ip.hot<br>a66e3385faff2e11c96512878790a61cbf2d5a37ee473fac4432248b3fd402e0  sf-2.7-allinone.hot<br>ec3f85b58eb282fd72d7b95b3009429170a263e5e60a609f5494807e973d57f0  sf-2.7-distributed-fixed-ip.hot<br>28fb38d85a44a1f87dc014b7239fdc610b4714e09d029ad41643b361569b0087  sf-2.7-distributed.hot<br>957c197d1ec1f390723bbbb702aff61b80de85d744172d1d04cfcc034d58f98c  sf-2.7-minimal-fixed-ip.hot<br>a0f6dacd2c88ae605dd5e82a338bd6bb9f3370d5d1469764d5fe73d39f664f05  sf-2.7-minimal.hot<br>42fae9ddcdf7a24b87353ba287dce491ebd56d9a0ef8b82bb8e94a755bc8ac97  sf-2.7.qcow2<br>-----BEGIN PGP SIGNATURE-----<br><br>iQIcBAEBAgAGBQJaEq7DAAoJEOjCA6ccO65LavEP/jWforC9b0n3Z/K46imXaLtB<br>UPpzYKAGDAgxWeBFlrFxPaKdvW6IBDBOMkYu6vJCXVaAuZJtPxcccmvRvFSBPUu/<br>ngO9waP/PGMO64nNBtV49csuPKkHS+tJQM/aE/sreLbM6GKAZkmguUy2A7tXcgS6<br>yGwtG3TnKhjKh/Mk2Vm4Jm2EnPBb55jAjP+M3tp6oT2oKaXsngoS4hne9dF9kf2T<br>fGMRBIKLmoEvTjefwYuPavox7SmPIGSNP0mNS7GRkK9DsWXF3lNKqpCZKK2/dnpy<br>9rbWZMmo4ydictLjgueI8FYNQUWijbMvUEMupqnjHFx2STyIpNHI4x5HLjg5dyl/<br>gNDVH48axjo2ff4tdD7fzndmwG1LKksPzGzCDpngDmNKG4XqdVhJg8oWpn/gOHiV<br>vVRmogbbGt0mNbmSnKLrpxEdmmhzICVI3geC6lMhcoTgi6bPzff7wWy8JGmFV7sb<br>baZcIOD8WOrrQNQ8Mf2K1RX5sya7q0jQPRqrbkuufqpDmsm7WZgVvZxH53kTeCy5<br>aElbmC+Ur0sYq+PRSmCMUK/NOoBxQ6UGY7vBObABJFljV0uUUgd+cokFI3PjnMlE<br>KTRyx/UHBUFrzqhXCclzQrkourQLvXGrDPRKOGgsJhoc5tKqNYJsXk2idci6T9dn<br>mlHO1qlKk6hSCHr3hqoy<br>=zJWz<br>-----END PGP SIGNATURE-----<br><br><br>Best regards,<br>The Software Factory Team<br></div>