Skip to content

Instantly share code, notes, and snippets.

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:  

![](https:

@worldofgeese
worldofgeese / backstage-getting-started.md
Last active March 17, 2023 09:57
Backstage from zero
curl https://get.volta.sh | bash
volta install node for latest LTS
volta install yarn (wrong yarn version)
volta install [email protected]
npx @backstage/create-app@latest
@worldofgeese
worldofgeese / multipass-garden-devenv.md
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
worldofgeese / gke-provider-example-kaniko-buildkit.yaml
Last active December 30, 2022 13:29
Provider example with Kaniko and cluster-buildkit vars set
- name: kubernetes
context: ${providers.terraform.outputs.cluster_name}
kubeconfig: ${var.terraformInitRoot}/${providers.terraform.outputs.kubeconfig_path}
namespace: ${environment.namespace}
defaultHostname: dev.worldofgeese.devrel.demo.garden
deploymentRegistry:
hostname: europe-north1-docker.pkg.dev
namespace: devrel-348008/worldofgeese-repo
# buildMode: cluster-buildkit
buildMode: kaniko
@worldofgeese
worldofgeese / gardened-external-dns-helm-chart.yaml
Created December 30, 2022 12:35
External DNS chart as a drop-in module for Garden
kind: Module
type: helm
name: my-external-dns
repo: https://kubernetes-sigs.github.io/external-dns/
chart: external-dns
version: 1.12.0
values:
provider: google
domainFilters: ["worldofgeese.devrel.demo.garden"]
txt-owner-id: "worldofgeese"
@worldofgeese
worldofgeese / compose-roachless.yml
Created November 17, 2022 12:09
Kompose-d Python application
apiVersion: v1
items:
- apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -f compose-roachless.yml -f compose-roachless.override.yml -o kompose.yml
kompose.version: 1.26.1 (a9d05d509)
creationTimestamp: null
labels:

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:

Keybase proof

I hereby claim:

  • I am worldofgeese on github.
  • I am worldofgeese (https://keybase.io/worldofgeese) on keybase.
  • I have a public key ASBcQcdqvboWhZCigbFVexMv8WT-IqzXaMOV_RLGo54ziwo

To claim this, I am signing this object:

@worldofgeese
worldofgeese / Dockerfile
Last active June 6, 2022 14:15
Nix source Dockerfile example
FROM nixos/nix as builder
WORKDIR /app
ENV NIXPKGS_ALLOW_UNFREE=1
RUN nix-env -iA nixpkgs.gitMinimal
RUN git clone https://gitlab.com/theoretical-chemistry-jena/nixwithchemistry \
$HOME/.config/nixpkgs/overlays/nixwithchemistry
RUN nix-channel --update
RUN nix-build \
@worldofgeese
worldofgeese / quick-gen-gpg-keys.bash
Last active September 6, 2022 09:11
Script to generate gpg keys quickly
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 garden.io 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/$/@garden.io/')
else
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/$/@garden.io/')
fi
gpg --batch --passphrase '' \
--quick-generate-key "$FULLNAME <$EMAIL>" ed25519 cert 1y