Skip to content

Instantly share code, notes, and snippets.

View liggitt's full-sized avatar

Jordan Liggitt liggitt

  • Google
  • United States
View GitHub Profile
@liggitt
liggitt / k8s-stats.sh
Last active April 1, 2025 15:13
Kubernetes dependency stats
#!/usr/bin/env bash
# Graph at:
# https://docs.google.com/spreadsheets/d/1gtfXBuvBbS5OGHDX78Ax7I9ZKwNbn9l895Y6QlhhJGc/edit
#
# Results at:
# https://gist.github.com/liggitt/c85167509c56481c46c7bf602616041f
go install github.com/hhatto/gocloc/cmd/gocloc@latest
go install github.com/kubernetes-sigs/depstat@latest
DEBUG CREATED:
{
"metadata": {
"name": "test",
"namespace": "default",
"uid": "1270bfa8-8a02-4e06-862d-08e9e0cca377",
"resourceVersion": "2488",
"generation": 1,
"creationTimestamp": "2025-03-04T19:25:20Z",
"managedFields": [
git grep -E '// (INFO|WARNING):.*(requires manual conversion|opted out of conversion generation)'
cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.conversion.go: // INFO: in.ComponentConfigs opted out of conversion generation
cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.conversion.go: // INFO: in.CIKubernetesVersion opted out of conversion generation
cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.conversion.go: // WARNING: in.Proxy requires manual conversion: does not exist in peer-type
cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.conversion.go: // INFO: in.CIImageRepository opted out of conversion generation
cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.conversion.go: // WARNING: in.EncryptionAlgorithm requires manual conversion: does not exist in peer-type
cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.conversion.go: // WARNING: in.ExtraArgs requires manual conversion: inconvertible types (map[string]string vs []k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm.Arg)
cmd/kubeadm/app/apis/
@liggitt
liggitt / bench.json
Last active October 9, 2024 19:05
encoding/json unmarshal regression
{
"int": 1,
"bool": true,
"string": "This is a test of a string 1",
"map": {
"a": "1",
"b": "2",
"c": "3",
"d": "4"
},
@liggitt
liggitt / csr.json
Last active February 20, 2024 15:23
{
"apiVersion": "certificates.k8s.io/v1",
"kind": "CertificateSigningRequest",
"metadata": { "name": "test" },
"spec": {
"signerName": "example.com/signer",
"usages": ["any"],
"request": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQnlqQ0NBVE1DQVFBd2dZa3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saApNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01STXdFUVlEVlFRS0V3cEhiMjluYkdVZ1NXNWpNUjh3CkhRWURWUVFMRXhaSmJtWnZjbTFoZEdsdmJpQlVaV05vYm05c2IyZDVNUmN3RlFZRFZRUURFdzUzZDNjdVoyOXYKWjJ4bExtTnZiVENCbnpBTkJna3Foa2lHOXcwQkFRRUZBQU9CalFBd2dZa0NnWUVBcFp0WUpDSEo0VnBWWEhmVgpJbHN0UVRsTzRxQzAzaGpYK1prUHl2ZFlkMVE0K3FiQWVUd1htQ1VLWUhUaFZSZDVhWFNxbFB6eUlCd2llTVpyCldGbFJRZGRaMUl6WEFsVlJEV3dBbzYwS2VjcWVBWG5uVUsrNWZYb1RJL1VnV3NocmU4dEoreC9UTUhhUUtSL0oKY0lXUGhxYVFoc0p1elpidkFkR0E4MEJMeGRNQ0F3RUFBYUFBTUEwR0NTcUdTSWIzRFFFQkJRVUFBNEdCQUlobAo0UHZGcStlN2lwQVJnSTVaTStHWng2bXBDejQ0RFRvMEprd2ZSRGYrQnRyc2FDMHE2OGVUZjJYaFlPc3E0ZmtIClEwdUEwYVZvZzNmNWlKeENhM0hwNWd4YkpRNnpWNmtKMFRFc3VhYU9oRWtvOXNkcENvUE
@liggitt
liggitt / example.sh
Last active August 3, 2023 19:29
govulncheck results
# run on k8s.io/kubernetes checkout at 99190634ab252604a4496882912ac328542d649d
# go version 1.20.6
govulncheck -scan module -json -test ./... > module_test.json
govulncheck -scan module -json ./... > module.json
govulncheck -scan package -json -test ./... > package_test.json
govulncheck -scan package -json ./... > package.json
govulncheck -scan symbol -json -test ./... > symbol_test.json
govulncheck -scan symbol -json ./... > symbol.json
# Apply like this to bypass client-side validation and exercise server-side validation:
#
# kubectl apply -f cel-type-mismatch.yaml --validate=false
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: mismatches.example.com
spec:
group: example.com

API Changes

What APIs?

  • REST APIs
    • built-in go-based APIs
    • custom resources
      • x-k8s.io - experimental, fast prototyping
      • k8s.io - "official", get API reviewed
    • most difficult to change over time
  • all (non-alpha) versions have to round-trip to each other losslessly
@liggitt
liggitt / pod-baseline.yaml
Last active February 3, 2024 14:23
pod security proof-of-concept
kind: Pod
apiVersion: v1
metadata:
name: baseline-pod
spec:
containers:
- name: default
image: k8s.gcr.io/pause:3.2
package main
import (
"fmt"
"runtime"
"sync"
"time"
)
func main() {