Skip to content

Instantly share code, notes, and snippets.

View SEJeff's full-sized avatar

Jeff Schroeder SEJeff

View GitHub Profile
@SEJeff
SEJeff / KUBECON.md
Last active December 10, 2017 03:57
List of things to checkout post-kubecon 2017
  • Bloomberg's powerfulseal is a really nice interactive or automated k8s chaos monkey, which lets you do sensible wargaming
  • Bitnami released the new kube sandbox which spins up a single node "production"-like cluster vs minikube
  • Buoyant released Conduit a more "kube-native" and simpler service mesh than istio. Worth investigating!
  • Linuxkit has kubernetes os images. Here is an indepth article about it.
  • Fluentbit is a much lighter weight version of fluend written in C originally for resource constrained systems.
  • kata containers are VMs with the speed of Containers
  • Having a subscription to Grafana Labs entitles us to Grafana Cloud Enterprise, their onprem
@SEJeff
SEJeff / 10-kubeadm.conf
Created April 3, 2017 19:00
Making kubeadm 1.6.0 work on RHEL7 or any EL7 derivative (CentOS, Scientific Linux, etc) put file in (/etc/systemd/system/kubelet.service.d/10-kubeadm.conf)
# Work around these bugs:
# https://github.com/kubernetes/kubeadm/issues/212
# https://github.com/kubernetes/kubernetes/issues/43805
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--kubeconfig=/etc/kubernetes/kubelet.conf --require-kubeconfig=true --pod-manifest-path=/etc/kubernetes/manifests --cgroup-driver=systemd"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
#Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
ExecStart=
@SEJeff
SEJeff / print_imports.py
Last active April 11, 2019 12:33
Print every python import for debugging import issues
# Courtesy of https://github.com/wimglenn
import sys
try:
import builtins
except ImportError:
# py2
import __builtin__ as builtins
@SEJeff
SEJeff / aurora.spec
Created August 6, 2015 19:16
File for building Aurora on EL7 based distributions
%define install_directory %{_datadir}/aurora
Name: aurora
Version: 0.9.0
Release: 1%{?dist}.rc0
Summary: A framework for scheduling long-running services against Apache Mesos
License: ASL 2.0
URL: http://%{name}.apache.org/
Source0: apache-%{name}-%{version}.tar.gz
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)

The mustache gotcha

When using “bound” objects in an .aurora file it is an absolute that you do not have spaces in the “mustaches”.

Examples:

  • Bad: {{ profile.my_var }}
  • Good: {{profile.my_var}}

Mesos Slave Constraints

When scheduling a task on aurora with Production=True, the 0.7-incubating scheduler will set a default constraint preventing more than one instance of the task on the same rack.

@SEJeff
SEJeff / hello_world.aurora
Created May 8, 2015 17:28
Test aurora job
version = 1
# copy hello_world.py into the local sandbox
install = Process(
name = 'fetch_package',
cmdline = 'curl http://chit-jsl1/static/hello_world.py > hello_world.py && echo {version} && chmod +x hello_world.py'.format(version=version),
)
# run the script
hello_world = Process(
@SEJeff
SEJeff / aurora-scheduler.service
Last active November 7, 2016 01:35
aurora systemd config
# /etc/systemd/system/aurora-scheduler.service
[Unit]
Description=The Aurora mesos job scheduler
After=default.target
ConditionPathExists=/etc/sysconfig/aurora-scheduler
[Service]
EnvironmentFile=/etc/sysconfig/aurora-scheduler
ExecStart=/usr/bin/aurora-scheduler \
@SEJeff
SEJeff / demonstrate_py26_bug.py
Last active August 29, 2015 14:12
Python 2.6 bug with IOError in a context manager
#!/usr/bin/env python
from __future__ import print_function
class Context(object):
def __enter__(self):
yield
def __exit__(self, type, value, tracebck):
print("type: {0}".format(str(type(value))))
print("repr: {0}".format(repr(value)))
print("istuple: {0}, isioerror: {1}".format(isinstance(value, tuple), isinstance(value, IOError)))
@SEJeff
SEJeff / hashlib_test.py
Created August 15, 2014 09:01
Hexdigest on python 2.6 and 2.7
############################################################################################
>>> sys.version
'2.7.3 (default, Aug 9 2012, 17:23:57) \n[GCC 4.7.1 20120720 (Red Hat 4.7.1-5)]'
>>> for algo in hashlib.algorithms:
... print '{algo} has hexdigest()'.format(instance=getattr(hashlib, algo)(), algo=algo)
...
md5 has hexdigest()
sha1 has hexdigest()
sha224 has hexdigest()
@SEJeff
SEJeff / init.sls
Last active August 29, 2015 14:04
States for reproducing salt bug #14497. They are all under services/httpd/ in the states tree
{% from "services/httpd/map.jinja" import httpd with context %}
{% set ltsv_conf = httpd.modconfdir + "/00-ltsv-log-format.conf" %}
httpd:
pkg:
- installed
- name: {{ httpd.pkg }}
service:
- running
- name: {{ httpd.service }}