4 SCRIPTDIR="$(readlink -f $(dirname ${BASH_SOURCE[0]}))"
5 LIBDIR="$(dirname $(dirname ${SCRIPTDIR}))/env/lib"
7 source $LIBDIR/common.sh
9 # The upstream repo is not in an easily consumed structure, so first
10 # grab all the YAMLs then build out what we need in the overlay
11 function build_source {
12 mkdir -p ${SCRIPTDIR}/base
13 for yaml in cmk-namespace.yaml cmk-rbac-rules.yaml cmk-serviceaccount.yaml; do
14 curl -sL https://raw.githubusercontent.com/intel/CPU-Manager-for-Kubernetes/${CPU_MANAGER_VERSION}/resources/authorization/${yaml} -o ${SCRIPTDIR}/base/${yaml}
16 for yaml in cmk-init-pod.yaml cmk-discover-pod.yaml cmk-install-pod.yaml cmk-nodereport-daemonset.yaml cmk-reconcile-daemonset.yaml; do
17 curl -sL https://raw.githubusercontent.com/intel/CPU-Manager-for-Kubernetes/${CPU_MANAGER_VERSION}/resources/pods/${yaml} -o ${SCRIPTDIR}/base/${yaml}
19 for yaml in cmk-webhook-certs.yaml cmk-webhook-configmap.yaml cmk-webhook-service.yaml cmk-webhook-deployment.yaml cmk-webhook-config.yaml; do
20 curl -sL https://raw.githubusercontent.com/intel/CPU-Manager-for-Kubernetes/${CPU_MANAGER_VERSION}/resources/webhook/${yaml} -o ${SCRIPTDIR}/base/${yaml}
22 rm -f ${SCRIPTDIR}/base/kustomization.yaml
23 pushd ${SCRIPTDIR}/base && kustomize create --autodetect && popd
25 mkdir -p ${SCRIPTDIR}/icn
26 cat <<EOF >${SCRIPTDIR}/icn/daemonset-init-containers-patch.yaml
30 name: cmk-reconcile-ds-all
31 namespace: cmk-namespace
36 $(yq eval '.spec.template.spec.containers' ${SCRIPTDIR}/base/cmk-nodereport-daemonset.yaml | awk '{print " "$0}')
38 $(yq eval '.spec.containers' ${SCRIPTDIR}/base/cmk-init-pod.yaml | awk '{print " "$0}')
39 $(yq eval '.spec.containers' ${SCRIPTDIR}/base/cmk-discover-pod.yaml | awk '{print " "$0}')
40 $(yq eval '.spec.containers' ${SCRIPTDIR}/base/cmk-install-pod.yaml | awk '{print " "$0}')
42 yq '(.spec.template.spec.initContainers[0].env[] | select(.name=="NUM_EXCLUSIVE_CORES").value) = 2' -i ${SCRIPTDIR}/icn/daemonset-init-containers-patch.yaml
43 yq '(.spec.template.spec.initContainers[1].args[0] = "/cmk/cmk.py discover --conf-dir=/etc/cmk --no-taint"' -i ${SCRIPTDIR}/icn/daemonset-init-containers-patch.yaml
44 yq '.spec.template.spec += {"volumes":[{"hostPath":{"path":"/opt/bin"},"name":"cmk-install-dir"}]}' -i ${SCRIPTDIR}/icn/daemonset-init-containers-patch.yaml
48 "build-source") build_source ;;
50 Usage: $(basename $0) COMMAND
53 build-source - Rebuild the in-tree YAML files