Skip to content

Instantly share code, notes, and snippets.

@kmassada
kmassada / scrape-cos-gke-logs.sh
Last active May 11, 2018 17:40
scrape CoS nodes running GKE for node logs
#!/bin/bash
# GENERIC
# uptime
# dmesg
# df -a --inodes
# cat /proc/sys/fs/file-nr
# systemctl status -l docker
# sudo journalctl -u docker
# sudo journalctl -u kube-docker-monitor.service

Create the sertificate and a secret

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout secret.key -out secret.crt -subj "/CN=foobar.com"
kubectl create secret tls tls-secret --key=secret.key --cert=secret.crt
@kmassada
kmassada / echo.go
Last active February 27, 2018 00:46
go echoheaders
package main
import (
"fmt"
"net/http"
"strings"
"time"
)
// handler hello world, the web server
@kmassada
kmassada / Dockerfile
Last active January 9, 2018 21:11
Node.js container on gce with pid and exit on ctrl-c
FROM node:8
USER node
ENV HOME=/home/node
RUN mkdir $HOME/app
WORKDIR $HOME/app
COPY package.json $HOME/app
RUN npm set progress=false && \
npm config set depth 0 && \
npm install --only=production && \
npm cache clean --force
@kmassada
kmassada / fanout-ingress.yml
Last active October 29, 2018 01:37
Try out fanout ingress service service in GKE
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
@kmassada
kmassada / re-install-services.sh
Created October 31, 2017 23:15
Re-install GCP services for your nodes
#!/bin/bash
declare -a PKG_LIST=(google-cloud-packages-archive-keyring \
google-compute-engine google-compute-engine-oslogin \
python-google-compute-engine python3-google-compute-engine)
declare -x APT_SERVER="packages.cloud.google.com"
curl https://$APT_SERVER/apt/doc/apt-key.gpg | apt-key add -
@kmassada
kmassada / storageService.ts
Created April 5, 2016 15:00
TypeScript Angular Factory
export interface IStorageService {
set(key: string, value: any): void;
remove(key: string): void;
get(key: string, defaultValue: any): any;
setObject(key: string, value: any): void;
getObject(key: string): any;
removeObject (key: string): void;
}
class StorageService implements IStorageService {

SAMPLE

127.0.0.1 - - [26/Mar/2016:19:09:19 -0400] "GET / HTTP/1.1" 401 194 "" "Mozilla/5.0 Gecko" "-"

MATCH

%{IPORHOST:clientip} (?:-|(%{WORD}.%{WORD})) %{USER:ident} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent} %{QS:forwarder}

Output

@kmassada
kmassada / ionic-webpack-gulpfile.js
Last active March 25, 2016 15:16
Ionic+Webpack
var gulp = require('gulp');
var gutil = require('gulp-util');
var bower = require('bower');
var concat = require('gulp-concat');
var sass = require('gulp-sass');
var minifyCss = require('gulp-minify-css');
var rename = require('gulp-rename');
var sh = require('shelljs');
var tsd = require('gulp-tsd');
var typescript = require('gulp-tsc');
@kmassada
kmassada / UsingGoogleMapsAPIwithRequest.md
Last active March 9, 2016 16:40
Node + Request + googleMaps API HTTP

use: Node.js Request, to: query googleMaps' API via HTTP