degica / kaiser

Commandline Gem that allows you to work with web apps better
https://tech.degica.com/kaiser/
MIT License
12 stars 1 forks source link

Kaiserfile syntax for env vars that the kaiserfile uses #36

Open davidsiaw opened 4 years ago

davidsiaw commented 4 years ago

This seems to be a very common thing in our Kaiserfiles:

github_webhook_secret = ENV['GITHUB_WEBHOOK_SECRET'] || 'aaaaaa'
twilio_webhook_secret = ENV['TWILIO_WEBHOOK_SECRET'] || 'abcdef'
twilio_webhook_url = ENV['TWILIO_WEBHOOK_URL'] || 'https://dff80da3.ngrok.io/api/v1/webhook/twilio/sms'
ping_channel = ENV['GITHUB_PING_CHANNEL'] || 'dsiawlab'

app_params "
  -e RAILS_ENV='#{rails_env}'
  -e GITHUB_ORGANIZATION=#{github_org}
  -e GITHUB_TOKEN=#{github_token}
  -e SLACK_TOKEN=#{slack_token}
  -e GITHUB_WEBHOOK_SECRET=#{github_webhook_secret}
  -e TWILIO_WEBHOOK_SECRET=#{twilio_webhook_secret}
  -e TWILIO_WEBHOOK_URL=#{twilio_webhook_url}

We can possibly start abstracting it into a new syntax for kaiserfiles such as:

input_var :GITHUB_WEBHOOK_SECRET, default: 'aaaaaa'

Also ,typically we read Kaiser values like this:

app_params "
  -e CHROME_HOSTNAME=<%= @config[:shared_names][:chrome] %>

Also providing values can be done like this:

input_var :CHROME_HOSTNAME, default: ->{ @config[:shared_names][:chrome] }

This will add additional params to our docker run command which helps make writing Kaiserfiles easier.