Chapter 1. APIs You can access APIs to create and manage application resources, channels, subscriptions, and to query information. User required access: You can only perform actions that your role is assigned. Learn about access requirements from the Role-based access control documentation. You can also access all APIs from the integrated console. From the local-cluster view, navigate to Home > API Explorer to explore API groups. For more information, review the API documentation for each of the following resources: Clusters API ClusterSets API (v1beta2) ClusterSetBindings API (v1beta2) Channels API Subscriptions API PlacementRules API (deprecated) Applications API Helm API Policy API Observability API Search query API MultiClusterHub API Placements API (v1beta1) PlacementDecisions API (v1beta1) DiscoveryConfig API DiscoveredCluster API AddOnDeploymentConfig API (v1alpha1) ClusterManagementAddOn API (v1alpha1) ManagedClusterAddOn API (v1alpha1) ManagedClusterSet API KlusterletConfig API (v1alpha1) Policy compliance API (Technology Preview) 1.1. Clusters API 1.1.1. Overview This documentation is for the cluster resource for Red Hat Advanced Cluster Management for Kubernetes. Cluster resource has four possible requests: create, query, delete and update. ManagedCluster represents the desired state and current status of a managed cluster. ManagedCluster is a cluster-scoped resource. 1.1.1.1. Version information Version : 2.11.0 1.1.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.1.1.3. Tags cluster.open-cluster-management.io : Create and manage clusters 1.1.2. Paths 1.1.2.1. Query all clusters 1.1.2.1.1. Description Query your clusters for more details. 1.1.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string 1.1.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.1.2.1.4. Consumes cluster/yaml 1.1.2.1.5. Tags cluster.open-cluster-management.io 1.1.2.2. Create a cluster 1.1.2.2.1. Description Create a cluster 1.1.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Body body required Parameters describing the cluster to be created. Cluster 1.1.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.1.2.2.4. Consumes cluster/yaml 1.1.2.2.5. Tags cluster.open-cluster-management.io 1.1.2.2.6. Example HTTP request 1.1.2.2.6.1. Request body { "apiVersion" : "cluster.open-cluster-management.io/v1", "kind" : "ManagedCluster", "metadata" : { "labels" : { "vendor" : "OpenShift" }, "name" : "cluster1" }, "spec": { "hubAcceptsClient": true, "managedClusterClientConfigs": [ { "caBundle": "test", "url": "https://test.com" } ] }, "status" : { } } 1.1.2.3. Query a single cluster 1.1.2.3.1. Description Query a single cluster for more details. 1.1.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path cluster_name required Name of the cluster that you want to query. string 1.1.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.1.2.3.4. Tags cluster.open-cluster-management.io 1.1.2.4. Delete a cluster 1.1.2.4.1. Description Delete a single cluster 1.1.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path cluster_name required Name of the cluster that you want to delete. string 1.1.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.1.2.4.4. Tags cluster.open-cluster-management.io 1.1.3. Definitions 1.1.3.1. Cluster Name Description Schema apiVersion required The versioned schema of the ManagedCluster . string kind required String value that represents the REST resource. string metadata required The metadata of the ManagedCluster . object spec required The specification of the ManagedCluster . spec spec Name Description Schema hubAcceptsClient required Specifies whether the hub can establish a connection with the klusterlet agent on the managed cluster. The default value is false , and can only be changed to true when you have an RBAC rule configured on the hub cluster that allows you to make updates to the virtual subresource of managedclusters/accept . bool managedClusterClientConfigs optional Lists the apiserver addresses of the managed cluster. managedClusterClientConfigs array leaseDurationSeconds optional Specifies the lease update time interval of the klusterlet agents on the managed cluster. By default, the klusterlet agent updates its lease every 60 seconds. integer (int32) taints optional Prevents a managed cluster from being assigned to one or more managed cluster sets during scheduling. taint array managedClusterClientConfigs Name Description Schema URL required string CABundle optional Pattern : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?USD" string (byte) taint Name Description Schema key required The taint key that is applied to a cluster. string value optional The taint value that corresponds to the taint key. string effect optional Effect of the taint on placements that do not tolerate the taint. Valid values are NoSelect , PreferNoSelect , and NoSelectIfNew . string 1.2. Clustersets API (v1beta2) 1.2.1. Overview This documentation is for the ClusterSet resource for Red Hat Advanced Cluster Management for Kubernetes. The ClusterSet resource has four possible requests: create, query, delete, and update. The ManagedClusterSet defines a group of ManagedClusters. You can assign a ManagedCluster to a specific ManagedClusterSet by adding a label with the name cluster.open-cluster-management.io/clusterset on the ManagedCluster that refers to the ManagedClusterSet. You can only add or remove this label on a ManagedCluster when you have an RBAC rule that allows the create permissions on a virtual subresource of managedclustersets/join . You must have this permission on both the source and the target ManagedClusterSets to update this label. 1.2.1.1. Version information Version : 2.11.0 1.2.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.2.1.3. Tags cluster.open-cluster-management.io : Create and manage Clustersets 1.2.2. Paths 1.2.2.1. Query all clustersets 1.2.2.1.1. Description Query your Clustersets for more details. 1.2.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string 1.2.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.2.2.1.4. Consumes clusterset/yaml 1.2.2.1.5. Tags cluster.open-cluster-management.io 1.2.2.2. Create a clusterset 1.2.2.2.1. Description Create a Clusterset. 1.2.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Body body required Parameters describing the clusterset to be created. Clusterset 1.2.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.2.2.2.4. Consumes clusterset/yaml 1.2.2.2.5. Tags cluster.open-cluster-management.io 1.2.2.2.6. Example HTTP request 1.2.2.2.6.1. Request body { "apiVersion": "cluster.open-cluster-management.io/v1beta2", "kind": "ManagedClusterSet", "metadata": { "name": "clusterset1" }, "spec": { "clusterSelector": { "selectorType": "ExclusiveClusterSetLabel" } }, "status": {} } 1.2.2.3. Query a single clusterset 1.2.2.3.1. Description Query a single clusterset for more details. 1.2.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path clusterset_name required Name of the clusterset that you want to query. string 1.2.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.2.2.3.4. Tags cluster.open-cluster-management.io 1.2.2.4. Delete a clusterset 1.2.2.4.1. Description Delete a single clusterset. 1.2.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path clusterset_name required Name of the clusterset that you want to delete. string 1.2.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.2.2.4.4. Tags cluster.open-cluster-management.io 1.2.3. Definitions 1.2.3.1. Clusterset Name Schema apiVersion required string kind required string metadata required object 1.3. Clustersetbindings API (v1beta2) 1.3.1. Overview This documentation is for the ClusterSetBinding resource for Red Hat Advanced Cluster Management for Kubernetes. The ClusterSetBinding resource has four possible requests: create, query, delete, and update. ManagedClusterSetBinding projects a ManagedClusterSet into a certain namespace. You can create a ManagedClusterSetBinding in a namespace and bind it to a ManagedClusterSet if you have an RBAC rule that allows you to create on the virtual subresource of managedclustersets/bind . 1.3.1.1. Version information Version : 2.11.0 1.3.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.3.1.3. Tags cluster.open-cluster-management.io : Create and manage clustersetbindings 1.3.2. Paths 1.3.2.1. Query all clustersetbindings 1.3.2.1.1. Description Query your clustersetbindings for more details. 1.3.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string 1.3.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.3.2.1.4. Consumes clustersetbinding/yaml 1.3.2.1.5. Tags cluster.open-cluster-management.io 1.3.2.2. Create a clustersetbinding 1.3.2.2.1. Description Create a clustersetbinding. 1.3.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default . string Body body required Parameters describing the clustersetbinding to be created. Clustersetbinding 1.3.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.3.2.2.4. Consumes clustersetbinding/yaml 1.3.2.2.5. Tags cluster.open-cluster-management.io 1.3.2.2.6. Example HTTP request 1.3.2.2.6.1. Request body { "apiVersion" : "cluster.open-cluster-management.io/v1beta2", "kind" : "ManagedClusterSetBinding", "metadata" : { "name" : "clusterset1", "namespace" : "ns1" }, "spec": { "clusterSet": "clusterset1" }, "status" : { } } 1.3.2.3. Query a single clustersetbinding 1.3.2.3.1. Description Query a single clustersetbinding for more details. 1.3.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default . string Path clustersetbinding_name required Name of the clustersetbinding that you want to query. string 1.3.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.3.2.3.4. Tags cluster.open-cluster-management.io 1.3.2.4. Delete a clustersetbinding 1.3.2.4.1. Description Delete a single clustersetbinding. 1.3.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default . string Path clustersetbinding_name required Name of the clustersetbinding that you want to delete. string 1.3.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.3.2.4.4. Tags cluster.open-cluster-management.io 1.3.3. Definitions 1.3.3.1. Clustersetbinding Name Description Schema apiVersion required Versioned schema of the ManagedClusterSetBinding . string kind required String value that represents the REST resource. string metadata required Metadata of the ManagedClusterSetBinding . object spec required Specification of the ManagedClusterSetBinding . spec spec Name Description Schema clusterSet required Name of the ManagedClusterSet to bind. It must match the instance name of the ManagedClusterSetBinding and cannot change after it is created. string 1.4. Clusterview API (v1alpha1) 1.4.1. Overview This documentation is for the clusterview resource for Red Hat Advanced Cluster Management for Kubernetes. The clusterview resource provides a CLI command that enables you to view a list of the managed clusters and managed cluster sets that that you can access. The three possible requests are: list, get, and watch. 1.4.1.1. Version information Version : 2.11.0 1.4.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.4.1.3. Tags clusterview.open-cluster-management.io : View a list of managed clusters that your ID can access. 1.4.2. Paths 1.4.2.1. Get managed clusters 1.4.2.1.1. Description View a list of the managed clusters that you can access. 1.4.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string 1.4.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.4.2.1.4. Consumes managedcluster/yaml 1.4.2.1.5. Tags clusterview.open-cluster-management.io 1.4.2.2. List managed clusters 1.4.2.2.1. Description View a list of the managed clusters that you can access. 1.4.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Body body optional Name of the user ID for which you want to list the managed clusters. string 1.4.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.4.2.2.4. Consumes managedcluster/yaml 1.4.2.2.5. Tags clusterview.open-cluster-management.io 1.4.2.2.6. Example HTTP request 1.4.2.2.6.1. Request body { "apiVersion" : "clusterview.open-cluster-management.io/v1alpha1", "kind" : "ClusterView", "metadata" : { "name" : "<user_ID>" }, "spec": { }, "status" : { } } 1.4.2.3. Watch the managed cluster sets 1.4.2.3.1. Description Watch the managed clusters that you can access. 1.4.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path clusterview_name optional Name of the user ID that you want to watch. string 1.4.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.4.2.4. List the managed cluster sets. 1.4.2.4.1. Description List the managed clusters that you can access. 1.4.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path clusterview_name optional Name of the user ID that you want to watch. string 1.4.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.4.2.5. List the managed cluster sets. 1.4.2.5.1. Description List the managed clusters that you can access. 1.4.2.5.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path clusterview_name optional Name of the user ID that you want to watch. string 1.4.2.5.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.4.2.6. Watch the managed cluster sets. 1.4.2.6.1. Description Watch the managed clusters that you can access. 1.4.2.6.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path clusterview_name optional Name of the user ID that you want to watch. string 1.4.2.6.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.5. Channels API 1.5.1. Overview This documentation is for the Channel resource for Red Hat Advanced Cluster Management for Kubernetes. The Channel resource has four possible requests: create, query, delete and update. 1.5.1.1. Version information Version : 2.11.0 1.5.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.5.1.3. Tags channels.apps.open-cluster-management.io : Create and manage deployables 1.5.2. Paths 1.5.2.1. Create a channel 1.5.2.1.1. Description Create a channel. 1.5.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Body body required Parameters describing the deployable to be created. Channel 1.5.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.5.2.1.4. Consumes application/yaml 1.5.2.1.5. Tags channels.apps.open-cluster-management.io 1.5.2.1.6. Example HTTP request 1.5.2.1.6.1. Request body { "apiVersion": "apps.open-cluster-management.io/v1", "kind": "Channel", "metadata": { "name": "sample-channel", "namespace": "default" }, "spec": { "configMapRef": { "kind": "configmap", "name": "bookinfo-resource-filter-configmap" }, "pathname": "https://charts.helm.sh/stable", "type": "HelmRepo" } } 1.5.2.2. Query all channels for the target namespace 1.5.2.2.1. Description Query your channels for more details. 1.5.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string 1.5.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.5.2.2.4. Consumes application/yaml 1.5.2.2.5. Tags channels.apps.open-cluster-management.io 1.5.2.3. Query a single channels of a namespace 1.5.2.3.1. Description Query a single channels for more details. 1.5.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path channel_name required Name of the deployable that you wan to query. string Path namespace required Namespace that you want to use, for example, default. string 1.5.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.5.2.3.4. Tags channels.apps.open-cluster-management.io 1.5.2.4. Delete a Channel 1.5.2.4.1. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path channel_name required Name of the Channel that you want to delete. string Path namespace required Namespace that you want to use, for example, default. string 1.5.2.4.2. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.5.2.4.3. Tags channels.apps.open-cluster-management.io 1.5.3. Definitions 1.5.3.1. Channel Name Schema apiVersion required string kind required string metadata required object spec required spec spec Name Description Schema configMapRef optional ObjectReference contains enough information to let you inspect or modify the referred object. configMapRef gates optional ChannelGate defines criteria for promote to channel gates pathname required string secretRef optional ObjectReference contains enough information to let you inspect or modify the referred object. secretRef sourceNamespaces optional enum (Namespace, HelmRepo, ObjectBucket, Git, namespace, helmrepo, objectbucket, github) array configMapRef Name Description Schema apiVersion optional API version of the referent. string fieldPath optional If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. string kind optional Kind of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/ name optional Name of the referent. More info: Names string namespace optional Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ string resourceVersion optional Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency string uid optional gates Name Description Schema annotations optional typical annotations of k8s annotations labelSelector optional A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. labelSelector name optional string annotations Name Schema key optional string value optional string labelSelector Name Description Schema matchExpressions optional matchExpressions is a list of label selector requirements. The requirements are ANDed. matchExpressions array matchLabels optional matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. string, string map matchExpressions Name Description Schema key required key is the label key that the selector applies to. string operator required operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. string values optional values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. string array secretRef Name Description Schema apiVersion optional API version of the referent. string fieldPath optional If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. string kind optional Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds string name optional Name of the referent. More info: Names string namespace optional Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ string resourceVersion optional Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency string uid optional UID of the referent. More info: UIIDs string 1.6. Subscriptions API 1.6.1. Overview This documentation is for the Subscription resource for Red Hat Advanced Cluster Management for Kubernetes. The Subscription resource has four possible requests: create, query, delete and update. Deprecated: PlacementRule 1.6.1.1. Version information Version : 2.11.0 1.6.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.6.1.3. Tags subscriptions.apps.open-cluster-management.io : Create and manage subscriptions 1.6.2. Paths 1.6.2.1. Create a subscription 1.6.2.1.1. Description Create a subscription. 1.6.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Body body required Parameters describing the subscription to be created. Subscription 1.6.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.6.2.1.4. Consumes subscription/yaml 1.6.2.1.5. Tags subscriptions.apps.open-cluster-management.io 1.6.2.1.6. Example HTTP request 1.6.2.1.6.1. Request body { "apiVersion" : "apps.open-cluster-management.io/v1", "kind" : "Subscription", "metadata" : { "name" : "sample_subscription", "namespace" : "default", "labels" : { "app" : "sample_subscription-app" }, "annotations" : { "apps.open-cluster-management.io/git-path" : "apps/sample/", "apps.open-cluster-management.io/git-branch" : "sample_branch" } }, "spec" : { "channel" : "channel_namespace/sample_channel", "packageOverrides" : [ { "packageName" : "my-sample-application", "packageAlias" : "the-sample-app", "packageOverrides" : [ { "path" : "spec", "value" : { "persistence" : { "enabled" : false, "useDynamicProvisioning" : false }, "license" : "accept", "tls" : { "hostname" : "my-mcm-cluster.icp" }, "sso" : { "registrationImage" : { "pullSecret" : "hub-repo-docker-secret" } } } } ] } ], "placement" : { "placementRef" : { "kind" : "PlacementRule", "name" : "demo-clusters" } } } } 1.6.2.2. Query all subscriptions 1.6.2.2.1. Description Query your subscriptions for more details. 1.6.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string 1.6.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.6.2.2.4. Consumes subscription/yaml 1.6.2.2.5. Tags subscriptions.apps.open-cluster-management.io 1.6.2.3. Query a single subscription 1.6.2.3.1. Description Query a single subscription for more details. 1.6.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Path subscription_name required Name of the subscription that you wan to query. string 1.6.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.6.2.3.4. Tags subscriptions.apps.open-cluster-management.io 1.6.2.4. Delete a subscription 1.6.2.4.1. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Path subscription_name required Name of the subscription that you want to delete. string 1.6.2.4.2. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.6.2.4.3. Tags subscriptions.apps.open-cluster-management.io 1.6.3. Definitions 1.6.3.1. Subscription Name Schema apiVersion required string kind required string metadata required metadata spec required spec status optional status metadata Name Schema annotations optional object labels optional object name optional string namespace optional string spec Name Schema channel required string name optional string overrides optional overrides array packageFilter optional packageFilter packageOverrides optional packageOverrides array placement optional placement timewindow optional timewindow overrides Name Schema clusterName required string clusterOverrides required object array packageFilter Name Description Schema annotations optional string, string map filterRef optional filterRef labelSelector optional labelSelector version optional Pattern : "( )((\\.[0-9] )(\\. )|(\\.[0-9] )?(\\.[xX]))USD" string filterRef Name Schema name optional string labelSelector Name Schema matchExpressions optional matchExpressions array matchLabels optional string, string map matchExpressions Name Schema key required string operator required string values optional string array packageOverrides Name Schema packageAlias optional string packageName required string packageOverrides optional object array placement Name Schema clusterSelector optional clusterSelector clusters optional clusters array local optional boolean placementRef optional placementRef clusterSelector Name Schema matchExpressions optional matchExpressions array matchLabels optional string, string map matchExpressions Name Schema key required string operator required string values optional string array clusters Name Schema name required string placementRef Name Schema apiVersion optional string fieldPath optional string kind optional string name optional string namespace optional string resourceVersion optional string uid optional string timewindow Name Schema daysofweek optional string array hours optional hours array location optional string windowtype optional enum (active, blocked, Active, Blocked) hours Name Schema end optional string start optional string status Name Schema lastUpdateTime optional string (date-time) message optional string phase optional string reason optional string statuses optional object 1.7. PlacementRules API (deprecated) 1.7.1. Overview This documentation is for the PlacementRule resource for Red Hat Advanced Cluster Management for Kubernetes. The PlacementRule resource has four possible requests: create, query, delete and update. 1.7.1.1. Version information Version : 2.11.0 1.7.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.7.1.3. Tags placementrules.apps.open-cluster-management.io : Create and manage placement rules 1.7.2. Paths 1.7.2.1. Create a placement rule 1.7.2.1.1. Description Create a placement rule. 1.7.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Body body required Parameters describing the placement rule to be created. PlacementRule 1.7.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.7.2.1.4. Consumes application/yaml 1.7.2.1.5. Tags placementrules.apps.open-cluster-management.io 1.7.2.1.6. Example HTTP request 1.7.2.1.6.1. Request body { "apiVersion" : "apps.open-cluster-management.io/v1", "kind" : "PlacementRule", "metadata" : { "name" : "towhichcluster", "namespace" : "ns-sub-1" }, "spec" : { "clusterConditions" : [ { "type": "ManagedClusterConditionAvailable", "status": "True" } ], "clusterSelector" : { } } } 1.7.2.2. Query all placement rules 1.7.2.2.1. Description Query your placement rules for more details. 1.7.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string 1.7.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.7.2.2.4. Consumes application/yaml 1.7.2.2.5. Tags placementrules.apps.open-cluster-management.io 1.7.2.3. Query a single placementrule 1.7.2.3.1. Description Query a single placement rule for more details. 1.7.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Path placementrule_name required Name of the placementrule that you want to query. string 1.7.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.7.2.3.4. Tags placementrules.apps.open-cluster-management.io 1.7.2.4. Delete a placementrule 1.7.2.4.1. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Path placementrule_name required Name of the placementrule that you want to delete. string 1.7.2.4.2. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.7.2.4.3. Tags placementrules.apps.open-cluster-management.io 1.7.3. Definitions 1.7.3.1. Placementrule Name Schema apiVersion required string kind required string metadata required object spec required spec spec Name Schema clusterConditions optional clusterConditions array clusterReplicas optional integer clusterSelector optional clusterSelector clusters optional clusters array policies optional policies array resourceHint optional resourceHint schedulerName optional string clusterConditions Name Schema status optional string type optional string clusterSelector Name Schema matchExpressions optional matchExpressions array matchLabels optional string, string map matchExpressions Name Schema key optional string operator optional string values optional string array clusters Name Schema name optional string policies Name Schema apiVersion optional string fieldPath optional string kind optional string name optional string namespace optional string resourceVersion optional string uid optional string resourceHint Name Schema order optional string type optional string 1.8. Applications API 1.8.1. Overview This documentation is for the Application resource for Red Hat Advanced Cluster Management for Kubernetes. Application resource has four possible requests: create, query, delete and update. 1.8.1.1. Version information Version : 2.11.0 1.8.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.8.1.3. Tags applications.app.k8s.io : Create and manage applications 1.8.2. Paths 1.8.2.1. Create a application 1.8.2.1.1. Description Create a application. 1.8.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Body body required Parameters describing the application to be created. Application 1.8.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.8.2.1.4. Consumes application/yaml 1.8.2.1.5. Tags applications.app.k8s.io 1.8.2.1.6. Example HTTP request 1.8.2.1.6.1. Request body { "apiVersion" : "app.k8s.io/v1beta1", "kind" : "Application", "metadata" : { "labels" : { "app" : "nginx-app-details" }, "name" : "nginx-app-3", "namespace" : "ns-sub-1" }, "spec" : { "componentKinds" : [ { "group" : "apps.open-cluster-management.io", "kind" : "Subscription" } ] }, "selector" : { "matchLabels" : { "app" : "nginx-app-details" } }, "status" : { } } 1.8.2.2. Query all applications 1.8.2.2.1. Description Query your applications for more details. 1.8.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string 1.8.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.8.2.2.4. Consumes application/yaml 1.8.2.2.5. Tags applications.app.k8s.io 1.8.2.3. Query a single application 1.8.2.3.1. Description Query a single application for more details. 1.8.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path application_name required Name of the application that you wan to query. string Path namespace required Namespace that you want to use, for example, default. string 1.8.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.8.2.3.4. Tags applications.app.k8s.io 1.8.2.4. Delete a application 1.8.2.4.1. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path application_name required Name of the application that you want to delete. string Path namespace required Namespace that you want to use, for example, default. string 1.8.2.4.2. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.8.2.4.3. Tags applications.app.k8s.io 1.8.3. Definitions 1.8.3.1. Application Name Schema apiVersion required string kind required string metadata required object spec required spec spec Name Schema assemblyPhase optional string componentKinds optional object array descriptor optional descriptor info optional info array selector optional object descriptor Name Schema description optional string icons optional icons array keywords optional string array links optional links array maintainers optional maintainers array notes optional string owners optional owners array type optional string version optional string icons Name Schema size optional string src required string type optional string links Name Schema description optional string url optional string maintainers Name Schema email optional string name optional string url optional string owners Name Schema email optional string name optional string url optional string info Name Schema name optional string type optional string value optional string valueFrom optional valueFrom valueFrom Name Schema configMapKeyRef optional configMapKeyRef ingressRef optional ingressRef secretKeyRef optional secretKeyRef serviceRef optional serviceRef type optional string configMapKeyRef Name Schema apiVersion optional string fieldPath optional string key optional string kind optional string name optional string namespace optional string resourceVersion optional string uid optional string ingressRef Name Schema apiVersion optional string fieldPath optional string host optional string kind optional string name optional string namespace optional string path optional string resourceVersion optional string uid optional string secretKeyRef Name Schema apiVersion optional string fieldPath optional string key optional string kind optional string name optional string namespace optional string resourceVersion optional string uid optional string serviceRef Name Schema apiVersion optional string fieldPath optional string kind optional string name optional string namespace optional string path optional string port optional integer (int32) resourceVersion optional string uid optional string 1.9. Helm API 1.9.1. Overview This documentation is for the HelmRelease resource for Red Hat Advanced Cluster Management for Kubernetes. The HelmRelease resource has four possible requests: create, query, delete and update. 1.9.1.1. Version information Version : 2.11.0 1.9.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.9.1.3. Tags helmreleases.apps.open-cluster-management.io : Create and manage helmreleases 1.9.2. Paths 1.9.2.1. Create a helmrelease 1.9.2.1.1. Description Create a helmrelease. 1.9.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Body body required Parameters describing the helmrelease to be created. HelmRelease 1.9.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.9.2.1.4. Consumes application/yaml 1.9.2.1.5. Tags helmreleases.apps.open-cluster-management.io 1.9.2.1.6. Example HTTP request 1.9.2.1.6.1. Request body { "apiVersion" : "apps.open-cluster-management.io/v1", "kind" : "HelmRelease", "metadata" : { "name" : "nginx-ingress", "namespace" : "default" }, "repo" : { "chartName" : "nginx-ingress", "source" : { "helmRepo" : { "urls" : [ "https://kubernetes-charts.storage.googleapis.com/nginx-ingress-1.26.0.tgz" ] }, "type" : "helmrepo" }, "version" : "1.26.0" }, "spec" : { "defaultBackend" : { "replicaCount" : 3 } } } 1.9.2.2. Query all helmreleases 1.9.2.2.1. Description Query your helmreleases for more details. 1.9.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string 1.9.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.9.2.2.4. Consumes application/yaml 1.9.2.2.5. Tags helmreleases.apps.open-cluster-management.io 1.9.2.3. Query a single helmrelease 1.9.2.3.1. Description Query a single helmrelease for more details. 1.9.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path helmrelease_name required Name of the helmrelease that you wan to query. string Path namespace required Namespace that you want to use, for example, default. string 1.9.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.9.2.3.4. Tags helmreleases.apps.open-cluster-management.io 1.9.2.4. Delete a helmrelease 1.9.2.4.1. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path helmrelease_name required Name of the helmrelease that you want to delete. string Path namespace required Namespace that you want to use, for example, default. string 1.9.2.4.2. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.9.2.4.3. Tags helmreleases.apps.open-cluster-management.io 1.9.3. Definitions 1.9.3.1. HelmRelease Name Schema apiVersion required string kind required string metadata required object repo required repo spec required object status required status repo Name Schema chartName optional string configMapRef optional configMapRef secretRef optional secretRef source optional source version optional string configMapRef Name Schema apiVersion optional string fieldPath optional string kind optional string name optional string namespace optional string resourceVersion optional string uid optional string secretRef Name Schema apiVersion optional string fieldPath optional string kind optional string name optional string namespace optional string resourceVersion optional string uid optional string source Name Schema github optional github helmRepo optional helmRepo type optional string github Name Schema branch optional string chartPath optional string urls optional string array helmRepo Name Schema urls optional string array status Name Schema conditions required conditions array deployedRelease optional deployedRelease conditions Name Schema lastTransitionTime optional string (date-time) message optional string reason optional string status required string type required string deployedRelease Name Schema manifest optional string name optional string 1.10. Policy API 1.10.1. Overview This documentation is for the Policy resource for Red Hat Advanced Cluster Management for Kubernetes. The Policy resource has four possible requests: create, query, delete and update. 1.10.1.1. Version information Version : 2.11.0 1.10.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.10.1.3. Tags policy.open-cluster-management.io/v1 : Create and manage policies 1.10.2. Paths 1.10.2.1. Create a policy 1.10.2.1.1. Description Create a policy. 1.10.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Body body required Parameters describing the policy to be created. Policy 1.10.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.10.2.1.4. Consumes application/json 1.10.2.1.5. Tags policy.open-cluster-management.io 1.10.2.1.6. Example HTTP request 1.10.2.1.6.1. Request body { "apiVersion": "policy.open-cluster-management.io/v1", "kind": "Policy", "metadata": { "name": "test-policy-swagger", "description": "Example body for Policy API Swagger docs" }, "spec": { "remediationAction": "enforce", "namespaces": { "include": [ "default" ], "exclude": [ "kube*" ] }, "policy-templates": { "kind": "ConfigurationPolicy", "apiVersion": "policy.open-cluster-management.io/v1", "complianceType": "musthave", "metadataComplianceType": "musthave", "metadata": { "namespace": null, "name": "test-role" }, "selector": { "matchLabels": { "cloud": "IBM" } }, "spec" : { "object-templates": { "complianceType": "musthave", "metadataComplianceType": "musthave", "objectDefinition": { "apiVersion": "rbac.authorization.k8s.io/v1", "kind": "Role", "metadata": { "name": "role-policy", }, "rules": [ { "apiGroups": [ "extensions", "apps" ], "resources": [ "deployments" ], "verbs": [ "get", "list", "watch", "delete" ] }, { "apiGroups": [ "core" ], "resources": [ "pods" ], "verbs": [ "create", "update", "patch" ] }, { "apiGroups": [ "core" ], "resources": [ "secrets" ], "verbs": [ "get", "watch", "list", "create", "delete", "update", "patch" ], }, ], }, }, }, }, 1.10.2.2. Query all policies 1.10.2.2.1. Description Query your policies for more details. 1.10.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to apply the policy to, for example, default. string 1.10.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.10.2.2.4. Consumes application/json 1.10.2.2.5. Tags policy.open-cluster-management.io 1.10.2.3. Query a single policy 1.10.2.3.1. Description Query a single policy for more details. 1.10.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path policy_name required Name of the policy that you want to query. string Path namespace required Namespace that you want to use, for example, default. string 1.10.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.10.2.3.4. Tags policy.open-cluster-management.io 1.10.2.4. Delete a policy 1.10.2.4.1. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path policy_name required Name of the policy that you want to delete. string Path namespace required Namespace that you want to use, for example, default. string 1.10.2.4.2. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.10.2.4.3. Tags policy.open-cluster-management.io 1.10.3. Definitions 1.10.3.1. Policy Name Description Schema apiVersion required The versioned schema of Policy. string kind required String value that represents the REST resource. string metadata required Describes rules that define the policy. object spec Name Description Schema remediationAction optional Value that represents how violations are handled as defined in the resource. string namespaceSelector required Value that represents which namespaces the policy is applied. string policy-templates Name Description Schema apiVersion required The versioned schema of Policy. string kind optional String value that represents the REST resource. string metadata required Describes rules that define the policy. object complianceType Used to list expected behavior for roles and other Kubernetes object that must be evaluated or applied to the managed clusters. string metadataComplianceType optional Provides a way for users to process labels and annotations of an object differently than the other fields. The parameter value defaults to the same value of the ComplianceType parameter. string clusterConditions optional Section to define labels. string rules optional string clusterConditions Name Description Schema matchLabels optional The label that is required for the policy to be applied to a namespace. object cloud optional The label that is required for the policy to be applied to a cloud provider. string rules Name Description Schema apiGroups required List of APIs that the rule applies to. string resources required A list of resource types. object verbs required A list of verbs. string 1.11. Observability API 1.11.1. Overview This documentation is for the MultiClusterObservability resource for Red Hat Advanced Cluster Management for Kubernetes. The MultiClusterObservability resource has four possible requests: create, query, delete and update. 1.11.1.1. Version information Version : 2.11.0 1.11.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.11.1.3. Tags observability.open-cluster-management.io : Create and manage multiclusterobservabilities 1.11.2. Paths 1.11.2.1. Create a multiclusterobservability resource 1.11.2.1.1. Description Create a MultiClusterObservability resource. 1.11.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Body body required Parameters describing the MultiClusterObservability resource to be created. MultiClusterObservability 1.11.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.11.2.1.4. Consumes application/yaml 1.11.2.1.5. Tags observability.apps.open-cluster-management.io 1.11.2.1.6. Example HTTP request 1.11.2.1.6.1. Request body { "apiVersion": "observability.open-cluster-management.io/v1beta2", "kind": "MultiClusterObservability", "metadata": { "name": "example" }, "spec": { "observabilityAddonSpec": {} "storageConfig": { "metricObjectStorage": { "name": "thanos-object-storage", "key": "thanos.yaml" "writeStorage": { - "key": " ", "name" : " " - "key": " ", "name" : " " } } } } 1.11.2.2. Query all multiclusterobservabilities 1.11.2.2.1. Description Query your MultiClusterObservability resources for more details. 1.11.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string 1.11.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.11.2.2.4. Consumes application/yaml 1.11.2.2.5. Tags observability.apps.open-cluster-management.io 1.11.2.3. Query a single multiclusterobservability 1.11.2.3.1. Description Query a single MultiClusterObservability resource for more details. 1.11.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path multiclusterobservability_name required Name of the multiclusterobservability that you want to query. string 1.11.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.11.2.3.4. Tags observability.apps.open-cluster-management.io 1.11.2.4. Delete a multiclusterobservability resource 1.11.2.4.1. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path multiclusterobservability_name required Name of the multiclusterobservability that you want to delete. string 1.11.2.4.2. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.11.2.4.3. Tags observability.apps.open-cluster-management.io 1.11.3. Definitions 1.11.3.1. MultiClusterObservability Name Description Schema apiVersion required The versioned schema of the MultiClusterObservability. string kind required String value that represents the REST resource, MultiClusterObservability. string metadata required Describes rules that define the policy. object spec Name Description Schema enableDownsampling optional Enable or disable the downsample. Default value is true . If there is no downsample data, the query is unavailable. boolean imagePullPolicy optional Pull policy for the MultiClusterObservability images. The default value is Always . corev1.PullPolicy imagePullSecret optional Pull secret for the MultiClusterObservability images. The default value is multiclusterhub-operator-pull-secret string nodeSelector optional Specification of the node selector. map[string]string observabilityAddonSpec required The global settings for all managed clusters, which have the observability add-on installed. observabilityAddonSpec storageConfig required Specifies the storage configuration to be used by observability. StorageConfig tolerations optional Provided the ability for all components to tolerate any taints. []corev1.Toleration advanced optional The advanced configuration settings for observability. advanced resources optional Compute resources required by MultiClusterObservability. corev1.ResourceRequirements replicas optional Replicas for MultiClusterObservability. integer storageConfig Name Description Schema alertmanagerStorageSize optional The amount of storage applied to the alertmanager stateful sets. Default value is 1Gi . string compactStorageSize optional The amount of storage applied to the thanos compact stateful sets. Default value is 100Gi . string metricObjectStorage required Object store to configure secrets for metrics. metricObjectStorage receiveStorageSize optional The amount of storage applied to thanos receive stateful sets. Default value is 100Gi . string ruleStorageSize optional The amount of storage applied to thanos rule stateful sets. Default value is 1Gi . string storageClass optional Specify the storageClass stateful sets. This storage is used for the object storage if metricObjectStorage is configured for your operating system to create storage. Default value is gp2 . string storeStorageSize optional The amount of storage applied to thanos store stateful sets. Default value is 10Gi . string writeStorage optional A list of endpoint access information. [ ] WriteStorage writeStorage Name Description Schema name required The name of the secret with endpoint access information. string key required The key of the secret to select from. string metricObjectStorage Name Description Schema key required The key of the secret to select from. Must be a valid secret key. See Thanos documentation . string name required Name of the metricObjectStorage . See Kubernetes Names for more information. string observabilityAddonSpec Name Description Schema enableMetrics optional Indicates if the observability add-on sends metrics to the hub cluster. Default value is true . boolean interval optional Interval for when the observability add-on sends metrics to the hub cluster. Default value is 300 seconds ( 300s ). integer resources optional Resource for the metrics collector resource requirement. The default CPU request is 100m , memory request is 100Mi . corev1.ResourceRequirements advanced Name Description Schema retentionConfig optional Specifies the data retention configuration to be used by observability. RetentionConfig rbacQueryProxy optional Specifies the replicas and resources for the rbac-query-proxy deployment. CommonSpec grafana optional Specifies the replicas and resources for the grafana deployment CommonSpec alertmanager optional Specifies the replicas and resources for alertmanager statefulset. CommonSpec observatoriumAPI optional Specifies the replicas and resources for the observatorium-api deployment. CommonSpec queryFrontend optional Specifies the replicas and resources for the query-frontend deployment. CommonSpec query optional Specifies the replicas and resources for the query deployment. CommonSpec receive optional Specifies the replicas and resources for the receive statefulset. CommonSpec rule optional Specifies the replicas and resources for rule statefulset. CommonSpec store optional Specifies the replicas and resources for the store statefulset. CommonSpec CompactSpec optional Specifies the resources for compact statefulset. compact storeMemcached optional Specifies the replicas, resources, etc. for store-memcached. storeMemcached queryFrontendMemcached optional Specifies the replicas, resources, etc for query-frontend-memcached. CacheConfig retentionConfig Name Description Schema blockDuration optional The amount of time to block the duration for Time Series Database (TSDB) block. Default value is 2h . string deleteDelay optional The amount of time until a block marked for deletion is deleted from a bucket. Default value is 48h . string retentionInLocal optional The amount of time to retain raw samples from the local storage. Default value is 24h . string retentionResolutionRaw optional The amount of time to retain raw samples of resolution in a bucket. Default value is 365 days ( 365d ) string retentionResolution5m optional The amount of time to retain samples of resolution 1 (5 minutes) in a bucket. Default value is 365 days ( 365d ). string retentionResolution1h optional The amount of time to retain samples of resolution 2 (1 hour) in a bucket. Default value is 365 days ( 365d ). string CompactSpec Name Description Schema resources optional Compute resources required by thanos compact. corev1.ResourceRequirements serviceAccountAnnotations optional Annotations is an unstructured key value map stored with the compact service account. map[string]string storeMemcached Name Description Schema resources optional Compute resources required by MultiCLusterObservability. corev1.ResourceRequirements replicas optional Replicas for MultiClusterObservability. integer memoryLimitMb optional Memory limit of Memcached in megabytes. integer maxItemSize optional Max item size of Memcached. The default value is 1m, min:1k, max:1024m . string connectionLimit optional Max simultaneous connections of Memcached. The default value is integer status Name Description Schema status optional Status contains the different condition statuses for MultiClusterObservability. metav1.Condition CommonSpec Name Description Schema resources optional Compute resources required by the component. corev1.ResourceRequirements replicas optional Replicas for the component. integer QuerySpec Name Description Schema CommonSpec optional Specifies the replicas and resources for the query deployment. CommonSpec serviceAccountAnnotations optional Annotations is an unstructured key value map stored with the query service account. map[string]string ReceiveSpec Name Description Schema CommonSpec optional Specifies the replicas and resources for the query deployment. CommonSpec serviceAccountAnnotations optional Annotations is an unstructured key value map stored with the query service account. map[string]string StoreSpec Name Description Schema CommonSpec optional Specifies the replicas and resources for the query deployment. CommonSpec serviceAccountAnnotations optional Annotations is an unstructured key value map stored with the query service account. map[string]string RuleSpec Name Description Schema CommonSpec optional Specifies the replicas and resources for the query deployment. CommonSpec evalInterval optional Specifies the evaluation interval for the rules. string serviceAccountAnnotations optional Annotations is an unstructured key value map stored with the query service account. map[string]string 1.12. Search query API The search query API is not a Kubernetes API, therefore is not displayed through the Red Hat OpenShift Container Platform API Explorer. Continue reading to understand the search query API capabilities. 1.12.1. Overview You can expose the search query API with a route and use the API to resolve search queries. The API is a GraphQL endpoint. You can use any client such as curl or Postman. 1.12.1.1. Version information Version : 2.10.0 1.12.1.2. URI scheme BasePath : /searchapi/graphql Schemes : HTTPS 1.12.1.3. Configure API access Create a route to access the Search API external from your cluster with the following command: oc create route passthrough search-api --service=search-search-api -n open-cluster-management Important: You must configure your route to secure your environment. See Route configuration in the OpenShift Container Platform documentation for more details. 1.12.2. Schema design input SearchFilter { property: String! values: [String]! } input SearchInput { keywords: [String] filters: [SearchFilter] limit: Int relatedKinds: [String] } type SearchResult { count: Int items: [Map] related: [SearchRelatedResult] } type SearchRelatedResult { kind: String! count: Int items: [Map] } Parameters with ! indicates that the field is required. 1.12.2.1. Description table of query inputs Type Description Property SearchFilter Defines a key and value to filter results. When you provide many values for a property, the API interpret the values as an "OR" operation. When you provide many filters, results match all filters and the API interprets as an "AND" operation. string SearchInput Enter key words to receive a list of resources. When you provide many keywords, the API interprets it as an "AND" operation. String limit Determine the maximum number of results returned after you enter the query. The default value is 10,000 . A value of -1 means that the limit is removed. Integer 1.12.2.2. Schema example { "query": "type SearchResult {count: Intitems: [Map]related: [SearchRelatedResult]} type SearchRelatedResult {kind: String!count: Intitems: [Map]}", "variables": { "input": [ { "keywords": [], "filters": [ { "property": "kind", "values": [ "Deployment" ] } ], "limit": 10 } ] } } 1.12.3. Generic schema type Query { search(input: [SearchInput]): [SearchResult] searchComplete(property: String!, query: SearchInput, limit: Int): [String] searchSchema: Map messages: [Message] } 1.12.4. Supported queries Continue reading to see the query types that are supported in JSON format. 1.12.4.1. Search for deployments Query: query mySearch(USDinput: [SearchInput]) { search(input: USDinput) { items } } Variables: {"input":[ { "keywords":[], "filters":[ {"property":"kind","values":["Deployment"]}], "limit":10 } ]} 1.12.4.2. Search for pods Query: query mySearch(USDinput: [SearchInput]) { search(input: USDinput) { items } } Variables: {"input":[ { "keywords":[], "filters":[ {"property":"kind","values":["Pod"]}], "limit":10 } ]} 1.13. MultiClusterHub API 1.13.1. Overview This documentation is for the MultiClusterHub resource for Red Hat Advanced Cluster Management for Kubernetes. MultiClusterHub resource has four possible requests: create, query, delete and update. 1.13.1.1. Version information Version : 2.11.0 1.13.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.13.1.3. Tags multiclusterhubs.operator.open-cluster-management.io : Create and manage multicluster hub operators 1.13.2. Paths 1.13.2.1. Create a MultiClusterHub resource 1.13.2.1.1. Description Create a MultiClusterHub resource to define the configuration for an instance of the multicluster hub. 1.13.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Body body required Parameters describing the multicluster hub to be created. Definitions 1.13.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.13.2.1.4. Consumes multiclusterhubs/yaml 1.13.2.1.5. Tags multiclusterhubs.operator.open-cluster-management.io 1.13.2.1.6. Example HTTP request 1.13.2.1.6.1. Request body { "apiVersion": "apiextensions.k8s.io/v1", "kind": "CustomResourceDefinition", "metadata": { "name": "multiclusterhubs.operator.open-cluster-management.io" }, "spec": { "group": "operator.open-cluster-management.io", "names": { "kind": "MultiClusterHub", "listKind": "MultiClusterHubList", "plural": "multiclusterhubs", "shortNames": [ "mch" ], "singular": "multiclusterhub" }, "scope": "Namespaced", "versions": [ { "additionalPrinterColumns": [ { "description": "The overall status of the multicluster hub.", "jsonPath": ".status.phase", "name": "Status", "type": "string" }, { "jsonPath": ".metadata.creationTimestamp", "name": "Age", "type": "date" } ], "name": "v1", "schema": { "openAPIV3Schema": { "description": "MultiClusterHub defines the configuration for an instance of the multiCluster hub, a central point for managing multiple Kubernetes-based clusters. The deployment of multicluster hub components is determined based on the configuration that is defined in this resource.", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. The value is in CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { "description": "MultiClusterHubSpec defines the desired state of MultiClusterHub.", "properties": { "availabilityConfig": { "description": "Specifies deployment replication for improved availability. Options are: Basic and High (default).", "type": "string" }, "customCAConfigmap": { "description": "Provide the customized OpenShift default ingress CA certificate to Red Hat Advanced Cluster Management.", } "type": "string" }, "disableHubSelfManagement": { "description": "Disable automatic import of the hub cluster as a managed cluster.", "type": "boolean" }, "disableUpdateClusterImageSets": { "description": "Disable automatic update of ClusterImageSets.", "type": "boolean" }, "hive": { "description": "(Deprecated) Overrides for the default HiveConfig specification.", "properties": { "additionalCertificateAuthorities": { "description": "(Deprecated) AdditionalCertificateAuthorities is a list of references to secrets in the 'hive' namespace that contain an additional Certificate Authority to use when communicating with target clusters. These certificate authorities are used in addition to any self-signed CA generated by each cluster on installation.", "items": { "description": "LocalObjectReference contains the information to let you locate the referenced object inside the same namespace.", "properties": { "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "type": "object" }, "type": "array" }, "backup": { "description": "(Deprecated) Backup specifies configuration for backup integration. If absent, backup integration is disabled.", "properties": { "minBackupPeriodSeconds": { "description": "(Deprecated) MinBackupPeriodSeconds specifies that a minimum of MinBackupPeriodSeconds occurs in between each backup. This is used to rate limit backups. This potentially batches together multiple changes into one backup. No backups are lost for changes that happen during the interval that is queued up, and results in a backup once the interval has been completed.", "type": "integer" }, "velero": { "description": "(Deprecated) Velero specifies configuration for the Velero backup integration.", "properties": { "enabled": { "description": "(Deprecated) Enabled dictates if the Velero backup integration is enabled. If not specified, the default is disabled.", "type": "boolean" } }, "type": "object" } }, "type": "object" }, "externalDNS": { "description": "(Deprecated) ExternalDNS specifies configuration for external-dns if it is to be deployed by Hive. If absent, external-dns is not deployed.", "properties": { "aws": { "description": "(Deprecated) AWS contains AWS-specific settings for external DNS.", "properties": { "credentials": { "description": "(Deprecated) Credentials reference a secret that is used to authenticate with AWS Route53. It needs permission to manage entries in each of the managed domains for this cluster. Secret should have AWS keys named 'aws_access_key_id' and 'aws_secret_access_key'.", "properties": { "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "type": "object" } }, "type": "object" }, "gcp": { "description": "(Deprecated) GCP contains Google Cloud Platform specific settings for external DNS.", "properties": { "credentials": { "description": "(Deprecated) Credentials reference a secret that is used to authenticate with GCP DNS. It needs permission to manage entries in each of the managed domains for this cluster. Secret should have a key names 'osServiceAccount.json'. The credentials must specify the project to use.", "properties": { "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "type": "object" } }, "type": "object" } }, "type": "object" }, "failedProvisionConfig": { "description": "(Deprecated) FailedProvisionConfig is used to configure settings related to handling provision failures.", "properties": { "skipGatherLogs": { "description": "(Deprecated) SkipGatherLogs disables functionality that attempts to gather full logs from the cluster if an installation fails for any reason. The logs are stored in a persistent volume for up to seven days.", "type": "boolean" } }, "type": "object" }, "globalPullSecret": { "description": "(Deprecated) GlobalPullSecret is used to specify a pull secret that is used globally by all of the cluster deployments. For each cluster deployment, the contents of GlobalPullSecret are merged with the specific pull secret for a cluster deployment(if specified), with precedence given to the contents of the pull secret for the cluster deployment.", "properties": { "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "type": "object" }, "maintenanceMode": { "description": "(Deprecated) MaintenanceMode can be set to true to disable the Hive controllers in situations where you need to ensure nothing is running that adds or act upon finalizers on Hive types. This should rarely be needed. Sets replicas to zero for the 'hive-controllers' deployment to accomplish this.", "type": "boolean" } }, "required": [ "failedProvisionConfig" ], "type": "object" }, "imagePullSecret": { "description": "Override pull secret for accessing MultiClusterHub operand and endpoint images.", "type": "string" }, "ingress": { "description": "Configuration options for ingress management.", "properties": { "sslCiphers": { "description": "List of SSL ciphers enabled for management ingress. Defaults to full list of supported ciphers.", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "nodeSelector": { "additionalProperties": { "type": "string" }, "description": "Set the node selectors..", "type": "object" }, "overrides": { "description": "Developer overrides.", "properties": { "imagePullPolicy": { "description": "Pull policy of the multicluster hub images.", "type": "string" } }, "type": "object" }, "separateCertificateManagement": { "description": "(Deprecated) Install cert-manager into its own namespace.", "type": "boolean" } }, "type": "object" }, "status": { "description": "MulticlusterHubStatus defines the observed state of MultiClusterHub.", "properties": { "components": { "additionalProperties": { "description": "StatusCondition contains condition information.", "properties": { "lastTransitionTime": { "description": "LastTransitionTime is the last time the condition changed from one status to another.", "format": "date-time", "type": "string" }, "message": { "description": "Message is a human-readable message indicating\ndetails about the last status change.", "type": "string" }, "reason": { "description": "Reason is a (brief) reason for the last status change of the condition.", "type": "string" }, "status": { "description": "Status is the status of the condition. One of True, False, Unknown.", "type": "string" }, "type": { "description": "Type is the type of the cluster condition.", "type": "string" } }, "type": "object" }, "description": "Components []ComponentCondition `json:\"manifests,omitempty\"`", "type": "object" }, "conditions": { "description": "Conditions contain the different condition statuses for the MultiClusterHub.", "items": { "description": "StatusCondition contains condition information.", "properties": { "lastTransitionTime": { "description": "LastTransitionTime is the last time the condition changed from one status to another.", "format": "date-time", "type": "string" }, "lastUpdateTime": { "description": "The last time this condition was updated.", "format": "date-time", "type": "string" }, "message": { "description": "Message is a human-readable message indicating details about the last status change.", "type": "string" }, "reason": { "description": "Reason is a (brief) reason for the last status change of the condition.", "type": "string" }, "status": { "description": "Status is the status of the condition. One of True, False, Unknown.", "type": "string" }, "type": { "description": "Type is the type of the cluster condition.", "type": "string" } }, "type": "object" }, "type": "array" }, "currentVersion": { "description": "CurrentVersion indicates the current version..", "type": "string" }, "desiredVersion": { "description": "DesiredVersion indicates the desired version.", "type": "string" }, "phase": { "description": "Represents the running phase of the MultiClusterHub", "type": "string" } }, "type": "object" } }, "type": "object" } }, "served": true, "storage": true, "subresources": { "status": {} } } ] } } 1.13.2.2. Query all MultiClusterHubs 1.13.2.2.1. Description Query your multicluster hub operator for more details. 1.13.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string 1.13.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.13.2.2.4. Consumes operator/yaml 1.13.2.2.5. Tags multiclusterhubs.operator.open-cluster-management.io 1.13.2.3. Query a MultiClusterHub operator 1.13.2.3.1. Description Query a single multicluster hub operator for more details. 1.13.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path application_name required Name of the application that you want to query. string Path namespace required Namespace that you want to use, for example, default. string 1.13.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.13.2.3.4. Tags multiclusterhubs.operator.open-cluster-management.io 1.13.2.4. Delete a MultiClusterHub operator 1.13.2.4.1. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path application_name required Name of the multicluster hub operator that you want to delete. string Path namespace required Namespace that you want to use, for example, default. string 1.13.2.4.2. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.13.2.4.3. Tags multiclusterhubs.operator.open-cluster-management.io 1.13.3. Definitions 1.13.3.1. Multicluster hub operator Name Description Schema apiVersion required The versioned schema of the MultiClusterHub. string kind required String value that represents the REST resource. string metadata required Describes rules that define the resource. object spec required The resource specification. spec spec availabilityConfig optional Specifies deployment replication for improved availability. The default value is High . string customCAConfigmap optional Provide the customized OpenShift default ingress CA certificate to Red Hat Advanced Cluster Management. string disableHubSelfManagement optional Disable automatic import of the hub cluster as a managed cluster. boolean disableUpdateClusterImageSets optional Disable automatic update of ClusterImageSets. boolean hive optional (Deprecated) An object that overrides for the default HiveConfig specification. hive imagePullSecret optional Overrides pull secret for accessing MultiClusterHub operand and endpoint images. string ingress optional Configuration options for ingress management. ingress nodeSelector optional Set the node selectors. string separateCertificateManagement optional (Deprecated) Install cert-manager into its own namespace. boolean hive additionalCertificateAuthorities optional (Deprecated) A list of references to secrets in the hive namespace that contain an additional Certificate Authority to use when communicating with target clusters. These certificate authorities are used in addition to any self-signed CA generated by each cluster on installation. object backup optional (Deprecated) Specifies the configuration for backup integration. If absent, backup integration is disabled. backup externalDNS optional (Deprecated) Specifies configuration for external-dns if it is to be deployed by Hive. If absent, external-dns is not be deployed. object failedProvisionConfig required (Deprecated) Used to configure settings related to handling provision failures. failedProvisionConfig globalPullSecret optional (Deprecated) Used to specify a pull secret that is used globally by all of the cluster deployments. For each cluster deployment, the contents of globalPullSecret are merged with the specific pull secret for a cluster deployment (if specified), with precedence given to the contents of the pull secret for the cluster deployment. object maintenanceMode optional (Deprecated) Can be set to true to disable the hive controllers in situations where you need to ensure nothing is running that adds or acts upon finalizers on Hive types. This should rarely be needed. Sets replicas to 0 for the hive-controllers deployment to accomplish this. boolean ingress sslCiphers optional List of SSL ciphers enabled for management ingress. Defaults to full list of supported ciphers. string backup minBackupPeriodSeconds optional (Deprecated) Specifies that a minimum of MinBackupPeriodSeconds occurs in between each backup. This is used to rate limit backups. This potentially batches together multiple changes into one backup. No backups are lost as changes happen during this interval are queued up and result in a backup happening once the interval has been completed. integer velero optional (Deprecated) Velero specifies configuration for the Velero backup integration. object failedProvisionConfig skipGatherLogs optional (Deprecated) Disables functionality that attempts to gather full logs from the cluster if an installation fails for any reason. The logs are stored in a persistent volume for up to seven days. boolean status components optional The components of the status configuration. object conditions optional Contains the different conditions for the multicluster hub. conditions desiredVersion optional Indicates the desired version. string phase optional Represents the active phase of the MultiClusterHub resource. The values that are used for this parameter are: Pending , Running , Installing , Updating , Uninstalling string conditions lastTransitionTime optional The last time the condition changed from one status to another. string lastUpdateTime optional The last time this condition was updated. string message required Message is a human-readable message indicating details about the last status change. string reason required A brief reason for why the condition status changed. string status required The status of the condition. string type required The type of the cluster condition. string StatusConditions kind required The resource kind that represents this status. string available required Indicates whether this component is properly running. boolean lastTransitionTime optional The last time the condition changed from one status to another. metav1.time lastUpdateTime optional The last time this condition was updated. metav1.time message required Message is a human-readable message indicating details about the last status change. string reason optional A brief reason for why the condition status changed. string status optional The status of the condition. string type optional The type of the cluster condition. string 1.14. Placement API (v1beta1) 1.14.1. Overview This documentation is for the Placement resource for Red Hat Advanced Cluster Management for Kubernetes. The Placement resource has four possible requests: create, query, delete, and update. Placement defines a rule to select a set of ManagedClusters from the ManagedClusterSets that are bound to the placement namespace. A slice of PlacementDecisions with the label cluster.open-cluster-management.io/placement={placement name} is created to represent the ManagedClusters that are selected by this placement. 1.14.1.1. Version information Version : 2.11.0 1.14.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.14.1.3. Tags cluster.open-cluster-management.io : Create and manage Placements 1.14.2. Paths 1.14.2.1. Query all Placements 1.14.2.1.1. Description Query your Placements for more details. 1.14.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string 1.14.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.14.2.1.4. Consumes placement/yaml 1.14.2.1.5. Tags cluster.open-cluster-management.io 1.14.2.2. Create a Placement 1.14.2.2.1. Description Create a Placement. 1.14.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Body body required Parameters describing the placement binding to be created. Placement 1.14.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.14.2.2.4. Consumes placement/yaml 1.14.2.2.5. Tags cluster.open-cluster-management.io 1.14.2.2.6. Example HTTP request 1.14.2.2.6.1. Request body { "apiVersion" : "cluster.open-cluster-management.io/v1beta1", "kind" : "Placement", "metadata" : { "name" : "placement1", "namespace": "ns1" }, "spec": { "predicates": [ { "requiredClusterSelector": { "labelSelector": { "matchLabels": { "vendor": "OpenShift" } } } } ] }, "status" : { } } 1.14.2.3. Query a single Placement 1.14.2.3.1. Description Query a single Placement for more details. 1.14.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path placement_name required Name of the Placement that you want to query. string 1.14.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.14.2.3.4. Tags cluster.open-cluster-management.io 1.14.2.4. Delete a Placement 1.14.2.4.1. Description Delete a single Placement. 1.14.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path placement_name required Name of the Placement that you want to delete. string 1.14.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.14.2.4.4. Tags cluster.open-cluster-management.io 1.14.3. Definitions 1.14.3.1. Placement Name Description Schema apiVersion required Versioned schema of the Placement. string kind required String value that represents the REST resource. string metadata required Metadata of the Placement. object spec required Specification of the Placement. spec spec Name Description Schema clusterSets optional A subset of ManagedClusterSets from which the ManagedClusters are selected. If the ManagedClusterSet is empty, ManagedClusters are selected from the ManagedClusterSets that are bound to the Placement namespace. If the ManagedClusterSet contains ManagedClusters , ManagedClusters are selected from the intersection of this subset. The selected ManagedClusterSets are bound to the placement namespace. string array numberOfClusters optional Number of ManagedClusters that you want to be selected. integer (int32) predicates optional Subset of cluster predicates that select ManagedClusters . The conditional logic is OR . clusterPredicate array prioritizerPolicy optional Policy of the prioritizers. prioritizerPolicy tolerations optional Value that allows, but does not require, the managed clusters with certain taints to be selected by placements with matching tolerations. toleration array clusterPredicate Name Description Schema requiredClusterSelector optional A cluster selector to select ManagedClusters with a label and cluster claim. clusterSelector clusterSelector Name Description Schema labelSelector optional Selector of ManagedClusters by label. object claimSelector optional Selector of ManagedClusters by claim. clusterClaimSelector clusterClaimSelector Name Description Schema matchExpressions optional Subset of the cluster claim selector requirements. The conditional logic is AND . < object > array prioritizerPolicy Name Description Schema mode optional Either Exact , Additive , or "". The default value of "" is Additive . string configurations optional Configuration of the prioritizer. prioritizerConfig array prioritizerConfig Name Description Schema scoreCoordinate required Configuration of the prioritizer and score source. scoreCoordinate weight optional Weight of the prioritizer score. The value must be within the range: [-10,10]. int32 scoreCoordinate Name Description Schema type required Type of the prioritizer score. Valid values are "BuiltIn" or "AddOn". string builtIn optional Name of a BuiltIn prioritizer from the following options: 1) Balance: Balance the decisions among the clusters. 2) Steady: Ensure the existing decision is stabilized. 3) ResourceAllocatableCPU & ResourceAllocatableMemory: Sort clusters based on the allocatable resources. 4) Spread: Spread the workload evenly to topologies. string addOn optional When type is AddOn , AddOn defines the resource name and score name. object toleration Name Description Schema key optional Taint key that the toleration applies to. Empty means match all of the taint keys. string operator optional Relationship of a key to the value. Valid operators are Exists and Equal . The default value is Equal . string value optional Taint value that matches the toleration. string effect optional Taint effect to match. Empty means match all of the taint effects. When specified, allowed values are NoSelect , PreferNoSelect , and NoSelectIfNew . string tolerationSeconds optional Length of time that a taint is tolerated, after which the taint is not tolerated. The default value is nil, which indicates that there is no time limit on how long the taint is tolerated. int64 1.15. PlacementDecisions API (v1beta1) 1.15.1. Overview This documentation is for the PlacementDecision resource for Red Hat Advanced Cluster Management for Kubernetes. The PlacementDecision resource has four possible requests: create, query, delete, and update. A PlacementDecision indicates a decision from a placement. A PlacementDecision uses the label cluster.open-cluster-management.io/placement={placement name} to reference a certain placement. 1.15.1.1. Version information Version : 2.11.0 1.15.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.15.1.3. Tags cluster.open-cluster-management.io : Create and manage PlacementDecisions. 1.15.2. Paths 1.15.2.1. Query all PlacementDecisions 1.15.2.1.1. Description Query your PlacementDecisions for more details. 1.15.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string 1.15.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.15.2.1.4. Consumes placementdecision/yaml 1.15.2.1.5. Tags cluster.open-cluster-management.io 1.15.2.2. Create a PlacementDecision 1.15.2.2.1. Description Create a PlacementDecision. 1.15.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Body body required Parameters describing the PlacementDecision to be created. PlacementDecision 1.15.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.15.2.2.4. Consumes placementdecision/yaml 1.15.2.2.5. Tags cluster.open-cluster-management.io 1.15.2.2.6. Example HTTP request 1.15.2.2.6.1. Request body { "apiVersion" : "cluster.open-cluster-management.io/v1beta1", "kind" : "PlacementDecision", "metadata" : { "labels" : { "cluster.open-cluster-management.io/placement" : "placement1" }, "name" : "placement1-decision1", "namespace": "ns1" }, "status" : { } } 1.15.2.3. Query a single PlacementDecision 1.15.2.3.1. Description Query a single PlacementDecision for more details. 1.15.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path placementdecision_name required Name of the PlacementDecision that you want to query. string 1.15.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.15.2.3.4. Tags cluster.open-cluster-management.io 1.15.2.4. Delete a PlacementDecision 1.15.2.4.1. Description Delete a single PlacementDecision. 1.15.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path placementdecision_name required Name of the PlacementDecision that you want to delete. string 1.15.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.15.2.4.4. Tags cluster.open-cluster-management.io 1.15.3. Definitions 1.15.3.1. PlacementDecision Name Description Schema apiVersion required Versioned schema of PlacementDecision . string kind required String value that represents the REST resource. string metadata required Metadata of PlacementDecision . object status optional Current status of the PlacementDecision . PlacementStatus PlacementStatus Name Description Schema Decisions required Slice of decisions according to a placement. ClusterDecision array ClusterDecision Name Description Schema clusterName required Name of the ManagedCluster . string reason required Reason why the ManagedCluster is selected. string 1.16. DiscoveryConfig API 1.16.1. Overview This documentation is for the DiscoveryConfig resource for Red Hat Advanced Cluster Management for Kubernetes. The DiscoveryConfig resource has four possible requests: create, query, delete, and update. 1.16.1.1. Version information Version : 2.11.0 1.16.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.16.1.3. Tags discoveryconfigs.discovery.open-cluster-management.io : Create and manage DiscoveryConfigs 1.16.2. Paths 1.16.2.1. Create a DiscoveryConfig 1.16.2.1.1. Description Create a DiscoveryConfig. 1.16.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Body body required Parameters describing the DiscoveryConfig to be created. DiscoveryConfig 1.16.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.16.2.1.4. Consumes discoveryconfigs/yaml 1.16.2.1.5. Tags discoveryconfigs.discovery.open-cluster-management.io 1.16.2.1.5.1. Request body { "apiVersion": "apiextensions.k8s.io/v1", "kind": "CustomResourceDefinition", "metadata": { "annotations": { "controller-gen.kubebuilder.io/version": "v0.4.1", }, "creationTimestamp": null, "name": "discoveryconfigs.discovery.open-cluster-management.io", }, "spec": { "group": "discovery.open-cluster-management.io", "names": { "kind": "DiscoveryConfig", "listKind": "DiscoveryConfigList", "plural": "discoveryconfigs", "singular": "discoveryconfig" }, "scope": "Namespaced", "versions": [ { "name": "v1", "schema": { "openAPIV3Schema": { "description": "DiscoveryConfig is the Schema for the discoveryconfigs API", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { "description": "DiscoveryConfigSpec defines the desired state of DiscoveryConfig", "properties": { "credential": { "description": "Credential is the secret containing credentials to connect to the OCM api on behalf of a user", "type": "string" }, "filters": { "description": "Sets restrictions on what kind of clusters to discover", "properties": { "lastActive": { "description": "LastActive is the last active in days of clusters to discover, determined by activity timestamp", "type": "integer" }, "openShiftVersions": { "description": "OpenShiftVersions is the list of release versions of OpenShift of the form \"<Major>.<Minor>\"", "items": { "description": "Semver represents a partial semver string with the major and minor version in the form \"<Major>.<Minor>\". For example: \"4.14\"", "pattern": "^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)USD", "type": "string" }, "type": "array" } }, "type": "object" } }, "required": [ "credential" ], "type": "object" }, "status": { "description": "DiscoveryConfigStatus defines the observed state of DiscoveryConfig", "type": "object" } }, "type": "object" } }, "served": true, "storage": true, "subresources": { "status": {} } } ] }, "status": { "acceptedNames": { "kind": "", "plural": "" }, "conditions": [], "storedVersions": [] } } 1.16.2.2. Query all DiscoveryConfigs 1.16.2.2.1. Description Query your discovery config operator for more details. 1.16.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string 1.16.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.16.2.2.4. Consumes operator/yaml 1.16.2.2.5. Tags discoveryconfigs.discovery.open-cluster-management.io 1.16.2.3. Delete a DiscoveryConfig operator 1.16.2.3.1. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path application_name required Name of the Discovery Config operator that you want to delete. string Path namespace required Namespace that you want to use, for example, default. string 1.16.2.3.2. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.16.2.3.3. Tags discoveryconfigs.operator.open-cluster-management.io 1.16.3. Definitions 1.16.3.1. DiscoveryConfig Name Description Schema apiVersion required The versioned schema of the discoveryconfigs. string kind required String value that represents the REST resource. string metadata required Describes rules that define the resource. object spec required Defines the desired state of DiscoveryConfig. See List of specs 1.16.3.2. List of specs Name Description Schema credential required Credential is the secret containing credentials to connect to the OCM API on behalf of a user. string filters optional Sets restrictions on what kind of clusters to discover. See List of filters 1.16.3.3. List of filters Name Description Schema lastActive required LastActive is the last active in days of clusters to discover, determined by activity timestamp. integer openShiftVersions optional OpenShiftVersions is the list of release versions of OpenShift of the form "<Major>.<Minor>" object 1.17. DiscoveredCluster API 1.17.1. Overview This documentation is for the DiscoveredCluster resource for Red Hat Advanced Cluster Management for Kubernetes. The DiscoveredCluster resource has four possible requests: create, query, delete, and update. 1.17.1.1. Version information Version : 2.11.0 1.17.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.17.1.3. Tags discoveredclusters.discovery.open-cluster-management.io : Create and manage DiscoveredClusters 1.17.2. Paths 1.17.2.1. Create a DiscoveredCluster 1.17.2.1.1. Description Create a DiscoveredCluster. 1.17.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string Body body required Parameters describing the DiscoveredCluster to be created. DiscoveredCluster 1.17.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.17.2.1.4. Consumes discoveredclusters/yaml 1.17.2.1.5. Tags discoveredclusters.discovery.open-cluster-management.io 1.17.2.1.5.1. Request body { "apiVersion": "apiextensions.k8s.io/v1", "kind": "CustomResourceDefinition", "metadata": { "annotations": { "controller-gen.kubebuilder.io/version": "v0.4.1",\ }, "creationTimestamp": null, "name": "discoveredclusters.discovery.open-cluster-management.io", }, "spec": { "group": "discovery.open-cluster-management.io", "names": { "kind": "DiscoveredCluster", "listKind": "DiscoveredClusterList", "plural": "discoveredclusters", "singular": "discoveredcluster" }, "scope": "Namespaced", "versions": [ { "name": "v1", "schema": { "openAPIV3Schema": { "description": "DiscoveredCluster is the Schema for the discoveredclusters API", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { "description": "DiscoveredClusterSpec defines the desired state of DiscoveredCluster", "properties": { "activityTimestamp": { "format": "date-time", "type": "string" }, "apiUrl": { "type": "string" }, "cloudProvider": { "type": "string" }, "console": { "type": "string" }, "creationTimestamp": { "format": "date-time", "type": "string" }, "credential": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .", "properties": { "apiVersion": { "description": "API version of the referent.", "type": "string" }, "fieldPath": { "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", "type": "string" }, "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "namespace": { "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", "type": "string" }, "resourceVersion": { "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } }, "type": "object" }, "displayName": { "type": "string" }, "isManagedCluster": { "type": "boolean" }, "name": { "type": "string" }, "openshiftVersion": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } }, "required": [ "apiUrl", "displayName", "isManagedCluster", "name", "type" ], "type": "object" }, "status": { "description": "DiscoveredClusterStatus defines the observed state of DiscoveredCluster", "type": "object" } }, "type": "object" } }, "served": true, "storage": true, "subresources": { "status": {} } } ] }, "status": { "acceptedNames": { "kind": "", "plural": "" }, "conditions": [], "storedVersions": [] } } 1.17.2.2. Query all DiscoveredClusters 1.17.2.2.1. Description Query your discovered clusters operator for more details. 1.17.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string 1.17.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.17.2.2.4. Consumes operator/yaml 1.17.2.2.5. Tags discoveredclusters.discovery.open-cluster-management.io 1.17.2.3. Delete a DiscoveredCluster operator 1.17.2.3.1. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path application_name required Name of the Discovered Cluster operator that you want to delete. string Path namespace required Namespace that you want to use, for example, default. string 1.17.2.3.2. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.17.2.3.3. Tags discoveredclusters.operator.open-cluster-management.io 1.17.3. Definitions 1.17.3.1. DiscoveredCluster Name Description Schema apiVersion required The versioned schema of the discoveredclusters. string kind required String value that represents the REST resource. string metadata required Describes rules that define the resource. object spec required DiscoveredClusterSpec defines the desired state of DiscoveredCluster. See List of specs 1.17.3.2. List of specs Name Description Schema activityTimestamp optional Discoveredclusters last available activity timestamp. metav1.time apiUrl required Discoveredclusters API URL endpoint. string cloudProvider optional Cloud provider of discoveredcluster. string console optional Discoveredclusters console URL endpoint. string creationTimestamp optional Discoveredclusters creation timestamp. metav1.time credential optional The reference to the credential from which the cluster was discovered. corev1.ObjectReference displayName required The display name of the discovered cluster. string isManagedCluster required If true, cluster is managed by ACM. boolean name required The name of the discoveredcluster. string openshiftVersion optional The OpenShift version of the discovered cluster. string status optional The status of the discovered cluster. string type required The OpenShift flavor (ex. OCP, ROSA, etc.). string 1.18. AddOnDeploymentConfig API (v1alpha1) 1.18.1. Overview This documentation is for the AddOnDeploymentConfig resource for Red Hat Advanced Cluster Management for Kubernetes. The AddOnDeploymentConfig resource has four possible requests: create, query, delete, and update. AddOnDeploymentConfig represents a deployment configuration for an add-on. 1.18.1.1. Version information Version : 2.11.0 1.18.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.18.1.3. Tags addon.open-cluster-management.io : Create and manage AddOnDeploymentConfigs 1.18.2. Paths 1.18.2.1. Query all AddOnDeploymentConfigs 1.18.2.1.1. Description Query your AddOnDeploymentConfigs for more details. 1.18.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string 1.18.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.18.2.1.4. Consumes addondeploymentconfig/yaml 1.18.2.1.5. Tags addon.open-cluster-management.io 1.18.2.2. Create a AddOnDeploymentConfig 1.18.2.2.1. Description Create a AddOnDeploymentConfig. 1.18.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Body body required Parameters describing the AddOnDeploymentConfig binding to be created. AddOnDeploymentConfig 1.18.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.18.2.2.4. Consumes addondeploymentconfig/yaml 1.18.2.2.5. Tags addon.open-cluster-management.io 1.18.2.2.6. Example HTTP request 1.18.2.2.6.1. Request body { "apiVersion": "addon.open-cluster-management.io/v1alpha1", "kind": "AddOnDeploymentConfig", "metadata": { "name": "deploy-config", "namespace": "open-cluster-management-hub" }, "spec": { "nodePlacement": { "nodeSelector": { "node-dedicated": "acm-addon" }, "tolerations": [ { "effect": "NoSchedule", "key": "node-dedicated", "operator": "Equal", "value": "acm-addon" } ] } } } 1.18.2.3. Query a single AddOnDeploymentConfig 1.18.2.3.1. Description Query a single AddOnDeploymentConfig for more details. 1.18.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path addondeploymentconfig_name required Name of the AddOnDeploymentConfig that you want to query. string 1.18.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.18.2.3.4. Tags addon.open-cluster-management.io 1.18.2.4. Delete a AddOnDeploymentConfig 1.18.2.4.1. Description Delete a single AddOnDeploymentConfig. 1.18.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path addondeploymentconfig_name required Name of the AddOnDeploymentConfig that you want to delete. string 1.18.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.18.2.4.4. Tags addon.open-cluster-management.io 1.18.3. Definitions 1.18.3.1. AddOnDeploymentConfig Name Description Schema apiVersion required Versioned schema of the AddOnDeploymentConfig. string kind required String value that represents the REST resource. string metadata required Metadata of the AddOnDeploymentConfig. object spec required Specification of the AddOnDeploymentConfig. spec spec Name Description Schema customizedVariables optional A list of name-value variables for the current add-on deployment. The add-on implementation can use these variables to render its add-on deployment. customizedVariable array nodePlacement required Enables explicit control over the scheduling of the add-on agents on the managed cluster. nodePlacement customizedVariable Name Description Schema name required Name of this variable. string value optional Value of this variable. string nodePlacement Name Description Schema nodeSelector optional Define which nodes the pods are scheduled to run on. When the nodeSelector is empty, the nodeSelector selects all nodes. map[string]string tolerations optional Applied to pods and used to schedule pods to any taint that matches the <key,value,effect> toleration using the matching operator ( <operator> ). []corev1.Toleration 1.19. ClusterManagementAddOn API (v1alpha1) 1.19.1. Overview This documentation is for the ClusterManagementAddOn resource for Red Hat Advanced Cluster Management for Kubernetes. The ClusterManagementAddOn resource has four possible requests: create, query, delete, and update. ClusterManagementAddOn represents the registration of an add-on to the cluster manager. This resource allows the user to discover which add-on is available for the cluster manager and also provides metadata information about the add-on. This resource also provides a reference to ManagedClusterAddOn, the name of the ClusterManagementAddOn resource that is used for the namespace-scoped ManagedClusterAddOn resource. ClusterManagementAddOn is a cluster-scoped resource. 1.19.1.1. Version information Version : 2.11.0 1.19.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.19.1.3. Tags addon.open-cluster-management.io : Create and manage ClusterManagementAddOns 1.19.2. Paths 1.19.2.1. Query all ClusterManagementAddOns 1.19.2.1.1. Description Query your ClusterManagementAddOns for more details. 1.19.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string 1.19.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.19.2.1.4. Consumes clustermanagementaddon/yaml 1.19.2.1.5. Tags addon.open-cluster-management.io 1.19.2.2. Create a ClusterManagementAddOn 1.19.2.2.1. Description Create a ClusterManagementAddOn. 1.19.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Body body required Parameters describing the ClusterManagementAddon binding to be created. ClusterManagementAddOn 1.19.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.19.2.2.4. Consumes clustermanagementaddon/yaml 1.19.2.2.5. Tags addon.open-cluster-management.io 1.19.2.2.6. Example HTTP request 1.19.2.2.6.1. Request body { "apiVersion": "addon.open-cluster-management.io/v1alpha1", "kind": "ClusterManagementAddOn", "metadata": { "name": "helloworld" }, "spec": { "supportedConfigs": [ { "defaultConfig": { "name": "deploy-config", "namespace": "open-cluster-management-hub" }, "group": "addon.open-cluster-management.io", "resource": "addondeploymentconfigs" } ] }, "status" : { } } 1.19.2.3. Query a single ClusterManagementAddOn 1.19.2.3.1. Description Query a single ClusterManagementAddOn for more details. 1.19.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path clustermanagementaddon_name required Name of the ClusterManagementAddOn that you want to query. string 1.19.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.19.2.3.4. Tags addon.open-cluster-management.io 1.19.2.4. Delete a ClusterManagementAddOn 1.19.2.4.1. Description Delete a single ClusterManagementAddOn. 1.19.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path clustermanagementaddon_name required Name of the ClusterManagementAddOn that you want to delete. string 1.19.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.19.2.4.4. Tags addon.open-cluster-management.io 1.19.3. Definitions 1.19.3.1. ClusterManagementAddOn Name Description Schema apiVersion required Versioned schema of the ClusterManagementAddOn. string kind required String value that represents the REST resource. string metadata required Metadata of the ClusterManagementAddOn. object spec required Specification of the ClusterManagementAddOn. spec spec Name Description Schema addOnMeta optional AddOnMeta is a reference to the metadata information for the add-on. addOnMeta supportedConfigs optional SupportedConfigs is a list of configuration types supported by add-on. configMeta array addOnMeta Name Description Schema displayName optional Represents the name of add-on that is displayed. string description optional Represents the detailed description of the add-on. string configMeta Name Description Schema group optional Group of the add-on configuration. string resource required Resource of the add-on configuration. string defaultConfig required Represents the namespace and name of the default add-on configuration. This is where all add-ons have a same configuration. configReferent configReferent Name Description Schema namespace optional Namespace of the add-on configuration. If this field is not set, the configuration is cluster-scope. string name required Name of the add-on configuration. string 1.20. ManagedClusterAddOn API (v1alpha1) 1.20.1. Overview This documentation is for the ManagedClusterAddOn resource for Red Hat Advanced Cluster Management for Kubernetes. The ManagedClusterAddOn resource has four possible requests: create, query, delete, and update. ManagedClusterAddOn is the custom resource object which holds the current state of an add-on. This resource should be created in the ManagedCluster namespace. 1.20.1.1. Version information Version : 2.11.0 1.20.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.20.1.3. Tags addon.open-cluster-management.io : Create and manage ManagedClusterAddOns 1.20.2. Paths 1.20.2.1. Query all ManagedClusterAddOns 1.20.2.1.1. Description Query your ManagedClusterAddOns for more details. 1.20.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string 1.20.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.20.2.1.4. Consumes managedclusteraddon/yaml 1.20.2.1.5. Tags addon.open-cluster-management.io 1.20.2.2. Create a ManagedClusterAddOn 1.20.2.2.1. Description Create a ManagedClusterAddOn. 1.20.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Body body required Parameters that describe the ManagedClusterAddOn binding to be created. ManagedClusterAddOn 1.20.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.20.2.2.4. Consumes managedclusteraddon/yaml 1.20.2.2.5. Tags addon.open-cluster-management.io 1.20.2.2.6. Example HTTP request 1.20.2.2.6.1. Request body { "apiVersion": "addon.open-cluster-management.io/v1alpha1", "kind": "ManagedClusterAddOn", "metadata": { "name": "helloworld", "namespace": "cluster1" }, "spec": { "configs": [ { "group": "addon.open-cluster-management.io", "name": "cluster-deploy-config", "namespace": "open-cluster-management-hub", "resource": "addondeploymentconfigs" } ], "installNamespace": "default" }, "status" : { } } 1.20.2.3. Query a single ManagedClusterAddOn 1.20.2.3.1. Description Query a single ManagedClusterAddOn for more details. 1.20.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path managedclusteraddon_name required Name of the ManagedClusterAddOn that you want to query. string 1.20.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.20.2.3.4. Tags addon.open-cluster-management.io 1.20.2.4. Delete a ManagedClusterAddOn 1.20.2.4.1. Description Delete a single ManagedClusterAddOn. 1.20.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path managedclusteraddon_name required Name of the ManagedClusterAddOn that you want to delete. string 1.20.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.20.2.4.4. Tags addon.open-cluster-management.io 1.20.3. Definitions 1.20.3.1. ManagedClusterAddOn Name Description Schema apiVersion required Versioned schema of the ManagedClusterAddOn. string kind required String value that represents the REST resource. string metadata required Metadata of the ManagedClusterAddOn. object spec required Specification of the ManagedClusterAddOn. spec spec Name Description Schema installNamespace optional The namespace on the managed cluster to install the add-on agent. If it is not set, the open-cluster-management-agent-addon namespace is used to install the add-on agent. string configs optional A list of add-on configurations where the current add-on has its own configurations. addOnConfig array addOnConfig Name Description Schema group optional Group of the add-on configuration. string resource required Resource of the add-on configuration. string namespace optional Namespace of the add-on configuration. If this field is not set, the configuration is cluster-scope. string name required Name of the add-on configuration. string 1.21. ManagedClusterSet API (v1beta2) 1.21.1. Overview This documentation is for the ManagedClusterSet resource for Red Hat Advanced Cluster Management for Kubernetes. The ManagedClusterSet resource has four possible requests: create, query, delete, and update. ManagedClusterSet groups two or more managed clusters into a set that you can operate together. Managed clusters that belong to a set can have similar attributes, such as shared use purposes or the same deployment region. 1.21.1.1. Version information Version : 2.11.0 1.21.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.21.1.3. Tags cluster.open-cluster-management.io : Create and manage ManagedClusterSets 1.21.2. Paths 1.21.2.1. Query all managedclustersets 1.21.2.1.1. Description Query your managedclustersets for more details. 1.21.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default. string 1.21.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.21.2.1.4. Consumes managedclusterset/yaml 1.21.2.1.5. Tags cluster.open-cluster-management.io 1.21.2.2. Create a managedclusterset 1.21.2.2.1. Description Create a managedclusterset. 1.21.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default . string Body body required Parameters describing the managedclusterset to be created. Managedclusterset 1.21.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.21.2.2.4. Consumes managedclusterset/yaml 1.21.2.2.5. Tags cluster.open-cluster-management.io 1.21.2.2.6. Example HTTP request 1.21.2.2.6.1. Request body { "apiVersion" : "cluster.open-cluster-management.io/v1beta2", "kind" : "ManagedClusterSet", "metadata" : { "name" : "example-clusterset", }, "spec": { }, "status" : { } } 1.21.2.3. Query a single managedclusterset 1.21.2.3.1. Description Query a single managedclusterset for more details. 1.21.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default . string Path managedclusterset_name required Name of the managedclusterset that you want to query. string 1.21.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.21.2.3.4. Tags cluster.open-cluster-management.io 1.21.2.4. Delete a managedclusterset 1.21.2.4.1. Description Delete a single managedclusterset. 1.21.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path namespace required Namespace that you want to use, for example, default . string Path managedclusterset_name required Name of the managedclusterset that you want to delete. string 1.21.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.21.2.4.4. Tags cluster.open-cluster-management.io 1.21.3. Definitions 1.21.3.1. ManagedClusterSet Name Description Schema apiVersion required Versioned schema of the ManagedClusterSet . string kind required String value that represents the REST resource. string metadata required Metadata of the ManagedClusterSet . object spec required Specification of the ManagedClusterSet . spec 1.22. KlusterletConfig API (v1alpha1) 1.22.1. Overview This documentation is for the KlusterletConfig resource for Red Hat Advanced Cluster Management for Kubernetes. The KlusterletConfig resource has four possible requests: create, query, delete, and update. KlusterletConfig contains configuration information about a klusterlet, such as nodeSelector , tolerations , and pullSecret . KlusterletConfig is a cluster-scoped resource and only works on klusterlet pods in the open-cluster-managemnet-agent namespace. KlusterletConfig does not affect add-on deployment configurations. 1.22.1.1. Version information Version : 2.11.0 1.22.1.2. URI scheme BasePath : /kubernetes/apis Schemes : HTTPS 1.22.1.3. Tags config.open-cluster-management.io : Create and manage KlusterletConfig 1.22.2. Paths 1.22.2.1. Query all KlusterletConfig 1.22.2.1.1. Description Query your KlusterletConfigs for more details. 1.22.2.1.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string 1.22.2.1.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.22.2.1.4. Consumes klusterletconfig/yaml 1.22.2.1.5. Tags config.open-cluster-management.io 1.22.2.2. Create a KlusterletConfig 1.22.2.2.1. Description Create a KlusterletConfig. 1.22.2.2.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Body body required Parameters describing the KlusterletConfig binding to be created. KlusterletConfig 1.22.2.2.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.22.2.2.4. Consumes klusterletconfig/yaml 1.22.2.2.5. Tags config.open-cluster-management.io 1.22.2.2.6. Example HTTP request 1.22.2.2.6.1. Request body { "apiVersion": "apiextensions.k8s.io/v1", "kind": "CustomResourceDefinition", "metadata": { "annotations": { "controller-gen.kubebuilder.io/version": "v0.7.0" }, "creationTimestamp": null, "name": "klusterletconfigs.config.open-cluster-management.io" }, "spec": { "group": "config.open-cluster-management.io", "names": { "kind": "KlusterletConfig", "listKind": "KlusterletConfigList", "plural": "klusterletconfigs", "singular": "klusterletconfig" }, "preserveUnknownFields": false, "scope": "Cluster", "versions": [ { "name": "v1alpha1", "schema": { "openAPIV3Schema": { "description": "KlusterletConfig contains the configuration of a klusterlet including the upgrade strategy, config overrides, proxy configurations etc.", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { "description": "Spec defines the desired state of KlusterletConfig", "properties": { "hubKubeAPIServerProxyConfig": { "description": "HubKubeAPIServerProxyConfig holds proxy settings for connections between klusterlet/add-on agents on the managed cluster and the kube-apiserver on the hub cluster. Empty means no proxy settings is available.", "properties": { "caBundle": { "description": "CABundle is a CA certificate bundle to verify the proxy server. It will be ignored if only HTTPProxy is set; And it is required when HTTPSProxy is set and self signed CA certificate is used by the proxy server.", "format": "byte", "type": "string" }, "httpProxy": { "description": "HTTPProxy is the URL of the proxy for HTTP requests", "type": "string" }, "httpsProxy": { "description": "HTTPSProxy is the URL of the proxy for HTTPS requests HTTPSProxy will be chosen if both HTTPProxy and HTTPSProxy are set.", "type": "string" } }, "type": "object" }, "nodePlacement": { "description": "NodePlacement enables explicit control over the scheduling of the agent components. If the placement is nil, the placement is not specified, it will be omitted. If the placement is an empty object, the placement will match all nodes and tolerate nothing.", "properties": { "nodeSelector": { "additionalProperties": { "type": "string" }, "description": "NodeSelector defines which Nodes the Pods are scheduled on. The default is an empty list.", "type": "object" }, "tolerations": { "description": "Tolerations is attached by pods to tolerate any taint that matches the triple <key,value,effect> using the matching operator <operator>. The default is an empty list.", "items": { "description": "The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.", "properties": { "effect": { "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", "type": "string" }, "key": { "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", "type": "string" }, "operator": { "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", "type": "string" }, "tolerationSeconds": { "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", "format": "int64", "type": "integer" }, "value": { "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "pullSecret": { "description": "PullSecret is the name of image pull secret.", "properties": { "apiVersion": { "description": "API version of the referent.", "type": "string" }, "fieldPath": { "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", "type": "string" }, "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "namespace": { "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", "type": "string" }, "resourceVersion": { "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } }, "type": "object" }, "registries": { "description": "Registries includes the mirror and source registries. The source registry will be replaced by the Mirror.", "items": { "properties": { "mirror": { "description": "Mirror is the mirrored registry of the Source. Will be ignored if Mirror is empty.", "type": "string" }, "source": { "description": "Source is the source registry. All image registries will be replaced by Mirror if Source is empty.", "type": "string" } }, "required": [ "mirror" ], "type": "object" }, "type": "array" } }, "type": "object" }, "status": { "description": "Status defines the observed state of KlusterletConfig", "type": "object" } }, "type": "object" } }, "served": true, "storage": true, "subresources": { "status": {} } } ] }, "status": { "acceptedNames": { "kind": "", "plural": "" }, "conditions": [], "storedVersions": [] } } 1.22.2.3. Query a single KlusterletConfig 1.22.2.3.1. Description Query a single KlusterletConfig for more details. 1.22.2.3.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path klusterletconfig_name required Name of the KlusterletConfig that you want to query. string 1.22.2.3.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.22.2.3.4. Tags config.open-cluster-management.io 1.22.2.4. Delete a KlusterletConfig 1.22.2.4.1. Description Delete a single klusterletconfig. 1.22.2.4.2. Parameters Type Name Description Schema Header COOKIE required Authorization: Bearer {ACCESS_TOKEN} ; ACCESS_TOKEN is the user access token. string Path klusterletconfig_name required Name of the KlusterletConfig that you want to delete. string 1.22.2.4.3. Responses HTTP Code Description Schema 200 Success No Content 403 Access forbidden No Content 404 Resource not found No Content 500 Internal service error No Content 503 Service unavailable No Content 1.22.2.4.4. Tags config.open-cluster-management.io 1.22.3. Definitions 1.22.3.1. KlusterletConfig Name Description Schema apiVersion required Versioned schema of the KlusterletConfig. string kind required String value that represents the REST resource. string metadata required Metadata of the KlusterletConfig. object spec required Specification of the KlusterletConfig. spec spec Name Description Schema registries optional Includes the mirror and source registries. The source registry is replaced by the mirror. registry pullSecret optional The name of image pull secret. object nodePlacement required Enables scheduling control of add-on agents on the managed cluster. nodePlacement hubKubeAPIServerProxyConfig required Contains proxy settings for the connections between the klusterlet or add-on agents on the managed cluster and the kube-apiserver on the hub cluster. Empty means no proxy setting is available. kubeAPIServerProxyConfig nodePlacement Name Description Schema nodeSelector optional Define which nodes the pods are scheduled to run on. When the nodeSelector is empty, the nodeSelector selects all nodes. map[string]string tolerations optional Applied to pods and used to schedule pods to any taint that matches the <key,value,effect> toleration using the matching operator ( <operator> ). []corev1.Toleration kubeAPIServerProxyConfig Name Description Schema caBundle optional A CA certificate bundle to verify the proxy server. The bundle is ignored if only HTTPProxy is set. The bundle is required when HTTPSProxy is set and a self signed CA certificate is used by the proxy server. map[string]string httpProxy optional The URL of the proxy for HTTP requests map[string]string httpsProxy optional The URL of the proxy for HTTPS requests. HTTPSProxy is chosen if both HTTPProxy and HTTPSProxy are set. map[string]string 1.23. Policy compliance history (Technology Preview) 1.23.1. Overview The policy compliance history API is an optional technical preview feature if you want long-term storage of Red Hat Advanced Cluster Management for Kubernetes policy compliance events in a queryable format. You can use the API to get additional details such as the spec field to audit and troubleshoot your policy, and get compliance events when a policy is disabled or removed from a cluster. The policy compliance history API can also generate a comma-separated values (CSV) spreadsheet of policy compliance events to help you with auditing and troubleshooting. 1.23.1.1. Version information Version : 2.11.0 1.23.2. API Endpoints 1.23.2.1. Listing policy compliance events /api/v1/compliance-events This lists all policy compliance events that you have access to by default. The response format is as follows and is sorted by event.timestamp in descending order by default: { "data": [ { "id": 2, "cluster": { "name": "cluster1", "cluster_id": "215ce184-8dee-4cab-b99b-1f8f29dff611" }, "parent_policy": { "id": 3, "name": "configure-custom-app", "namespace": "policies", "catageories": ["CM Configuration Management"], "controls": ["CM-2 Baseline Configuration"], "standards": ["NIST SP 800-53"] }, "policy": { "apiGroup": "policy.open-cluster-management.io", "id": 2, "kind": "ConfigurationPolicy", "name": "configure-custom-app", "namespace": "", // Only shown with `?include_spec` "spec": {} }, "event": { "compliance": "NonCompliant", "message": "configmaps [app-data] not found in namespace default", "timestamp": "2023-07-19T18:25:43.511Z", "metadata": {} } }, { "id": 1, "cluster": { "name": "cluster2", "cluster_id": "415ce234-8dee-4cab-b99b-1f8f29dff461" }, "parent_policy": { "id": 3, "name": "configure-custom-app", "namespace": "policies", "catageories": ["CM Configuration Management"], "controls": ["CM-2 Baseline Configuration"], "standards": ["NIST SP 800-53"] }, "policy": { "apiGroup": "policy.open-cluster-management.io", "id": 4, "kind": "ConfigurationPolicy", "name": "configure-custom-app", "namespace": "", // Only shown with `?include_spec` "spec": {} }, "event": { "compliance": "Compliant", "message": "configmaps [app-data] found as specified in namespace default", "timestamp": "2023-07-19T18:25:41.523Z", "metadata": {} } } ], "metadata": { "page": 1, "pages": 7, "per_page": 20, "total": 123 } } The following optional query parameters are accepted. Notice that those without descriptions just filter on the field it references. The parameter value null represents no value. Additionally, multiple values can be specified with commas. For example, ?cluster.name=cluster1,cluster2 for "or" filtering. Commas can be escaped with \ , if necessary. Table 1.1. Table of query parameters Query argument Description cluster.cluster_id cluster.name direction The direction to sort by. This defaults to desc , which represents descending order. The supported values are asc and desc . event.compliance event.message_includes A filter for compliance messages that include the input string. Only a single value is supported. event.message_like A SQL LIKE filter for compliance messages. The percent sign ( % ) represents a wildcard of zero or more characters. The underscore sign ( _ ) represents a wildcard of a single character. For example %configmaps [%my-configmap%]% matches any configuration policy compliance message that refers to the config map my-configmap . event.reported_by event.timestamp event.timestamp_after An RFC 3339 timestamp to indicate only compliance events after this time should be shown. For example, 2024-02-28T16:32:57Z . event.timestamp_before An RFC 3339 timestamp to indicate only compliance events before this time should be shown. For example, 2024-02-28T16:32:57Z . id include_spec A flag to include the spec field of the policy in the return value. This is not set by default. page The page number in the query. This defaults to 1 . parent_policy.categories parent_policy.controls parent_policy.id parent_policy.name parent_policy.namespace parent_policy.standards per_page The number of compliance events returned per page. This defaults to 20 and cannot be larger than 100 . policy.apiGroup policy.id policy.kind policy.name policy.namespace policy.severity sort The field to sort by. This defaults to event.timestamp . All fields except policy.spec and event.metadata are sortable by using dot notation. To specify multiple sort options, use commas such as ?sort=policy.name,policy.namespace . 1.23.2.2. Selecting a single policy compliance event /api/v1/compliance-events/<id> You can select a single policy compliance event by specifying its database ID. For example, /api/v1/compliance-events/1 selects the compliance event with the ID of 1. The format of the return value is the following JSON: { "id": 1, "cluster": { "name": "cluster2", "cluster_id": "415ce234-8dee-4cab-b99b-1f8f29dff461" }, "parent_policy": { "id": 2, "name": "etcd-encryption", "namespace": "policies", "catageories": ["CM Configuration Management"], "controls": ["CM-2 Baseline Configuration"], "standards": ["NIST SP 800-53"] }, "policy": { "apiGroup": "policy.open-cluster-management.io", "id": 4, "kind": "ConfigurationPolicy", "name": "etcd-encryption", "namespace": "", "spec": {} }, "event": { "compliance": "Compliant", "message": "configmaps [app-data] found as specified in namespace default", "timestamp": "2023-07-19T18:25:41.523Z", "metadata": {} } } 1.23.2.3. Generating a spreadsheet /api/v1/reports/compliance-events You can generate a comma separated value (CSV) spreadsheet of compliance events for auditing and troubleshooting. It outputs the same and accepts the same query arguments as the /api/v1/compliance-events API endpoint. By default there is no per_page limitation set and there is no maximum for the per_page query argument. All the CSV headers are the same as the /api/v1/compliance-events API endpoint with underscores separating JSON objects. For example, the event timestamp has a header of event_timestamp . 1.23.3. Authentication and Authorization The policy compliance history API utilizes the OpenShift instance used by the Red Hat Advanced Cluster Management hub cluster for authentication and authorization. You must provide your OpenShift token in the Authorization header of the HTTPS request. To find your token, run the following command: oc whoami --show-token 1.23.3.1. Viewing compliance events To view the compliance events for a managed cluster, you need access to complete the get verb for the ManagedCluster object on the Red Hat Advanced Cluster Management hub cluster. For example, to view the compliance events of the local-cluster cluster, you might use the open-cluster-management:view:local-cluster ClusterRole or create your own resource as the following example: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: local-cluster-view rules: - apiGroups: - cluster.open-cluster-management.io resources: - managedclusters resourceNames: - local-cluster verbs: - get To verify your access to a particular managed cluster, use the oc auth can-i command. For example, to check if you have access to the local-cluster managed cluster, run the following command: 1.23.3.2. Recording a compliance event Users or service accounts with patch verb access in the policies.policy.open-cluster-management.io/status resource in the corresponding managed cluster namespace have access to record policy compliance events. The governance-policy-framework pod on managed clusters utilizes the open-cluster-management-compliance-history-api-recorder service account in the corresponding managed cluster namespace on the Red Hat Advanced Cluster Management hub cluster to record compliance events. Each service account has the open-cluster-management:compliance-history-api-recorder ClusterRole bound to the managed cluster namespace. Restrict user and service account patch verb access to the policy status to ensure the trustworthiness of the data stored in the policy compliance history API.

