Skip to content

Instantly share code, notes, and snippets.

View dejanu's full-sized avatar
💭
🎯 all things are subject to interpretation...even API keys

dejanualex dejanu

💭
🎯 all things are subject to interpretation...even API keys
View GitHub Profile
@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
@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 / 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 / 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 / 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 / prometheus101.md
Last active November 28, 2024 20:24
Kubernetes metrics to watch for capacity management

Nice and eazy Metrics

## Information about Node

# Memory
Use bytes(IEC) and NO bytes(SI) the diff is: 
The unit MiB was defined by the International Electrotechnical Commission (IEC)
1 Mebibyte (MB) = 1.04 Megabyte (MiB)
50Mi = 50 mebibytes
@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 / 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
version: '3.1'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
#!/usr/bin/env bash
###########################################
# ##
# @dejanualex: Trivy based image scanner ##
# ##
###########################################