3030 fi
3131}
3232
33+ # Install OKE credential provider for OCIR
34+ download_oke_credential_provider_for_ocir () {
35+ ARCH=$( uname -m)
36+
37+ case " $ARCH " in
38+ x86_64)
39+ ARCH=" amd64"
40+ ;;
41+ aarch64 | arm64)
42+ ARCH=" arm64"
43+ ;;
44+ * )
45+ return 1
46+ ;;
47+
48+ esac
49+
50+ wget --tries=5 --waitretry=3 --retry-connrefused -O /usr/local/bin/credential-provider-oke \
51+ https://github.com/oracle-devrel/oke-credential-provider-for-ocir/releases/latest/download/oke-credential-provider-for-ocir-linux-$ARCH && \
52+ chmod +x /usr/local/bin/credential-provider-oke || true
53+
54+ mkdir -p /etc/kubernetes/
55+ wget --tries=5 --waitretry=3 --retry-connrefused -P /etc/kubernetes/ \
56+ https://github.com/oracle-devrel/oke-credential-provider-for-ocir/releases/latest/download/credential-provider-config.yaml || true
57+
58+ if [[ -f /usr/local/bin/credential-provider-oke && -f /etc/kubernetes/credential-provider-config.yaml ]]; then
59+ return 0
60+ else
61+ return 1
62+ fi
63+ }
64+
3365# Disable nvidia-imex.service for GB200 and GB300 shapes for Dynamic Resource Allocation (DRA) compatibility
3466SHAPE=$( curl -H " Authorization: Bearer Oracle" -L http://169.254.169.254/opc/v2/instance/shape 2> /dev/null) || true
3567if [[ -z " $SHAPE " ]]; then
@@ -43,17 +75,28 @@ elif [[ "$SHAPE" == BM.GPU.GB200* ]] || [[ "$SHAPE" == BM.GPU.GB300* ]]; then
4375 fi
4476fi
4577
78+ kubernetes_version=" ${1-} "
79+ setup_credential_provider=" ${2:- false} "
80+
81+ if [[ " $setup_credential_provider " == " true" ]]; then
82+ credential_provider_done=$( download_oke_credential_provider_for_ocir)
83+ else
84+ credential_provider_done=1
85+ fi
86+
4687case " $ID " in
4788 ubuntu)
4889 echo " Detected Ubuntu"
4990 if command -v oke > /dev/null 2>&1 ; then
5091 echo " [Ubuntu] oke binary already present, running bootstrap only"
51- kubernetes_version=" ${1-} "
5292 configure_crio_defaults " $kubernetes_version "
53- oke bootstrap
93+ if [[ " $credential_provider_done " -eq 0 ]]; then
94+ oke bootstrap --kubelet-extra-args " --image-credential-provider-bin-dir=/usr/local/bin/ --image-credential-provider-config=/etc/kubernetes/credential-provider-config.yaml"
95+ else
96+ oke bootstrap
97+ fi
5498 else
5599 echo " [Ubuntu] oke binary not found, installing package"
56- kubernetes_version=" ${1-} "
57100 oke_package_version=" ${kubernetes_version: 1} "
58101 oke_package_repo_version=" ${oke_package_version: 0: 4} "
59102 oke_package_name=" oci-oke-node-all-$oke_package_version "
78121
79122 echo " [Ubuntu] Running bootstrap"
80123 configure_crio_defaults " $kubernetes_version "
81- oke bootstrap
124+ if [[ " $credential_provider_done " -eq 0 ]]; then
125+ oke bootstrap --kubelet-extra-args " --image-credential-provider-bin-dir=/usr/local/bin/ --image-credential-provider-config=/etc/kubernetes/credential-provider-config.yaml"
126+ else
127+ oke bootstrap
128+ fi
82129 fi
83130 ;;
84131 ol)
85132 echo " Detected Oracle Linux"
86133 if command -v oke > /dev/null 2>&1 ; then
87134 echo " [Oracle Linux] oke binary already present, running bootstrap only"
88- kubernetes_version= " ${1-} "
135+
89136 configure_crio_defaults " $kubernetes_version "
90- oke bootstrap
137+ if [[ " $credential_provider_done " -eq 0 ]]; then
138+ oke bootstrap --kubelet-extra-args " --image-credential-provider-bin-dir=/usr/local/bin/ --image-credential-provider-config=/etc/kubernetes/credential-provider-config.yaml"
139+ else
140+ oke bootstrap
141+ fi
91142 else
92143 echo " [Oracle Linux] oke binary not found, fetching init script"
93144 curl --fail -H " Authorization: Bearer Oracle" \
94145 -L0 http://169.254.169.254/opc/v2/instance/metadata/oke_init_script \
95146 | base64 --decode > /var/run/oke-init.sh
96147
97148 echo " [Oracle Linux] Running init script"
98- kubernetes_version=" ${1-} "
99149 configure_crio_defaults " $kubernetes_version "
100- bash /var/run/oke-init.sh
150+ if [[ " $credential_provider_done " -eq 0 ]]; then
151+ bash /var/run/oke-init.sh --kubelet-extra-args " --image-credential-provider-bin-dir=/usr/local/bin/ --image-credential-provider-config=/etc/kubernetes/credential-provider-config.yaml"
152+ else
153+ bash /var/run/oke-init.sh
154+ fi
155+
101156 fi
102157 ;;
103158 * )
106161 ;;
107162esac
108163
109- echo " OKE setup completed successfully."
164+ echo " OKE setup completed successfully."
0 commit comments