Skip to content

Instantly share code, notes, and snippets.

View maniankara's full-sized avatar

Anoop Vijayan Maniankara maniankara

View GitHub Profile
@maniankara
maniankara / LICENSE-2.0
Last active May 26, 2018 17:46
Get your local ip
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
@maniankara
maniankara / kubernetes-csi-versions.csv
Created August 12, 2018 05:02
Kubernetes CSI release versions and Kubernetes support
CONTAINER CSI-SPEC RELEASE KUBERNETES-SUPPORT
driver-registrar v0.3 v0.3.0 Beta (v1.11)
external-provisioner v0.3 v0.3.0 Beta (v1.11)
external-attacher v0.3 v0.3.0 Beta (v1.11)
service Identity {
// return the version and name of the plugin
rpc GetPluginInfo(GetPluginInfoRequest)
returns (GetPluginInfoResponse) {}
// reports whether the plugin has the ability of serving the Controller interface
rpc GetPluginCapabilities(GetPluginCapabilitiesRequest)
returns (GetPluginCapabilitiesResponse) {}
// called by the CO just to check whether the plugin is running or not
rpc Probe (ProbeRequest)
returns (ProbeResponse) {}
service Controller {
// provisions a volume
rpc CreateVolume (CreateVolumeRequest)
returns (CreateVolumeResponse) {}
// deletes a previously provisioned volume
rpc DeleteVolume (DeleteVolumeRequest)
returns (DeleteVolumeResponse) {}
// make a volume available on some required node
service Node {
// temporarily mount the volume to a staging path
rpc NodeStageVolume (NodeStageVolumeRequest)
returns (NodeStageVolumeResponse) {}
// unmount the volume from staging path
rpc NodeUnstageVolume (NodeUnstageVolumeRequest)
returns (NodeUnstageVolumeResponse) {}
// mount the volume from staging to target path
@maniankara
maniankara / unmarshal.go
Created August 24, 2018 22:21
Unmarshalling a arbitrary json list. There are several examples of nested list but not at root
// try here: https://play.golang.org/p/SChzGHXYgOU
package main
import (
"encoding/json"
"fmt"
)
func main() {
birdJson := `{"birds":[{"pigeon":"likes to perch on rocks","eagle":"bird of prey"}]}`
@maniankara
maniankara / provision-moosefs.sh
Last active September 7, 2018 08:40
Script for provisioning moosefs chunk server on redhat/amazon based distros
#!/bin/bash
ip=$1
size=$2
device=$3
# Install certificates and Repository
curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
# Install moosefs-chunkserver, fuse and others
yum install -y gnupg2 ca-certificates e2fsprogs xfsprogs moosefs-chunkserver
# Provision and mount volume
$ kubectl describe po/nginx-77c5cd5446-8rcjm
Name: nginx-77c5cd5446-8rcjm
Namespace: default
Priority: 0
PriorityClassName: <none>
Node: <none>
Labels: app=nginx
pod-template-hash=77c5cd5446
Annotations: <none>
Status: Pending
@maniankara
maniankara / fe-be-lb-stack.yaml
Created May 10, 2019 14:59
Deploy a node frontend with elasticsearch backend
---
apiVersion: v1
kind: Service
metadata:
name: loadbalancer
spec:
selector:
app: node
ports:
- protocol: TCP
@maniankara
maniankara / walk.go
Last active May 30, 2019 19:20
Simple Golang snippet which checks for file availability on filesystem - Used in blog
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
err := filepath.Walk("/home/go", func(path string, info os.FileInfo, err error) error {