Skip to content

Instantly share code, notes, and snippets.

View utkuozdemir's full-sized avatar

Utku Özdemir utkuozdemir

View GitHub Profile
@utkuozdemir
utkuozdemir / omni-changelog.md
Created December 11, 2025 14:48
omni-changelog.md

Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)

This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.

1. New Required Flag You must set the new --sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.

2. Audit Logging Changes A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.

  • Default: true.
@utkuozdemir
utkuozdemir / middlewares_after_mux.go
Created April 9, 2025 08:25
First MUX, then middlewares
package main
import (
"log"
"net/http"
)
func main() {
if err := rightWay(); err != nil {
panic(err)
@utkuozdemir
utkuozdemir / main.go
Last active January 18, 2024 11:04
TCP Socket Example in Golang
package main
import (
"context"
"errors"
"fmt"
"io"
"log"
"net"
"os"
@utkuozdemir
utkuozdemir / regex.txt
Last active January 18, 2023 16:42
JS regex to validate Go time.Duration
^[-+]?(((\d+(\.\d*)?|\d*(\.\d+)+)(ns|us|µs|ms|s|m|h))|0)+$
@utkuozdemir
utkuozdemir / migrate.sh
Created November 14, 2022 21:09
pv-migrate in a loop
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
PVCS=(
"src-kubeconfig1/src-ctx1/src-ns1/src-pvc1:dest-kubeconfig1/dest-ctx1/dest-ns1/dest-pvc1"
"src-kubeconfig2/src-ctx2/src-ns2/src-pvc2:dest-kubeconfig2/dest-ctx2/dest-ns2/dest-pvc2"
"src-kubeconfig3/src-ctx3/src-ns3/src-pvc3:dest-kubeconfig3/dest-ctx3/dest-ns3/dest-pvc3"
)
@utkuozdemir
utkuozdemir / JsonTest.kt
Last active October 27, 2022 07:45
Kotlin + Jackson Pretty Print Override
package org.utkuozdemir.json
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter
import com.fasterxml.jackson.core.util.Separators
import com.fasterxml.jackson.databind.ObjectMapper
import org.junit.jupiter.api.Test
data class Person(val name: String, val age: Int)
class CustomPrettyPrinter : DefaultPrettyPrinter() {
@utkuozdemir
utkuozdemir / clear-kvm.sh
Created July 6, 2022 17:09
Clear all KVM machines
#!/usr/bin/env bash
set -euo pipefail
virsh list --all | \
awk '{print $2}' | \
xargs -L1 -I {} virsh destroy {} || true
virsh list --all | \
awk '{print $2}' | \
xargs -L1 -I {} virsh undefine {} || true
@utkuozdemir
utkuozdemir / linux-bridge-demo.sh
Last active June 14, 2022 12:13
How to configure a Linux bridge
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
# https://developers.redhat.com/blog/2018/10/22/introduction-to-linux-interfaces-for-virtual-networking
# delete everything
sudo killall nc || true
sudo iptables -D FORWARD -i br1 -o br1 -j ACCEPT || true
sudo ip netns del ns1 || true
@utkuozdemir
utkuozdemir / sync.sh
Created June 2, 2022 10:01
Sync current directory to remote using Rsync for remote development
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]:-$0}"; )" &> /dev/null && pwd 2> /dev/null; )"
LOCAL_DIR=$SCRIPT_DIR
REMOTE_SSH_USER=utku
REMOTE_SSH_HOST=u-home-pc-realtek-nic
@utkuozdemir
utkuozdemir / tail.go
Last active July 24, 2024 08:26
Tail Kubernetes pod logs in Golang, reconnect if the stream times out/fails
package main
import (
"bufio"
"context"
"fmt"
corev1 "k8s.io/api/core/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
"time"