Skip to content

Instantly share code, notes, and snippets.

View mprokopov's full-sized avatar

Maksym Prokopov mprokopov

View GitHub Profile
@mprokopov
mprokopov / getVersion.groovy
Created December 12, 2019 07:48
jenkins get auto version script
def call() {
def TAG_SHA = sh(returnStdout: true, script: 'git rev-list --tags --no-walk --max-count=1').trim()
def VERSION_TAG = sh(returnStdout: true, script: "git tag --points-at=${TAG_SHA}").trim()
def COMMITS_COUNT = sh(returnStdout: true, script: "git rev-list ${TAG_SHA}.. --count").trim()
def PRE_RELEASE_NUMBER = COMMITS_COUNT.toInteger() + 1
def (major,minor,patch) = VERSION_TAG.tokenize('.')
// default increment, only master and release take versions from tag or release name
def nextVersion = "${ major }.${ minor.toInteger() + 1 }.${patch}"
@mprokopov
mprokopov / example.ledger
Created January 16, 2020 07:59
ledger example
apply tag dining
2020/01/15 Cafe
; same as :dining: here
Expenses:Cafe 1000 UAH
Assets:Cash
end apply tag
brew cask install chrome
brew cask install firefox
brew cask install emacs-plus
brew cask install sequel-pro
@mprokopov
mprokopov / Vagrantfile
Last active April 23, 2020 17:22
Create Vagrant VM with DevOps tools
Vagrant.configure("2") do |config|
## VM for target deployments
config.vm.define "target", autostart: false do |target|
target.vm.box = "centos/7"
target.vm.network "forwarded_port", guest: 8000, host: 8000
target.vm.network "private_network", ip: "10.10.50.3"
target.vm.provider "virtualbox" do |vb|
vb.memory = "512"
end
# target.vm.synced_folder "../target_home_folder", "/home/vagrant/target"
@mprokopov
mprokopov / kind.yml
Last active April 7, 2020 18:26
K8S kind config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
# WARNING: It is _strongly_ recommended that you keep this the default
# (127.0.0.1) for security reasons. However it is possible to change this.
apiServerAddress: "10.10.50.4"
# By default the API server listens on a random open port.
# You may choose a specific port but probably don't need to in most cases.
# Using a random port makes it easier to spin up multiple clusters.
apiServerPort: 6443
@mprokopov
mprokopov / main.go
Created April 25, 2020 07:58
simple go http server
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
)
type Simple struct {
@mprokopov
mprokopov / web.rb
Last active May 14, 2020 15:56
simple ruby webserver
require 'sinatra'
require 'json'
set :bind, '0.0.0.0'
set :port, 8080
get '/' do
{ name: 'Hello',
description: 'World',
Url: request.url }.to_json
@mprokopov
mprokopov / docker-compose.yml
Created April 26, 2020 09:21
example of docker-compose YAML file
version: "3.5"
services:
redis:
image: redis:latest
networks:
- dev
mysql:
image: mysql:latest
environment:
MYSQL_USER: myuser
@mprokopov
mprokopov / create_k8s_admin_token.sh
Created May 3, 2020 12:32
Simple steps for k8s admin token creation
kubectl create serviceaccount k8sadmin -n kube-system
kubectl create clusterrolebinding k8sadmin --clusterrole=cluster-admin --serviceaccount=kube-system:k8sadmin
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | (grep k8sadmin || echo "$_") | awk '{print $1}') | grep token: | awk '{print $2}'
// main.go
func SimpleFactory (host string) Simple {
return Simple{"Hello", "World", host}
}
// main_test.go
import "testing"