Skip to content

Instantly share code, notes, and snippets.

View radu-matei's full-sized avatar

Radu Matei radu-matei

View GitHub Profile
kube-toolkit
-------------
Intro
-----
- toolkit for creating gRPC-based CLI and web tools for Kubernetes, and it should be used as a starting point in new awesome tools for Kubernetes
- CLI tooks: kubectl, helm draft
- web tools: Kubernetes UI Dashboard, Monocular
bash -c while true ; do /usr/bin/kubelet --docker-disable-shared-pid=false --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt --cadvisor-port=0 --cgroup-driver=cgroupfs --fail-swap-on=false ; sleep 5; done &
{
while true ; do /usr/bin/kubelet --docker-disable-shared-pid=false --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt --cadvisor-port=0 --cgroup-drive
apiVersion: v1
kind: Pod
metadata:
name: mc1
spec:
volumes:
- name: html
emptyDir: {}
containers:
- name: 1st
FROM ubuntu:16.04
LABEL maintainer Radu Matei <matei.radu94@gmail.com>
# Versions of kubectl and helm
ENV KUBE_VERSION="v1.8.0"
ENV HELM_VERSION="v2.6.2"
RUN apt-get update && apt-get install -y \
curl
import fs = require('fs');
import { Observable } from 'rxjs';
let exec = require('child_process').exec;
const git_commit = new Observable<string>(s => {
exec('git rev-parse HEAD',
function (error: Error, stdout: Buffer, stderr: Buffer) {
if (error !== null) {
console.log('git error: ' + error + stderr);
syntax = "proto3";
package rpc;
service KTK {
rpc GetVersion(Empty) returns (Version){}
rpc ServerStream(Empty) returns(stream StreamingMessage){}
}
message Version {
string sem_ver = 1;
invocation_id:\"bc37cc22-c224-47f2-9c91-958f5387604d\"
function_id:\"d208f451-a62b-4603-90d1-ff2d66fb37c4\"
input_data:<
name:\"myBlob\"
data:<
string:\"blob content...\\n\"
>
>
trigger_metadata:<
func handleWebhook(w http.ResponseWriter, r *http.Request) {
decoder := json.NewDecoder(r.Body)
var webhookData WebhookData
err := decoder.Decode(&webhookData)
if err != nil {
log.Printf("cannot decode request body: %v", err)
}
defer r.Body.Close()
func updateAzureContainer(resourceGroupName, containerGroupName string, webhookData WebhookData) error {
containerGroupsClient, err := getContainerGroupsClient()
if err != nil {
return fmt.Errorf("cannot get container groups client: %v", err)
}
containerGroup, err := containerGroupsClient.Get(resourceGroupName, containerGroupName)
if err != nil {
return fmt.Errorf("cannot get container group: %v", err)
}
func getContainerGroupsClient() (containerinstance.ContainerGroupsClient, error) {
var containerGroupsClient containerinstance.ContainerGroupsClient
oAuthConfig, err := adal.NewOAuthConfig(defaultActiveDirectoryEndpoint, tenantID)
if err != nil {
return containerGroupsClient, fmt.Errorf("cannot get oAuth configuration: %v", err)
}
token, err := adal.NewServicePrincipalToken(*oAuthConfig, clientID, clientSecret, defaultResourceManagerEndpoint)
if err != nil {