Skip to content

Instantly share code, notes, and snippets.

Jeff Schroeder SEJeff

Block or report user

Report or block SEJeff

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@SEJeff
SEJeff / kubectl_cheatsheet.md
Created Feb 13, 2018
My personal list of kubectl tips and tricks
View kubectl_cheatsheet.md

Viewing All Node Labels

Shows you a list of nodes and their associated labels + values in the cluster.

kubectl get nodes -o go-template='{{range .items }}{{.metadata.name}}{{"\n-----------\n"}}{{range $key, $value := .metadata.labels }}{{$key}}: {{$value}}{{"\n"}}{{end}}{{"\n"}}{{end}}'

Viewing All Node Annotations

Shows you a list of nodes and their associated annotations + values in the cluster.

@SEJeff
SEJeff / KUBECON.md
Last active Dec 10, 2017
List of things to checkout post-kubecon 2017
View KUBECON.md
  • 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 Apr 3, 2017
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)
View 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 Apr 11, 2019
Print every python import for debugging import issues
View print_imports.py
# Courtesy of https://github.com/wimglenn
import sys
try:
import builtins
except ImportError:
# py2
import __builtin__ as builtins
@SEJeff
SEJeff / aurora.spec
Created Aug 6, 2015
File for building Aurora on EL7 based distributions
View aurora.spec
%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)
View AuroraStuff.md

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.

View hello_world.aurora
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 Nov 7, 2016
aurora systemd config
View aurora-scheduler.service
# /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 Aug 29, 2015
Python 2.6 bug with IOError in a context manager
View demonstrate_py26_bug.py
#!/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 Aug 15, 2014
Hexdigest on python 2.6 and 2.7
View hashlib_test.py
############################################################################################
>>> 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()
You can’t perform that action at this time.