func installClusterRoles()

in pkg/install/cluster.go [69:142]


func installClusterRoles(
	ctx context.Context, c client.Client, collection *kubernetes.Collection, clusterType string,
) error {
	// ClusterRole: camel-k-edit
	ok, err := isClusterRoleInstalled(ctx, c, "camel-k-edit")
	if err != nil {
		return err
	}
	if !ok || collection != nil {
		err := installResource(ctx, c, collection, "/rbac/user-cluster-role.yaml")
		if err != nil {
			return err
		}
	}

	// ClusterRole: camel-k-operator-custom-resource-definitions
	ok, err = isClusterRoleInstalled(ctx, c, "camel-k-operator-custom-resource-definitions")
	if err != nil {
		return err
	}
	if !ok {
		if err := installResource(ctx, c, collection,
			"/rbac/operator-cluster-role-custom-resource-definitions.yaml"); err != nil {
			return err
		}
	}

	// ClusterRole: camel-k-operator-local-registry
	ok, err = isClusterRoleInstalled(ctx, c, "camel-k-operator-local-registry")
	if err == nil && !ok {
		// ignore errors
		_ = installResource(ctx, c, collection, "/rbac/operator-cluster-role-local-registry.yaml")
	}

	// === For OpenShift ===
	// ClusterRole: camel-k-operator-console-openshift
	isOpenShift, err := isOpenShift(c, clusterType)
	if err != nil {
		return err
	}
	if isOpenShift {
		ok, err := isClusterRoleInstalled(ctx, c, "camel-k-operator-console-openshift")
		if err != nil {
			return err
		}
		if !ok || collection != nil {
			err := installResource(ctx, c, collection, "/rbac/openshift/operator-cluster-role-console-openshift.yaml")
			if err != nil {
				return err
			}
		}
	}

	// === For Knative ===
	// ClusterRole: camel-k-operator-bind-addressable-resolver
	isKnative, err := knative.IsInstalled(c)
	if err != nil {
		return err
	}
	if isKnative {
		ok, err := isClusterRoleInstalled(ctx, c, "camel-k-operator-bind-addressable-resolver")
		if err != nil {
			return err
		}
		if !ok || collection != nil {
			err := installResource(ctx, c, collection, "/rbac/operator-cluster-role-addressable-resolver.yaml")
			if err != nil {
				return err
			}
		}
	}

	return nil
}