#release-engineering - April 2020

PePe Amengual
PePe Amengualover 6 years ago
noooooooooooo the thread about atlantis is gone!!!!!!!!
PePe Amengual
PePe Amengualover 6 years ago
the first thread…. wasn’t there an archive ?
PePe Amengual
PePe Amengualover 6 years ago
I found it….
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
Pierre Humberdroz
Pierre Humberdrozover 6 years ago
does someone here have a tool for a timeline ?

Currently we are using slack and a gitlab snippet as a log of when we updated certain components but I think it would be nice to have a tool that allows you to say we have updated this and just go back in time?

Also it should maybe be able to aggregate other sources like alert manager and bugsnag.
chonan tsai
chonan tsaiover 6 years ago
Hi there! I am trying to write scripts to reset database states so that some tests can be done. Are there any good tools for managing that?
chonan tsai
chonan tsaiover 6 years ago
Also trying to figure out if there are good tools for anonymizing data from prod. Thank you.
Zachary Loeber
Zachary Loeberover 6 years ago
Possibly liquibase or Flyway. I've only used Flyway before via Maven though. Its more involved than running a simple script though. The clean command would 'reset' things
Zachary Loeber
Zachary Loeberover 6 years ago
Data anonymizing is highly dependent upon your schema and so I'm thinking you are going to be doing manual scripting. Knowing nothing about your database there are a few tools out there worth taking a peek at, https://github.com/davedash/mysql-anonymous or http://sunitparekh.github.io/data-anonymization/ are a few
Pierre Humberdroz
Pierre Humberdrozover 6 years ago(edited)
does someone have a semver check regex handy that works in bash.?
chonan tsai
chonan tsaiover 6 years ago
I am trying to re-do one of my test environment to allow testing SMS and email. Rather than sending real SMS and email, any best practices for how to set this up. Should we mock them or are there 3rd party services we can use for this?
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
@Adam Watson is this something you have worked with? ☝️
Adam Watson
Adam Watsonover 6 years ago
@Adam Watson has joined the channel
Adam Watson
Adam Watsonover 6 years ago
I generally mock them for testing, for Twilio which we use there is also an option to use an API token earmarked for development for billing purposes.
Adam Watson
Adam Watsonover 6 years ago
We also keep dev/qa/staging/training accounts and have special phone numbers isolated to those environments
Adam Watson
Adam Watsonover 6 years ago
I'd also be interested if you come across third party services 🙂.
chonan tsai
chonan tsaiover 6 years ago
@Adam Watson Yes we are on Twilio as well. In general, we just have a prod and a non-prod acct. We don’t further differentiate like you have done. Any special advantage for doing that?
Adam Watson
Adam Watsonover 6 years ago
Mostly for end users, we do a lot with Flex and between QA, Training, and all the other teams it makes life easier.
Adam Watson
Adam Watsonover 6 years ago
Often staging different plugins for the UI, or various systems, or things like tearing a back office system down each night on a training space for call centers etc.
Adam Watson
Adam Watsonover 6 years ago
ICT/FAT/UAT... we have a lot of hoops to jump through. 😫
chonan tsai
chonan tsaiover 6 years ago
Ok that makes sense. Thank you for your input
btai
btaiover 6 years ago
dunno the best place to put this, but currently working on a release pipeline. for shell gurus out there, is there an easy way to dynamically parse like env vars into json config file i.e.
{
 "foo": "${BAR}",
 "asdf": "${ASDF}",
 "apple": "${PIE}",
}

Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
There’s a command called envsubst that ships with most Linux distros
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
It can handle exactly the example you provide above
grv
grvover 6 years ago
i second to it either envsubst or some places i do sed replacement
btai
btaiover 6 years ago
and the different json files can have any env variables?
Zachary Loeber
Zachary Loeberover 6 years ago(edited)
DEPLOYVARS='$service_endpoint_id:$group_name:$group_description:$keyvault_name:$ado_project_name:$ado_project_id'
envsubst "$DEPLOYVARS"< "${TEMPLATEFILE}" >$(basename ${TEMPLATEFILE}).out
Zachary Loeber
Zachary Loeberover 6 years ago
whoops 🙂
Zachary Loeber
Zachary Loeberover 6 years ago
well that is a snippet of how you might use it to selectively replace variables
Zachary Loeber
Zachary Loeberover 6 years ago
not super elegant or as fun as gomplate but it gets the job done.
btai
btaiover 6 years ago
wow this is the perfect tool 👌👌
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
After a while, you'll probably reach a point where envsubst is not enough
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
That's when you can use https://gomplate.ca/
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago(edited)
note that gomplate let's you load settings from files, SSM, http, and probably a dozen different places as well as use logic in the form of conditionals
PePe Amengual
PePe Amengualover 6 years ago
like parameter store ?
Zachary Loeber
Zachary Loeberover 6 years ago
Zachary Loeber
Zachary Loeberover 6 years ago
I'll go as far as to recommend skipping over envsubst and using something like gomplate to start with. That way you aren't converting template files later on to the tooling you end up eventually switching over to when you get sick of bash hacks (whether it ends up being gomplate or dockerize or anything else that is way more capable than envsubst).
Zachary Loeber
Zachary Loeberover 6 years ago
the double-whammy is that you are then also practicing the templating language that helm uses (with some of its own special functions)