Posts

Showing posts from October, 2024

RHEL7/8/9 Leapp upgrade utility

Here we are going to see how to use leapp upgrade utility to perform an upgrade of RHEL7.9 to RHEL8 or RHEL version 8.6 to version 9. This note is specific to RHEL7.9 to 8 upgrade. Update RHEL version 7.x to 7.9 and 8.x to 8.6 prior to planning upgrade to major versions. Few riders are, NFS and network storage protocols like iscsi are not supported.  Only upgrade to following major version is supported, ex RHEL7 to RHEL8 & RHEL8 to RHEL9. Wont work on your encrypted root device. Public cloud instance using RedHat Update Infrastructure are not eligible for Leapp upgrade. VDO devices must be converted to LVM managed devs. For RHEL7, the minor version should at least be, 7.9. So update your OS to version 7.9 . Take backup and snapshots to restore back to previous version and avoid complete loss of servers. Generate Sosreports. rhel-7-server-extras-rpms should be added to repolist and enabled. Clear any yum version locks. # yum versionlock clear # subscri...

Using Minikube to experiment with kubernetes and continous delivery

Image
  Minikube is the way to go for learning kubernetes in your time. It can help you learn the Kubernetes nuts and bolts apart from helping you learn cloud native application design implementation using tools like Skaffold , which helps in continous development and delivery of cloud native software features. So, before spawning a minikube custom cluster make sure you have one of the drivers installed in your linux workstation. We use docker driver here. If you want to follow along, make sure docker is installed and your user id has the docker group added to it. Apart from minikube, you will make use of kubectl command. Launch a custom kubernetes cluster in minikube, $ minikube start -p custom --driver docker   If all went well you would see 14 containers running in 7 pods of kube-system namespace of the custom cluster, just launched by minikube as result of above output. Use following commands to check the above, $ docker container ps -a ...

Bringing Brownfield AWS Infrastructure Deployment into Terraform managed control

Image
It is easy to raise a AWS infrastructure using Terraform IaC in case of greenfield deployments. But how about the existing infrastructure in AWS that lets’ say was spawned either using cloud formation templates or even manually. Spotlight, terraform import. The import option of terraform command line, can help you create state file that adds the AWS deployed resource as terraform managed resource. There is some work involved though. You will need to create the main.tf file, defining your infrastructure resources as they exist using their resource names as you have created them. For instance, a resource named EgressVPC and its subnet, Egress-Public-AZ2, will need to have following entries in main.tf entered by author, Likewise all your AWS resources will need to be mentioned manually or through some manually crafted intelligent automation scripting that generates your main.tf file, along side the existing AWS resource id, to be used with terraform import command. O...

Connecting AWS ECR to custom kubernetes cluster

Image
 To connect a custom Kubernetes cluster to AWS Elastic Container Registry (ECR), you can follow these general steps: 1. Create an IAM role: Start by creating an IAM role with the necessary permissions to access ECR. You will need to grant the role permissions to access the ECR registry and pull images from it. 2. Create a Kubernetes secret: Once you have the IAM role, you can create a Kubernetes secret to store the AWS credentials needed to authenticate with ECR. You will need to create a Docker configuration file with the ECR credentials, then create the Kubernetes secret using the Docker configuration file. 3. Update the Kubernetes deployment: Once you have the IAM role and Kubernetes secret in place, you can update your Kubernetes deployment to use the ECR image. In your deployment YAML file, specify the ECR registry URL and the image name. You will also need to reference the Kubernetes secret you created in step 2. Here's an example YAML file that shows how ...