Skip to content

Instantly share code, notes, and snippets.

@sftblw
Last active November 15, 2023 13:09
Show Gist options
  • Save sftblw/a446708996f247ee4bac9d694ab0be45 to your computer and use it in GitHub Desktop.
Save sftblw/a446708996f247ee4bac9d694ab0be45 to your computer and use it in GitHub Desktop.
poor man's cloud-init.sh for OCI OKE
  • remove /var/oled
  • create swap kubelet does not support swap; It leads unrecoverable node.
    • k8s swap: alpha support on 1.22 and beta on 1.28
#!/bin/bash
#### remove /var/oled
# https://www.reddit.com/r/oraclecloud/comments/ywwp41/reclaiming_10gb_varoled/
# sudo lsof /var/oled
# sudo lsof /dev/mapper/ocivolume-oled
# "pcp" package is using it.
# https://community.oracle.com/customerconnect/discussion/673319/unable-to-remove-lvm-snapshot-logical-volume-xyz-contains-a-filesystem-in-use
sudo systemctl stop pmcd
sudo systemctl stop pmie
sudo systemctl stop pmlogger
# sudo umount /var/oled
### chatgpt generated umount waiting script
services=("pmcd" "pmie" "pmlogger")
for service in "${services[@]}"; do
sudo systemctl stop $service
count=0
while sudo systemctl is-active --quiet $service; do
sleep 1
((count++))
if [ $count -ge 10 ]; then
echo "$service service isn't stopped - max tries reached."
break
fi
done
done
count=0
while ! sudo umount /var/oled; do
echo "Unmounting failed, retrying in 5 seconds..."
sleep 5
((count++))
if [ $count -ge 10 ]; then
echo "failed to unmount /var/oled - max tries reached."
break
fi
done
### end of chatgpt generated umount
# should empty
sudo lsof /var/oled
sudo lsof /dev/mapper/ocivolume-oled
# if any, grow fs first
sudo /usr/libexec/oci-growfs -y
# remove lvm
sudo lvchange -an /dev/mapper/ocivolume-oled
sudo lvremove -y /dev/mapper/ocivolume-oled
# https://access.redhat.com/solutions/44089
sudo lvextend -l +100%FREE /dev/mapper/ocivolume-root
# actual increase
sudo xfs_growfs /
# prepare log dir
sudo mkdir -p /var/oled/crash
sudo systemctl start pmcd pmie pmlogger
# comment out fstab
sudo sed -i '/\/var\/oled/s/^/#/' /etc/fstab
## init OKE
curl --fail -H "Authorization: Bearer Oracle" -L0 http://169.254.169.254/opc/v2/instance/metadata/oke_init_script | base64 --decode >/var/run/oke-init.sh
bash /var/run/oke-init.sh
# swap with kubernetes is beta and require further configuration. disabling it.
# swapfile 4gb
#dd if=/dev/zero of=/swapfile bs=1G count=4
#chmod 600 /swapfile
#mkswap /swapfile
#swapon /swapfile
#echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment