Skip to content

Instantly share code, notes, and snippets.

View mikesparr's full-sized avatar

Mike Sparr mikesparr

  • Montana, USA
View GitHub Profile
@mikesparr
mikesparr / anthos-gke-aws-setup04.sh
Created September 12, 2020 19:42
Anthos GKE on AWS (connect)
#!/usr/bin/env bash
# https://cloud.google.com/anthos/gke/docs/aws/how-to/connecting-to-a-cluster
# from setup-02-mgmt.sh
unset HTTP_PROXY # reset
export NODE_KEY_PATH=$(PWD)/node-key.json
export GOOGLE_APPLICATION_CREDENTIALS=$NODE_KEY_PATH
# make sure bastion_tunnel.sh is running
@mikesparr
mikesparr / anthos-gke-aws-setup03.sh
Last active September 13, 2020 03:20
Anthos GKE on AWS (cluster)
#!/usr/bin/env bash
# https://cloud.google.com/anthos/gke/docs/aws/how-to/creating-user-cluster
# from setup-02-mgmt.sh
unset HTTP_PROXY # reset
export NODE_KEY_PATH=$(PWD)/node-key.json
export GOOGLE_APPLICATION_CREDENTIALS=$NODE_KEY_PATH
# create example user cluster config
@mikesparr
mikesparr / setup-01-prereq.sh
Created August 27, 2020 17:58
Anthos GKE on AWS
#!/usr/bin/env bash
# Docs: https://cloud.google.com/anthos/gke/docs/aws/how-to/prerequisites
# NOTE: MUST have `jq` installed for JSON parsing to set ENV vars
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_OWNER=$(gcloud config get-value core/account) # set orig val
# confirm aws CLI working
aws --version
@mikesparr
mikesparr / app-engine-custom-tls.sh
Created October 9, 2020 08:19
Google App Engine demo script adding custom SSL policies to custom domain
#!/usr/bin/env bash
# https://cloud.google.com/appengine/docs/standard/python3/quickstart
export PROJECT_ID="mike-gae-custom-tls"
export PROJECT_USER=$(gcloud config get-value core/account) # set current user
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
export GAE_SA="${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com"
export POLICY_NAME="pci-policy"
@mikesparr
mikesparr / terraform-example-memcache.tf
Last active November 24, 2020 16:35
Example Terraform GCP org with Memcache in service project
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 3.37"
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 3.37"
}
@mikesparr
mikesparr / log-sink-bigquery-compress.sh
Last active December 10, 2020 21:07
Google Cloud log sink to BigQuery exported to Cloud Storage and queried with Federated Query from GCS bucket
#!/usr/bin/env bash
# set vars
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_USER=$(gcloud config get-value core/account) # set current user
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
export IDNS=${PROJECT_ID}.svc.id.goog # workflow identity domain
export REGION="us-central1"
export ZONE="us-central1-a"
@mikesparr
mikesparr / example-snapshot-sharing.sh
Last active January 1, 2021 19:01
Example sharing snapshots across projects in different regions for disk analysis
#!/usr/bin/env bash
#####################################################
# SETUP (OPTIONAL)
#
# Note: this code is not meant to just run;
# copy and paste snippets as you go.
#####################################################
export PROJECT_ID=$(gcloud config get-value project)
@mikesparr
mikesparr / vpc-service-control-demo-setup.sh
Last active January 1, 2021 19:03
VPC Service Control (Setup)
#!/usr/bin/env bash
export ORG_ID="CHANGEME"
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_USER=$(gcloud config get-value core/account) # set current user
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
export IDNS=${PROJECT_ID}.svc.id.goog # workflow identity domain
export DATA_SA_NAME="data-viewer"
export DATA_SA_ID="${DATA_SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
@mikesparr
mikesparr / vpc-service-control-demo-teardown.sh
Last active January 1, 2021 19:04
VPC Service Control (Teardown)
#!/usr/bin/env bash
export ORG_ID="CHANGEME"
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_USER=$(gcloud config get-value core/account) # set current user
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
export IDNS=${PROJECT_ID}.svc.id.goog # workflow identity domain
export DATA_SA_NAME="data-viewer"
export DATA_SA_ID="${DATA_SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
@mikesparr
mikesparr / model_serving.py
Created January 5, 2021 06:10
AI Demo (model serving)
from joblib import dump, load
# save your model (assume you created the function)
dump(my_model, 'model.joblib') # saves local file model.joblib
# load model file later to use for prediction
classifier = load('model.joblib')
# model.predict is a function and features are parameters
prediction = classifier.predict(features) # returns prediction