Skip to content

Instantly share code, notes, and snippets.

View mreferre's full-sized avatar

Massimo Re Ferrè mreferre

View GitHub Profile
@mreferre
mreferre / Hyper-V-NAT.ps1
Last active June 8, 2023 10:08
PS commands to create a Hyper-V internal switch and NAT rules
# the following 3 lines of PowerShell creates an Internal Switch on Hyper-V (https://www.petenetlive.com/KB/Article/0001384)
New-VMSwitch -SwitchName "NAT-Switch" -SwitchType Internal
New-NetIPAddress -IPAddress 192.168.200.1 -PrefixLength 24 -InterfaceAlias "vEthernet (NAT-Switch)"
New-NetNAT -Name "NAT-Network" -InternalIPInterfaceAddressPrefix 192.168.200.0/24
# the following line of PowerShell creates a DNAT rule (80->80) from the outside into a VM (previously created an running on the Switch with IP .10) (https://www.petri.com/create-nat-rules-hyper-v-nat-virtual-switch)
Add-NetNatStaticMapping -ExternalIPAddress "0.0.0.0/24" -ExternalPort 80 -Protocol TCP -InternalIPAddress "192.168.200.10" -InternalPort 80 -NatName NAT-Network
@mreferre
mreferre / user-data-alex
Created October 24, 2022 07:19
user-data-alex
#!/bin/bash
set -e -x
export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get upgrade -y
echo Building and installing the amazon-efs-utils #(reference: https://gist.github.com/ryanmaclean/c873c9a86f0bc3ee3a260882e73edecb)
apt-get -y install git binutils
git clone https://github.com/aws/efs-utils
cd efs-utils
./build-deb.sh
args: {
scale_ui: 2
scale_appserver: 3
}
containers: {
"yelb-ui": {
image: "mreferre/yelb-ui:0.7"
scale: args.scale_ui
ports:
@mreferre
mreferre / k8s-sa
Created April 26, 2018 12:34
Kubernetes Service Account
# Inspired by: https://stackoverflow.com/questions/42170380/how-to-add-users-to-kubernetes-kubectl
# this script creates a service account (user1) on a Kubernetes cluster (tested with AWS EKS 1.9)
# prereqs: a kubectl ver 1.10 installed and proper configuration of the heptio authenticator
# this has been tested on Linux in a Cloud9 environment (for MacOS the syntax may be slightly different)
**************************************************
******* Create an account *******
**************************************************
# Create service account for user user1
kubectl create sa user1
@mreferre
mreferre / yelb-k8s-appmesh-gateway.yaml
Created May 21, 2020 09:05
Yelb YAML for AppMesh GW
apiVersion: v1
kind: Service
metadata:
name: redis-server
labels:
app: redis-server
tier: cache
spec:
type: ClusterIP
ports:
@mreferre
mreferre / nginx.conf
Created May 21, 2020 09:02
/etc/nginx/nginx.conf (sample of reverse proxy config)
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
@mreferre
mreferre / Yelb-EC2-Postgres-Redis.yaml
Last active February 11, 2020 20:00
Yelb Plumbing
---
AWSTemplateFormatVersion: '2010-09-09'
Description: 'EC2 Postgres and EC2 Redis deployments for Yelb backends'
Parameters:
KeyName:
Description: Name of an existing EC2 KeyPair to enable SSH access to the instance
(where applicable)
Type: AWS::EC2::KeyPair::KeyName
ConstraintDescription: Can contain only ASCII characters.
InstanceType:
@mreferre
mreferre / Dockerfile
Last active August 20, 2019 00:16
Dockerfile (from alpine) for building a Greengrass 1.7 image for ARMv7
FROM alpine
MAINTAINER massimo@it20.info
# Set ENV_VAR for Greengrass RC to be untarred inside Docker Image
ARG greengrass_release
ENV GREENGRASS_RELEASE=${greengrass_release}
# This Dockerfile builds a GG image for the ARMv7 platform
# curl this file: https://d1onfpft10uf5o.cloudfront.net/greengrass-core/downloads/1.7.0/aws-greengrass-docker-1.7.0.tar.gz
# untar it
# This should work on Kubernetes deployments on AWS that have an ALB ingress controller as well as App Mesh components deployed.
apiVersion: appmesh.k8s.aws/v1beta1
kind: Mesh
metadata:
name: MESH_NAME
---
apiVersion: appmesh.k8s.aws/v1beta1
kind: VirtualNode
metadata:
name: nginx-v1
# This should work on Kubernetes deployments on AWS that have an ALB ingress controller as well as App Mesh components deployed.
apiVersion: appmesh.k8s.aws/v1beta1
kind: Mesh
metadata:
name: MESH_NAME
---
apiVersion: appmesh.k8s.aws/v1beta1
kind: VirtualNode
metadata:
name: yelb-ui-node