Commands:
GET /cluster.open-cluster-management.io/v1/managedclusters
POST /cluster.open-cluster-management.io/v1/managedclusters
{ "apiVersion" : "cluster.open-cluster-management.io/v1", "kind" : "ManagedCluster", "metadata" : { "labels" : { "vendor" : "OpenShift" }, "name" : "cluster1" }, "spec": { "hubAcceptsClient": true, "managedClusterClientConfigs": [ { "caBundle": "test", "url": "https://test.com" } ] }, "status" : { } }
GET /cluster.open-cluster-management.io/v1/managedclusters/{cluster_name}
DELETE /cluster.open-cluster-management.io/v1/managedclusters/{cluster_name}
DELETE /hive.openshift.io/v1/{cluster_name}/clusterdeployments/{cluster_name}
"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?USD"
GET /cluster.open-cluster-management.io/v1beta2/managedclustersets
POST /cluster.open-cluster-management.io/v1beta2/managedclustersets
{ "apiVersion": "cluster.open-cluster-management.io/v1beta2", "kind": "ManagedClusterSet", "metadata": { "name": "clusterset1" }, "spec": { "clusterSelector": { "selectorType": "ExclusiveClusterSetLabel" } }, "status": {} }
GET /cluster.open-cluster-management.io/v1beta2/managedclustersets/{clusterset_name}
DELETE /cluster.open-cluster-management.io/v1beta2/managedclustersets/{clusterset_name}
GET /cluster.open-cluster-management.io/v1beta2/namespaces/{namespace}/managedclustersetbindings
POST /cluster.open-cluster-management.io/v1beta2/namespaces/{namespace}/managedclustersetbindings
{ "apiVersion" : "cluster.open-cluster-management.io/v1beta2", "kind" : "ManagedClusterSetBinding", "metadata" : { "name" : "clusterset1", "namespace" : "ns1" }, "spec": { "clusterSet": "clusterset1" }, "status" : { } }
GET /cluster.open-cluster-management.io/v1beta2/namespaces/{namespace}/managedclustersetbindings/{clustersetbinding_name}
DELETE /cluster.open-cluster-management.io/v1beta2/managedclustersetbindings/{clustersetbinding_name}
GET /managedclusters.clusterview.open-cluster-management.io
LIST /managedclusters.clusterview.open-cluster-management.io
{ "apiVersion" : "clusterview.open-cluster-management.io/v1alpha1", "kind" : "ClusterView", "metadata" : { "name" : "<user_ID>" }, "spec": { }, "status" : { } }
WATCH /managedclusters.clusterview.open-cluster-management.io
GET /managedclustersets.clusterview.open-cluster-management.io
LIST /managedclustersets.clusterview.open-cluster-management.io
WATCH /managedclustersets.clusterview.open-cluster-management.io
POST /apps.open-cluster-management.io/v1/namespaces/{namespace}/channels
{ "apiVersion": "apps.open-cluster-management.io/v1", "kind": "Channel", "metadata": { "name": "sample-channel", "namespace": "default" }, "spec": { "configMapRef": { "kind": "configmap", "name": "bookinfo-resource-filter-configmap" }, "pathname": "https://charts.helm.sh/stable", "type": "HelmRepo" } }
GET /apps.open-cluster-management.io/v1/namespaces/{namespace}/channels
GET /apps.open-cluster-management.io/v1/namespaces/{namespace}/channels/{channel_name}
DELETE /apps.open-cluster-management.io/v1/namespaces/{namespace}/channels/{channel_name}
POST /apps.open-cluster-management.io/v1/namespaces/{namespace}/subscriptions
{ "apiVersion" : "apps.open-cluster-management.io/v1", "kind" : "Subscription", "metadata" : { "name" : "sample_subscription", "namespace" : "default", "labels" : { "app" : "sample_subscription-app" }, "annotations" : { "apps.open-cluster-management.io/git-path" : "apps/sample/", "apps.open-cluster-management.io/git-branch" : "sample_branch" } }, "spec" : { "channel" : "channel_namespace/sample_channel", "packageOverrides" : [ { "packageName" : "my-sample-application", "packageAlias" : "the-sample-app", "packageOverrides" : [ { "path" : "spec", "value" : { "persistence" : { "enabled" : false, "useDynamicProvisioning" : false }, "license" : "accept", "tls" : { "hostname" : "my-mcm-cluster.icp" }, "sso" : { "registrationImage" : { "pullSecret" : "hub-repo-docker-secret" } } } } ] } ], "placement" : { "placementRef" : { "kind" : "PlacementRule", "name" : "demo-clusters" } } } }
GET /apps.open-cluster-management.io/v1/namespaces/{namespace}/subscriptions
GET /apps.open-cluster-management.io/v1/namespaces/{namespace}/subscriptions/{subscription_name}
DELETE /apps.open-cluster-management.io/v1/namespaces/{namespace}/subscriptions/{subscription_name}
POST /apps.open-cluster-management.io/v1/namespaces/{namespace}/placementrules
{ "apiVersion" : "apps.open-cluster-management.io/v1", "kind" : "PlacementRule", "metadata" : { "name" : "towhichcluster", "namespace" : "ns-sub-1" }, "spec" : { "clusterConditions" : [ { "type": "ManagedClusterConditionAvailable", "status": "True" } ], "clusterSelector" : { } } }
GET /apps.open-cluster-management.io/v1/namespaces/{namespace}/placementrules
GET /apps.open-cluster-management.io/v1/namespaces/{namespace}/placementrules/{placementrule_name}
DELETE /apps.open-cluster-management.io/v1/namespaces/{namespace}/placementrules/{placementrule_name}
POST /app.k8s.io/v1beta1/namespaces/{namespace}/applications
{ "apiVersion" : "app.k8s.io/v1beta1", "kind" : "Application", "metadata" : { "labels" : { "app" : "nginx-app-details" }, "name" : "nginx-app-3", "namespace" : "ns-sub-1" }, "spec" : { "componentKinds" : [ { "group" : "apps.open-cluster-management.io", "kind" : "Subscription" } ] }, "selector" : { "matchLabels" : { "app" : "nginx-app-details" } }, "status" : { } }
GET /app.k8s.io/v1beta1/namespaces/{namespace}/applications
GET /app.k8s.io/v1beta1/namespaces/{namespace}/applications/{application_name}
DELETE /app.k8s.io/v1beta1/namespaces/{namespace}/applications/{application_name}
POST /apps.open-cluster-management.io/v1/namespaces/{namespace}/helmreleases
{ "apiVersion" : "apps.open-cluster-management.io/v1", "kind" : "HelmRelease", "metadata" : { "name" : "nginx-ingress", "namespace" : "default" }, "repo" : { "chartName" : "nginx-ingress", "source" : { "helmRepo" : { "urls" : [ "https://kubernetes-charts.storage.googleapis.com/nginx-ingress-1.26.0.tgz" ] }, "type" : "helmrepo" }, "version" : "1.26.0" }, "spec" : { "defaultBackend" : { "replicaCount" : 3 } } }
GET /apps.open-cluster-management.io/v1/namespaces/{namespace}/helmreleases
GET /apps.open-cluster-management.io/v1/namespaces/{namespace}/helmreleases/{helmrelease_name}
DELETE /apps.open-cluster-management.io/v1/namespaces/{namespace}/helmreleases/{helmrelease_name}
POST /policy.open-cluster-management.io/v1/v1alpha1/namespaces/{namespace}/policies/{policy_name}
{ "apiVersion": "policy.open-cluster-management.io/v1", "kind": "Policy", "metadata": { "name": "test-policy-swagger", "description": "Example body for Policy API Swagger docs" }, "spec": { "remediationAction": "enforce", "namespaces": { "include": [ "default" ], "exclude": [ "kube*" ] }, "policy-templates": { "kind": "ConfigurationPolicy", "apiVersion": "policy.open-cluster-management.io/v1", "complianceType": "musthave", "metadataComplianceType": "musthave", "metadata": { "namespace": null, "name": "test-role" }, "selector": { "matchLabels": { "cloud": "IBM" } }, "spec" : { "object-templates": { "complianceType": "musthave", "metadataComplianceType": "musthave", "objectDefinition": { "apiVersion": "rbac.authorization.k8s.io/v1", "kind": "Role", "metadata": { "name": "role-policy", }, "rules": [ { "apiGroups": [ "extensions", "apps" ], "resources": [ "deployments" ], "verbs": [ "get", "list", "watch", "delete" ] }, { "apiGroups": [ "core" ], "resources": [ "pods" ], "verbs": [ "create", "update", "patch" ] }, { "apiGroups": [ "core" ], "resources": [ "secrets" ], "verbs": [ "get", "watch", "list", "create", "delete", "update", "patch" ], }, ], }, }, }, },
GET /policy.open-cluster-management.io/v1/namespaces/{namespace}/policies/{policy_name}
GET /policy.open-cluster-management.io/v1/namespaces/{namespace}/policies/{policy_name}
DELETE /policy.open-cluster-management.io/v1/namespaces/{namespace}/policies/{policy_name}
POST /apis/observability.open-cluster-management.io/v1beta2/multiclusterobservabilities
{ "apiVersion": "observability.open-cluster-management.io/v1beta2", "kind": "MultiClusterObservability", "metadata": { "name": "example" }, "spec": { "observabilityAddonSpec": {} "storageConfig": { "metricObjectStorage": { "name": "thanos-object-storage", "key": "thanos.yaml" "writeStorage": { - "key": " ", "name" : " " - "key": " ", "name" : " " } } } }
GET /apis/observability.open-cluster-management.io/v1beta2/multiclusterobservabilities
GET /apis/observability.open-cluster-management.io/v1beta2/multiclusterobservabilities/{multiclusterobservability_name}
DELETE /apis/observability.open-cluster-management.io/v1beta2/multiclusterobservabilities/{multiclusterobservability_name}
create route passthrough search-api --service=search-search-api -n open-cluster-management
input SearchFilter { property: String! values: [String]! } input SearchInput { keywords: [String] filters: [SearchFilter] limit: Int relatedKinds: [String] } type SearchResult { count: Int items: [Map] related: [SearchRelatedResult] } type SearchRelatedResult { kind: String! count: Int items: [Map] }
{ "query": "type SearchResult {count: Intitems: [Map]related: [SearchRelatedResult]} type SearchRelatedResult {kind: String!count: Intitems: [Map]}", "variables": { "input": [ { "keywords": [], "filters": [ { "property": "kind", "values": [ "Deployment" ] } ], "limit": 10 } ] } }
type Query { search(input: [SearchInput]): [SearchResult] searchComplete(property: String!, query: SearchInput, limit: Int): [String] searchSchema: Map messages: [Message] }
query mySearch(USDinput: [SearchInput]) { search(input: USDinput) { items } }
{"input":[ { "keywords":[], "filters":[ {"property":"kind","values":["Deployment"]}], "limit":10 } ]}
query mySearch(USDinput: [SearchInput]) { search(input: USDinput) { items } }
{"input":[ { "keywords":[], "filters":[ {"property":"kind","values":["Pod"]}], "limit":10 } ]}
POST /operator.open-cluster-management.io/v1beta1/namespaces/{namespace}/mch
{ "apiVersion": "apiextensions.k8s.io/v1", "kind": "CustomResourceDefinition", "metadata": { "name": "multiclusterhubs.operator.open-cluster-management.io" }, "spec": { "group": "operator.open-cluster-management.io", "names": { "kind": "MultiClusterHub", "listKind": "MultiClusterHubList", "plural": "multiclusterhubs", "shortNames": [ "mch" ], "singular": "multiclusterhub" }, "scope": "Namespaced", "versions": [ { "additionalPrinterColumns": [ { "description": "The overall status of the multicluster hub.", "jsonPath": ".status.phase", "name": "Status", "type": "string" }, { "jsonPath": ".metadata.creationTimestamp", "name": "Age", "type": "date" } ], "name": "v1", "schema": { "openAPIV3Schema": { "description": "MultiClusterHub defines the configuration for an instance of the multiCluster hub, a central point for managing multiple Kubernetes-based clusters. The deployment of multicluster hub components is determined based on the configuration that is defined in this resource.", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. The value is in CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { "description": "MultiClusterHubSpec defines the desired state of MultiClusterHub.", "properties": { "availabilityConfig": { "description": "Specifies deployment replication for improved availability. Options are: Basic and High (default).", "type": "string" }, "customCAConfigmap": { "description": "Provide the customized OpenShift default ingress CA certificate to Red Hat Advanced Cluster Management.", } "type": "string" }, "disableHubSelfManagement": { "description": "Disable automatic import of the hub cluster as a managed cluster.", "type": "boolean" }, "disableUpdateClusterImageSets": { "description": "Disable automatic update of ClusterImageSets.", "type": "boolean" }, "hive": { "description": "(Deprecated) Overrides for the default HiveConfig specification.", "properties": { "additionalCertificateAuthorities": { "description": "(Deprecated) AdditionalCertificateAuthorities is a list of references to secrets in the 'hive' namespace that contain an additional Certificate Authority to use when communicating with target clusters. These certificate authorities are used in addition to any self-signed CA generated by each cluster on installation.", "items": { "description": "LocalObjectReference contains the information to let you locate the referenced object inside the same namespace.", "properties": { "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "type": "object" }, "type": "array" }, "backup": { "description": "(Deprecated) Backup specifies configuration for backup integration. If absent, backup integration is disabled.", "properties": { "minBackupPeriodSeconds": { "description": "(Deprecated) MinBackupPeriodSeconds specifies that a minimum of MinBackupPeriodSeconds occurs in between each backup. This is used to rate limit backups. This potentially batches together multiple changes into one backup. No backups are lost for changes that happen during the interval that is queued up, and results in a backup once the interval has been completed.", "type": "integer" }, "velero": { "description": "(Deprecated) Velero specifies configuration for the Velero backup integration.", "properties": { "enabled": { "description": "(Deprecated) Enabled dictates if the Velero backup integration is enabled. If not specified, the default is disabled.", "type": "boolean" } }, "type": "object" } }, "type": "object" }, "externalDNS": { "description": "(Deprecated) ExternalDNS specifies configuration for external-dns if it is to be deployed by Hive. If absent, external-dns is not deployed.", "properties": { "aws": { "description": "(Deprecated) AWS contains AWS-specific settings for external DNS.", "properties": { "credentials": { "description": "(Deprecated) Credentials reference a secret that is used to authenticate with AWS Route53. It needs permission to manage entries in each of the managed domains for this cluster. Secret should have AWS keys named 'aws_access_key_id' and 'aws_secret_access_key'.", "properties": { "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "type": "object" } }, "type": "object" }, "gcp": { "description": "(Deprecated) GCP contains Google Cloud Platform specific settings for external DNS.", "properties": { "credentials": { "description": "(Deprecated) Credentials reference a secret that is used to authenticate with GCP DNS. It needs permission to manage entries in each of the managed domains for this cluster. Secret should have a key names 'osServiceAccount.json'. The credentials must specify the project to use.", "properties": { "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "type": "object" } }, "type": "object" } }, "type": "object" }, "failedProvisionConfig": { "description": "(Deprecated) FailedProvisionConfig is used to configure settings related to handling provision failures.", "properties": { "skipGatherLogs": { "description": "(Deprecated) SkipGatherLogs disables functionality that attempts to gather full logs from the cluster if an installation fails for any reason. The logs are stored in a persistent volume for up to seven days.", "type": "boolean" } }, "type": "object" }, "globalPullSecret": { "description": "(Deprecated) GlobalPullSecret is used to specify a pull secret that is used globally by all of the cluster deployments. For each cluster deployment, the contents of GlobalPullSecret are merged with the specific pull secret for a cluster deployment(if specified), with precedence given to the contents of the pull secret for the cluster deployment.", "properties": { "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "type": "object" }, "maintenanceMode": { "description": "(Deprecated) MaintenanceMode can be set to true to disable the Hive controllers in situations where you need to ensure nothing is running that adds or act upon finalizers on Hive types. This should rarely be needed. Sets replicas to zero for the 'hive-controllers' deployment to accomplish this.", "type": "boolean" } }, "required": [ "failedProvisionConfig" ], "type": "object" }, "imagePullSecret": { "description": "Override pull secret for accessing MultiClusterHub operand and endpoint images.", "type": "string" }, "ingress": { "description": "Configuration options for ingress management.", "properties": { "sslCiphers": { "description": "List of SSL ciphers enabled for management ingress. Defaults to full list of supported ciphers.", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "nodeSelector": { "additionalProperties": { "type": "string" }, "description": "Set the node selectors..", "type": "object" }, "overrides": { "description": "Developer overrides.", "properties": { "imagePullPolicy": { "description": "Pull policy of the multicluster hub images.", "type": "string" } }, "type": "object" }, "separateCertificateManagement": { "description": "(Deprecated) Install cert-manager into its own namespace.", "type": "boolean" } }, "type": "object" }, "status": { "description": "MulticlusterHubStatus defines the observed state of MultiClusterHub.", "properties": { "components": { "additionalProperties": { "description": "StatusCondition contains condition information.", "properties": { "lastTransitionTime": { "description": "LastTransitionTime is the last time the condition changed from one status to another.", "format": "date-time", "type": "string" }, "message": { "description": "Message is a human-readable message indicating\ndetails about the last status change.", "type": "string" }, "reason": { "description": "Reason is a (brief) reason for the last status change of the condition.", "type": "string" }, "status": { "description": "Status is the status of the condition. One of True, False, Unknown.", "type": "string" }, "type": { "description": "Type is the type of the cluster condition.", "type": "string" } }, "type": "object" }, "description": "Components []ComponentCondition `json:\"manifests,omitempty\"`", "type": "object" }, "conditions": { "description": "Conditions contain the different condition statuses for the MultiClusterHub.", "items": { "description": "StatusCondition contains condition information.", "properties": { "lastTransitionTime": { "description": "LastTransitionTime is the last time the condition changed from one status to another.", "format": "date-time", "type": "string" }, "lastUpdateTime": { "description": "The last time this condition was updated.", "format": "date-time", "type": "string" }, "message": { "description": "Message is a human-readable message indicating details about the last status change.", "type": "string" }, "reason": { "description": "Reason is a (brief) reason for the last status change of the condition.", "type": "string" }, "status": { "description": "Status is the status of the condition. One of True, False, Unknown.", "type": "string" }, "type": { "description": "Type is the type of the cluster condition.", "type": "string" } }, "type": "object" }, "type": "array" }, "currentVersion": { "description": "CurrentVersion indicates the current version..", "type": "string" }, "desiredVersion": { "description": "DesiredVersion indicates the desired version.", "type": "string" }, "phase": { "description": "Represents the running phase of the MultiClusterHub", "type": "string" } }, "type": "object" } }, "type": "object" } }, "served": true, "storage": true, "subresources": { "status": {} } } ] } }
GET /operator.open-cluster-management.io/v1beta1/namespaces/{namespace}/operator
GET /operator.open-cluster-management.io/v1beta1/namespaces/{namespace}/operator/{multiclusterhub_name}
DELETE /operator.open-cluster-management.io/v1beta1/namespaces/{namespace}/operator/{multiclusterhub_name}
GET /cluster.open-cluster-management.io/v1beta1/namespaces/{namespace}/placement
POST /cluster.open-cluster-management.io/v1beta1/namespaces/{namespace}/placements
{ "apiVersion" : "cluster.open-cluster-management.io/v1beta1", "kind" : "Placement", "metadata" : { "name" : "placement1", "namespace": "ns1" }, "spec": { "predicates": [ { "requiredClusterSelector": { "labelSelector": { "matchLabels": { "vendor": "OpenShift" } } } } ] }, "status" : { } }
GET /cluster.open-cluster-management.io/v1beta1/namespaces/{namespace}/placements/{placement_name}
DELETE /cluster.open-cluster-management.io/v1beta1/namespaces/{namespace}/placements/{placement_name}
GET /cluster.open-cluster-management.io/v1beta1/namespaces/{namespace}/placementdecisions
POST /cluster.open-cluster-management.io/v1beta1/namespaces/{namespace}/placementdecisions
{ "apiVersion" : "cluster.open-cluster-management.io/v1beta1", "kind" : "PlacementDecision", "metadata" : { "labels" : { "cluster.open-cluster-management.io/placement" : "placement1" }, "name" : "placement1-decision1", "namespace": "ns1" }, "status" : { } }
GET /cluster.open-cluster-management.io/v1beta1/namespaces/{namespace}/placementdecisions/{placementdecision_name}
DELETE /cluster.open-cluster-management.io/v1beta1/namespaces/{namespace}/placementdecisions/{placementdecision_name}
POST /app.k8s.io/v1/namespaces/{namespace}/discoveryconfigs
{ "apiVersion": "apiextensions.k8s.io/v1", "kind": "CustomResourceDefinition", "metadata": { "annotations": { "controller-gen.kubebuilder.io/version": "v0.4.1", }, "creationTimestamp": null, "name": "discoveryconfigs.discovery.open-cluster-management.io", }, "spec": { "group": "discovery.open-cluster-management.io", "names": { "kind": "DiscoveryConfig", "listKind": "DiscoveryConfigList", "plural": "discoveryconfigs", "singular": "discoveryconfig" }, "scope": "Namespaced", "versions": [ { "name": "v1", "schema": { "openAPIV3Schema": { "description": "DiscoveryConfig is the Schema for the discoveryconfigs API", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { "description": "DiscoveryConfigSpec defines the desired state of DiscoveryConfig", "properties": { "credential": { "description": "Credential is the secret containing credentials to connect to the OCM api on behalf of a user", "type": "string" }, "filters": { "description": "Sets restrictions on what kind of clusters to discover", "properties": { "lastActive": { "description": "LastActive is the last active in days of clusters to discover, determined by activity timestamp", "type": "integer" }, "openShiftVersions": { "description": "OpenShiftVersions is the list of release versions of OpenShift of the form \"<Major>.<Minor>\"", "items": { "description": "Semver represents a partial semver string with the major and minor version in the form \"<Major>.<Minor>\". For example: \"4.14\"", "pattern": "^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)USD", "type": "string" }, "type": "array" } }, "type": "object" } }, "required": [ "credential" ], "type": "object" }, "status": { "description": "DiscoveryConfigStatus defines the observed state of DiscoveryConfig", "type": "object" } }, "type": "object" } }, "served": true, "storage": true, "subresources": { "status": {} } } ] }, "status": { "acceptedNames": { "kind": "", "plural": "" }, "conditions": [], "storedVersions": [] } }
GET /operator.open-cluster-management.io/v1/namespaces/{namespace}/operator
DELETE /operator.open-cluster-management.io/v1/namespaces/{namespace}/operator/{discoveryconfigs_name}
POST /app.k8s.io/v1/namespaces/{namespace}/discoveredclusters
{ "apiVersion": "apiextensions.k8s.io/v1", "kind": "CustomResourceDefinition", "metadata": { "annotations": { "controller-gen.kubebuilder.io/version": "v0.4.1", }, "creationTimestamp": null, "name": "discoveredclusters.discovery.open-cluster-management.io", }, "spec": { "group": "discovery.open-cluster-management.io", "names": { "kind": "DiscoveredCluster", "listKind": "DiscoveredClusterList", "plural": "discoveredclusters", "singular": "discoveredcluster" }, "scope": "Namespaced", "versions": [ { "name": "v1", "schema": { "openAPIV3Schema": { "description": "DiscoveredCluster is the Schema for the discoveredclusters API", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { "description": "DiscoveredClusterSpec defines the desired state of DiscoveredCluster", "properties": { "activityTimestamp": { "format": "date-time", "type": "string" }, "apiUrl": { "type": "string" }, "cloudProvider": { "type": "string" }, "console": { "type": "string" }, "creationTimestamp": { "format": "date-time", "type": "string" }, "credential": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .", "properties": { "apiVersion": { "description": "API version of the referent.", "type": "string" }, "fieldPath": { "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", "type": "string" }, "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "namespace": { "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", "type": "string" }, "resourceVersion": { "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } }, "type": "object" }, "displayName": { "type": "string" }, "isManagedCluster": { "type": "boolean" }, "name": { "type": "string" }, "openshiftVersion": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } }, "required": [ "apiUrl", "displayName", "isManagedCluster", "name", "type" ], "type": "object" }, "status": { "description": "DiscoveredClusterStatus defines the observed state of DiscoveredCluster", "type": "object" } }, "type": "object" } }, "served": true, "storage": true, "subresources": { "status": {} } } ] }, "status": { "acceptedNames": { "kind": "", "plural": "" }, "conditions": [], "storedVersions": [] } }
GET /operator.open-cluster-management.io/v1/namespaces/{namespace}/operator
DELETE /operator.open-cluster-management.io/v1/namespaces/{namespace}/operator/{discoveredclusters_name}
GET /addon.open-cluster-management.io/v1alpha1/namespaces/{namespace}/addondeploymentconfigs
POST /addon.open-cluster-management.io/v1alpha1/namespaces/{namespace}/addondeploymentconfigs
{ "apiVersion": "addon.open-cluster-management.io/v1alpha1", "kind": "AddOnDeploymentConfig", "metadata": { "name": "deploy-config", "namespace": "open-cluster-management-hub" }, "spec": { "nodePlacement": { "nodeSelector": { "node-dedicated": "acm-addon" }, "tolerations": [ { "effect": "NoSchedule", "key": "node-dedicated", "operator": "Equal", "value": "acm-addon" } ] } } }
GET /addon.open-cluster-management.io/v1alpha1/namespaces/{namespace}/addondeploymentconfigs/{addondeploymentconfig_name}
DELETE /addon.open-cluster-management.io/v1alpha1/namespaces/{namespace}/addondeploymentconfigs/{addondeploymentconfig_name}
GET /addon.open-cluster-management.io/v1alpha1/clustermanagementaddons
POST /addon.open-cluster-management.io/v1alpha1/clustermanagementaddons
{ "apiVersion": "addon.open-cluster-management.io/v1alpha1", "kind": "ClusterManagementAddOn", "metadata": { "name": "helloworld" }, "spec": { "supportedConfigs": [ { "defaultConfig": { "name": "deploy-config", "namespace": "open-cluster-management-hub" }, "group": "addon.open-cluster-management.io", "resource": "addondeploymentconfigs" } ] }, "status" : { } }
GET /addon.open-cluster-management.io/v1alpha1/clustermanagementaddons/{clustermanagementaddon_name}
DELETE /addon.open-cluster-management.io/v1alpha1/clustermanagementaddons/{clustermanagementaddon_name}
GET /addon.open-cluster-management.io/v1alpha1/namespaces/{namespace}/managedclusteraddons
POST /addon.open-cluster-management.io/v1alpha1/namespaces/{namespace}/managedclusteraddons
{ "apiVersion": "addon.open-cluster-management.io/v1alpha1", "kind": "ManagedClusterAddOn", "metadata": { "name": "helloworld", "namespace": "cluster1" }, "spec": { "configs": [ { "group": "addon.open-cluster-management.io", "name": "cluster-deploy-config", "namespace": "open-cluster-management-hub", "resource": "addondeploymentconfigs" } ], "installNamespace": "default" }, "status" : { } }
GET /addon.open-cluster-management.io/v1alpha1/namespaces/{namespace}/managedclusteraddons/{managedclusteraddon_name}
DELETE /addon.open-cluster-management.io/v1alpha1/namespaces/{namespace}/managedclusteraddons/{managedclusteraddon_name}
GET /cluster.open-cluster-management.io/v1beta2/namespaces/{namespace}/managedclustersets
POST /cluster.open-cluster-management.io/v1beta2/namespaces/{namespace}/managedclustersets
{ "apiVersion" : "cluster.open-cluster-management.io/v1beta2", "kind" : "ManagedClusterSet", "metadata" : { "name" : "example-clusterset", }, "spec": { }, "status" : { } }
GET /cluster.open-cluster-management.io/v1beta2/namespaces/{namespace}/managedclustersets/{managedclusterset_name}
DELETE /cluster.open-cluster-management.io/v1beta2/managedclustersets/{managedclusterset_name}
GET /config.open-cluster-management.io/v1alpha1/namespaces/{namespace}/klusterletconfigs
POST /config.open-cluster-management.io/v1alpha1/namespaces/{namespace}/klusterletconfigs
{ "apiVersion": "apiextensions.k8s.io/v1", "kind": "CustomResourceDefinition", "metadata": { "annotations": { "controller-gen.kubebuilder.io/version": "v0.7.0" }, "creationTimestamp": null, "name": "klusterletconfigs.config.open-cluster-management.io" }, "spec": { "group": "config.open-cluster-management.io", "names": { "kind": "KlusterletConfig", "listKind": "KlusterletConfigList", "plural": "klusterletconfigs", "singular": "klusterletconfig" }, "preserveUnknownFields": false, "scope": "Cluster", "versions": [ { "name": "v1alpha1", "schema": { "openAPIV3Schema": { "description": "KlusterletConfig contains the configuration of a klusterlet including the upgrade strategy, config overrides, proxy configurations etc.", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { "description": "Spec defines the desired state of KlusterletConfig", "properties": { "hubKubeAPIServerProxyConfig": { "description": "HubKubeAPIServerProxyConfig holds proxy settings for connections between klusterlet/add-on agents on the managed cluster and the kube-apiserver on the hub cluster. Empty means no proxy settings is available.", "properties": { "caBundle": { "description": "CABundle is a CA certificate bundle to verify the proxy server. It will be ignored if only HTTPProxy is set; And it is required when HTTPSProxy is set and self signed CA certificate is used by the proxy server.", "format": "byte", "type": "string" }, "httpProxy": { "description": "HTTPProxy is the URL of the proxy for HTTP requests", "type": "string" }, "httpsProxy": { "description": "HTTPSProxy is the URL of the proxy for HTTPS requests HTTPSProxy will be chosen if both HTTPProxy and HTTPSProxy are set.", "type": "string" } }, "type": "object" }, "nodePlacement": { "description": "NodePlacement enables explicit control over the scheduling of the agent components. If the placement is nil, the placement is not specified, it will be omitted. If the placement is an empty object, the placement will match all nodes and tolerate nothing.", "properties": { "nodeSelector": { "additionalProperties": { "type": "string" }, "description": "NodeSelector defines which Nodes the Pods are scheduled on. The default is an empty list.", "type": "object" }, "tolerations": { "description": "Tolerations is attached by pods to tolerate any taint that matches the triple <key,value,effect> using the matching operator <operator>. The default is an empty list.", "items": { "description": "The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.", "properties": { "effect": { "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", "type": "string" }, "key": { "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", "type": "string" }, "operator": { "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", "type": "string" }, "tolerationSeconds": { "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", "format": "int64", "type": "integer" }, "value": { "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "pullSecret": { "description": "PullSecret is the name of image pull secret.", "properties": { "apiVersion": { "description": "API version of the referent.", "type": "string" }, "fieldPath": { "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", "type": "string" }, "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "namespace": { "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", "type": "string" }, "resourceVersion": { "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } }, "type": "object" }, "registries": { "description": "Registries includes the mirror and source registries. The source registry will be replaced by the Mirror.", "items": { "properties": { "mirror": { "description": "Mirror is the mirrored registry of the Source. Will be ignored if Mirror is empty.", "type": "string" }, "source": { "description": "Source is the source registry. All image registries will be replaced by Mirror if Source is empty.", "type": "string" } }, "required": [ "mirror" ], "type": "object" }, "type": "array" } }, "type": "object" }, "status": { "description": "Status defines the observed state of KlusterletConfig", "type": "object" } }, "type": "object" } }, "served": true, "storage": true, "subresources": { "status": {} } } ] }, "status": { "acceptedNames": { "kind": "", "plural": "" }, "conditions": [], "storedVersions": [] } }
GET /config.open-cluster-management.io/v1alpha1/namespaces/{namespace}/klusterletconfigs/{klusterletconfig_name}
DELETE /addon.open-cluster-management.io/v1alpha1/namespaces/{namespace}/klusterletconfigs/{klusterletconfig_name}
{ "data": [ { "id": 2, "cluster": { "name": "cluster1", "cluster_id": "215ce184-8dee-4cab-b99b-1f8f29dff611" }, "parent_policy": { "id": 3, "name": "configure-custom-app", "namespace": "policies", "catageories": ["CM Configuration Management"], "controls": ["CM-2 Baseline Configuration"], "standards": ["NIST SP 800-53"] }, "policy": { "apiGroup": "policy.open-cluster-management.io", "id": 2, "kind": "ConfigurationPolicy", "name": "configure-custom-app", "namespace": "", // Only shown with `?include_spec` "spec": {} }, "event": { "compliance": "NonCompliant", "message": "configmaps [app-data] not found in namespace default", "timestamp": "2023-07-19T18:25:43.511Z", "metadata": {} } }, { "id": 1, "cluster": { "name": "cluster2", "cluster_id": "415ce234-8dee-4cab-b99b-1f8f29dff461" }, "parent_policy": { "id": 3, "name": "configure-custom-app", "namespace": "policies", "catageories": ["CM Configuration Management"], "controls": ["CM-2 Baseline Configuration"], "standards": ["NIST SP 800-53"] }, "policy": { "apiGroup": "policy.open-cluster-management.io", "id": 4, "kind": "ConfigurationPolicy", "name": "configure-custom-app", "namespace": "", // Only shown with `?include_spec` "spec": {} }, "event": { "compliance": "Compliant", "message": "configmaps [app-data] found as specified in namespace default", "timestamp": "2023-07-19T18:25:41.523Z", "metadata": {} } } ], "metadata": { "page": 1, "pages": 7, "per_page": 20, "total": 123 } }
{ "id": 1, "cluster": { "name": "cluster2", "cluster_id": "415ce234-8dee-4cab-b99b-1f8f29dff461" }, "parent_policy": { "id": 2, "name": "etcd-encryption", "namespace": "policies", "catageories": ["CM Configuration Management"], "controls": ["CM-2 Baseline Configuration"], "standards": ["NIST SP 800-53"] }, "policy": { "apiGroup": "policy.open-cluster-management.io", "id": 4, "kind": "ConfigurationPolicy", "name": "etcd-encryption", "namespace": "", "spec": {} }, "event": { "compliance": "Compliant", "message": "configmaps [app-data] found as specified in namespace default", "timestamp": "2023-07-19T18:25:41.523Z", "metadata": {} } }
whoami --show-token
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: local-cluster-view rules: - apiGroups: - cluster.open-cluster-management.io resources: - managedclusters resourceNames: - local-cluster verbs: - get
auth can-i get managedclusters.cluster.open-cluster-management.io/local-cluster