Skip to content

Instantly share code, notes, and snippets.

View davidalger's full-sized avatar

David Alger davidalger

View GitHub Profile
@davidalger
davidalger / postgres-cheatsheet.md
Created May 14, 2021 20:53 — forked from Kartones/postgres-cheatsheet.md
PostgreSQL command line cheatsheet

PSQL

Magic words:

psql -U postgres

Some interesting flags (to see all, use -h or --help depending on your psql version):

  • -E: will describe the underlaying queries of the \ commands (cool for learning!)
  • -l: psql will list all databases and then exit (useful if the user you connect with doesn't has a default database, like at AWS RDS)
@davidalger
davidalger / warmer-cron.sh
Last active April 29, 2021 08:31
Script to crawl and warm the cache two levels deep on Magento demo Pods via CronJob spec
#!/bin/bash
set -euo pipefail
FRONT_URL="${FRONT_URL:-https://app.exampleproject.test/}"
echo "==> [$(date +%H:%M:%S)] waiting on readiness"
ELAPSED_SECONDS=0
while : ; do
ELAPSED_SECONDS=$(echo ${ELAPSED_SECONDS}+2 | bc)
RESPONSE_CODE=$(curl -sI "${FRONT_URL}" 2>/dev/null | head -n1 | awk '{print $2}')
@davidalger
davidalger / kubectl-list_images
Last active April 8, 2021 07:14
List all non-Google/GKE/k8s/Stackdriver images in a cluster using fully qualified names and without tags.
#!/usr/bin/env bash
kubectl get all --all-namespaces -o yaml \
| grep \ image: \
| egrep -iv 'image:\ sha256|(gke|k8s)\.gcr\.io|gcr\.io/(gke|google|stackdriver|kubernetes)-.*' \
| perl -pe 's#^[\W-]+image:\W+([^\@:]+)([:@].+)?$#$1#i' \
| perl -pe 's#^([a-z0-9-_]+)$#docker.io/library/$1#i' \
| perl -pe 's#^([a-z0-9-_/]+)$#docker.io/$1#i' \
| sort -n | uniq
@davidalger
davidalger / gcloud-asset-search.sh
Created February 2, 2021 23:13
GCP Asset Inventory
PS1='$ ' && clear
GCP_PROJECT=my-first-project \
&& gcloud services enable cloudasset.googleapis.com --project "${GCP_PROJECT}" \
&& echo Waiting for API enablement to propagate \
&& utimer -c 2m \
&& gcloud asset search-all-resources --scope "projects/${GCP_PROJECT}" --sort-by 'assetType' \
--format='table(assetType.basename(), name.basename(), name.scope(projects).segment(0):label=PROJECT_ID, labels)'
@davidalger
davidalger / patches--ConsoleLogger-Prefix.patch
Created June 2, 2020 22:43
Prefixes logging output of Magento 2 database upgrade CLI commands with timestamp in HH:MM:SS format
--- webroot/vendor/magento/framework/Setup/ConsoleLogger.php 2020-06-02 17:09:24.000000000 -0500
+++ webroot/vendor/magento/framework/Setup/ConsoleLogger.php 2020-06-02 17:23:51.000000000 -0500
@@ -67,7 +67,7 @@
public function log($message)
{
$this->terminateLine();
- $this->console->writeln('<detail>' . $message . '</detail>');
+ $this->console->writeln('<detail>' . $this->logPrefix() . $message . '</detail>');
}
@davidalger
davidalger / delete-default-vpc-networks.sh
Created November 17, 2020 22:39
Removes internet gateways and subnets from and then deletes all default VPCs in an AWS account.
#!/usr/bin/env bash
set -euo pipefail
function error {
>&2 printf "\033[31mERROR\033[0m: $@\n"
}
INIT_ERROR=
for DEP_NAME in aws-vault jq aws; do
if ! which "${DEP_NAME}" 2>/dev/null >/dev/null; then
@davidalger
davidalger / 1_kubernetes_on_macOS.md
Created September 18, 2018 17:59 — forked from kevin-smets/1_kubernetes_on_macOS.md
Local Kubernetes setup on macOS with minikube on VirtualBox and local Docker registry

Requirements

Minikube requires that VT-x/AMD-v virtualization is enabled in BIOS. To check that this is enabled on OSX / macOS run:

sysctl -a | grep machdep.cpu.features | grep VMX

If there's output, you're good!

Prerequisites

@davidalger
davidalger / db-dump.sh
Last active September 29, 2020 03:10
Uses n98-magerun over SSH to dump a database and pull to local environment for import
#!/usr/bin/env bash
set -euo pipefail
trap 'error "$(printf "Command \`%s\` on line $LINENO failed with exit code $?" "$BASH_COMMAND")"' ERR
## setup functions for use throughout the script
function error {
>&2 printf "\033[31mERROR\033[0m: $@\n"
}
function :: {
@davidalger
davidalger / rabbitmqctl-cheats.md
Last active August 11, 2020 13:49
RabbitMQ Cheats for Operators

Cleanup default user and vhost

rabbitmqctl delete_user guest
rabbitmqctl delete_vhost /

Create administrative user

Note: Make sure pwgen is installed before running the following.

AMQP_USER=rabbitadmin AMQP_PASS="$(pwgen -A1 32 1 | tee /dev/stderr)"