Skip to content

Instantly share code, notes, and snippets.

View ketzacoatl's full-sized avatar

Ketzacoatl ketzacoatl

View GitHub Profile
@ketzacoatl
ketzacoatl / consul-template-git.sls
Last active August 29, 2015 14:26
salt formula to build/install consul-template from source
{%- set repo_root = '/root/consul-template' %}
{%- set revision = 'v0.10.0' %}
include:
- golang
consul-template:
git.latest:
- name: https://github.com/hashicorp/consul-template
@ketzacoatl
ketzacoatl / only-one-active-instance.py
Created September 13, 2015 16:09
Proof of Concept - Docker service orchestration via python consul-lock
import sys
from time import sleep
import consul
import consul_lock
from docker import Client
'''
This is a PoC which uses consul's locking mechanism to ensure only
one instance of the named docker container is running. Requires:
@ketzacoatl
ketzacoatl / README.md
Last active July 3, 2016 17:44
Minimal repro for failures seen with saltutil.sync_all in provisioning with Packer

What..

This is a minimal reproduction of an issue I am seeing when provisioning hosts with Saltstack and Packer. More specifically, running salt-call --local saltutil.sync_all in a script uploaded by packer does not function as expected (no files/modules are sync'd).

Note that saltutil.sync_all works fine on the new host when run manually from the shell directly.

How to use..

@ketzacoatl
ketzacoatl / README.md
Last active August 13, 2016 13:41
Shell Snippets, Tips, and Tricks

Useful Snippets for a few Random Ops Tasks

@ketzacoatl
ketzacoatl / Main.hs
Last active August 31, 2016 05:19
is consul online?
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Network.Consul (getSelf, ConsulClient(..), initializeConsulClient, listKeys)
import qualified Network.Consul.Internal as I
client = initializeConsulClient "localhost" 8500 Nothing
@ketzacoatl
ketzacoatl / crash.log
Created November 19, 2016 16:08
Terraform Crash Log - Nomad Provider/Resource
2016/11/19 09:49:12 [INFO] Terraform version: 0.8.0 dev 283d49f12fe203a2cd2ad23acec046f72f7842de+CHANGES
2016/11/19 09:49:12 [INFO] CLI args: []string{"/home/user/bin/terraform-v0.8.0-dev", "apply"}
2016/11/19 09:49:12 [DEBUG] Detected home directory from env var: /home/user
2016/11/19 09:49:12 [DEBUG] Detected home directory from env var: /home/user
2016/11/19 09:49:12 [DEBUG] Attempting to open CLI config file: /home/user/.terraformrc
2016/11/19 09:49:12 [DEBUG] File doesn't exist, but doesn't need to. Ignoring.
2016/11/19 09:49:12 [DEBUG] Detected home directory from env var: /home/user
2016/11/19 09:49:12 [TRACE] Preserving existing state lineage "a56754c9-aed5-4dce-92f8-921e3c1de105"
2016/11/19 09:49:12 [TRACE] Preserving existing state lineage "a56754c9-aed5-4dce-92f8-921e3c1de105"
2016/11/19 09:49:12 [TRACE] Graph after step *terraform.ConfigTransformerOld:
@ketzacoatl
ketzacoatl / keybase.md
Created March 31, 2017 15:33
keybase proof

Keybase proof

I hereby claim:

  • I am ketzacoatl on github.
  • I am ketzacoatl (https://keybase.io/ketzacoatl) on keybase.
  • I have a public key ASABHBuq9eKf_Tg1I5nNIxbqYyoqLkQixEdaZ1v_cOSNcAo

To claim this, I am signing this object:

@ketzacoatl
ketzacoatl / config.yaml
Created September 18, 2017 15:51
Prometheus on Kubernetes, based on deployments (no operator)
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus
namespace: ops
data:
prometheus.yml: |
global:
scrape_interval: 30s
scrape_timeout: 30s
@ketzacoatl
ketzacoatl / deployment.yml
Created September 18, 2017 17:04
Grafana on Kubernetes, based on deployments (no operator)
# Grafana deployment
#
# TODO: Auto-import data sources and dashboards. See for example:
# https://raw.githubusercontent.com/giantswarm/kubernetes-prometheus/master/manifests-all.yaml
#
# After bringing up:
# * add datasource: prometheus http://prometheus
# * import dashboard: https://grafana.net/dashboards/315
#
apiVersion: extensions/v1beta1
locals {
# we have to fixup the master username before we use it, the AWS API will error out otherwise
# RDS expects the username to be without hyphens and 16 characters at max. 'rdsadmin' is also
# a forbidden username, though we don't validate that here.
db_master_user_unsanitized = "${var.app_db_master_user}"
# truncate to 16 characters, but deal with the fact that substr() will error out if you ask
# for more characters than are in the string
default_master_user_max_length = "16"