Just little snippets of things which might be useful later, but are not really worthy of a blog post.
Fabio
The urlprefix- in the tags for a service in Consul is a literal constant.
e.g. urlprefix-/ -> matches everything
Traefik
When you specify a Traefik constraint as --consulcatalog.constraints='tag==service', the tag it looks for in Consul is traefik.tags=service, NOT service.
Packer
EC2 (and GCP) instances run scripts on machine start, but Packer won’t wait for these to complete before running things, which can break apt. Add this as a provisioner to wait for AWS Cloud-Init to finish before your scripts which need apt:
{
"type":"shell",
"only": [ "amazon-ebs" ],
"inline": [ "/usr/bin/cloud-init status --wait" ]
}
Vagrant
Override the default smb share in hyper-v with the username and password to use, pulled from environment:
config.vm.synced_folder ".", "/vagrant", smb_username: ENV['VAGRANT_SMB_USER'], smb_password: ENV['VAGRANT_SMB_PASS']
Jenkins
Adding build parameters e.g. commit_hash will show up on the params.commit_hash in a pipeline, but will also get written as an environment variable, maintaining case, e.g. env.commit_hash or $commit_hash.
If you export in a different case, the original name is preserved, with the new value e.g. env.COMMIT_HASH = 'new' will actually be available as $commit_hash.
If you try to unset the original casing first, then set on the casing you want, it removes both e.g.
env.commit_hash = ""
env.COMMIT_HASH = "yes?"
sh "env | grep -i commit_hash | wc -l" // 0.