RSS

This Week in Flynn

We made several improvements to the build workflow, adding proxy and root support to slugbuilder. A new command, flynn-host run will run jobs interactively, improving low-level debugging of a Flynn cluster.

Continuous Integration saw another round of improvements this week. Logs are now available from all instances and GitHub commits now link to the log stream.

We also deployed some fixes to underlying components, adding the latest security improvements to Docker image handling and upgrading to the final version of Go 1.4.

§ Changes

§ Enhancements

  • Added proxy support to slugbuilder (#542)
  • Slugbuilder optionally builds as root (#552)
  • Node.js buildpack now has a recent version of NPM (#583)
  • All instances on CI now retrieve logs (#582)
  • If containers fail to start, they are now deleted (#577)
  • Updated to Go 1.4 (#586)
  • Updated Docker image handling code for security fixes (#588)
  • Host state persistence is now tracked in BoltDB rather than JSON file (#581)
  • Added flynn-host run command for low-level debugging (#593)
  • GitHub commit status now includes a link to the CI log stream (#570)

§ Bugfixes

  • Fixed git error when running integration tests in the development VM (#571)
  • Fixed containerinit error handling (#593)
  • Fixed initialization bugs in pkg/exec (#593)
  • Fixed terminal control forwarding in flynn run (#593)
  • Fixed app links in the dashboard (#595)

§ What’s Next

We are focused on improving our test suite, documentation, and stability.

§ Stay in Touch

This Week in Flynn

We eliminated several races and panics in the continuous integration suite.

We converted the last rpcplus endpoint in the Flynn controller to HTTP. We will migrate all other rpcplus components to HTTP in the future.

§ Changes

§ Enhancements

  • Updated to Go 1.4rc2 (#550)
  • Added SO_REUSEPORT to discoverd and router to allow zero-downtime replacement (#541)
  • Converted controller’s StreamFormations to HTTP from rpcplus (#540)
  • Merged pkg/migrate into pkg/postgres (#556)
  • Moved some database helpers into pkg/postgres (#557)
  • Imported upstream pq package improvements (#560)
  • Added example generator and support packages to router API (#548)

§ Bugfixes

  • Blobstore now registers with discoverd when using the local filesystem adapter (#543)
  • PATH in Development Vagrantfile is now escaped properly (#553)
  • Repaired a broken pipe while downloading images (#529)
  • Calmed a panic after failing to connect to hosts from the controller scheduler (#562)
  • Ended several races in integration test helpers (#561)
  • Prevented timeouts when connecting to containers (#564)
  • Improved job type sorting in flynn ps (#566)

§ What’s Next

We are focused on improving our test suite, documentation, and stability.

§ Stay in Touch

Flynn Progress: Week Ending Dec. 1, 2014

Our test suite now covers every feature in the CLI! This will keep Flynn stable as we make future improvements. Integration testing has also improved and continues to be a major focus.

The user experience on Flynn CI continues to be refined with the addition of log streaming.

§ Changes

§ Enhancements

  • Integration tests are now run concurrently, improving speed by 50%! The average duration is now 7m30s. (#513)
  • Image unpacking is now done in a chroot, fixing several security issues. (#519)
  • flynn scale displays scaling events. (#520)
  • Flynn CI streams test logs while building. (#525)
  • Added many integration tests to cover all of the CLI features. (#501)

§ Bugfixes

  • The default IP address is now parsed correctly. (#508)
  • Private downloads from Docker Hub are authenticated correctly. (#511)
  • Fixed a race in TCP route setup. (#522)

§ What’s Next

We are focused on improving our test suite, documentation, and stability.

§ Stay in Touch

Flynn Progress: Week Ending Nov. 24, 2014

The Flynn web dashboard now ships by default as part of every cluster, whether you use the managed launcher or install on your own infrastructure. The web dashboard lets anyone deploy and scale GitHub apps on a running cluster without ever opening a terminal window.

We’ve started building Flynn every night, so all new installations get the previous night’s build.

Test coverage has also improved and continues to be a major focus.

§ Changes

§ Enhancements

  • Nightly builds are working. (#469)
  • Scheduler tests are now integration tests. (#186)
  • Pinkerton is now a package, the binary is no longer included in the Debian package. (#477)
  • Request example generator for the controller. (#473)
  • CONTROLLER_DOMAIN and DEFAULT_ROUTE_DOMAIN have been replaced with CLUSTER_DOMAIN. (#266)
  • The dashboard is now included by default in bootstrap, making it available in all Flynn installations. Documentation around this is forthcoming. (#266)
  • Buildpacks have been updated. The default OpenJDK is now version 8. (#494)
  • Jobs may be run in the host network namespace, and discoverd/etcd now take advantage of this. (#495)
  • Test durations are reported by Flynn CI. (#443)
  • flynn run handles complex arguments better. (#502)
  • flynn inspect includes the entrypoint and job command. (#502)

§ Bugfixes

  • Jobs that are stopped before they have fully started are now stopped correctly. (#467)
  • IPv6 nameservers are filtered out of the resolv.conf used in containers. (#474)
  • flynn-host ps no longer prints incorrect timestamps. (#488)
  • Environment variables are exposed to buildpacks properly during builds. (#483)

§ What’s Next

We are focused on improving our test suite, documentation, and stability.

§ Stay in Touch

Flynn Progress: Week Ending Nov. 17, 2014

We smoothed out many rough edges in Flynn last week by removing some upstream dependencies. You’ll see improvements to our security and stability, along with better support for GitHub releases.

§ Changes

§ Enhancements

  • We updated to Go 1.4rc1 to improve reliability and security. This may also improve performance as development continues.
  • The router’s go-vhost package dependency was replaced with the new crypto/tls functionality in Go 1.4.
  • All Go subrepo paths have been updated. (#416)
  • Vagrant VMs now use IPs from RFC 5737 for host communication to work around DNS rebinding protection and avoid collisions. (#438)
  • We added a version command to flynn-host that will show the release version or git revision that it was built from. (#308)
  • We added a Makefile, so the make command should be used instead of calling tup directly. The make clean target replaces the clean shell alias.
  • Releases are now tagged on GitHub.
  • The flynn-release download command was moved to the flynn-host binary, and the flynn-release binary was removed from binary packages. (#446)
  • Flynn CI now tests all supported buildpacks. (#417)
  • Bootstrap now supports waiting for TCP services.
  • The flynn-bootstrap command was renamed to flynn-host bootstrap and the flynn-bootstrap binary was removed. (#449)

§ Bugfixes

  • Releases invalidate the correct CloudFront distribution. (#451)
  • We deleted our unmaintained Docker backend for the host daemon, closing out four Flynn issues. Support for Docker images remains a key feature of Flynn. (#430)

§ What’s Next

We expect to have nightly builds available shortly. We are focused on improving our test suite, documentation, and stability.

§ Stay in Touch

 RSS



Mailing List