From d2deecefbcdc0cc40006dac6f241b7d1b893ba66 Mon Sep 17 00:00:00 2001 From: Brian On Date: Sat, 1 Jan 2022 22:15:21 -0800 Subject: [PATCH] test --- .gitignore | 2 + deploy/Makefile | 16 ++++++++ deploy/addepar/certs/Makefile | 16 ++++++++ deploy/addepar/certs/gencerts.sh | 37 +++++++++++++++++++ deploy/addepar/custom-metrics-namespace.json | 10 +++++ .../custom-metrics-apiserver-deployment.yaml | 3 +- 6 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 deploy/Makefile create mode 100644 deploy/addepar/certs/Makefile create mode 100755 deploy/addepar/certs/gencerts.sh create mode 100644 deploy/addepar/custom-metrics-namespace.json diff --git a/.gitignore b/.gitignore index 1b9f0ec0..180486c4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ *~ /vendor /adapter +deploy/addepar/certs/test +.idea diff --git a/deploy/Makefile b/deploy/Makefile new file mode 100644 index 00000000..e249f819 --- /dev/null +++ b/deploy/Makefile @@ -0,0 +1,16 @@ +# Run in custom metrics namespace +deploy-adapter-local: + kubectl apply -f manifests/ + +# Run in custom metrics namespace +delete-adapter-local: + kubectl delete -f manifests/ + +namespace: + kubectl create -f addepar/custom-metrics-namespace.json + +raw: + kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 + +shell: + kubectl run -it --rm --restart=Never alpine --image=alpine sh --limits="cpu=500m,memory=512Mi" diff --git a/deploy/addepar/certs/Makefile b/deploy/addepar/certs/Makefile new file mode 100644 index 00000000..cb693372 --- /dev/null +++ b/deploy/addepar/certs/Makefile @@ -0,0 +1,16 @@ +.PHONY: build clean deploy + +all: clean build deploy + +build: + $(shell cd test && ../gencerts.sh) + +clean: + rm -rf test + mkdir test + +deploy: + kubectl -n custom-metrics create -f test/cm-adapter-serving-certs.yaml + +delete: + kubectl -n custom-metrics delete -f test/cm-adapter-serving-certs.yaml diff --git a/deploy/addepar/certs/gencerts.sh b/deploy/addepar/certs/gencerts.sh new file mode 100755 index 00000000..17abb6b9 --- /dev/null +++ b/deploy/addepar/certs/gencerts.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +# exit immediately when a command fails +set -e +# only exit with zero if all commands of the pipeline exit successfully +set -o pipefail +# error on unset variables +set -u + +# Detect if we are on mac or should use GNU base64 options +case $(uname) in + Darwin) + b64_opts='-b=0' + ;; + *) + b64_opts='--wrap=0' +esac + +#go get -v -u github.com/cloudflare/cfssl/cmd/... + +export PURPOSE=metrics +openssl req -x509 -sha256 -new -nodes -days 365 -newkey rsa:2048 -keyout ${PURPOSE}-ca.key -out ${PURPOSE}-ca.crt -subj "/CN=ca" +echo '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","'${PURPOSE}'"]}}}' > "${PURPOSE}-ca-config.json" + +export SERVICE_NAME=custom-metrics-apiserver +export ALT_NAMES='"custom-metrics-apiserver.monitoring","custom-metrics-apiserver.monitoring.svc"' +echo "{\"CN\":\"${SERVICE_NAME}\", \"hosts\": [${ALT_NAMES}], \"key\": {\"algo\": \"rsa\",\"size\": 2048}}" | \ + cfssl gencert -ca=metrics-ca.crt -ca-key=metrics-ca.key -config=metrics-ca-config.json - | cfssljson -bare apiserver + +cat <<-EOF > cm-adapter-serving-certs.yaml +apiVersion: v1 +kind: Secret +metadata: + name: cm-adapter-serving-certs +data: + serving.crt: $(base64 ${b64_opts} < apiserver.pem) + serving.key: $(base64 ${b64_opts} < apiserver-key.pem) +EOF diff --git a/deploy/addepar/custom-metrics-namespace.json b/deploy/addepar/custom-metrics-namespace.json new file mode 100644 index 00000000..472b9f11 --- /dev/null +++ b/deploy/addepar/custom-metrics-namespace.json @@ -0,0 +1,10 @@ +{ + "apiVersion": "v1", + "kind": "Namespace", + "metadata": { + "name": "custom-metrics", + "labels": { + "name": "custom-metrics" + } + } +} diff --git a/deploy/manifests/custom-metrics-apiserver-deployment.yaml b/deploy/manifests/custom-metrics-apiserver-deployment.yaml index 0fc61d79..2227585f 100644 --- a/deploy/manifests/custom-metrics-apiserver-deployment.yaml +++ b/deploy/manifests/custom-metrics-apiserver-deployment.yaml @@ -19,7 +19,8 @@ spec: serviceAccountName: custom-metrics-apiserver containers: - name: custom-metrics-apiserver - image: gcr.io/k8s-staging-prometheus-adapter-amd64 + image: gcr.io/k8s-staging-prometheus-adapter/prometheus-adapter-amd64 + imagePullPolicy: Never args: - --secure-port=6443 - --tls-cert-file=/var/run/serving-cert/serving.crt