Skip to content

Instantly share code, notes, and snippets.

View memes's full-sized avatar
☁️
Working in the cloud

Matthew Emes memes

☁️
Working in the cloud
View GitHub Profile
@memes
memes / setup.go
Last active August 7, 2023 18:41
go-logr and zerolog formatting for GCP stdout/stderr scraping
func initialiseLogging() logr.Logger {
// Setup structured logging to match Cloud Operations expectations, as much as possible
zerolog.TimestampFieldName = "time"
zerolog.TimeFieldFormat = time.RFC3339
zerolog.LevelFieldName = "severity"
zerolog.LevelTraceValue = "DEFAULT"
zerolog.LevelDebugValue = "DEBUG"
zerolog.LevelInfoValue = "INFO"
zerolog.LevelWarnValue = "WARNING"
zerolog.LevelErrorValue = "ERROR"
@memes
memes / openpgp.md
Created November 14, 2022 22:41
openpgp.md

Verifying my cryptographic key: openpgp4fpr:ee2664dd38f53ba6849e99b7757446333d3ec29a

@memes
memes / sa_auth_status.sh
Created November 24, 2021 16:54
Standalone GCP service account tester based on embedded script in https://github.com/memes/terraform-google-sa-scopes-demo/blob/main/main.tf
#!/bin/sh
#
# Verify GCP service account default authentication status on VM
info()
{
echo "$0: INFO: $*" >&2
}
error()
- id: talisman-commit
name: talisman
entry: talisman --githook pre-commit
stages: [commit]
# talisman currently discovers files by itself and does not take them on the cli
pass_filenames: false
types: [text]
language: system
- id: talisman-push
@memes
memes / main.tf.snippet
Last active February 15, 2023 12:00
Vault OIDC configuration workaround for hashicorp/terraform-provider-vault#957
resource "vault_policy" "admin" {
name = "admin"
policy = <<EOP
# Manage auth methods broadly across Vault
path "auth/*"
{
capabilities = ["create", "read", "update", "delete", "list", "sudo"]
}
# Create, update, and delete auth methods
@memes
memes / .envrc
Last active April 17, 2020 20:18
New automation project files
# Use the virtualenv defined for this project
layout virtualenvwrapper VENV_NAME
unset PS1
@memes
memes / .bashrc.osx
Last active March 10, 2020 22:10
Mac OS shell settings
#-*- mode: sh -*-
# Setup history control
HISTCONTROL=ignoreboth
shopt -s histappend
HISTSIZE=1000
HISTFILESIZE=2000
shopt -s checkwinsize
# Default prompt is user@host
PS1='\[\033[0;32m\]\u@\h\[\033[0m\]:\[\033[0;31m\]\w\[\033[00m\]\$ '
@memes
memes / cloud-iot-pre-request-auth.js
Last active May 12, 2018 20:22
Google Cloud IoT authentication for Postman
// Keep jsrsasign libs assume they are working in a browser; fake these out..
var navigator = {
appName: "Cloud IoT test script"
};
var window = {};
// Make sure that jsrsasign is in scope
eval(postman.getEnvironmentVariable('jsrsasign'));
// Cloud IoT HTTP URL is of form: https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{location}}/registries/{registry}/devices/{device-id}/...
@memes
memes / .bashrc
Last active June 16, 2018 05:28
Termux .profile and .bashrc as used on chromebook, which automatically goes into a chroot to make me feel more at home.
# Configure bash shell for chromebook
HISTCONTROL=ignoreboth
shopt -s histappend
HISTSIZE=1000
HISTFILESIZE=2000
shopt -s checkwinsize
_MEMES_IP=$(ip addr show dev arc0 | gawk '{ if (match($0, /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/, m)) print m[1]}')
PS1='\[\033[01;32m\]\u@${_MEMES_IP}\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
[ -f ~/bin/git-prompt.sh ] && . ~/bin/git-prompt.sh
[ -f ~/.bash_memes ] && . ~/.bash_memes
@memes
memes / azure-auth-postman.js
Created July 13, 2017 01:03
Postman pre-request script to add Azure auth token to environment
var encodedURL = encodeURIComponent(postman.getGlobalVariable("baseURL")).toLowerCase();
var expiration = Math.ceil((Date.now() / 1000) + 3600);
var realKey = postman.getGlobalVariable("sharedAccessKey");
var token = encodedURL + '\n' + expiration;
var sig = CryptoJS.HmacSHA256(token, realKey);
var encodedSig = encodeURIComponent(CryptoJS.enc.Base64.stringify(sig));
var authToken = "SharedAccessSignature sr=" + encodedURL + "&sig=" + encodedSig + "&se=" + expiration + "&skn=" + postman.getGlobalVariable("sharedAccessKeyName");
postman.setGlobalVariable("authToken", authToken);