Skip to content

Instantly share code, notes, and snippets.

View jangaraj's full-sized avatar
💭
Devopsing, Dockerising, Grafanasing, Keycloaking, Clouding, Lambdasing,...

Jan Garaj jangaraj

💭
Devopsing, Dockerising, Grafanasing, Keycloaking, Clouding, Lambdasing,...
View GitHub Profile
@jangaraj
jangaraj / Dockerfile
Last active March 22, 2024 13:50
Dockerfile to build pyodbc and unixODBC for MSSQL as a lambda layer for Python 3.8 in the Dockerfile
# inspired by https://gist.github.com/diriver63/b72a954fa0da4851d89e5086aa13c6e8
# build from online Dockerfile (use always URL to the latest Dockerfile):
# docker build --rm=true -t local/pyodbc-layer https://gist.githubusercontent.com/jangaraj/bf9a1bbf71bd6d4b9616828b29096d19/raw/a3a5f35dbafd50b9623c9d3886cb3f4b2d800d92/Dockerfile
# build from the local Dockerfile
# docker build --rm=true -t local/pyodbc-layer .
# copy pyodbc-layer.zip from the image and destroy image
# docker run -d --name delme local/pyodbc-layer sleep 1000 && docker cp delme:/tmp/pyodbc-layer.zip . && docker rm -f delme && docker rmi -f local/pyodbc-layer
@jangaraj
jangaraj / okta_flask_oidc_auth_example_with_pkce.py
Created November 24, 2023 22:38 — forked from cleavenworth/okta_flask_oidc_auth_example_with_pkce.py
This is a sample Python 3 app that hosts an OIDC app with Flask to authenticate against Okta and run example calls against the new Okta OAuth-scoped APIs. This example can also be used to host authentication for an OIDC webapp that does not use the OAuth API scopes. This was created with an MVP in mind as an example to demonstrate the ease of in…
#!/usr/bin/env python3
"""This is a sample Python 3 app that hosts an OIDC app with Flask to
authenticate against Okta and run example calls against the new Okta OAuth-scoped APIs.
This example can also be used to host authentication for an OIDC webapp that does not use
the OAuth API scopes.
This was created with an MVP in mind as an example to demonstrate the ease of interacting
with Okta's Authroization Code flow and should not be used in production without
additions to error/state-handling and strong scrutiny."""
@jangaraj
jangaraj / remote_pb2.py
Created July 29, 2022 18:26
Promtheus python proto files
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: remote.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
@jangaraj
jangaraj / nbf.js
Created October 23, 2021 08:02
NBF scripted mapper for Keycloak OIDC clients
# don't use Math.round, because it may round it into the
# future and it may be a problem for implementation, where
# nbf claim is verified
secondsSinceEpoch = Math.floor(new Date().getTime()/1000)
exports secondsSinceEpoch
@jangaraj
jangaraj / pyodbc-unixODBC-lambda-layer
Last active June 22, 2021 09:31 — forked from diriver63/pyodbc-unixODBC-lambda-layer
pyodbc and unixODBC for MSSQL as a lambda layer - Python 3.8
# use https://github.com/lambci/docker-lambda to simulate a lambda environment
docker run -it --rm \
--entrypoint bash \
-e ODBCINI=/opt/odbc.ini \
-e ODBCSYSINI=/opt/ \
-v $PWD:/export \
lambci/lambda:build-python3.8
# download and install unixODBC
# http://www.unixodbc.org/download.html
kubectl config set-cluster default-cluster --server=https://master_ip --certificate-authority=ssl/ca.pem
kubectl config set-credentials default-admin --certificate-authority=ssl/ca.pem --client-key=ssl/admin-key.pem --client-certificate=ssl/admin.pem
kubectl config set-context default-system --cluster=default-cluster --user=default-admin
kubectl config use-context default-system
# obviously you need the CA used to bootstrap your cluster and all the certificates
@jangaraj
jangaraj / app.py
Last active November 10, 2020 07:47
Connect to Endomondo API with local credentials
import requests
import uuid, socket
class Endomondo:
# user your own non OIDC credentials here
email = "<EMAIL>"
password = "<PASSWORD>"
country = 'GB'
device_id = str(uuid.uuid5(uuid.NAMESPACE_DNS, socket.gethostname()))
@jangaraj
jangaraj / errcron.sh
Last active January 29, 2019 10:02
Basic cron wrapper
#!/bin/bash
# Reporting nonzero RC executions to syslog
# * * * * * root /usr/local/bin/errcron.sh <command>
# Installation: wget -O /usr/local/bin/errcron.sh https://gist.githubusercontent.com/jangaraj/c4c9262fe04156a40b02/raw/580ab988f9ff28c01cc9ee729ac9f0fe175b3a80/errcron.sh
OUT=$("$@" 2>&1)
RESULT=$?
if [ $RESULT -ne 0 ]
then
@jangaraj
jangaraj / aws_lambda_backup_grafana_dashboards.py
Last active December 6, 2018 09:54
AWS Lambda Function to backup Grafana 5+ dashboards into S3
# multiprocess Lambda function to backup all Grafana dashboards to S3 bucket
import datetime, boto3
from botocore.vendored import requests
from multiprocessing import Process, Pipe
config = {
'domain.com': {
'url': 'https://domain.com',
'key': '=grafana-api-key-with-read-permissions-for-all-dashboards=',
@jangaraj
jangaraj / Dockerfile
Created October 5, 2018 05:49
Keycloak-gatekeeper
FROM golang:1.11 as build
ARG VERSION=master
ARG GOOS=linux
ARG GOARCH=amd64
ENV AUTHOR keycloak
ENV NAME keycloak-gatekeeper
RUN go get -v -d github.com/$AUTHOR/$NAME 2>/dev/null; \
cd $GOPATH/src/github.com/$AUTHOR/$NAME \
&& git checkout $VERSION \
&& sed -i 's/keycloak-proxy/keycloak-gatekeeper/g' Makefile \