#release-engineering (2018-08)

jenkins_ci All things CI/CD. Specific emphasis on Codefresh and CodeBuild with CodePipeline.

CI/CD Discussions

Archive: https://archive.sweetops.com/release-engineering/

2018-08-19

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)


but kinda bothers me that chart version would rev with appVersion (they don’t have to match of course).

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

@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) avatar
Erik Osterman (Cloud Posse)

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) avatar
Erik Osterman (Cloud Posse)

that said, we’re investing now in a monochart.

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
[incubator/monochart] Add new chart by alebabai · Pull Request #155 · cloudposse/charts

what add monochart (moved from helm-chart-scaffolding) references #5 #6 #8 #9

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

this is one chart to rule them all.

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

it’s still a WIP with lots of comments. @alebabai is working on it.

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

The idea is to get out of the business of writing charts and just defining values.yaml

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

…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) avatar
Erik Osterman (Cloud Posse)

Plus, the monochart is composable, so you can create a service with multiple components just by creating an umbrella chart

alebabai avatar
alebabai
06:03:46 PM

@alebabai has joined the channel

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

@michal.matyjek any recommendations for alternatives to “bats”?

michal.matyjek avatar
michal.matyjek

nothing comes to mind, but looks like you are picking bats-core

michal.matyjek avatar
michal.matyjek

?

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

haha

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

yea - just needed to move forward to something. still in the prototyping phase. it can be replaced with something else.

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

seems like it’s no longer maintained

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
sstephenson/bats

bats - Bash Automated Testing System

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

though looks like bats-core is maintained

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
bats-core/bats-core

bats-core - Bash Automated Testing System

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Travis is using bats

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
travis-ci/terraform-config

terraform-config - Terraform bits and bytes

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

@Sebastian Nemeth heads up, i’ve spent some time this weekend working on a prototype for testing #geodesic

Sebastian Nemeth avatar
Sebastian Nemeth
06:50:31 PM

@Sebastian Nemeth has joined the channel

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Submitted some PRs against geodesic to make it easier

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

For now, I’m going to be using Codefresh because it’s easier to iterate than using codebuild/codepipeline

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

as it relates to infrastructure, I see it boils down to a few different use-cases

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
  1. testing terraform modules (including terraform-root-modules)
Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
  1. testing helm/helmfiles
Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
  1. testing account-level infrastructure
Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

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) avatar
Erik Osterman (Cloud Posse)

for this reason, I am leaning towards using bats (bats-core) - or a tool like it

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

bats-core feels very lightweight, which I like.

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

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.

2018-08-18

michal.matyjek avatar
michal.matyjek

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 avatar
michal.matyjek

(this is loosely related to the PR above)

2018-08-17

antonbabenko avatar
antonbabenko
10:36:34 AM

@antonbabenko has joined the channel

2018-08-16

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
Promote Helm Charts and Docker Images Across Repositories by goruha · Pull Request #85 · cloudposse/build-harness

What Use helm package to change version and app Version of chart Use convention that default image tag is based on app Version Create promote targets that allow to promote chat to required versio…

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

This adds the ability to promote images and charts between repositories

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

We suggest adopting this as your production strategy

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

There are some minor breaking changes which @Igor Rodionov will document

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

(related to renamed ENVs)

Max Moon avatar
Max Moon

2018-08-09

dat.le avatar
dat.le
07:01:48 AM

@dat.le has joined the channel

2018-08-08

Michael Pereira avatar
Michael Pereira
03:31:51 PM

@Michael Pereira has joined the channel

Michael Pereira avatar
Michael Pereira

@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 avatar
Michael Pereira

so it benefits from the existing shellcheck rules

:--1:1

2018-08-05

jylee avatar
jylee
04:28:41 PM

@jylee has joined the channel

2018-08-01

Phil avatar
Phil
08:13:26 AM

@Phil has joined the channel

my-janala avatar
my-janala
02:23:57 PM

@my-janala has joined the channel

Ziad Hilal avatar
Ziad Hilal
05:34:48 PM

@Ziad Hilal has joined the channel

    keyboard_arrow_up