Skip to content

Instantly share code, notes, and snippets.

View WoozyMasta's full-sized avatar
👽
gotcha

Maxim Levchenko WoozyMasta

👽
gotcha
View GitHub Profile
@WoozyMasta
WoozyMasta / clusterrole-view.yml
Created May 5, 2021 15:55
Default k8s ClusterRole view
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: view
rules:
- apiGroups:
- ""
resources:
- configmaps
- endpoints
@WoozyMasta
WoozyMasta / bash-logger.sh
Last active June 3, 2022 23:00
Bash logger
#!/bin/bash
# Logging level
: "${LOG_LEVEL:=INFO}"
# Associative arrays for logging
declare -A log_c log_l
# Color codes
log_c[0]='\033[0m' # Reset colors
log_c[error]='\033[1;31m' # Red
@WoozyMasta
WoozyMasta / nexus-npm-cache-revalidate.sh
Created September 9, 2021 08:32
Script for rebuild indexes and invalidate cache in Sonatype nexus 3 NPM proxy repositories
#!/usr/bin/env bash
#
# Script for rebuild indexes and invalidate cache in NPM proxy repositories.
# Configuration can load from hide file with same name as script
# Example: this-srcipt.sh load config from ./.this-srcipt
#
# Copyright 2020 WoozyMasta <woozy.masta@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@WoozyMasta
WoozyMasta / create-container-registry-proxies.sh
Last active March 6, 2024 08:11
Create multiplie container registry cache proxies using docker distribution in registry mirror mode
#!/bin/bash
set -eu
# Listen address for all docker.io/registry instances
listen_address=0.0.0.0
# Listen port for the first container
# all subsequent ports for containers will be incremented by one
listen_port_first=5000
insecure=true
@WoozyMasta
WoozyMasta / opencontainers-anotations.sh
Last active February 27, 2022 09:15
An example of assigning opencontainers annotations when building containers in GitLab CI
# https://github.com/opencontainers/image-spec/blob/main/annotations.md
image="$REGISTRY_DOMAIN/$CI_PROJECT_ROOT_NAMESPACE/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME"
docker build \
--file ./Dockerfile --tag "$image" \
--label org.opencontainers.image.url="$image" \
--label org.opencontainers.image.vendor="$CI_PROJECT_ROOT_NAMESPACE@$CI_SERVER_HOST" \
--label org.opencontainers.image.version="$CI_COMMIT_REF_SLUG" \
--label org.opencontainers.image.description="$CI_PROJECT_TITLE" \
@WoozyMasta
WoozyMasta / wg-post-chain.sh
Last active February 14, 2023 13:13
Wireguard PostUp PostDown script
#!/usr/bin/env bash
# wg-post %i UP/DOWN
set -euo pipefail
: "${WG_IFACE:=${1:-wg0}}"
: "${WG_ACTION:=${2:-down}}"
: "${WG_CONF:=/etc/wireguard/$WG_IFACE.conf}"
[ -f "$WG_CONF" ] || { >&2 echo "File $WG_CONF not accessible"; exit 1; }
@WoozyMasta
WoozyMasta / nexus-proxy-caches-revalidate.sh
Created June 16, 2022 09:41
Script for rebuild indexes and invalidate cache in Sonatype nexus 3 npm|nuget|pypi|maven proxy
#!/usr/bin/env bash
#
# Script for rebuild indexes and invalidate cache in NPM proxy repositories.
# Configuration can load from hide file with same name as script
# Example: this-srcipt.sh load config from ./.this-srcipt
#
# Copyright 2020 WoozyMasta <woozy.masta@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@WoozyMasta
WoozyMasta / Dockerfile
Created July 12, 2022 02:49
An example of building a Python application into a self-contained statically linked binary and packaging it into a container image based on scratch
FROM docker.io/python:3.9-bullseye AS build
WORKDIR "/app"
# Install dependecies
# hadolint ignore=DL3008,DL3013
RUN set -eux && \
apt-get update; \
apt-get install --no-install-recommends -y \
python3-dev build-essential patchelf upx; \
apt-get clean; \
@WoozyMasta
WoozyMasta / nginx-ssh-ssl.conf
Created August 3, 2022 15:07
SSL and SSH on the same port in Nginx
stream {
upstream ssh {
server 127.0.0.1:22;
}
upstream web {
server 127.0.0.1:443;
}
map $ssl_preread_protocol $upstream {
@WoozyMasta
WoozyMasta / registry-config-ds.yaml
Last active November 24, 2022 13:02
Create and update multiple container registry cache proxies in CRI-O with Daemonset without direct access to k8s node
apiVersion: v1
kind: ConfigMap
metadata:
name: registry-config
namespace: kube-system
data:
unqualified-search-registries.conf: |
unqualified-search-registries = [
"docker.io",
"quay.io",