func isCRDInstalled()

in argocd-clusterprofile-syncer/cmd/main.go [199:218]


func isCRDInstalled(ctx context.Context, cfg *rest.Config, crdName string) error {
	client, err := apiextensionsclientset.NewForConfig(cfg)
	if err != nil {
		return fmt.Errorf("failed to create apiextensions client: %w", err)
	}

	crd, err := client.ApiextensionsV1().CustomResourceDefinitions().Get(ctx, crdName, metav1.GetOptions{})
	if err != nil {
		return fmt.Errorf("error getting CRD: %w", err)
	}

	for _, condition := range crd.Status.Conditions {
		if condition.Type == apiextensionsv1.Established &&
			condition.Status == apiextensionsv1.ConditionTrue {
			return nil
		}
	}

	return fmt.Errorf("crd %q is installed but not established", crdName)
}