Drafting ctl controller

This commit is contained in:
2026-04-20 02:50:04 +08:00
parent c6b399ba22
commit 6ddff7c433
52 changed files with 3093 additions and 347 deletions

View File

@@ -0,0 +1,52 @@
#!/usr/bin/env bash
# Example: pipe this into curl
# ../../devtools/test-upgrade.sh \
# | this_script
# | curl -k -H 'Content-Type: application/json' --data-binary @- https://127.0.0.1:8443/admission
set -euo pipefail
uid=$(uuidgen 2>/dev/null)
yq -o=json '.' | jq --arg uid "$uid" '
{
apiVersion: "admission.k8s.io/v1",
kind: "AdmissionReview",
request: {
uid: $uid,
kind: {
group: "monok8s.io",
version: "v1alpha1",
kind: "OSUpgrade"
},
resource: {
group: "monok8s.io",
version: "v1alpha1",
resource: "osupgrades"
},
requestKind: {
group: "monok8s.io",
version: "v1alpha1",
kind: "OSUpgrade"
},
requestResource: {
group: "monok8s.io",
version: "v1alpha1",
resource: "osupgrades"
},
name: .metadata.name,
namespace: (.metadata.namespace // ""),
operation: "CREATE",
userInfo: {
username: "debug-user"
},
object: .,
oldObject: null,
dryRun: false,
options: {
apiVersion: "meta.k8s.io/v1",
kind: "CreateOptions"
}
}
}'

View File

@@ -0,0 +1,17 @@
#!/bin/bash
SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")"
PROJ_ROOT="$( realpath "$SCRIPT_DIR"/../ )"
OUT_DIR="$PROJ_ROOT"/out
if [ -f "$OUT_DIR/tls.key" ] && [ -f "$OUT_DIR/tls.crt" ]; then
echo "Use existing certs"
else
echo "Generating self signed certs"
openssl req -x509 -newkey rsa:2048 -nodes -days 365 \
-keyout "$OUT_DIR"/tls.key -out "$OUT_DIR"/tls.crt \
-subj "/CN=127.0.0.1" \
-addext "subjectAltName=IP:127.0.0.1,DNS:localhost"
fi
go run "$PROJ_ROOT"/cmd/ctl controller --tls-cert-file "$OUT_DIR"/tls.crt --tls-private-key-file "$OUT_DIR"/tls.key