Skip to content

Instantly share code, notes, and snippets.

for i in $(kubectl get namespaces -o custom-columns=":metadata.name" --no-headers)
do
echo "------ $i"
kubectl get -n $i configmaps --no-headers > /dev/null | wc -l
done
@dkeightley
dkeightley / clean-monitoring-v1.sh
Created April 1, 2021 00:25
clean-monitoring-v1
for clusterId in $(kubectl get clusters.management.cattle.io -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}');
do
# empty recipients for cluster alert groups
for clusterAlertGroup in $(kubectl -n $clusterId get clusteralertgroups -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}');
do
kubectl -n $clusterId patch clusteralertgroup $clusterAlertGroup --type merge --patch '{"spec": {"recipients": []}}'
done
# disable cluster monitoring
kubectl patch clusters.management.cattle.io $clusterId --type merge --patch '{"spec": {"enableClusterMonitoring": false}}'
for projectId in $(kubectl -n $clusterId get projects.management.cattle.io -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}')
@dkeightley
dkeightley / rke2-userdata.sh
Last active October 19, 2021 08:34
Single node RKE2 cluster userdata
#!/bin/sh
PUBLIC_IP=$(curl ifconfig.io)
# export INSTALL_RKE2_VERSION="v1.20.5+rke2r1"
curl -sfL https://get.rke2.io | sh -
mkdir -p /etc/rancher/rke2
cat > /etc/rancher/rke2/config.yaml <<EOF
write-kubeconfig-mode: "0640"
@dkeightley
dkeightley / k3s-rancher-userdata.sh
Last active June 3, 2022 04:47
k3s-rancher-userdata
#!/bin/sh
PUBLIC_IP=$(curl ifconfig.io)
echo "Installing K3S"
# export INSTALL_K3S_VERSION="v1.19.5+k3s2"
curl -sfL https://get.k3s.io | sh -s - --tls-san ${PUBLIC_IP}
echo "Downlading cert-manager CRDs"
wget -q -P /var/lib/rancher/k3s/server/manifests/ https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.crds.yaml
@dkeightley
dkeightley / object-count-size.md
Last active July 27, 2024 06:00
etcd object counts and sizes

Exec into the etcd container

RKE1

docker exec -it etcd sh

RKE2

@dkeightley
dkeightley / prometheus-migrate.md
Last active July 27, 2021 21:56
Migrate prometheus data between cluster monitoring v1/v2

Using pv-migrate, prometheus monitoring data can be migrated between PV/PVCs when migrating to monitoring v2

This assumes persistent storage is used with monitoring (ie, a PV/PVC exists) and is intended only for cluster monitoring (not project monitoring).

Pre-work

  • Monitoring v1 apps (in Cluster Manager) should be disabled (Tools > Monitoring)
  • Ensure the monitoring v1 apps are uninstalled, more details here
  • Monitoring v2 (in Cluster Explorer) should be installed
  • Install pv-migrate, steps available here
  • Configure a kubeconfig for the cluster
@dkeightley
dkeightley / ingress-to-pod.sh
Created July 30, 2021 02:52
Test pods in a service from every ingress-nginx pod
SERVICE=my-nginx
NAMESPACE=default
PORT=80
for ingresspod in $(kubectl -n ingress-nginx get pods -l app=ingress-nginx --template '{{range.items}}{{.metadata.name}}{{"\n"}}{{end}}')
do
echo $ingresspod
for svcep in $(kubectl -n $NAMESPACE get ep $SERVICE -o json | jq -r '.subsets[].addresses[].ip')
do
echo "=> ${svcep}"
@dkeightley
dkeightley / rke-calicoctl.yaml
Created September 13, 2021 00:41
Run calicoctl container in RKE
# Calico Version v3.20.0
# https://docs.projectcalico.org/releases#v3.20.0
# This manifest includes the following component versions:
# calico/ctl:v3.20.0
apiVersion: v1
kind: ServiceAccount
metadata:
name: calicoctl
namespace: kube-system
@dkeightley
dkeightley / rke2-single-install.md
Created September 16, 2021 03:41
rke2-single-install

Install

curl -sfL https://get.rke2.io | sh -
systemctl enable rke2-server.service
systemctl start rke2-server.service

Env setup

@dkeightley
dkeightley / readme.md
Last active December 14, 2021 12:29
Rancher with ALB Controller