Skip to content

Instantly share code, notes, and snippets.

@briandant
Created August 25, 2016 23:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save briandant/8c91edc3f595b3bfd66e41847f8b43be to your computer and use it in GitHub Desktop.
Save briandant/8c91edc3f595b3bfd66e41847f8b43be to your computer and use it in GitHub Desktop.

Okay, this release doesn't feel as awesome as the last one, but can you blame us? That was a pretty sweet release.

Improvements

A new staging cluster

We've made a new cluster for staging. This was critical because breaking ISC's staging server or Nate's demo server was getting kinda old. This server will receive automatic pushes from develop via Codeship.

Merge commit: https://github.com/appsembler/wharf/commit/3090192
Primary commit: https://github.com/appsembler/wharf/commit/ce2c07238c1a33623a5b4760ba6fd707d2dec327
Dev: @briandant

Side effects:

Upgrade to Ubuntu 16.04.

This upgrades the Appsembler staging and demo clusters to Ubuntu 16.04. The Cluster Formerly Known as Demo is now the Appsembler production cluster and uses production environment settings.

Merge commit: https://github.com/appsembler/wharf/commit/ef8791b
Primary commit: https://github.com/appsembler/wharf/commit/81472c5
Dev: @mrgnr

Change the header name to "Appsembler Virtual Labs"

Merge commit: https://github.com/appsembler/wharf/commit/f6919d1
Primary commit: https://github.com/appsembler/wharf/commit/75f656c
Dev: @briandant

Split wharf models into seperate files

Our models.py in Wharf was long. Long roadtrips are good. Longs models.py ... not so much. Another step in the right direction for the Wharf Revolution. If you lay awake at night—like I do—wondering what really matters in life, and if this world will ever get back on track, look no further than the "Wharf Revolution" tag on the Blue Team's Trello board. Take hope, friends. The Blue Team is here.

Primary commit: https://github.com/appsembler/wharf/commit/bf4b77b
Merge commit: https://github.com/appsembler/wharf/commit/34faac4
Dev: @briandant

Terraform isolated network for each deployment.

This PR creates a dedicated network instead of using the default network when terraforming a deployment on GCP. This allows us to have staging+production environments in a single project while keeping them isolated.

This also sets the default OS to Ubuntu 16.04.

Primary commit: https://github.com/appsembler/wharf/commit/a4d2799
Merge commit: https://github.com/appsembler/wharf/commit/ef28853
Docs: https://github.com/appsembler/wharf/commit/8e62925
Dev: @mrgnr

Add badges with container/image/project/deployment counts

Sometimes you're looking at the Wharfboard and you're like, I love Wharf. I just love it. I want—no I need—to know how many images it's listing on this page. Well, your virtuous desire will now be honored. Thanks, @tomaszzielinski.

Merge commit: https://github.com/appsembler/wharf/commit/5686dee
Primary commit: https://github.com/appsembler/wharf/commit/aa87c2f0835ba0a74fabc674a1a417f153e7dcf7
Dev: @tomaszzielinski

Fixes

Fix failing restarts of expired user deployments

Primary commit: https://github.com/appsembler/wharf/commit/adf21f6
Dev: @tomaszzielinski

Ensure AUFS support on reboot.

Merge commit: https://github.com/appsembler/wharf/commit/f7cb845
Primary commit: https://github.com/appsembler/wharf/commit/6078f37
Dev: @mrgnr

GCE applies kernel updates on reboot, which can break AUFS support for Docker since it relies on an extra kernel module. This sets up a cron job that ensures the necessary package is up-to-date on boot.

Other / Misc

AFAIK, this really shouldn't be a part of this diff, but since the release manager doesn't know what he's doing, things get broken.

The Makefile started throwing errors during Brian's attempt to set up CICD, so he made this commit on develop. The whole thing was further confirmation: If you let Brian do DevOps stuff, you'll need to provision another dev or two for constant hand holding. Baby steps.

We made a change that was dependent upon this env var, but forgot to add it to the codeship.env file so some tests were failing.

As part of the 16.04 upgrade process, we made fresh staging servers. Terraform is objectively good. Morgan is objectively good.

Some more docs for our releases workflow.

Start a release branch

In:

-> % git checkout develop && git pull && git flow release start 4.3

