Skip to content

Instantly share code, notes, and snippets.

View briceburg's full-sized avatar

Brice Burgess briceburg

  • toil over toil
  • albuquerque, nm
View GitHub Profile
@briceburg
briceburg / versioning-and-releases.md
Last active December 8, 2021 16:29
eight bullet versioning and release process

releases

  • semantic versioning is used
  • a branch is created for every major release, e.g. release-1.x, release-2.x, &c.
  • when ready to make a release;
    • update any changelogs and documentation with release information, commit/merge to main. ensure CI passes.
    • if backporting fixes into past releases, follow the backporting procedure from containerd, else merge main into the current release branch. e.g. main -> release-2.x.
    • checkout current release branch and update files/version with the current point release, e.g. change 'main' to 2.1.18-rc1.
      • make a release commit (e.g. with message "RELEASE 2.1.18-rc1").
  • tag the release using v as a prefix, e.g. git tag v2.1.18-rc1 && git push --tags
@briceburg
briceburg / packer.json
Last active August 5, 2021 19:33
convert Ubuntu AMI from MBR partitioning to GPT partitioning
// the following assumes AWS nitro (e.g. t3.*, m5.*, &c) instances (which use /dev/nvme0n1 as root disk)
// "safely" switches from MBR to GPT partitioning in Ubuntu < 21.04 or other AMIS.
// Tested using gdisk 1.0.3 from 18.04 / Bionic.
// after the change, you can use >2TB root disks. either initially, or by resizing a smaller one -- in nitro and non-nitro types
provisioners: [
{
"type": "shell",
"inline": [
"echo Converting to GPT - AWS nitro type instance",
@briceburg
briceburg / print-jenkins-secret-file-contents.groovy
Created June 8, 2021 16:08
Print content of secret files from the Jenkins Credentials Store
import com.cloudbees.plugins.credentials.*;
import com.cloudbees.plugins.credentials.domains.Domain;
import org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl;
//
// modify fileName to match the filename of the secret(s) you want to print.
// (ID would probably be more helpful... yay stack overflow copy pasta)
// alternatively comment out the filter [line 15] to dump all secret files.
//
def fileName = "secrets.env"
@briceburg
briceburg / create-postgresql-databases.sh
Last active July 9, 2024 07:10
official PostgresSQL docker images - create multiple databases
#!/bin/bash
set -e
if [ -n "$POSTGRES_DATABASES" ]; then
echo "POSTGRES_DATABASES provided. Creating multiple databases..." >&2
IFS=', '; for db in $POSTGRES_DATABASES; do
echo "Creating '$db'" >&2
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-ESQL
CREATE USER "$db";
CREATE DATABASE "$db";
@briceburg
briceburg / main.go
Created January 13, 2021 03:18 — forked from walm/main.go
Simple Golang DNS Server
package main
import (
"fmt"
"log"
"strconv"
"github.com/miekg/dns"
)
@briceburg
briceburg / docker-entrypoint.sh
Created April 9, 2020 16:50
forward local ports in a docker container to the docker host (host.docker.internal)
#!/usr/bin/env bash
main(){
set -eo pipefail
# sysctl is a readonly filesystem in containers, so this must be set at run;
# [[ "$OSTYPE" =~ darwin|macos* ]] || docker_flags+=("--add-host host.docker.internal:host-gateway")
# docker run -it "${docker_flags[@]}" --cap-add=NET_ADMIN --sysctl net.ipv4.conf.all.route_localnet=1 ...
sysctl -w net.ipv4.conf.all.route_localnet=1
docker_host_ip=$(getent ahostsv4 host.docker.internal | head -n1 | awk '{print $1}')
@briceburg
briceburg / mk-jwt-token
Last active December 20, 2024 21:21
mk-jwt-token -- bash shell script for generating JWT tokens. requires `openssl` and `base64` which you have.
#!/usr/bin/env bash
#
# usage: JWT_SECRET="silly" mk-jwt-token
# @WARN: modify the payload and header to your needs.
#
main(){
set -eo pipefail
[ -n "$JWT_SECRET" ] || die "JWT_SECRET environment variable is not set."
@briceburg
briceburg / git-scp
Last active October 12, 2019 02:24
git-scp: sync the working copy with a remote host, respecting the .gitignores
#!/usr/bin/env bash
#
# git-scp: sync the working copy with a remote host, respecting the .gitignores
# usage: git scp devbox
# where 'devbox' refers to a tracked remote. e.g.
# git remote add devbox host:~/git/repo-name
#
# installation: cp git-scp /usr/local/bin/git-scp && chmod +x /usr/local/bin/git-scp
#
@briceburg
briceburg / nm-legumous-plants.md
Last active May 15, 2019 05:26
Native legumous plants of New Mexico / ABQ

Native legumous plants of New Mexico (Albuquerque)

name common sandia fieldguide
Amorpha canescens leadplant no
Astragalus albulus cibola milkvetch no
Astragalus allochrous halfmoon milkvetch no
Astragalus amphioxys Crescent milkvetch no
Astragalus brandegeei Brandegee's milkvetch no
@briceburg
briceburg / main.tf
Last active June 26, 2018 17:17
terraform - autoscaling group that updates instances on changes
## random LC name is assigned
resource "aws_launch_configuration" "main" {
image_id = "${var.ami}"
instance_type = "${var.instance_type}"