mirror of https://github.com/openkruise/kruise.git
78 lines
1.8 KiB
Bash
Executable File
78 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
mkdir -p /tmp/kruise
|
|
TIMESTAMP=$(date +%s)
|
|
CONF_FILE=/tmp/kruise/install-check-config-${TIMESTAMP}.yaml
|
|
CR_FILE=/tmp/kruise/install-check-cr-${TIMESTAMP}.yaml
|
|
LOG_FILE=/tmp/kruise/install-check-${TIMESTAMP}.log
|
|
|
|
cat > "${CONF_FILE}" <<- EOM
|
|
apiVersion: apiextensions.k8s.io/v1beta1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
name: enablewebhooks.check.kruise.io
|
|
spec:
|
|
group: check.kruise.io
|
|
version: v1alpha1
|
|
scope: Cluster
|
|
names:
|
|
plural: enablewebhooks
|
|
singular: enablewebhook
|
|
kind: EnableWebhook
|
|
|
|
---
|
|
|
|
apiVersion: admissionregistration.k8s.io/v1beta1
|
|
kind: ValidatingWebhookConfiguration
|
|
metadata:
|
|
name: kruise-check-install-webhook-configuration
|
|
webhooks:
|
|
- clientConfig:
|
|
caBundle: Cg==
|
|
url: https://127.0.0.1:9876/validating-kruise-check-install
|
|
failurePolicy: Fail
|
|
name: validating-kruise-check-install.kruise.io
|
|
rules:
|
|
- apiGroups:
|
|
- check.kruise.io
|
|
apiVersions:
|
|
- v1alpha1
|
|
operations:
|
|
- CREATE
|
|
resources:
|
|
- enablewebhooks
|
|
sideEffects: None
|
|
EOM
|
|
|
|
cat > "${CR_FILE}" <<- EOM
|
|
apiVersion: check.kruise.io/v1alpha1
|
|
kind: EnableWebhook
|
|
metadata:
|
|
name: enablewebhook-test
|
|
spec:
|
|
foo: bar
|
|
EOM
|
|
|
|
kubectl apply -f "${CONF_FILE}" >> "${LOG_FILE}" 2>&1
|
|
|
|
set +e
|
|
|
|
kubectl apply -f "${CR_FILE}" >> "${LOG_FILE}" 2>&1
|
|
RETURN_CODE=$?
|
|
|
|
if [[ ${RETURN_CODE} -eq 0 ]]; then
|
|
kubectl delete -f "${CR_FILE}" >> "${LOG_FILE}" 2>&1
|
|
fi
|
|
kubectl delete -f "${CONF_FILE}" >> "${LOG_FILE}" 2>&1
|
|
rm -f "${CR_FILE}" "${CONF_FILE}"
|
|
|
|
if [[ ${RETURN_CODE} -eq 0 ]]; then
|
|
echo "Failed to check for installation because of webhook not working."
|
|
echo "Please check the arguments of your kube-apiserver, make sure that MutatingAdmissionWebhook and ValidatingAdmissionWebhook have been open."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Successfully check for installation, you can install kruise now."
|