Skip to content

Instantly share code, notes, and snippets.

View rrichards's full-sized avatar
💭
Rocking the CLI

Ryan Richards rrichards

💭
Rocking the CLI
  • R3 Technologies, Inc.
  • Oklahoma City, OK
  • X @rrichards
View GitHub Profile
@rrichards
rrichards / kubedf
Created May 28, 2019 21:41 — forked from redmcg/kubedf
Bash script to show k8s PVC usage
#!/usr/bin/env bash
KUBEAPI=127.0.0.1:8001/api/v1/nodes
function getNodes() {
curl -s $KUBEAPI | jq '.items[].metadata.name' | sed 's/^"\|"$//g'
}
function getPVCs() {
jq -s '[flatten | .[].pods[].volume[]? | select(has("pvcRef")) | '\
@rrichards
rrichards / gcrgc.sh
Created May 28, 2019 15:50 — forked from ahmetb/gcrgc.sh
Script to clean up Google Container Registry images pushed before a particular date
#!/bin/bash
# Copyright © 2017 Google Inc.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
Completion
install bash-completion package
kubeadm completion bash|tee /etc/bash_completion.d/kubeadm
kubectl completion bash|tee /etc/bash_completion.d/kubectl
Bootstrapping the master node "Kubernetes control panel" :
kubeadm init --apiserver-advertise-address=192.168.205.10 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.6.2
## for calico default is 192.168.0.0/16 for flannel it is 10.244.0.0/16, not sure what needs to be done to vagrant for ips not clash
@rrichards
rrichards / setup-kubernetes-ubuntu-16.md
Created May 28, 2019 15:47 — forked from ruanbekker/setup-kubernetes-ubuntu-16.md
Install a 3 Node Kubernetes Cluster on Ubuntu 16

Master: Dependencies

apt update && apt upgrade -y
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
@rrichards
rrichards / make_policies.sh
Created May 28, 2019 15:47 — forked from tallclair/make_policies.sh
Generate PodSecurityPolicies for testing
#!/bin/bash
set -o nounset
set -o pipefail
set -o errexit
if [[ $# < 3 ]]; then
>&2 echo "USAGE: $0 total available useable"
exit 1
fi
@rrichards
rrichards / dynamic_crds.go
Created May 28, 2019 15:46 — forked from tallclair/dynamic_crds.go
Example of using CRDs with the dynamic go client
package main
import (
"fmt"
"log"
"os/user"
"path/filepath"
"strings"
apixv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
name: nginx-ingress-controller
rules:
- apiGroups:
- ""
resources:
- configmaps
- pods
@rrichards
rrichards / nginx-ingress-controller-rbac.md
Created May 28, 2019 15:44 — forked from mgoodness/nginx-ingress-controller-rbac.md
nginx-ingress-controller RBAC setup for K8s v1.8+ (tested on minikube)
kubectl -n kube-system create sa nginx-ingress-controller
kubectl apply -f https://gist.github.com/mgoodness/684d91e5812d383f6cc48d420bdad5b5/raw/8ef6d0623e9273aa93f22ab2b5d5cbb40502a5aa/nginx-ingress-controller-clusterrole.yaml
kubectl -n kube-system apply -f https://gist.github.com/mgoodness/4c5ddf4cc340a7c504a01a8f9ff422cf/raw/421d2032e4a36577739b60c0e673e889c1d1c6e2/nginx-ingress-controller-role.yaml
kubectl create clusterrolebinding nginx-ingress-controller --clusterrole nginx-ingress-controller --serviceaccount=kube-system:nginx-ingress-controller
kubectl -n kube-system create rolebinding nginx-ingress-controller --role nginx-ingress-controller --serviceaccount=kube-system:nginx-ingress-controller
kubectl -n kube-system patch rc/nginx-ingress-controller -p '{"spec": {"template": {"spec": {"serviceAccountName": "nginx-ingress-controller"}}}}'
kubectl -n kube-system delete po -l app=nginx-ingress-controller
k8s-api() {
if [[ "$1" == "1.9" ]]; then
url="https://v1-9.docs.kubernetes.io/docs/api-reference/v1.9/"
else
url="https://kubernetes.io/docs/reference/generated/kubernetes-api/v$1/"
fi
open ${url}
}
find-replace() {
for m in (ag --files-with-matches -- $1); do
sed -i '' -e "s/$1/$2/g" $m
done
}