Skip to content

Instantly share code, notes, and snippets.

@simonswine
simonswine / gcloud_oauth2_cerds.sh
Created March 5, 2019 18:26
Using oauth2 google tokens with gcloud (those can be acquired through: `gcloud auth print-access-token`)
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
account_id=temp
mkdir -p ~/.config/gcloud/configurations/
cat > ~/.config/gcloud/configurations/config_default <<EOF
@simonswine
simonswine / christian-kind-pod.yaml
Last active April 1, 2019 10:35
Run kubernetes in Kind
apiVersion: batch/v1
kind: Job
metadata:
name: christian-kind
spec:
template:
spec:
initContainers:
- name: install-docker-bin
command:
@simonswine
simonswine / tfstate.jsonnet
Created April 18, 2019 14:09
Modify every instance of specific object in a terrafrom state
local x = import 'input.tfstate';
local modifyDNSManagedZone(o) = o {
primary+: {
attributes+: {
visibility: 'public',
},
},
};
@simonswine
simonswine / install-openjdk8-musl.sh
Created August 11, 2019 10:54
Install alpine openjdk8 onto OpenWRT (armv7)
#!/bin/sh
set -o errexit
set -o nounset
set -o pipefail
set -x
REVISION=8.212.04-r0
URL=http://dl-cdn.alpinelinux.org/alpine/v3.10/community/armv7/
PACKAGES="openjdk8 openjdk8-jre openjdk8-jre-lib openjdk8-jre-base"
@simonswine
simonswine / create-kubeconfig-from-service-account.sh
Created August 30, 2019 16:19
Create kubeconfig from service account
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
# ensure service account exists
kubectl apply -f - >&2 <<EOF
apiVersion: v1
kind: ServiceAccount
#!/usr/bin/awk -f
BEGIN {
D="cd /overlay/upper/usr/lib/opkg/info&&"
C=D"ls *.list"
S="sort -n"
while(C|getline>0) {
P=substr(F=$1,1,length($1)-5)
J=D"du -sk $(cat "F")"
s=0
while(J|getline>0) {
@simonswine
simonswine / main.go
Last active September 1, 2020 13:23
Golang DNS test
$ GODEBUG=netdns=cgo+1 go run main.go
go package net: using cgo DNS resolver
2020/08/26 11:15:12 #01 212.58.233.253:443
2020/08/26 11:15:12 #02 212.58.237.251:443
2020/08/26 11:15:13 #03 212.58.233.251:443
2020/08/26 11:15:13 #04 212.58.233.251:443
2020/08/26 11:15:13 #05 212.58.237.253:443
2020/08/26 11:15:13 #06 212.58.237.254:443
2020/08/26 11:15:14 #07 212.58.237.254:443
2020/08/26 11:15:14 #08 212.58.233.254:443
@simonswine
simonswine / rules.yaml
Created August 27, 2020 15:35
Static recording rule to manage expected instances
- expr: 1
labels:
instance: db1
cloud: aws
record: expected_instances
- expr: 1
labels:
instance: db2
cloud: azure
record: expected_instances
@simonswine
simonswine / cortex-week-numbers.py
Last active October 30, 2020 17:46
Calculate the time range in cortex's weekly tables
from datetime import datetime,timedelta
from pytz import timezone
tz = timezone('America/Los_Angeles')
period = 7*24*3600
for index in range (2648, 2654):
index_from = datetime.fromtimestamp(index*period,tz=tz)
index_to = datetime.fromtimestamp((index+1)*period-1,tz=tz)
print ('index %d: from %s to %s' % (index, index_from.isoformat(), index_to.isoformat()))
@simonswine
simonswine / monitor-do-not-compare-connector.patch
Created February 7, 2021 10:49
Mutter patch to not compare connectors
From 7a8092b5a262095f02d97c62d56a82d856b66500 Mon Sep 17 00:00:00 2001
From: Christian Simon <simon@swine.de>
Date: Sun, 7 Feb 2021 10:42:48 +0000
Subject: [PATCH] hack: Do not compare connector
Necessary for my Thunderbolt adapter on X1 Carbon
---
src/backends/meta-monitor.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)