Skip to content

Instantly share code, notes, and snippets.

View tanelmae's full-sized avatar
🏠
Working from home

Tanel Mae tanelmae

🏠
Working from home
  • Tallinn
  • 21:31 (UTC +03:00)
View GitHub Profile
@tanelmae
tanelmae / logdna.go
Created September 29, 2020 20:00
Export from LogDNA with golang
package main
import (
"errors"
"flag"
"io/ioutil"
"log"
"net/http"
"os"
"strconv"
@tanelmae
tanelmae / cloudfront.go
Created September 24, 2020 19:24
Sign Cloudfront URLs with Go
package main
import (
"crypto/x509"
"encoding/pem"
"flag"
"fmt"
"io/ioutil"
"time"
@tanelmae
tanelmae / kns
Created July 1, 2020 08:28
Switch between Kubernetes namespaces
kns() {
local CTX=$(kubectl config current-context)
local NAMESPACE=${1}
if [[ -z $NAMESPACE ]]; then
local OPTIONS=$(kubectl get namespaces -o jsonpath='{range .items[*].metadata.name}{@}{"\n"}{end}')
OPTIONS+=' EXIT'
local NS=$(kubectl config view -o jsonpath="{.contexts[?(@.name=='$CTX')].context.namespace}")
if [[ -z $NS ]]; then
NS="default"
@tanelmae
tanelmae / kctx
Last active July 1, 2020 08:29
Switch between kubectl contexts
kctx() {
local CLUSTER_NAME=${1}
if [[ -z $CLUSTER_NAME ]]; then
local OPTIONS=$(kubectl config get-contexts -o name)
OPTIONS+=' EXIT'
local CTX=$(kubectl config current-context)
local NS=$(kubectl config view -o jsonpath="{.contexts[?(@.name=='$CTX')].context.namespace}")
if [[ -z $NS ]]; then
NS="default"
@tanelmae
tanelmae / k3ctx
Last active November 1, 2019 14:16
BASH function for managing k3d cluster contexts
k3ctx() {
local CLUSTER_NAME=${1}
# Show the current context/namespace
local CTX=$(kubectl config current-context)
local NS=$(kubectl config view -o jsonpath="{.contexts[?(@.name=='$CTX')].context.namespace}")
if [[ -z $NS ]]; then
NS="default"
fi
echo "Current ctx/ns: $CTX/$NS"
@tanelmae
tanelmae / denv.bash-completion
Created September 26, 2019 10:41
denv bash completion
if [ -d /usr/local/etc/bash_completion.d/docker-compose.bash-completion ]; then
. /usr/local/etc/bash_completion.d/docker-compose.bash-completion
fi
if [ -x "$(command -v _docker_compose)" ]; then
echo "docker-compose bash completion not found"
else
complete -F _docker_compose denv
fi
@tanelmae
tanelmae / denv-1
Last active September 26, 2019 07:52
denv
#!/bin/sh
ROOT_DIR=$(git rev-parse --show-toplevel)
[ $? -eq 0 ] && docker-compose --file "${ROOT_DIR}/env/docker-compose.yaml" --project-directory "${ROOT_DIR}/env" $@
@tanelmae
tanelmae / get-tusk.sh
Created September 2, 2019 08:10
Simple setup to pin tusk version for a project
#!/usr/bin/env bash
set -e
if [ -z "${GOPATH}" ]; then
echo "GOPATH not set"
exit 1
fi
TUSK_VERSION=${1:-latest}
echo "Will install tusk version ${TUSK_VERSION} to ${GOPATH}/bin"
@tanelmae
tanelmae / coredns.service
Last active August 3, 2019 19:27
Running CoreDNS docker image with systemd
[Unit]
Description=CoreDNS
Requires=docker.service
After=docker.service
ConditionPathExists=/etc/coredns/Corefile
[Service]
ExecStartPre=/bin/bash -c "/usr/bin/docker container inspect coredns 2> /dev/null || /usr/bin/docker run -d --name coredns -p 53:53/udp --restart unless-stopped -v /etc/coredns:/conf coredns/coredns:1.6.0 -conf /conf/Corefile"
ExecStart=/usr/bin/docker start -a coredns
ExecStop=/usr/bin/docker stop coredns
#!/bin/bash
# Based on:
# https://withblue.ink/2019/07/13/yes-you-can-run-docker-on-raspbian.html
set -e
sudo su
# Install some required packages first
apt-get update
apt-get install -y \