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 / 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 / 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-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 / 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",
@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 / README.md
Last active May 23, 2023 20:02
Script for Nginx/Openresty to restore up-to-date source IP addresses of visitors from Cloudflare

Renew source IP addresses from Cloudflare

Script for Nginx/Openresty to restore up-to-date source IP addresses of visitors from Cloudflare

Installation

Set params like NGINX_BIN_PATH and CLOUDFLARE_CONFIG_PATH

echo "NGINX_BIN_PATH=/usr/bin/openresty" > /etc/cloudflare-real-ip-update.env
@WoozyMasta
WoozyMasta / nginx.conf
Created May 25, 2023 08:37
Openresty prometheus metrics
init_worker_by_lua_block {
prometheus = require("prometheus").init("prometheus_metrics")
metric_requests = prometheus:counter(
"nginx_http_requests_total",
"Number of HTTP requests",
{"host", "status"}
)
metric_latency = prometheus:histogram(
"nginx_http_request_duration_seconds",
@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