Skip to content

Instantly share code, notes, and snippets.


Chiradeep Vittal chiradeep

  • Cupertino,CA
View GitHub Profile
chiradeep /
Last active Apr 16, 2020
Google App Script to Collect GH Traffic Stats into Google Sheets
// Create a sheet with the first sheet called 'TrafficData'. Cell Values are:
// A1: Repo Traffic Collector
// A3: Organization B3: <org value>
// A4: Repo B4: <repo name>
// A7: Date, B7: Views, C7: Uniques, D7: Weeknumber
//Tools -> Script Editor
//Add this script, fill in your GitHub TOKEN (
//Run the onOpen script - you will be warned it is insecure, but accept anyway. This should add a menu item to your sheet
//Use the Custom GitHub menu to run the getRepoTrafficStats function
chiradeep / citrix-k8s-cpx-ingress.yaml
Last active Nov 21, 2019
Deploy Citrix CPX as an Ingress Controller with Prometheus monitoring
View citrix-k8s-cpx-ingress.yaml
kind: ClusterRole
name: cpx-ingress-k8s-role
- apiGroups: [""]
resources: ["services", "endpoints", "ingresses", "pods", "secrets"]
verbs: ["*"]
- apiGroups: ["extensions"]
chiradeep / gist:80a76a661309b193a458351814bf398f
Created Sep 21, 2018
Watch for changes in Endpoints using K8s native Python client
View gist:80a76a661309b193a458351814bf398f
from kubernetes import client, config, watch
api_v1 = client.CoreV1Api()
def watch_endpoints():
w = watch.Watch()
for event in, "default"):
View slo.json
"$schema": "",
"width": 720,
"height": 720,
"padding": 5,
"autosize": "none",
"signals": [
"name": "labels", "value": true,
chiradeep /
Last active Jul 15, 2018
Export existing content switching policies and cs vserver into NetScaler Ansible playbook
import requests
from collections import OrderedDict
import yaml
import yamlloader
cs_vserver = 'test_csvserver'
ns_host = 'localhost:32769'
ns_login = 'nsroot'
ns_password= 'nsroot'
url = 'http://%s/nitro/v1/config/csvserver_cspolicy_binding/%s' % (ns_host, cs_vserver)
View index.html
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="stylesheet" href="">
<script src="" charset="utf-8"></script>
<style>.cmx-user-scene4 .cmx-text-border .cmx-path {stroke: orange}</style>
<div style="max-width:900px; -webkit-transform:rotate(0deg)">
<scene id="scene1">
<label t="translate(0,346)">

Integrate a Next Gen Firewall with Citrix NetScaler VPX in AWS


Quickly deploy a single tier webserver farm solution integrating the Citrix NetScaler loadbalancer and a Next Generation firewall. Solution components include:

  • a CloudFormation template (vpc_2azs.json) to deploy a VPC across 2 zones. There are 2 subnets in each zone: a Public Subnet and a Private Subnet. Internet facing appliances such as the NetScaler and NG FW are deployed in the Public Subnet while the web server farm is deployed in the private subnet.
  • a CloudFormation template (ns.1nic.json) to deploy a single NetScaler VPX appliance in the Public Subnet in one zone
  • a CloudFormation template (webservers.json)to deploy 2 web servers in the Private Subnet in the same zone as the NetScaler VPX
  • a CloudFormation template (pa-fw.json) to deploy a single Next Gen Firewall (Palo Alto VM Series) in the Public Subnet with a network interface in the Private Subnet (same zone as above).
chiradeep /
Created Aug 10, 2016
Simple Jinja2 template to generate HAProxy cfg
from jinja2 import Environment, FileSystemLoader
def render_haproxy_cfg(services):
env = Environment(loader=FileSystemLoader ('templates'), trim_blocks=True)
templ = env.get_template('haproxy.jinja2.cfg')
outp = templ.render(services=services)
outp = templ.render(services=services)
with open('haproxy.cfg', 'wb') as f:
set -x
ipaddr=$(ip addr show dev eth0 | grep "inet " | cut -d ' ' -f 6 | cut -f 1 -d '/')
[ -n "$master_ip" ] || exit 1
set -x
install_docker() {
curl -fsSL | sh
systemctl start docker
install_etcd() {
You can’t perform that action at this time.