func UninstallCRD()

in action/k8s/uninstall.go [33:62]


func UninstallCRD() error {
	client, err := utils.GetDynamicClient()
	if err != nil {
		return err
	}

	gvr := schema.GroupVersionResource{
		Group:    "apiextensions.k8s.io",
		Version:  "v1",
		Resource: "customresourcedefinitions",
	}

	// Assume client and gvr have already been defined
	err = client.Resource(gvr).Delete(context.TODO(), CRDname, metav1.DeleteOptions{})
	if err != nil {
		// Check if the error is a "not found" error
		if errors.IsNotFound(err) {
			// The resource does not exist, output a message instead of returning an error
			tool.Logger.Errorf("CRD %s does not exist, no action taken.\n", CRDname)
		} else {
			// For other errors, log the error and exit the program
			tool.Logger.Errorf("delete CRD failed: %v", err)
		}
	} else {
		// Successfully deleted the resource
		tool.Logger.Infof("delete CRD %s successfully.\n", CRDname)
	}

	return nil
}