{"id":13785257,"url":"https://github.com/kelseyhightower/hashiconf-eu-2016","last_synced_at":"2025-10-05T16:36:41.242Z","repository":{"id":65979041,"uuid":"60951138","full_name":"kelseyhightower/hashiconf-eu-2016","owner":"kelseyhightower","description":"HashiConf EU 2016 ","archived":false,"fork":false,"pushed_at":"2016-09-08T14:53:59.000Z","size":242,"stargazers_count":106,"open_issues_count":1,"forks_count":20,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-08-03T19:09:20.211Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kelseyhightower.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-06-12T06:36:35.000Z","updated_at":"2024-01-15T10:27:54.000Z","dependencies_parsed_at":"2023-02-19T18:15:54.143Z","dependency_job_id":null,"html_url":"https://github.com/kelseyhightower/hashiconf-eu-2016","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelseyhightower%2Fhashiconf-eu-2016","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelseyhightower%2Fhashiconf-eu-2016/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelseyhightower%2Fhashiconf-eu-2016/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelseyhightower%2Fhashiconf-eu-2016/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kelseyhightower","download_url":"https://codeload.github.com/kelseyhightower/hashiconf-eu-2016/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224193137,"owners_count":17271260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T19:00:58.535Z","updated_at":"2025-10-05T16:36:41.118Z","avatar_url":"https://github.com/kelseyhightower.png","language":"Shell","funding_links":[],"categories":["Tutorials / Examples / Demos","Tutorials"],"sub_categories":[],"readme":"# HashiConf EU 2016\n\n## Prerequisites\n\n[Bootstrap the HashiStack on Google Compute Engine](hashistack.md)\n\nLogin into the controller node and checkout this repository.\n\n```\ngcloud compute ssh ns-1\n```\n\n```\ngit clone https://github.com/kelseyhightower/hashiconf-eu-2016.git\n```\n\n```\ncd hashiconf-eu-2016\n```\n\n### Create the Hashiapp Policy and Token\n\n```\nvault policy-write hashiapp vault/hashiapp-policy.hcl\n```\n\n```\nvault token-create \\\n  -policy=\"hashiapp\" \\\n  -display-name=\"hashiapp\"\n```\n\nEdit `jobs/hashiapp.nomad` job\n\n```\nenv {\n  VAULT_TOKEN = \"HASHIAPP_TOKEN\"\n  VAULT_ADDR = \"http://vault.service.consul:8200\"\n  HASHIAPP_DB_HOST = \"CLOUD_SQL:3306\"\n}\n```\n\n### Create the Hashiapp Secret\n\n```\nvault read mysql/creds/hashiapp\n```\n\n```\nvault write secret/hashiapp jwtsecret=secret\n```\n\n## Service Discovery with Consul\n\n```\nnomad plan jobs/consul.nomad\n```\n\n```\nnomad run jobs/consul.nomad\n```\n\n```\nnomad status consul\n```\n\n```\nconsul join nc-1 nc-2 nc-3 nc-4 nc-5\n```\n\n```\nconsul members\n```\n\n## Hashiapp Job\n\nSubmit the hashiapp service job.\n\n```\nnomad run jobs/hashiapp.nomad\n```\n\n```\nnomad status hashiapp\n```\n\n#### Viewing Logs\n\n```\nnomad fs -job hashiapp alloc/logs/hashiapp.stderr.0\nnomad fs -job hashiapp alloc/logs/hashiapp.stdout.0\n```\n\n## Load Balancing with Fabio\n\nrun curl on a private intance\n\n```\nnomad run jobs/fabio.nomad\n```\n\n```\nnomad status fabio\n```\n\n#### Send Traffic\n\n```\ncurl -H \"Host: hashiapp.com\" http://\u003cloadbalancer-ip\u003e:9999/version\n```\n\n```\nwhile true; do curl -H \"Host: hashiapp.com\" http://\u003cloadbalancer-ip\u003e:9999/version; sleep 1; done\n```\n\n### Scaling Up\n\nEdit `jobs/hashiapp.nomad`\n\n```\ncount = 5\n```\n\n```\nnomad plan jobs/hashiapp.nomad\n```\n\n```\nnomad run jobs/hashiapp.nomad\n```\n\n### Rolling Upgrades\n\nEdit `jobs/hashiapp.nomad`\n\n```\nsource = \"https://storage.googleapis.com/hashistack/hashiapp/v2.0.0/hashiapp\"\nchecksum = \"sha256:372ddaeb9ac97a2eecd7dd3307bd32f8b0c188d47239f7ef6790609f9a157ca4\"\n```\n\n```\nnomad plan jobs/hashiapp.nomad\n```\n\n```\nnomad run jobs/hashiapp.nomad\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkelseyhightower%2Fhashiconf-eu-2016","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkelseyhightower%2Fhashiconf-eu-2016","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkelseyhightower%2Fhashiconf-eu-2016/lists"}