Skip to content

Instantly share code, notes, and snippets.

View dejanu's full-sized avatar
🐵
all things are subject to interpretation

dejanualex dejanu

🐵
all things are subject to interpretation
View GitHub Profile
version: '3.1'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
@dejanu
dejanu / pssh.sh
Created June 7, 2023 09:32
Simple shell script that achieves concurrent SSH connections using background processes
#!/bin/bash
## #####################################################################
## run concurrently command passed as argv on multiple remote servers ##
## UPDATE: servers array and user variable ##
########################################################################
# define an array of remote servers
servers=("server1.fqdn" "server2.fqdn" "server3.fqdn")
# Function to execute command on a remote server
execute_command() {
server=$1
@dejanu
dejanu / docker_engine.sh
Last active November 7, 2023 20:39
Manage Docker and Display system-wide information
# containers resource usage
docker stats [OPTIONS] [CONTAINER...]
docker stats --no-stream
# docker stats
docker system info
# check the container runtime
docker system info --format "{{ .DefaultRuntime }}"
@dejanu
dejanu / capacity_mgmt.sh
Created December 8, 2022 16:02
wrapper for inspecting Requests/Limits for Pods
#!/usr/bin/env bash
#############################################################
# Purpose: wrapper for inspecting Requests/Limits for Pods ##
# @dejanualex ##
#############################################################
# read namespace and po
echo -e "Available namespaces are:\n $(kubectl get ns -o=custom-columns=NAMESPACES:.metadata.name) \n"
echo -e "\n Please write the name of the namespace for which you want to know the resource status:\n"
@dejanu
dejanu / k8s_metrics.md
Last active September 19, 2022 09:21
Kubernetes metrics to watch for capacity management

Metrics

  • Information about Node:
# Gauge type metric

# CPU capacity <cores>
kube_node_status_capacity{resource="cpu"}
@dejanu
dejanu / cluster_state_report.sh
Created August 10, 2022 20:55
wrapper for k8s cluster state report
#!/usr/bin/env bash
################################################################################################
# kubectl wrapper that generates a report concerning cluster state, ##
# which creates a dir with compiled information regarding: ##
# - control plane components status, cluster events, nodes description, and namespace events ##
################################################################################################
# Get nodes, componentsstatuses, and pods for control-plane
echo -e "\e[0;32m Cluster Nodes: \e[0m \n $(kubectl get nodes -owide)"
@dejanu
dejanu / aks_upgrade.sh
Last active May 5, 2022 16:01
Upgrade an Azure Kubernetes Service (AKS) cluster
# get available k8s versions for AKS, e.g. for location westeurope
az aks get-versions --location westeurope | jq ".orchestrators[] | .orchestratorVersion"
# get available versions for your AKS
az aks get-upgrades --resource-group <resourcegroup_name> --name <aks_name> --output table
# check your k8s version for control plane and woker node pool
az aks show -g <resourcegroup_name> -n <resourcegroup_name>| grep -E "orchestratorVersion|kubernetesVersion"
# update max-surge to 3 nodes, you can use percentage also e.g.50% (for a node surges half of the no of nodes from the node pool)
@dejanu
dejanu / porter.yml
Created December 30, 2021 13:16
CNAB bundle for Docker mixin
# Informational Metadata: bundle name, version and description
name: whalesay
version: 0.1.2
description: "An example bundle that uses docker through the magic of whalespeak"
registry: getporter
# Required extensions: Docker access is required to run the bundle
required:
- docker
@dejanu
dejanu / cluster_state.sh
Last active August 30, 2021 15:25
oc wrapper
#!/usr/bin/bash
## Quick check cluster node health status as cluster-admin role
oc logout 2>/dev/null
echo "Select cluster ***********"
echo " 1) First cluster:"
echo " 2) Second cluster:"
read n
# add clusters here:
@dejanu
dejanu / proc.py
Created June 27, 2019 21:47
Call process and read output realtime
import subprocess
import shlex
def run_command(command):
"""command: str"""
process = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE)
while True:
output = process.stdout.readline()
if output == '' and process.poll() is not None:
break