mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 07:20:13 +00:00
add script to register everything
This commit is contained in:
parent
8ecc256e88
commit
a8409af5b5
@ -0,0 +1,12 @@
|
||||
apiVersion: apiregistration.k8s.io/v1alpha1
|
||||
kind: APIService
|
||||
metadata:
|
||||
name: RESOURCE_NAME
|
||||
spec:
|
||||
group: API_GROUP
|
||||
version: API_VERSION
|
||||
service:
|
||||
namespace: SERVICE_NAMESPACE
|
||||
name: SERVICE_NAME
|
||||
insecureSkipTLSVerify: true
|
||||
priority: 100
|
81
staging/src/k8s.io/kube-aggregator/hack/register-all-apis-from.sh
Executable file
81
staging/src/k8s.io/kube-aggregator/hack/register-all-apis-from.sh
Executable file
@ -0,0 +1,81 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 The Kubernetes Authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
|
||||
if LANG=C sed --help 2>&1 | grep -q GNU; then
|
||||
SED="sed"
|
||||
elif which gsed &>/dev/null; then
|
||||
SED="gsed"
|
||||
else
|
||||
echo "Failed to find GNU sed as sed or gsed. If you are on Mac: brew install gnu-sed." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
scriptDir=$(dirname "${BASH_SOURCE}")
|
||||
|
||||
# this uses discovery from a kube-like API server to register ALL the API versions that server provides
|
||||
# first argument is reference to kube-config file that points the API server you're adding from
|
||||
# second argument is the service namespace
|
||||
# third argument is the service name
|
||||
# fourth argument is reference to kube-config file that points to the aggregator you're using
|
||||
|
||||
FROM_KUBECONFIG=${1}
|
||||
SERVICE_NAMESPACE=${2}
|
||||
SERVICE_NAME=${3}
|
||||
AGG_KUBECONFIG=${4}
|
||||
|
||||
|
||||
dir=$(mktemp -d "${TMPDIR:-/tmp/}$(basename 0).XXXXXXXXXXXX")
|
||||
|
||||
|
||||
# if we have a /api endpoint, then we need to register that
|
||||
if kubectl --kubeconfig=${FROM_KUBECONFIG} get --raw / | grep -q /api/v1; then
|
||||
group=""
|
||||
version="v1"
|
||||
resourceName=${version}.${group}
|
||||
resourceFileName=${dir}/${resourceName}.yaml
|
||||
cp ${scriptDir}/apiservice-template.yaml ${resourceFileName}
|
||||
${SED} -i "s/RESOURCE_NAME/${resourceName}/" ${resourceFileName}
|
||||
${SED} -i "s/API_GROUP/${group}/" ${resourceFileName}
|
||||
${SED} -i "s/API_VERSION/${version}/" ${resourceFileName}
|
||||
${SED} -i "s/SERVICE_NAMESPACE/${SERVICE_NAMESPACE}/" ${resourceFileName}
|
||||
${SED} -i "s/SERVICE_NAME/${SERVICE_NAME}/" ${resourceFileName}
|
||||
echo "registering ${resourceName} using ${resourceFileName}"
|
||||
|
||||
kubectl --kubeconfig=${AGG_KUBECONFIG} create --v=8 -f ${resourceFileName}
|
||||
fi
|
||||
|
||||
groupVersions=( $(kubectl --kubeconfig=${FROM_KUBECONFIG} get --raw / | grep /apis/ | sed 's/",.*//' | sed 's|.*"/apis/||' | grep '/') )
|
||||
|
||||
for groupVersion in "${groupVersions[@]}"; do
|
||||
group=$(echo $groupVersion | awk -F/ '{print $1}')
|
||||
version=$(echo $groupVersion | awk -F/ '{print $2}')
|
||||
resourceName=${version}.${group}
|
||||
resourceFileName=${dir}/${resourceName}.yaml
|
||||
cp ${scriptDir}/apiservice-template.yaml ${resourceFileName}
|
||||
${SED} -i "s/RESOURCE_NAME/${resourceName}/" ${resourceFileName}
|
||||
${SED} -i "s/API_GROUP/${group}/" ${resourceFileName}
|
||||
${SED} -i "s/API_VERSION/${version}/" ${resourceFileName}
|
||||
${SED} -i "s/SERVICE_NAMESPACE/${SERVICE_NAMESPACE}/" ${resourceFileName}
|
||||
${SED} -i "s/SERVICE_NAME/${SERVICE_NAME}/" ${resourceFileName}
|
||||
echo "registering ${resourceName} using ${resourceFileName}"
|
||||
|
||||
kubectl --kubeconfig=${AGG_KUBECONFIG} create -f ${resourceFileName}
|
||||
done
|
Loading…
Reference in New Issue
Block a user