Skip to content

Instantly share code, notes, and snippets.

View maniankara's full-sized avatar

Anoop Vijayan Maniankara maniankara

View GitHub Profile
@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 {
@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
# This is an extract from here: http://jayunit100.blogspot.fi/2017/07/helm-on.html
apiVersion: v1
kind: ServiceAccount
metadata:
name: helm
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
$ 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
Description Error Resolution
No Jenkins service found in development namespace  anoop@myMac ~ $ jx create lile
? Pick a name for the new project: mygrpc
Created lile project at mygrpcect: (myapp)
mygrpc error: no Jenkins service be found in the development namespace!
Are you sure you installed Jenkins X? Try: http://jenkins-x.io/getting-started/
anoop@myMac ~ $
Your user account is lacking permissions, see section 'Elevate privileges for ClusterRoleBindings'
jx hangs/kubectl top node shows heavy load  anoop@myMac ~ $ kubectl top nodes | awk {'print $1 " " $3'}
NAME CPU%
gke-jx-default-pool-47e201fa-hwc9 14%
gke-jx-default-pool-47e201fa-pjmd 82%
gke-jx-default-pool-47e201fa-v3cl 23%
Increase the number of nodes atleast to 4
jenkins-maven node offline [Pipeline] node``Still waiting to schedule task``All nodes of label ‘jenkins-maven’ are offline check the status of all th
@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
@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"}]}`
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
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 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) {}