github.com/crossplane-contrib/function-cue@v0.2.2-0.20240508161918-5100fcb5a058/hacking/setup-k8s-providers.sh (about) 1 #!/bin/bash 2 3 set -euo pipefail 4 5 SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) 6 source "${SCRIPT_DIR}/.env" 7 8 XP_PROVIDER_K8S_VERSION=${XP_PROVIDER_K8S_VERSION:-v0.11.4} 9 10 echo "apply k8s provider" 11 ${RUN_KUBECTL} apply -f - <<EOF 12 apiVersion: pkg.crossplane.io/v1 13 kind: Provider 14 metadata: 15 name: provider-kubernetes 16 spec: 17 package: xpkg.upbound.io/crossplane-contrib/provider-kubernetes:${XP_PROVIDER_K8S_VERSION} 18 runtimeConfigRef: 19 name: deploy-config-k8s 20 EOF 21 22 echo "apply k8s provider deployment config" 23 ${RUN_KUBECTL} apply -f - <<EOF 24 apiVersion: pkg.crossplane.io/v1beta1 25 kind: DeploymentRuntimeConfig 26 metadata: 27 name: deploy-config-k8s 28 spec: 29 serviceAccountTemplate: 30 metadata: 31 name: crossplane-provider-kubernetes 32 EOF 33 34 echo "Waiting for the crossplane k8s provider to be ready. This could take some minutes..." 35 ${RUN_KUBECTL} wait --timeout=300s --for=condition=Healthy providers.pkg.crossplane.io provider-kubernetes 36 37 echo "set credentials for k8s provider to be the injected identity" 38 ${RUN_KUBECTL} apply -f - <<EOF 39 apiVersion: kubernetes.crossplane.io/v1alpha1 40 kind: ProviderConfig 41 metadata: 42 name: default 43 spec: 44 credentials: 45 source: InjectedIdentity 46 EOF 47 48 echo "setting up cluster role bindings for the k8s provider" 49 ${RUN_KUBECTL} create clusterrolebinding provider-kubernetes-admin-binding \ 50 --clusterrole cluster-admin --serviceaccount="${XP_CROSSPLANE_NS}:crossplane-provider-kubernetes" \ 51 --dry-run=client -o yaml \ 52 | ${RUN_KUBECTL} apply -f -