#release-engineering - August 2018

August 2018
Phil
Philover 8 years ago
@Phil has joined the channel
my-janala
my-janalaover 8 years ago
@my-janala has joined the channel
Ziad Hilal
Ziad Hilalover 8 years ago
@Ziad Hilal has joined the channel
jylee
jyleeabout 8 years ago
@jylee has joined the channel
Michael Pereira
Michael Pereiraabout 8 years ago
@Michael Pereira has joined the channel
Michael Pereira
Michael Pereiraabout 8 years ago
@Michal Matyjek +1 for hadolint as I believe it's based on the excellent shellcheck, which makes sense since Dockerfile are mostly just a collection of shell commands
Michael Pereira
Michael Pereiraabout 8 years ago
so it benefits from the existing shellcheck rules
dat.le
dat.leabout 8 years ago
@dat.le has joined the channel
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
This adds the ability to promote images and charts between repositories
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
We suggest adopting this as your production strategy
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
There are some minor breaking changes which @Igor Rodionov will document
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
(related to renamed ENVs)
Max Moon
Max Moonabout 8 years ago
👍️
antonbabenko
antonbabenkoabout 8 years ago
@antonbabenko has joined the channel
Michal Matyjek
Michal Matyjekabout 8 years ago
On this topic - maybe it's my misunderstanding of helm? but kinda bothers me that chart version would rev with appVersion (they don't have to match of course). Or is it OK to keep these decoupled in say, dev, and only revision chart version on promoting to staging/production? Don't use appVersion in charts at all? What's the right strategy?
Michal Matyjek
Michal Matyjekabout 8 years ago
(this is loosely related to the PR above)
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago

but kinda bothers me that chart version would rev with appVersion (they don’t have to match of course).
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
@Michal Matyjek this strategy is designed for repos where we cotenant the chart with the app itself. if the chart is not hosted in app repo, then it’s a much more difficult problem to solve.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
I don’t see the benefit of treating an app as a “monorepo” just because it also contains a chart. that is, treating the “chart” as one app, and the service itself as another “app”. If the chart and app are in the same repo, then they are the same version IMO.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
that said, we’re investing now in a monochart.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
this is one chart to rule them all.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
it’s still a WIP with lots of comments. @alebabai is working on it.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
The idea is to get out of the business of writing charts and just defining values.yaml
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
…to stop allowing every service to be a snowflake and instead take the Heroku approach where you write a service that conforms to certain principals and then the monochart just works.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
Plus, the monochart is composable, so you can create a service with multiple components just by creating an umbrella chart
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
@Michal Matyjek any recommendations for alternatives to “bats”?
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
seems like it’s no longer maintained
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
though looks like bats-core is maintained
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
Travis is using bats 😃
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago(edited)
@Sebastian Nemeth heads up, i’ve spent some time this weekend working on a prototype for testing #geodesic
Sebastian Nemeth
Sebastian Nemethabout 8 years ago
@Sebastian Nemeth has joined the channel
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
Submitted some PRs against geodesic to make it easier
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
For now, I’m going to be using Codefresh because it’s easier to iterate than using codebuild/codepipeline
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
as it relates to infrastructure, I see it boils down to a few different use-cases
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago(edited)
1. testing terraform modules (including terraform-root-modules)
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
2. testing helm/helmfiles
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
3. testing account-level infrastructure
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
for our purposes, I’ve ruled out atlantis and test kitchen, at least at this phase. I want something that lets us test more holistically, since what we need to test is the integration of lots of systems across languages, tools, and binaries.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago(edited)
for this reason, I am leaning towards using bats (bats-core) - or a tool like it
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
bats-core feels very lightweight, which I like.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)about 8 years ago
bash as a “top most level” language for integration also feels right. it doesn’t preclude us using other purpose-built testing frameworks for individual languages or apps.