How to use Linode API to set Linode distro default Kernel via Grub2?
Due to Linode 4.17+ Kernel issues outlined at https://www.linode.com/community/questions/17069, how would you go about using Linode v4 API to set in custom stackscript the profile configuration to use Boot Settings for Grub2 by default for instructions outlined at https://www.linode.com/docs/tools-reference/custom-kernels-distros/run-a-distribution-supplied-kernel-with-kvm/ ?
Linode v3 API docs https://www.linode.com/api/linode/linode.config.update are listed as deprecated for commands like
LINODE_APIKEY=
LINODE_ID=
CONFIG_ID=
GRUB2_ID=210
curl -4s "https://api.linode.com/?api_key=$LINODE_APIKEY&api_action=linode.config.update&LinodeID=$LINODE_ID&ConfigID=$CONFIG_ID&KernelID=$GRUB2_ID"
What is the Linode v4 API equivalent ? Is it something from https://developers.linode.com/api/v4#operation/getLinodeConfig like
LINODE_APIKEY=
LINODE_ID=
CONFIG_ID=
GRUB2_ID=210
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $LINODE_APIKEY" \
-X PUT -d '{
"kernel": "$GRUB2_ID"
}' \
https://api.linode.com/v4/linode/instances/$LINODE_ID/configs/$CONFIG_ID
where you set appropriately
LINODE_APIKEY=
LINODE_ID=
CONFIG_ID=
2 Replies
Hey there,
You can pass in the string linode/grub2
as the kernel ID when updating your configuration profile. Take a look here:
https://developers.linode.com/api/v4#operation/updateLinodeConfig
You can find the full list of kernels using the /linode/kernels
API endpoint. So in this case, you can simply do:
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $LINODE_APIKEY" \
-X PUT -d '{
"kernel": "linode/grub2"
}' \
https://api.linode.com/v4/linode/instances/$LINODE_ID/configs/$CONFIG_ID
On success, you'll get the updated config profile back as a JSON object and you should see "kernel": "linode/grub2"
in the output.