Skip to content

Instantly share code, notes, and snippets.

View slok's full-sized avatar
⚙️
Building simple solutions

Xabier Larrakoetxea Gallego slok

⚙️
Building simple solutions
View GitHub Profile
@slok
slok / auth0-cookie-decrypt.go
Created November 6, 2025 16:10
Decrypt auth0 cookies to get the Auth0 id token
@slok
slok / big_slo.yaml
Created November 4, 2025 21:34
A big SLO to test sloth big rules generation
apiVersion: sloth.slok.dev/v1
kind: PrometheusServiceLevel
metadata:
name: big-slo-service
namespace: test-ns
spec:
labels:
an: example
big: files
this: is
@slok
slok / sloth-slo-plugin.go
Created October 23, 2025 06:17
Example for the docs as an Sloth SLO plugin remote retrieval
package plugin
import (
"context"
"encoding/json"
"github.com/slok/sloth/pkg/common/conventions"
utilsdata "github.com/slok/sloth/pkg/common/utils/data"
pluginslov1 "github.com/slok/sloth/pkg/prometheus/plugin/slo/v1"
)
@slok
slok / k8s-port-forward.go
Created August 31, 2024 16:09
Kubernetes port forward example in go (without kubectl) using official K8s Go libs.
package main
import (
"context"
"fmt"
"log/slog"
"net/http"
"net/url"
"os"
"os/signal"
version: "prometheus/v1"
service: "myservice"
labels:
owner: "myteam"
tier: "2"
slos:
# We allow failing (5xx and 429) 1 request every 1000 requests (99.9%).
- name: "requests-availability"
objective: 99.9
description: "Common SLO based on availability for HTTP request responses."
@slok
slok / yq-k8s-tricks.md
Created March 27, 2021 08:10
yq Kubernetes tricks

Add Namespace to all

yq eval -i '.metadata.namespace |= "argo"' "${FILE}"

Add protocol: TCP to the Services that have missing.

yq eval -i 'select(.kind == "Service") |= .spec.ports[] |= select(has("protocol") | not) |= .protocol="TCP" ' ${FILE}
@slok
slok / pprof.md
Last active November 23, 2025 09:06
Go pprof cheat sheet

Enable profiling

Default http server

import (
    _ "net/http/pprof"
    "net/http"
)
package k8sunstructured_test
import (
"bytes"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
@slok
slok / main.go
Created June 4, 2018 15:36
Kubernetes controller that updates annotation on pods with `kooper: test` label
package main
import (
"os"
"path/filepath"
"time"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
@slok
slok / kooper-vgo.log
Created May 26, 2018 07:04
vgo kooper try
$ time vgo build
vgo: finding github.com/google/cadvisor v0.0.0-20170309230114-17543becf905
vgo: finding gopkg.in/olivere/elastic.v2 v2.0.0-20151008152123-3cfe88295d20
vgo: finding golang.org/x/oauth2 v0.0.0-20150321034511-ca8a464d23d5
vgo: finding golang.org/x/net v0.0.0-20151120032300-5627bad10b82
vgo: finding github.com/influxdb/influxdb v0.0.0-20151125225445-9eab56311373
vgo: finding github.com/go-ini/ini v0.0.0-20160207163330-193d1ecb466b
vgo: finding github.com/eapache/queue v0.0.0-20150606115303-ded5959c0d4e
vgo: finding github.com/coreos/rkt v0.0.0-20160513154944-14437382a98e
FindRepo: Get https://speter.net/go/exp/math/dec/inf?go-get=1: x509: certificate signed by unknown authority