Skip to content

Instantly share code, notes, and snippets.

worldofgeese /
Last active June 3, 2023 10:35
Clear Linux on Framework setup

Setup Clear Linux on Framework

Allow user to execute privileged commands without password

sudo mkdir -p /etc/sudoers.d && echo 'taohansen ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/visudo > /dev/null

Enable powersaving

sudo swupd bundle-add TLP 
sudo systemctl enable tlp.service
worldofgeese /
Last active May 24, 2023 15:11
Cloud Shell Garden tutorial

Garden quickstart for Cloud Shell

Let's get started

This quickstart will show you how to start a minikube cluster and deploy a simple application to it using Garden.

  • Setup your environment
    • Install Garden and start a minikube cluster you'll use to deploy your app to.
  • Deploy the app
  • You will be guided through the process of deploying a simple app to the cluster using Garden.

Old example using Modules which we're going to transform into the Actions driven format

The example mentions cockroachdb, but the old version never mentions how that was deployed but shows the dependency on my-cockroachdb while the new version drops the cockroachdb entirely. I think it would be good to mention how one would express that dependency. Also previously the container module depended on the create-db task but now it’s just a Run. How would I ensure that the test and deploy actually spawn the DB first and then run create-db before?

We’ve just announced a new Garden version, which we’re naming Bonsai! This update is one of the most substantial of the year, as it incorporates a range of new features and enhancements that significantly augment the power and flexibility of Garden ✈️.

Garden’s philosophy centers around the idea that every step involved in developing and testing an application falls into one of four types, each with its own semantics:  


worldofgeese /
Last active March 17, 2023 09:57
Backstage from zero
curl | bash
volta install node for latest LTS
volta install yarn (wrong yarn version)
volta install yarn@v1.22.19
npx @backstage/create-app@latest
worldofgeese /
Last active March 2, 2023 13:35
A developer environment for Garden created with Canonical's Multipass

Multipass Garden Devenv

Launch a Minikube blueprint

multipass launch minikube --name garden-dev --memory 4G --disk 60G --cpus 2

Install Homebrew for Linux

worldofgeese / gke-provider-example-kaniko-buildkit.yaml
Last active December 30, 2022 13:29
Provider example with Kaniko and cluster-buildkit vars set
View gke-provider-example-kaniko-buildkit.yaml
- name: kubernetes
context: ${providers.terraform.outputs.cluster_name}
kubeconfig: ${var.terraformInitRoot}/${providers.terraform.outputs.kubeconfig_path}
namespace: ${environment.namespace}
namespace: devrel-348008/worldofgeese-repo
# buildMode: cluster-buildkit
buildMode: kaniko
worldofgeese / gardened-external-dns-helm-chart.yaml
Created December 30, 2022 12:35
External DNS chart as a drop-in module for Garden
View gardened-external-dns-helm-chart.yaml
kind: Module
type: helm
name: my-external-dns
chart: external-dns
version: 1.12.0
provider: google
domainFilters: [""]
txt-owner-id: "worldofgeese"
worldofgeese / compose-roachless.yml
Created November 17, 2022 12:09
Kompose-d Python application
View compose-roachless.yml
apiVersion: v1
- apiVersion: v1
kind: Service
kompose.cmd: kompose convert -f compose-roachless.yml -f compose-roachless.override.yml -o kompose.yml
kompose.version: 1.26.1 (a9d05d509)
creationTimestamp: null
worldofgeese / quick-gen-gpg-keys.bash
Last active September 6, 2022 09:11
Script to generate gpg keys quickly
View quick-gen-gpg-keys.bash
echo "This script generates GPG keys valid for 1 year for macOS, Linux, and WSL2 users automatically. The email attached to the resulting key will only be valid if you have an email domain with a local-part of your first name."
if [ "Darwin" = $(uname) ]; then
FULLNAME=$(id -P $USER | awk -F '[:]' '{print $8}')
EMAIL=$(id -P "$USER" | cut -d: -f5 | cut -d, -f1 | sed s/'\w*$'// | tr '[:upper:]' '[:lower:]' | tr -d '[:space:]' | sed 's/$/')
FULLNAME=$(getent passwd $USER | cut -d: -f5 | cut -d, -f1)
EMAIL=$(getent passwd "$USER" | cut -d: -f5 | cut -d, -f1 | sed s/'\w*$'// | tr '[:upper:]' '[:lower:]' | tr -d '[:space:]' | sed 's/$/')
gpg --batch --passphrase '' \
--quick-generate-key "$FULLNAME <$EMAIL>" ed25519 cert 1y

From doomemacs/doomemacs#2575 (comment):

Here are easy steps to get that done

  • Start emacs
  • M-x all-the-icons-install-fonts Provide a temp directory where you'd like the fonts to be downloaded (let's call it $tempFonts)

Then, using Powershell, you can install them for your user with this: