Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release notes for asgard-1.5 #587

Merged
merged 2 commits into from
Jun 5, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,45 @@
1.5

Features
- Platform-independent user data provider option (formatted like a properties file)
- Ability to run Asgard in one AWS account and AssumeRole to manage a different account
- Automated deployment can accept arbitrary user-chosen steps
- Each application can have an optional application group
- Each application can have optional tags
- Enable configurable maximum number of ASGs per cluster
- REST endpoints for retrieving a deployment workflow plan JSON blob, and for starting a workflow with that JSON
- Additional ways to configure Asgard to get AWS credentials, including from an IAM profile
- Updated list of AWS instance types
- Links to security groups include both name and ID
- Made it possible to skip cache loading during cache loading, using runtime flag API
- Support for HTTPS ELB listeners (Thanks Greg Dziemidowicz)
- Configurable AWS API socket timeout value
- Shared visibility all of in-memory running tasks across Asgard instances in a cluster
- Filterable instance reservations by offering type


Infrastructure
- Turn off noisy, legacy task completion emails
- Introduced AngularJS for auto deployment screens, with Grunt build and JavaScript unit tests
- Asgard's health check should fail while initializing, but then should pass forever, for desired load balancer behavior
- Asgard can register with Eureka service for conventional discoverability
- "Wither" function to have Asgard delete itself after it finishes all running in-memory tasks
- Separate SimpleDB service from Application service
- Store SWF tokens in database
- Ability to set arbitrary headers via RestClientService (Thanks e0d)
- Upgraded frigga library to allow for letters in version strings of AMI appversion tags
- Converted more JUnit tests to Spock


Bug Fixes
- List of VPCs for security group creation only includes VPCs that have conventionally labeled subnets
- List of ELBs over 400 can be listed successfully
- List of RDS DB instances over 100 can be listed successfully
- Rolling push can work with spot instances (Thanks Dale Wijnand)
- Force U.S. dollars for Amazon-listed currency amounts (Thanks Dale Wijnand)
- Allow an initial size of 0 for creating the next ASG in a cluster


1.4.2

Features
Expand Down
4 changes: 2 additions & 2 deletions application.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Grails Metadata file
#Wed Aug 07 12:22:31 PST 2013
#Wed Jun 05 11:45:00 PST 2014
app.grails.version=2.2.4
app.name=asgard
app.servlet.version=2.4
app.version=1.4.2
app.version=1.5
8 changes: 4 additions & 4 deletions grails-app/services/com/netflix/asgard/ImageService.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -250,10 +250,10 @@ class ImageService implements BackgroundProcessInitializer {
return
}

List<String> targetRoolUrls = configService.promotionTargetServerRootUrls
log.info "ImageTagReplicator starting for promotion target servers ${targetRoolUrls}"
List<String> targetRootUrls = configService.promotionTargetServerRootUrls
log.info "ImageTagReplicator starting for promotion target servers ${targetRootUrls}"

for (String promotionTargetServer in targetRoolUrls) {
for (String promotionTargetServer in targetRootUrls) {
try {
// Try to connect to promotion target server. Abort if server is unavailable.
checkServerHealth(promotionTargetServer)
Expand All @@ -264,7 +264,7 @@ class ImageService implements BackgroundProcessInitializer {
log.error "ImageTagReplicator failed for ${promotionTargetServer}", e
}
}
log.info "ImageTagReplicator done for all promotion target servers ${targetRoolUrls}"
log.info "ImageTagReplicator done for all promotion target servers ${targetRootUrls}"
} catch (Exception e) {
log.error "ImageTagReplicator failed: ${e}"
}
Expand Down