cloudwash icon indicating copy to clipboard operation
cloudwash copied to clipboard

Provision of deleting OCP cluster on AWS

Open jyejare opened this issue 3 years ago • 9 comments

Requester: Prabodh Phuse

Issue: provision of deleting OCP cluster on AWS, which is a sum of various services and resources ...ec2, vpc, S3...etc

Urgency: Not mentioned but looks a promising future. But since cluster is a virtual resource of a cloud we need to rethink if cloudwash should get into virtual resources cleanup.

Willing to Contribute: Not mentioned!

jyejare avatar Apr 07 '22 14:04 jyejare

Hi @jyejare this description is a bit confusing to me. It seems that this is about simulation OCP uninstallation process via OCP installer.

But I think the goal is more general - delete more type of resources. So, I suggest to rename this issue to something like "Add more resource types which can be deleted by CloudWash", wdyt?

apodhrad avatar May 16 '22 08:05 apodhrad

btw, for deleting VPCs I use the following script https://github.com/lianghong/delete_vpc

apodhrad avatar Jun 06 '22 16:06 apodhrad

@apodhrad The request is from Prabhod and even I didn't look into it in the dip but the Issue description is giving a more context.

It seems he would like to clean up the resources (EC2, VPC, S3) on OCP cluster where the cluster is deployed on AWS and not the uninstallation of the actual cluster. Just FYI, The installation of cluster on AWS is documented https://docs.openshift.com/container-platform/4.6/installing/installing_aws/installing-aws-default.html.

To clean up the resources on the cluster deployed on AWS, we can either take the route of deleting it using AWS APIs or OCP APIs whichever route is permissible, provides more benefits in future as to delete more resources in cluster.

jyejare avatar Jun 07 '22 08:06 jyejare

We use AWS only for deploying the OCP clusters. So we need this feature as well.

Note that all OCP resources are being tagged, so you can simply inspect items which you are going to delete, and if you find kubernetes.io/cluster/${CLUSTER_ID} between the tag, you know that it belongs to the OCP cluster, and your desire here is to remove all resources which are tagged with the same tag.

Note that this request is also relevant for other clouds, not only AWS ...

lukas-bednar avatar Jun 08 '22 11:06 lukas-bednar

Right, so maybe we could consider introducing a new variable DELETE_OCP which will work similar to DELETE_VM. That means, if we identified a VM or VPC with tag kubernetes.io/cluster/${DELETE_OCP}* then we can just uninstall the OCP using the OCP installer.

apodhrad avatar Jun 08 '22 15:06 apodhrad

The question is - which resource(s) should we look for and check the tag kubernetes.io/cluster/${CLUSTER_ID}.

Maybe we could look for VPCs as many resources are directly tied with a VPC. Here is an example of VPC tag

  "Tags": [
    {
      "Key": "Name",
      "Value": "ocp4-23-6xcdn-vpc"
    },
    {
      "Key": "kubernetes.io/cluster/ocp4-23-6xcdn",
      "Value": "owned"
    }

I'm just not sure what is the alternative for VPC in other cloud providers such as Azure or GCP

apodhrad avatar Jun 08 '22 15:06 apodhrad

If someone is interested I have prepared a quick PoC (WIP) at https://github.com/RedHatQE/cloudwash/pull/18

apodhrad avatar Jun 10 '22 15:06 apodhrad

I would like to propose a feature for the cleanup of OCP resources like PipelineRuns, Pods, Deployments, etc. I can take a look at this and create a PR if required.

bovem avatar Oct 09 '22 07:10 bovem

@bovem For now @apodhrad is now looking into cluster cleanup but you can create a new issue and work on it :)

jyejare avatar Oct 11 '22 13:10 jyejare