All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
Unreleased - YYYY-MM-DD
v37-5 - 2022-02-14
- fix permission for scripts in
scripts/
(#756)
v37-4 - 2020-11-30
- install wget in Docker image
v37-3 - 2020-11-25
- add
username
andinstance_uuid
label to the argo workflows launched - bump ansible to 2.8
- calls
ansible-playbook
executable directly to execute ansible playbooks
v37-2 - 2020-10-26
- celery_watcher.sh script
- script to switch user's quota to a different one
- reduce the
max_retries
and timeout for the celery tasks that runs the deployment ansible
- updated fix-deb.sh to check for 0 byte file as well
v37-0 - 2020-08-13
- script to create access token for users (#744)
- Using argo workflow to run ansible playbooks to deploy instance (#744)
v36-9 - 2020-06-16
- Aded NAT fix
v36-8 - 2020-06-02
- Added null check for script
v36-7 - 2020-05-20
- Add support for multi-instance-launch, 1 request can launch multiple instances by passing
instance_count
as an extra parameter (#736)
- Update and add Jetstream scripts (#735)
v36-6 - 2019-10-22
- Update Chromogenic to latest version (#730)
- Split
update_snapshot_cyverse
task to avoid timing out (#729)
v36-5 - 2019-09-27
- Jetstream specific scripts (#723)
- More Jetstream specific scripts (#724)
- Add purge_old_chromo_images script and install postgresql client (#725)
- Upgrade Chromogenic to
0.5.3
(#726)
- Filter out system-y metadata keys introduced in Rocky which we aren't currently using and make Glance client confused (#701)
v36-4 - 2019-09-09
- Update to Django 1.11.23 (#718)
- Move tas timeout into driver, only apply timeout to an instance of a driver (#687)
- Upgrade to rtwo 0.5.25 to fix errors caused by deleted source volume (#721)
v36-3 - 2019-08-08
- Fix uncommon bug with
machine_request.get_access_list()
(#713) - Fix admin page error from missing
get_short_name()
method (#699)
v36-2 - 2019-08-06
- Update dependencies (#711)
- Don't allow users to create Instances in Projects they do not own (#712)
- Update jwt.py dependency from django-cyverse-auth (#714)
v36-1 - 2019-06-19
- Downgrade python-ldap and install/start sendmail in Docker (#709)
v36-0 - 2019-06-18
- Format codebase with
yapf
require code to be formatted in travis build (#677) - Add support for CAS 5 (#692)
- Add 'description' to image search fields (#700)
- Added Dockerfile and related files to enable automated Dockerhub build/test (#702)
- Added atmosphere-ansible to Dockerfile (#706)
- Refactored email to make variables and methods used for sending emails easier to understand and use (#665)
- Increased default renewal Allocation Units to 336 (#703)
- Upgrade Chromogenic to 0.5.0 and update Dockerfile to be compatible (#704)
- Removed dead code (#689)
- Fix nginx gateway timeout on unshelve (#686)
- Fix exception handling preventing instance destroy (#690)
- Fix systemd files for compatibility with Ubuntu 16+ (#696)
v34-4 - 2018-09-25
- Fix un-registered service tasks (#683)
v34-3 - 2018-09-24
- Upgrade to rtwo version 0.5.24 to get more defensive pagination logic (#680)
v34-2 - 2018-09-21
- Several issues in the TACC_API_TIMEOUT implementation prevented the desired behavior of offline (no access to tas) user validation (#668)
v34-1 - 2018-09-18
- Fix reference to deleted model ProviderDNSServerIP (#673)
- Upgrade to django-cyverse-auth 1.1.7 from 1.1.6 to avoid error in OAuth (#674)
v34-0 - 2018-09-17
- Added AccessTokens model, API view, and serializers to enable new feature on Troposphere that allows users to create personal access tokens that can be used to authenticate the user from things like Atmosphere CLI (#648)
- Add ability to configure allocation overrides (#652)
- Added api v2 delete support (#654)
- Introduce vulture to detect dead code (#662)
- Updated Ansible version to 2.6.1 by changing requirements and changing
deploy.py
Playbook arg--inventory-file
to--inventory
(#635) - Simplified v2 instance action api to exclude 'object' field (#655)
- Prefer importing settings from django.conf (#658)
- Added timeout of 5 sec to tas api for user validation, and refactored to make validation more explicit in the absence of the old selected_identity notion (#639)
- Linter runs more strict. Many changes were made to satisfy linter. (#664)
- Upgrade chromogenic from 0.4.18 to 0.4.20 (#670)
- Upgrade django-cyverse-auth to 1.1.6 from 1.1.4 (#671)
- Remove code/vars related to old allocation system (#656)
- Removed references to selected_identity (#639)
- Consecutive test runs would fail because django-memoize was intercepting cassette playback (#626)
- Increased hard timeouts for tasks (#650)
- Variable changes to DJANGO_DEBUG and SEND_EMAILS (#649)
- Fixed v2 volume detach throwing 500 serialization error (#655)
- Reincluded/fixed broken tests (#657)
- In application_to_provider,py, determine correct upload method based on Glance client version specified in main function (#667)
v33-0 - 2018-08-06
- Private networking resources (fixed IP, port, private subnet, private
network) are preserved for inactive (suspended, shelved, stopped)
instances (#608)
- Additionally atmosphere no longer reports the private ip in the absence of the public ip
monitor_machines
periodic task runs once each night rather than every 30 minutes (#625)- Subspace is replaced by Ansible's PlaybookCLI for instance deployment (#631)
- Projects can be deleted if they only contain links/applications (#640)
- In the general feedback email we no longer include the users selected provider, as it's no longer relevant (#603)
- Deleting a project via api/v2/projects no longer deletes enddated instances and volumes in those projects (#640)
application_to_provider
was using an invalid method in Glance Client v1 to upload image data (#618)- monitor_machines_for fails in the presence of inactive provider (#614)
- Chromogenic (0.4.17) had a caching issue causing imaging to fail (#619)
- Explicitly specify external network to rtwo when associating a floating IP address (#624) (#632)
- Attaching task succeeded before volume was actually attached causing volume mount to fail (#629)
- Fix incorrect fetching of instances, upgrade to rtwo version 0.5.22 (#641)
v32-2 - 2018-04-26
- Quota updates concerning volumes would silently fail (#611)
- Fix monitor_instances_for timing out, upgrade to rtwo version 0.5.18 (#598)
- Fix unintentional fetch of all_tenants instances, upgrade to rtwo version 0.5.19 (#614)
v32-1 - 2018-04-17
- Support multiple hostnames for Atmosphere(1) server (#602)
- On start/unshelve instances would fail to be reachable because ports added post boot (#604)
- Quota update would yield an index out of bounds error (#606)
- Travis build failure, specify version 9 of pip until we're ready for pip 10 (#607)
v32-0 - 2018-04-03
- Include a start date in the resource request api
- Update license to 2018
- Update CHANGELOG.md to use the recommendations from Keep a Changelog
- Change ./manage.py maintenance to be non-interactive
- Return less information in the version api (api/v{1,2}/version) like atmosphere's major minor and patch version
- The version reported for atmopshere ansible (api/v{1,2}/deploy_version now returns results
v31-1 - 2018-04-03
- Worked around nova bug which prevented unshelved instances from getting fixed ips #599
v31-0 - 2018-03-08
- Allow volumes and instances to be filtered by provider_id
- Update guacamole connection id to accept new un-truncated connection id
- Remove our linting exceptions so we're linting more
- Support new image visibility semantics in Glance API version 2.5
- Small improvements to run_tests_like_travis.sh script
- Create virtualenv if it doesn't exist
- Install pip tools like travis
- Remove support for nginx/uwsgi (its now part of clank)
- Fix image scripts not being included during deploy
- Fix incorrect image actions are allowed during 'active - deploy_error', 'shelved_offloaded', and 'shelved'
v30 - 2017-11-21
- Site operators can override enforcement behavior for specific allocation sources
- Admin improvements
- On resource request approval the reason field is omitted, which makes much more sense in the email template
- Identities can be patched (to update quota)
- Allocations now renews on first day of month
- Multiple metadata syncing fixes:
application_to_provider
previously did not migrate custom image metadataapplication_sync_providers
previously only looked at active (non-end-dated) InstanceSources + ProviderMachines- Refactored the part of
application_to_provider
which sets metadata, for less code duplication
- Quota cannot exceed limit
- Incorrect URL definition for web desktop/shell links
- Missing DOI on ImageVersion model
- Fixes to monitor_machines and validation
- Legacy clouds need to call 'list images' twice and append info to the v2 api.
- Skip machines if their status is 'queued' or 'saving'
- Various small bug fixes like undefined variables and attributes
Carbonaceous-Comet (v29) - 2017-11-09
- Site operators can now create machine validation plugins to control the flow of images in the atmosphere image catalog.
- Users can now select a
guacamole_color
in their UserProfile, which will correspond to the theme used in guacamole web shell sessions. - Update travis to include code linting
- Enable auto reload for uwsgi as an option for configuration.
- Change the location of ephemeral drives to a /scratch directory with a 'data-loss' warning.
- Explicitly pass the ssh IdentityFile to be used for instance_deploy and check_networking tasks.
- Remove special characters from BootScripts prior to deployment.
- Suspend instances if the ephemeral storage is set to /home directory and a 'Shelve' action is received.
- Remove 'Provider' examples from the list of fixtures installed on a fresh database.
- Celery init.d scripts are no longer included in Atmosphere. Use clank for installation/configuration of celery.
Beneficent-Bolide(v28) - 2017-10-03
- Users can now set 'access_list' on an application to specify an email/username pattern. Users that match the pattern will be added to present/future versions of the application.
- Create a new 'AccountCreationPlugin' for direct Openstack logins
- Introduced code coverage via coveralls
- Provided instance 'fault' information when instance fails to deploy
- Introduced new manage.py command to start/stop a maintenance
- Replaced time-series metrics with summarized metrics
- BootScript support for strategies: run on first launch and run each deployment
- BootScripts can be executed asynchronously. (Default is sync and return exit codes to user as a failure)
- Ansible-ized user boot scripts
- Celery now runs non-imaging tasks under user 'www-data'
- Changed how atmosphere handles 'new_relic' settings and installation via clank.
- Behave will be quieter in travis.ci
- Temporary fix provided for updating multiple providers via single ResourceRequest
- Fix provided for re-associating floating IP when an instance has two fixed IPs available.
- Removed all libcloud deployments. All instance deployments happen with ansible now!:tada:
Ancient-Asteroid(v27) - 2017-09-19
- Provide support to reset renewal date for allocation sources
- Ansible will now deploy user-boot-scripts
- API /v2/sizes includes 'root' attribute (Root disk size)
- Squashed migrations 0001-0084
- Updated regression test-cases
- Optimized resource request serialization to avoid slow API calls
- Default to deployment when using v2 instance API for creating instances
- Update the meaning of 'active' provider. Allow inactive providers to show resources but not be used for instance launch.
- Fix broken emulation endpoint
- Fixed a race-condition that would cause failures inside django-cyverse-auth
- Cleanup formatting and variable definitions in project sharing feature
- /v1/project_serializer includes previously-missing value 'created_by'
- Remove unnecessary check for permissions on volume POST
- Fix small edge-case where InstanceSource exists, but volume does not
- Fix broken test-cases
- Remove duplicated import
- Fixed a bug where API was trying to return AsyncResult.
- Fix web_token API calls
- Small bugfix to /v2/volume API POST calls
- Fixed a bug where missing snapshot will break
monitor_allocation_sources
. - Bug encountered and fixed related to Account emulation for staff users
- ProjectVolume API fixed to work for v27 (will be removed in the future)
- Include hotfix for
get_or_create_[user/token]
in django-cyverse-auth
- Remove unused v2 Event API
- /api/v2/allocations has been removed
- identity.allocation, and quota.allocation have been removed
Zesty-Zapdos - 2017-07-17
- Improvements to travis.yml to help improve the QOL working on the codebase.
- Documentation on generating requirements in atmosphere
- Prepare for Ubuntu 16.04 support with systemd scripts
- Include script for generating instance reporting
- Include script for replication of an application to a provider
- Disable instance sizes if the hosting image has a disk size thats larger
than what is allowed.
- Update the size attribute during monitoring of images
- Releasing a new SSH client and VNC client -- Guacamole
- Provide a simple API endpoint that allows new clients to decide on the functionality and return to Troposphere.
- Invalid host headers disabled at nginx
- Improve the onboarding process for new cloud providers by including sample cloud_config
- Instances end dated at the point in time when deletion occurs in the API, rather than by request.
- Fixed an error that caused legacy clouds to fail with "project_id" KeyError
- Fixed an error that caused the wrong 'type' of quota value to be set on legacy and new clouds.
Yampy-Yellowlegs - 2017-06-12
- New script created to help migrate an entire application to a new provider
- Improvements related to the new Allocation Source model introduced in Xenops
- Support for "Special allocations"
- Move web_desktop functionality to Atmosphere from Troposphere
- Time-sync issues caused the API to perform unexpectedly, fixed by adjusting only_current
- Multiple bugs fixed related to the new Allocation Source model introduced in Xenops
Xylotomous-Xenops - 2017-05-02
- Updated Atmosphere to latest subspace Ansible 2.3 (https://github.com/cyverse/atmosphere/commit/253bf6d23ab1be0e15f35d97fa9a2b238b9bc639)
- Jetstream fixes to allocation source model
- Include shelve/unshelve instance actions.
- Sourceid removed from Allocation Source model
- Populate glance image metadata application_tags with valid JSON
- Fixed application tags (https://github.com/cyverse/atmosphere/commit/fed9aae578025d8024f4a255ee109e12f1ff0483)
- Behave fail for allocation settings (https://github.com/cyverse/atmosphere/commit/62686fd387203e2b5abe057d807503eabbddade4)
- Unknown sizes appear when sizes are disabled (#321)
- Fixed duplicate
user_allocation_source
events (#350)- Also has a migration to delete old duplicate events
- Fix for umount && imaging, remove un-necessary lines in /etc/fstab
- Bail out conditions for Celery task when MockDriver is used
Whimsical-Wyvern - 2017-04-06
- Include sentry.io error reporting for production environments
- application_to_provider migration script
- iRODS transfer support for application_to_provider script
- A new image metrics API endpoint has been created (Staff-users only, for now)
- Included redeploy as an InstanceAction
- Improved support for Instance Actions in v2 APIs
- Include ext4 support for creating and mounting volumes
- Upgrade to latest requirements.txt
- Set provider quota returns more information to allow easier triage by support staff
- Use ansible to create and mount volumes
- Provide optional cloud_config options in 'deploy' section: 'volume_fs_type' and 'volume_mount_prefix'
- Image validation is now a feature flag, configurable from settings.ENABLE_IMAGE_VALIDATION
- Enable LDAP Expiration information in Profile, if included in configuration
Voracious-Velociraptor - 2017-02-14
- Image validation works as intended (and deletes instance on cleanup)
- New command
manage.py find_uuid
can help understand what object you are looking at when given a UUID without context - Improved sorting for image catalog
- Include 'project' in instance launch (v2 API)
- Instance status/activity show up as expected when in 'Networking' and 'Deploying'
- Errors that bubble up from API are now more verbose and help users understand the problem
- Remove iPlant-isms from template pages
- Fix logfile growing pains
- move from iplantauth to django_cyverse_auth
- Add 'user expiration' LDAP plugin and include 'is_expired' attribute in user's profile API
- Creation of new identities/providers now available in v2 API
- Include instance reporting as a v2 API, allow generation of XLSX and CSV files
- Create a PluginManager to avoid code duplication between plugin validation and class loading
- Fixed a bug that caused the image bookmark API to produce an invalid query
- Quota foreign key has been re-assigned from IdentityMembership to Identity
- Create router gateway when using the ExternalNetworkTopology
- Quota can now be set "above the pre-set limits" listed in openstack.
- ./scripts/add_new_accounts.py and ./scripts/add_new_provider.py will stop receiving updates after creation is moved into the GUI/API.