Skip to content

Instantly share code, notes, and snippets.

View TomLous's full-sized avatar
:shipit:
D̴̰͈͍̟͚́̓̉̄͂̈́ê̵͆̈͐͠v̶ẽ̴̱͇̰̜l̴̹̫̃̇́̏͘ǫ̸͍̻̜̯̲̙͇̣̕p̵̐̈́̐͊͂ȉ̴̳̺n̷̻͈̯͇͌͋̊̄̚g̸̛̭͂̍

Tom Lous TomLous

:shipit:
D̴̰͈͍̟͚́̓̉̄͂̈́ê̵͆̈͐͠v̶ẽ̴̱͇̰̜l̴̹̫̃̇́̏͘ǫ̸͍̻̜̯̲̙͇̣̕p̵̐̈́̐͊͂ȉ̴̳̺n̷̻͈̯͇͌͋̊̄̚g̸̛̭͂̍
View GitHub Profile
@TomLous
TomLous / set-token.sh
Last active September 18, 2023 09:27
Set AWS tokens for MFA from CLI using 1password
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
unset AWS_SESSION_TOKEN
OTP_ID=$1
OTP=$(op item get $OTP_ID --otp)
DEVICE_ID=$(aws iam list-mfa-devices | jq -r '.MFADevices[0].SerialNumber')
RESULT=$(aws sts get-session-token --serial-number $DEVICE_ID --duration-seconds 129600 --token-code $OTP)
@TomLous
TomLous / output.sh
Last active June 14, 2022 12:39
Stream the content of a remote file to a locahost port with custom interval
ncat localhost 8888
package functions.spark
import java.sql.Timestamp
import java.time.Instant
import java.util.UUID
case class CDFRecord[Out <: Product, In <: Convertable[Out]](value: In) {
def convert: Out = {
val ingestedAt = Timestamp.from(Instant.now())
val ingestId = UUID.randomUUID().toString
val oracleLinux = "8"
val jvmVersion = "17"
val graalVersion = "22"
GraalVMNativeImage / containerBuildImage := GraalVMNativeImagePlugin
.generateContainerBuildImage("ghcr.io/graalvm/graalvm-ce:ol$oracleLinux-java$jvmVersion-$graalVersion")
.value,
graalVMNativeImageOptions := Seq(
"--static",
"--verbose",
@TomLous
TomLous / setup-graal.md
Created March 18, 2021 12:02
GraalVM for sbt

Install GraalVM on Mac with Honebrew & jenv

brew install --cask graalvm/tap/graalvm-ce-java11

add to ~/.zshrc

export GRAALVM_HOME="/Library/Java/JavaVirtualMachines/graalvm-ce-java11-21.0.0/Contents/Home/"

allow to execute graalvm

sudo xattr -r -d com.apple.quarantine /Library/Java/JavaVirtualMachines/graalvm-ce-java11-21.0.0

install native-image tool

@TomLous
TomLous / values-minikube.yaml
Created January 1, 2020 19:24
Env specific values for minikube
environment: minikube
serviceAccount: spark-spark
arguments:
- "/mnt/data-in/"
- "/mnt/data-out/"
volumes:
- name: input-data
hostPath:
path: /input-data
- name: output-data
@TomLous
TomLous / sparkapplication.yaml
Last active January 1, 2020 19:23
Custom SparkApplication resource template
apiVersion: sparkoperator.k8s.io/v1beta2
kind: SparkApplication
metadata:
name: {{ .Release.Name | trunc 63 }}
labels:
chartname: {{ .Chart.Name | trunc 63 | quote }}
release: {{ .Release.Name | trunc 63 | quote }}
revision: {{ .Release.Revision | quote }}
sparkVersion: {{ .Values.sparkVersion | quote }}
version: {{ .Chart.Version | quote }}
@TomLous
TomLous / Dockerfile
Last active January 1, 2020 11:00
Base image spark-runner docker file
# Information
# Main Spark Docker file code: https://github.com/apache/spark/blob/master/resource-managers/kubernetes/docker/src/main/dockerfiles/spark/Dockerfile
ARG SPARK_IMAGE=gcr.io/spark-operator/spark:v2.4.4
FROM ${SPARK_IMAGE}
ARG VERSION
ARG VCS_REF
ARG BUILD_DATE
@TomLous
TomLous / build-4.sbt
Last active January 1, 2020 19:30
build.sbt part 5 for Medium Post
lazy val root = (project in file("."))
.enablePlugins(sbtdocker.DockerPlugin)
.enablePlugins(AshScriptPlugin)
.settings(
commonSettings,
assemblySettings,
dockerSettings,
runLocalSettings,
name := "transform-movie-ratings",
Compile / mainClass := Some("xyz.graphiq.BasicSparkJob"),
@TomLous
TomLous / build-3.sbt
Last active January 1, 2020 21:09
build.sbt part 4 for Medium Post
// Task to create helm chart
lazy val createImporterHelmChart: Def.Initialize[Task[Seq[File]]] = Def.task {
val chartFile = baseDirectory.value / "helm" / "Chart.yaml"
val valuesFile = baseDirectory.value / "helm" / "values.yaml"
val chartContents =
s"""# Generated by build.sbt. Please don't manually update
|apiVersion: v1
|name: $domain-${name.value}
|version: ${version.value}