Out:

Switched to a new branch 'release/v4.3'

Summary of actions:
- A new branch 'release/v4.3' was created, based on 'develop'
- You are now on branch 'release/v4.3'

Follow-up actions:
- Bump the version number now!
- Start committing last-minute fixes in preparing your release
- When done, run:

     git flow release finish '4.3'

Make a file that includes all the changes between this release branch and master

In:

-> % git log origin/master..release/v4.3 --pretty=oneline --abbrev-commit > releases/4.3.md

File:

0af0152 Remove -t from Makefile
ef8791b Merge pull request #155 from appsembler/morgan/xenial
34faac4 Merge pull request #141 from appsembler/briandant/model-organization-602
bf4b77b Split wharf models into seperate files
f6919d1 Merge pull request #149 from appsembler/briandant/rename-dashboard-621
ef28853 Merge pull request #147 from appsembler/morgan/terraform-networking
2f6cc17 Release 4.2.1 to isc_staging
99e6856 Deploy 4.2.1 to isc_production
adf21f6 [Bugfix] failing restarts of expired user deployments
81472c5 Upgrade to Ubuntu 16.04.
8e62925 Update terraform docs.
f7cb845 Merge pull request #151 from appsembler/morgan/aufs
6078f37 Ensure AUFS support on reboot.
75f656c Change the header name to "Appsembler Virtual Labs"
a4d2799 Terraform isolated network for each deployment.
2d821d5 Deploy 4.2 on staging/prod.
e73bdae Merge branch 'release/v4.2+2016.08.16' into develop
8b079b9 Add the DOCKER_REMOTE_API_VERSION to env.example
aa87c2f Merge pull request #145 from appsembler/tomasz/dashboard-counts
2c8c3b2 Remake staging servers.
7b66ef7 Update workflow docs
3090192 Merge pull request #144 from appsembler/briandant/real-staging-615
5686dee Add badges with container/image/project/deployment counts
dbab2cb Copy shell script instead of template
ce2c072 Add the appsembler staging cluster
f231b69 Remove the explicit declaration of Ubuntu codename.

Run a macro to add the links

The final release message will be in the GH interface, and they will shrink the links to just the first 6 characters of the SHA

Remove -t from Makefile 
https://github.com/appsembler/wharf/commit/0af0152 

Merge pull request #155 from appsembler/morgan/xenial 
https://github.com/appsembler/wharf/commit/ef8791b 

Merge pull request #141 from appsembler/briandant/model-organization-602 
https://github.com/appsembler/wharf/commit/34faac4 

Split wharf models into seperate files 
https://github.com/appsembler/wharf/commit/bf4b77b 

Merge pull request #149 from appsembler/briandant/rename-dashboard-621 
https://github.com/appsembler/wharf/commit/f6919d1 

Merge pull request #147 from appsembler/morgan/terraform-networking 
https://github.com/appsembler/wharf/commit/ef28853 

Organize the commits

At this point, I'm thinking about how I want to order the release notes, not considering the order of the commit history. These sections are "Improvements," "Fixes," and "Other." While not everything is of note, I'm trying to keep everything there to make sure I don't lose track of something. Add the GH username of the dev who made the fix.

This is also the time to start making notes. Some commits need them, others don't. You'll usually need an emoji, and often you'll need some snark.

See releases/4.3.md below

Deal with Trello \ PRs

The Trello board / PR list is not in great shape, so we need to do some work to improve that.

Current Trello board

When it comes time to start preparing a release, most of the cards will be in "Awaiting Deployment," "Code Review / UAT," or maybe "Doing" (but you know that it's close). All the cards associated with this release will need to be tagged properly and added to a "Release Card."

Filter for the "Releases" tag:

Releases Filtered

We need to make some improvements in this step. It takes too long. Some ideas:

It's important to start with the branch instead of Trello or the PRs because you have to know what's actually in the release—that's what the branch shows you.

  1. Make sure the devs make a good description in the PR. This makes the release notes easier to write
  2. Automate this to include the PR and the Trello card links
  3. Make sure that merge commits come from git-flow [feature|hotfix] finish to keep commits together? (Not sure if this will work, but we should try it)
  4. It's sometimes hard during this stage to understand what's happening with some of the commits and I need to go back to the Trello cards
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment