Project: KubeCarrier (App Definition and Development / Application Definition & Image Build)
File: _index.md

title: API Reference weight: 50 date: 2020-04-24T09:00:00+02:00 The KubeCarrier API is implemented as a extension of the as `CustomResourceDefinitions`. All available objects and their usage are described below. The API consists of multiple API groups: - Core - Catalog - Operator The core `kubecarrier.io` API group contains the basic buildings blocks of KubeCarrier and objects to setup cross-cluster management of resources. CustomResourceDiscovery tells KubeCarrier to discover a CustomResource from a ServiceCluster, register it in the Management Cluster and start a new process to reconcile instances of this CRD. New instances of the CRD will be reconciled by creating a matching instance in the ServiceCluster. Each Namespace in the Managment Cluster needs a ServiceClusterAssignment object, mapping it to a Namespace in the ServiceCluster. A CustomResourceDiscovery instance will be ready, if the CustomResource was found in the ServiceCluster and a clone of it is established in the Management Cluster. Deleting the instance will also remove the CRD and all instances of it. Example ```yaml apiVersion: kubecarrier.io/v1alpha1 kind: CustomResourceDiscovery metadata: name: couchdb.eu-west-1 spec: crd: name: couchdbs.couchdb.io serviceCluster: name: eu-west-1 ``` | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | CustomResourceDiscoveryCondition contains details of the current state of this CustomResourceDiscovery. | Field | Description | Scheme | Required | | -- | -- | | -- | | lastTransitionTime | LastTransitionTime is the last time the condition transit from one status to another. | metav1.Time | true | | message | Message is the human readable message indicating details about last transition. | string | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | status | Status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.kubecarrier.io/v1alpha1 | true | | type | Type of the condition, currently ('Ready'). | CustomResourceDiscoveryConditionType.kubecarrier.io/v1alpha1 | true | CustomResourceDiscoveryList is a list of CustomResourceDiscovery. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | CustomResourceDiscoverySpec describes the desired state of a CustomResourceDiscovery. | Field | Description | Scheme | Required | | -- | -- | | -- | | crd | CRD references a CustomResourceDefinition within the ServiceCluster. | | true | | serviceCluster | ServiceCluster references a ServiceCluster to search the CustomResourceDefinition on. | | true | | webhookStrategy | WebhookStrategy configs the webhook of the CRD which is registered in the management cluster by this CustomResourceDiscovery. There are two possible values for this configuration {None (by default), ServiceCluster} None (by default): Webhook will only check if there is an available ServiceClusterAssignment in the current Namespace. ServiceCluster: Webhook will call webhooks of the CRD in the ServiceCluster with dry-run flag. | WebhookStrategyType.kubecarrier.io/v1alpha1 | false | CustomResourceDiscoveryStatus represents the observed state of a CustomResourceDiscovery. | Field | Description | Scheme | Required | | -- | -- | | -- | | crd | CRD defines the original CustomResourceDefinition specification from the service cluster. | *apiextensionsv1.CustomResourceDefinition | false | | managementClusterCRD | ManagementClusterCRD references the CustomResourceDefinition that is created by a CustomResourceDiscovery. | * | false | | phase |

Phase represents the current lifecycle state of this object consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to a string when printing the property is only present for display purposes, for everything else use conditions | CustomResourceDiscoveryPhaseType.kubecarrier.io/v1alpha1 | false | | conditions | Conditions is a list of all conditions this CustomResourceDiscovery is in. | | false | | observedGeneration | The most recent generation observed by the controller. | int64 | false | CustomResourceDiscoverySet manages multiple CustomResourceDiscovery objects for a set of ServiceClusters. Example ```yaml apiVersion: kubecarrier.io/v1alpha1 kind: CustomResourceDiscoverySet metadata: name: couchdb spec: crd: name: couchdbs.couchdb.io serviceClusterSelector: {} ``` | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | CustomResourceDiscoverySetCRDReference references a discovered CustomResourceDefinition. | Field | Description | Scheme | Required | | -- | -- | | -- | | crd | | | true | | serviceCluster | | | true | CustomResourceDiscoverySetCondition contains details for the current condition of this CustomResourceDiscoverySet. | Field | Description | Scheme | Required | | -- | -- | | -- | | lastTransitionTime | LastTransitionTime is the last time the condition transit from one status to another. | metav1.Time | true | | message | Message is the human readable message indicating details about last transition. | string | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | status | Status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.kubecarrier.io/v1alpha1 | true | | type | Type of the condition, currently ('Ready'). | CustomResourceDiscoverySetConditionType.kubecarrier.io/v1alpha1 | true | CustomResourceDiscoverySetList is a list of CustomResourceDiscoverySet. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | CustomResourceDiscoverySetSpec describes the desired state of a CustomResourceDiscoverySet. | Field | Description | Scheme | Required | | -- | -- | | -- | | crd | CRD references a CustomResourceDefinition within the ServiceCluster. | | true | | serviceClusterSelector | ServiceClusterSelector references a set of ServiceClusters to search the CustomResourceDefinition on. | | true | | webhookStrategy | WebhookStrategy configs the webhooks of the CRDs which are registered in the management cluster by this CustomResourceDiscoverySet. There are two possible values for this configuration {None (by default), ServiceCluster} None (by default): Webhook will only check if there is an available ServiceClusterAssignment in the current Namespace. ServiceCluster: Webhook will call webhooks of the CRD in the ServiceCluster with dry-run flag. | WebhookStrategyType.kubecarrier.io/v1alpha1 | false | CustomResourceDiscoverySetStatus represents the observed state of a CustomResourceDiscoverySet. | Field | Description | Scheme | Required | | -- | -- | | -- | | managementClusterCRDs | ManagementClusterCRDs contains the CRDs information that created by the CustomResourceDiscovery objects of this CustomResourceDiscoverySet. | | false | | phase | DEPRECATED. Phase represents the current lifecycle state of this object consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to a string when printing the property is only present for display purposes, for everything else use conditions | CustomResourceDiscoverySetPhaseType.kubecarrier.io/v1alpha1 | false | | conditions | Conditions is a list of all conditions this CustomResourceDiscovery is

| | false | | observedGeneration | The most recent generation observed by the controller. | int64 | false | ServiceCluster represents a Kubernets Cluster registered into KubeCarrier. Example ```yaml apiVersion: kubecarrier.io/v1alpha1 kind: ServiceCluster metadata: name: eu-west-1 spec: metadata: displayName: EU West 1 kubeconfigSecret: name: eu-west-1-kubeconfig ``` | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | ServiceClusterCondition contains details for the current condition of this ServiceCluster. | Field | Description | Scheme | Required | | -- | -- | | -- | | lastHeartbeatTime | LastHeartbeatTime is the timestamp corresponding to the last update of this condition. | metav1.Time | true | | lastTransitionTime | LastTransitionTime is the last time the condition transit from one status to another. | metav1.Time | true | | message | Message is the human readable message indicating details about last transition. | string | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | status | Status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.kubecarrier.io/v1alpha1 | true | | type | Type of the condition, currently ('Ready'). | ServiceClusterConditionType.kubecarrier.io/v1alpha1 | true | ServiceClusterList contains a list of ServiceCluster. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | ServiceClusterMetadata describes metadata of the ServiceCluster for the Service Catalog. | Field | Description | Scheme | Required | | -- | -- | | -- | | displayName | DisplayName is the human-readable name of this ServiceCluster. | string | false | | description | Description is the human-readable description of this ServiceCluster. | string | false | ServiceClusterSpec describes the desired state of a ServiceCluster. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | Metadata for display in the Service Catalog. | | false | | kubeconfigSecret | KubeconfigSecret specifies the Kubeconfig to use when connecting to the ServiceCluster. | | true | ServiceClusterStatus represents the observed state of a ServiceCluster. | Field | Description | Scheme | Required | | -- | -- | | -- | | phase | DEPRECATED. Phase represents the current lifecycle state of this object consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to a string when printing the property is only present for display purposes, for everything else use conditions | ServiceClusterPhaseType.kubecarrier.io/v1alpha1 | false | | conditions | Conditions is a list of all conditions this ServiceCluster is in. | | false | | observedGeneration | The most recent generation observed by the controller. | int64 | false | | kubernetesVersion | KubernetesVersion of the service cluster API Server | *version.Info | false | ServiceClusterAssignment is assigning a Namespace in the Management cluster with a Namespace on the ServiceCluster. The Namespace in the ServiceCluster will be created automatically and is reported in the instance status. Example ```yaml apiVersion: kubecarrier.io/v1alpha1 kind: ServiceClusterAssignment metadata: name:

spec: serviceCluster: name: eu-west-1 managementNamespace: name: example1 ``` | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | ServiceClusterAssignmentCondition contains details for the current condition of this ServiceClusterAssignment. | Field | Description | Scheme | Required | | -- | -- | | -- | | lastTransitionTime | LastTransitionTime is the last time the condition transit from one status to another. | metav1.Time | true | | message | Message is the human readable message indicating details about last transition. | string | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | status | Status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.kubecarrier.io/v1alpha1 | true | | type | Type of the condition, currently ('Ready'). | ServiceClusterAssignmentConditionType.kubecarrier.io/v1alpha1 | true | ServiceClusterAssignmentList contains a list of ServiceClusterAssignment. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | ServiceClusterAssignmentSpec describes the desired state of ServiceClusterAssignment. | Field | Description | Scheme | Required | | -- | -- | | -- | | serviceCluster | References the ServiceCluster. | | true | | managementNamespace | References the source namespace in the management cluster. | | true | ServiceClusterAssignmentStatus represents the observed state of ServiceClusterAssignment. | Field | Description | Scheme | Required | | -- | -- | | -- | | phase | DEPRECATED. Phase represents the current lifecycle state of this object consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to a string when printing the property is only present for display purposes, for everything else use conditions | ServiceClusterAssignmentPhaseType.kubecarrier.io/v1alpha1 | false | | conditions | Conditions is a list of all conditions this ServiceClusterAssignment is in. | | false | | observedGeneration | The most recent generation observed by the controller. | int64 | false | | serviceClusterNamespace | ServiceClusterNamespace references the Namespace on the ServiceCluster that was assigned. | * | false | ObjectReference describes the link to another object in the same Namespace. | Field | Description | Scheme | Required | | -- | -- | | -- | | name | | string | true | The `catalog.kubecarrier.io` API group contains all objects that are used to setup service hubs in KubeCarrier. Account represents an actor in KubeCarrier. Depending on it's roles, it can provide services, consume offered services or both. KubeCarrier creates a new Namespace for each Account. The Account Metadata is exposed to users that are offered services from this Account. Example ```yaml apiVersion: catalog.kubecarrier.io/v1alpha1 kind: Account metadata: name: team-a spec: metadata: displayName: The A Team description: In 1972, a crack commando unit was sent to prison by a military court... roles: Provider Tenant ``` | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | AccountCondition contains details for the current condition of this Account. | Field | Description | Scheme | Required | | -- | -- | | -- | | type | Type is the type of the Account condition, currently ('Ready'). | AccountConditionType.catalog.kubecarrier.io/v1alpha1 | true | | status | Status is the status of the condition, one of ('True', 'False', 'Unknown'). |

| true | | lastTransitionTime | LastTransitionTime is the last time the condition transits from one status to another. | metav1.Time | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | message | Message is the human readable message indicating details about last transition. | string | true | AccountList contains a list of Account. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | AccountMetadata contains the metadata of the Account. | Field | Description | Scheme | Required | | -- | -- | | -- | AccountSpec describes the desired state of Account. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | Metadata\tcontains additional human readable account details. | | false | | roles | Roles this account uses. | []AccountRole.catalog.kubecarrier.io/v1alpha1 | true | | subjects | Subjects holds references to the objects that manged RBAC roles should apply to. | []rbacv1.Subject | true | AccountStatus represents the observed state of Account. | Field | Description | Scheme | Required | | -- | -- | | -- | | namespace | NamespaceName is the name of the Namespace that the Account manages. | * | false | | observedGeneration | ObservedGeneration is the most recent generation observed for this Account by the controller. | int64 | false | | conditions | Conditions represents the latest available observations of a Account's current state. | | false | | phase | DEPRECATED. Phase represents the current lifecycle state of this object. Consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to strings when printing the property. This is only for display purpose, for everything else use conditions. | AccountPhaseType.catalog.kubecarrier.io/v1alpha1 | false | Catalog publishes a selection of CatalogEntries to a selection of Tenants. KubeCarrier will automatically create ServiceClusterAssignment objects for each Tenant selected by the Catalog. Example ```yaml apiVersion: catalog.kubecarrier.io/v1alpha1 kind: Catalog metadata: name: default spec: tenantSelector: {} catalogEntrySelector: {} ``` | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | CatalogCondition contains details for the current condition of this Catalog. | Field | Description | Scheme | Required | | -- | -- | | -- | | type | Type is the type of the Catalog condition, currently ('Ready'). | CatalogConditionType.catalog.kubecarrier.io/v1alpha1 | true | | status | Status is the status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.catalog.kubecarrier.io/v1alpha1 | true | | lastTransitionTime | LastTransitionTime is the last time the condition transits from one status to another. | metav1.Time | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | message | Message is the human readable message indicating details about last transition. | string | true | CatalogList contains a list of Catalog. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | CatalogSpec describes the desired contents of a

| Field | Description | Scheme | Required | | -- | -- | | -- | | catalogEntrySelector | CatalogEntrySelector selects CatalogEntry objects that should be part of this catalog. | * | false | | tenantSelector | TenantSelector selects Tenant objects that the catalog should be published to. | * | false | CatalogStatus represents the observed state of Catalog. | Field | Description | Scheme | Required | | -- | -- | | -- | | tenants | Tenants is the list of the Tenants(Tenant) that selected by this Catalog. | | false | | entries | Entries is the list of the CatalogEntries that selected by this Catalog. | | false | | observedGeneration | ObservedGeneration is the most recent generation observed for this Catalog by the controller. | int64 | false | | conditions | Conditions represents the latest available observations of a Catalog's current state. | | false | | phase | DEPRECATED. Phase represents the current lifecycle state of this object. Consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to strings when printing the property. This is only for display purpose, for everything else use conditions. | CatalogPhaseType.catalog.kubecarrier.io/v1alpha1 | false | CatalogEntry controls how to offer a CRD to other Tenants. A CatalogEntry references a single CRD, adds metadata to it and allows to limit field access for Tenants. Simple Example ```yaml apiVersion: catalog.kubecarrier.io/v1alpha1 kind: CatalogEntry metadata: name: couchdbs.eu-west-1 spec: metadata: displayName: CouchDB description: The compfy database baseCRD: name: couchdbs.eu-west-1.loodse ``` Example with limited fields ```yaml apiVersion: catalog.kubecarrier.io/v1alpha1 kind: CatalogEntry metadata: name: couchdbs.eu-west-1 spec: metadata: displayName: CouchDB description: The compfy database baseCRD: name: couchdbs.eu-west-1.loodse derive: expose: versions: v1alpha1 fields: jsonPath: .spec.username jsonPath: .spec.password jsonPath: .status.phase jsonPath: .status.fauxtonAddress jsonPath: .status.address jsonPath: .status.observedGeneration ``` | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | CatalogEntryCondition contains details for the current condition of this CatalogEntry. | Field | Description | Scheme | Required | | -- | -- | | -- | | type | Type is the type of the CatalogEntry condition, currently ('Ready'). | CatalogEntryConditionType.catalog.kubecarrier.io/v1alpha1 | true | | status | Status is the status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.catalog.kubecarrier.io/v1alpha1 | true | | lastTransitionTime | LastTransitionTime is the last time the condition transits from one status to another. | metav1.Time | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | message | Message is the human readable message indicating details about last transition. | string | true | CatalogEntryList contains a list of CatalogEntry. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | CatalogEntryMetadata contains metadata of the CatalogEntry. | Field | Description | Scheme | Required | | -- | -- | | -- | CatalogEntrySpec describes the desired state of CatalogEntry. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | Metadata contains the metadata of the CatalogEntry for the Service Catalog. | | true | | baseCRD | BaseCRD is the underlying BaseCRD objects that this CatalogEntry refers

| | true | | derive | Derive contains the configuration to generate DerivedCustomResource from the BaseCRD of this CatalogEntry. | * | false | CatalogEntryStatus represents the observed state of CatalogEntry. | Field | Description | Scheme | Required | | -- | -- | | -- | | tenantCRD | TenantCRD holds the information about the Tenant facing CRD that is offered by this CatalogEntry. | * | false | | providerCRD | ProviderCRD holds the information about the Provider facing CRD that is offered by this CatalogEntry. | * | false | | observedGeneration | ObservedGeneration is the most recent generation observed for this CatalogEntry by the controller. | int64 | false | | conditions | Conditions represents the latest available observations of a CatalogEntry's current state. | | false | | phase | DEPRECATED. Phase represents the current lifecycle state of this object. Consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to strings when printing the property. This is only for display purpose, for everything else use conditions. | CatalogEntryPhaseType.catalog.kubecarrier.io/v1alpha1 | false | DerivedConfig can be used to limit fields that should be exposed to a Tenant. | Field | Description | Scheme | Required | | -- | -- | | -- | | expose | controls which fields will be present in the derived CRD. | | true | CatalogEntrySet manages a CustomResourceDiscoverySet and creates CatalogEntries for each CRD discovered from the selected ServiceClusters. Example See CatalogEntry documentation for more configuration details. ```yaml apiVersion: catalog.kubecarrier.io/v1alpha1 kind: CatalogEntrySet metadata: name: couchdbs spec: metadata: displayName: CouchDB description: The compfy database discoverySet: crd: name: couchdbs.couchdb.io serviceClusterSelector: {} ``` | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | CatalogEntrySetCondition contains details for the current condition of this CatalogEntrySet. | Field | Description | Scheme | Required | | -- | -- | | -- | | type | Type is the type of the CatalogEntrySet condition, currently ('Ready'). | CatalogEntrySetConditionType.catalog.kubecarrier.io/v1alpha1 | true | | status | Status is the status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.catalog.kubecarrier.io/v1alpha1 | true | | lastTransitionTime | LastTransitionTime is the last time the condition transits from one status to another. | metav1.Time | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | message | Message is the human readable message indicating details about last transition. | string | true | CatalogEntrySetList contains a list of CatalogEntrySet. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | CatalogEntrySetMetadata contains the metadata (display name, description, etc) of the CatalogEntrySet. | Field | Description | Scheme | Required | | -- | -- | | -- | CatalogEntrySetSpec defines the desired state of CatalogEntrySet. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | Metadata contains the metadata of each CatalogEntry for the Service Catalog. | | true | | derive | Derive contains the configuration to generate DerivedCustomResources from the BaseCRDs that are selected by this

| * | false | | discover | Discover contains the configuration to create a CustomResourceDiscoverySet. | | true | CatalogEntrySetStatus defines the observed state of CatalogEntrySet. | Field | Description | Scheme | Required | | -- | -- | | -- | | observedGeneration | ObservedGeneration is the most recent generation observed for this CatalogEntrySet by the controller. | int64 | false | | conditions | Conditions represents the latest available observations of a CatalogEntrySet's current state. | | false | | phase | DEPRECATED. Phase represents the current lifecycle state of this object. Consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to strings when printing the property. This is only for display purpose, for everything else use conditions. | CatalogEntrySetPhaseType.catalog.kubecarrier.io/v1alpha1 | false | | Field | Description | Scheme | Required | | -- | -- | | -- | | crd | CRD references a CustomResourceDefinition within the ServiceCluster. | | true | | serviceClusterSelector | ServiceClusterSelector references a set of ServiceClusters to search the CustomResourceDefinition on. | | true | | webhookStrategy | WebhookStrategy configs the webhook of the CRD which is registered in the management cluster by CustomResourceDiscovery object. There are two possible values for this configuration {None (by default), ServiceCluster} None (by default): Webhook will only check if there is an available ServiceClusterAssignment in the current Namespace. ServiceCluster: Webhook will call webhooks of the CRD in the ServiceCluster with dry-run flag. | corev1alpha1.WebhookStrategyType | false | CRDInformation contains type information about the CRD. | Field | Description | Scheme | Required | | -- | -- | | -- | | name | | string | true | | apiGroup | | string | true | | kind | | string | true | | plural | | string | true | | versions | | | true | | region | Region references a Region of this CRD. | | true | CRDVersion holds CRD version specific details. | Field | Description | Scheme | Required | | -- | -- | | -- | | name | Name of this version, for example: v1, v1alpha1, v1beta1 | string | true | | schema | Schema of this CRD version. | *apiextensionsv1.CustomResourceValidation | false | | storage | Storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true. | bool | false | DerivedCustomResource derives a new CRD from a existing one. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | DerivedCustomResourceCondition contains details for the current condition of this DerivedCustomResource. | Field | Description | Scheme | Required | | -- | -- | | -- | | type | Type is the type of the DerivedCustomResource condition, currently ('Ready'). | DerivedCustomResourceConditionType.catalog.kubecarrier.io/v1alpha1 | true | | status | Status is the status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.catalog.kubecarrier.io/v1alpha1 | true | | lastTransitionTime | LastTransitionTime is the last time the condition transits from one status to another. | metav1.Time | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | message | Message is the human readable message indicating details about last

| string | true | DerivedCustomResourceList contains a list of DerivedCustomResource. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | DerivedCustomResourceSpec defines the desired state of DerivedCustomResource. | Field | Description | Scheme | Required | | -- | -- | | -- | | baseCRD | CRD that should be used as a base to derive a new CRD from. | | true | | expose | controls which fields will be present in the derived CRD. | | true | DerivedCustomResourceStatus defines the observed state of DerivedCustomResource. | Field | Description | Scheme | Required | | -- | -- | | -- | | observedGeneration | ObservedGeneration is the most recent generation observed for this DerivedCustomResource by the controller. | int64 | false | | conditions | Conditions represents the latest available observations of a DerivedCustomResource's current state. | | false | | phase | DEPRECATED. Phase represents the current lifecycle state of this object. Consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to strings when printing the property. This is only for display purpose, for everything else use conditions. | DerivedCustomResourcePhaseType.catalog.kubecarrier.io/v1alpha1 | false | | derivedCR | DerivedCR holds information about the derived CRD. | * | false | FieldPath is specifying how to address a certain field. | Field | Description | Scheme | Required | | -- | -- | | -- | | jsonPath | JSONPath e.g. .spec.somefield.somesubfield | string | true | VersionExposeConfig specifies which fields to expose in the derived CRD. | Field | Description | Scheme | Required | | -- | -- | | -- | | versions | specifies the versions of the referenced CRD, that this expose config applies to. The same version may not be specified in multiple VersionExposeConfigs. | []string | true | | fields | specifies the fields that should be present in the derived CRD. | | true | Offering is used for Tenants to discover services that have been made available to them. Offering objects are created automatically by KubeCarrier in Account namespaces, that have a service offered to them via a Catalog. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | OfferingList contains a list of Offering. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | OfferingMetadata contains the metadata (display name, description, etc) of the Offering. | Field | Description | Scheme | Required | | -- | -- | | -- | OfferingSpec defines the data (metadata, provider, crds, etc.) of Offering. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | true | | provider | Provider references the Provider managing this Offering. | | true | | crd | CRD holds the information about the underlying CRD that is offered by this offering. | | false | Provider exposes information of an Account with the Provider

Provider objects are created automatically by KubeCarrier in Account namespaces, that have a service offered to them via a Catalog. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | ProviderList contains a list of Provider. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | ProviderSpec defines the desired state of Provider | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | Metadata contains the metadata (display name, description, etc) of the Provider. | | true | Region exposes information about a Providers Cluster. Region objects are created automatically by KubeCarrier in Account namespaces, that have a service offered to them via a Catalog. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | RegionList contains a list of Region. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | RegionSpec defines the desired state of Region | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | Metadata contains the metadata (display name, description, etc) of the ServiceCluster. | corev1alpha1.ServiceClusterMetadata | false | | provider | Provider references the Provider that this ServiceCluster belongs to. | | true | Tenant exposes information about available Tenants on the platform and allows a Provider to set custom labels on them. Tenant objects will be created for all Accounts with the role \"Tenant\" in all Account Namespaces with the role \"Provider\". | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | TenantList contains a list of Tenant. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | TenantSpec defines the desired state of Tenant | Field | Description | Scheme | Required | | -- | -- | | -- | CommonMetadata contains human-readable information shared for all catalog related objects. | Field | Description | Scheme | Required | | -- | -- | | -- | | displayName | DisplayName is the human-readable name of this Service. | string | true | | description | Description is the long and detailed description of the Service. | string | false | | shortDescription | ShortDescription is a single line short description of the Service. | string | true | | logo | Logo is the full sized logo of the service. | * | false | | icon | Icon is a small squared logo of the service. | * | false | Image describes an inlined image. | Field | Description | Scheme | Required | | -- | -- | | -- | | mediaType | MediaType of the included image in data. e.g. image/png, image/jpeg, image/svg | string | true | | data | Data is the image data. |

| true | ObjectReference describes the link to another object in the same namespace. | Field | Description | Scheme | Required | | -- | -- | | -- | | name | | string | true | The `operator.kubecarrier.io` API group contains objects to interact with the KubeCarrier installation. APIServer manages the deployment of the KubeCarrier central API server. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | APIServerCondition contains details for the current condition of this APIServer. | Field | Description | Scheme | Required | | -- | -- | | -- | | type | Type is the type of the APIServer condition, currently ('Ready'). | APIServerConditionType.operator.kubecarrier.io/v1alpha1 | true | | status | Status is the status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.operator.kubecarrier.io/v1alpha1 | true | | lastTransitionTime | LastTransitionTime is the last time the condition transits from one status to another. | metav1.Time | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | message | Message is the human readable message indicating details about last transition. | string | true | APIServerList contains a list of APIServer | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | | Field | Description | Scheme | Required | | -- | -- | | -- | | issuerURL | IssuerURL is the URL the provider signs ID Tokens as. This will be the \"iss\" field of all tokens produced by the provider and is used for configuration discovery.\n\nThe URL is usually the provider's URL without a path, for example \"https://accounts.google.com\" or \"https://login.salesforce.com\".\n\nThe provider must implement configuration discovery. See: https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig | string | true | | clientID | ClientID the JWT must be issued for, the \"sub\" field. This plugin only trusts a single client to ensure the plugin can be used with public providers.\n\nThe plugin supports the \"authorized party\" OpenID Connect claim, which allows specialized providers to issue tokens to a client for a different client. See: https://openid.net/specs/openid-connect-core-1_0.html#IDToken | string | true | | certificateAuthority | CertificateAuthority references the secret containing issuer's CA in a PEM encoded root certificate of the provider. | | true | | usernameClaim | UsernameClaim is the JWT field to use as the user's username. | string | true | | usernamePrefix | UsernamePrefix, if specified, causes claims mapping to username to be prefix with the provided value. A value \"oidc:\" would result in usernames like \"oidc:john\". | string | false | | groupsClaim | GroupsClaim, if specified, causes the OIDCAuthenticator to try to populate the user's groups with an ID Token field. If the GroupsClaim field is present in an ID Token the value must be a string or list of strings. | string | false | | groupsPrefix | GroupsPrefix, if specified, causes claims mapping to group names to be prefixed with the value. A value \"oidc:\" would result in groups like \"oidc:engineering\" and \"oidc:marketing\". | string | false | | supportedSigningAlgs | SupportedSigningAlgs sets the accepted set of JOSE signing algorithms that can be used by the provider to sign tokens.\n\nhttps://tools.ietf.org/html/rfc7518#section-3.1\n\nThis value defaults to RS256, the value recommended by the OpenID

spec:\n\nhttps://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation | []string | false | | requiredClaims | RequiredClaims, if specified, causes the OIDCAuthenticator to verify that all the required claims key value pairs are present in the ID Token. | map[string]string | false | APIServerSpec defines the desired state of APIServer | Field | Description | Scheme | Required | | -- | -- | | -- | | tlsSecretRef | TLSSecretRef references the TLS certificate and private key for serving the KubeCarrier API. | * | false | | authentication | Authentication configuration | Authentication.operator.kubecarrier.io/v1alpha1 | false | | paused | Paused tell controller to pause reconciliation process and assume that APIServer is ready | PausedFlagType.operator.kubecarrier.io/v1alpha1 | false | | logLevel | LogLevel | *int.operator.kubecarrier.io/v1alpha1 | false | APIServerStatus defines the observed state of APIServer | Field | Description | Scheme | Required | | -- | -- | | -- | | observedGeneration | ObservedGeneration is the most recent generation observed for this APIServer by the controller. | int64 | false | | conditions | Conditions represents the latest available observations of a APIServer's current state. | | false | | phase | DEPRECATED. Phase represents the current lifecycle state of this object. Consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to strings when printing the property. This is only for display purpose, for everything else use conditions. | APIServerPhaseType.operator.kubecarrier.io/v1alpha1 | false | | Field | Description | Scheme | Required | | -- | -- | | -- | | Field | Description | Scheme | Required | | -- | -- | | -- | | oidc | OIDC specifies OpenID Connect configuration for API Server authentication | * | false | | staticUsers | StaticUsers specifies static users configuration for API Server authentication | * | false | | serviceAccount | ServiceAccount specifies whether service account auth provider enabled | * | false | | anonymous | Anonymous specifies whether anonymous auth provider enabled | * | false | | Field | Description | Scheme | Required | | -- | -- | | -- | | Field | Description | Scheme | Required | | -- | -- | | -- | | htpasswdSecret | HtpassswdSecret specifies the htpasswd secret to use for static user authentication. | | true | Catapult manages the deployment of the Catapult controller manager. A Catapult instance is started for each CustomResourceDiscovery instance and responsible for reconciling CRD instances across Kubernetes Clusters. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | CatapultCondition contains details for the current condition of this Catapult. | Field | Description | Scheme | Required | | -- | -- | | -- | | type | Type is the type of the Catapult condition, currently ('Ready'). | CatapultConditionType.operator.kubecarrier.io/v1alpha1 | true | | status | Status is the status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.operator.kubecarrier.io/v1alpha1 | true | | lastTransitionTime | LastTransitionTime is the last time the condition transits from one status to another. | metav1.Time | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | message | Message is the human readable message indicating details about last

| string | true | CatapultList contains a list of Catapult. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | CatapultSpec defines the desired state of Catapult. | Field | Description | Scheme | Required | | -- | -- | | -- | | managementClusterCRD | References the CRD in the Management Cluster. | | true | | serviceClusterCRD | References the CRD in the ServiceCluster. | | true | | serviceCluster | References the ServiceCluster object that this object belongs to. | | true | | webhookStrategy | WebhookStrategy configs the webhook of the CRD which is registered in the management cluster by this Catapult. There are two possible values for this configuration {None (by default), ServiceCluster} None (by default): Webhook will only check if there is an available ServiceClusterAssignment in the current Namespace. ServiceCluster: Webhook will call webhooks of the CRD in the ServiceCluster with dry-run flag. | corev1alpha1.WebhookStrategyType | false | | paused | Paused tell controller to pause reconciliation process and assume that Catapult is ready | PausedFlagType.operator.kubecarrier.io/v1alpha1 | false | | logLevel | LogLevel | *int.operator.kubecarrier.io/v1alpha1 | false | CatapultStatus defines the observed state of Catapult. | Field | Description | Scheme | Required | | -- | -- | | -- | | observedGeneration | ObservedGeneration is the most recent generation observed for this Catapult by the controller. | int64 | false | | conditions | Conditions represents the latest available observations of a Catapult's current state. | | false | | phase | DEPRECATED. Phase represents the current lifecycle state of this object. Consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to strings when printing the property. This is only for display purpose, for everything else use conditions. | CatapultPhaseType.operator.kubecarrier.io/v1alpha1 | false | Elevator manages the deployment of the Elevator controller manager. For each `DerivedCustomResource` a Elevator instance is launched to propagate the derived CRD instance into the Namespace of it's provider. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | ElevatorCondition contains details for the current condition of this Elevator. | Field | Description | Scheme | Required | | -- | -- | | -- | | type | Type is the type of the Elevator condition, currently ('Ready'). | ElevatorConditionType.operator.kubecarrier.io/v1alpha1 | true | | status | Status is the status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.operator.kubecarrier.io/v1alpha1 | true | | lastTransitionTime | LastTransitionTime is the last time the condition transits from one status to another. | metav1.Time | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | message | Message is the human readable message indicating details about last transition. | string | true | ElevatorList contains a list of Elevator. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | ElevatorSpec defines the desired state of

| Field | Description | Scheme | Required | | -- | -- | | -- | | providerCRD | References the provider or internal CRD, that should be created in the provider namespace. | | true | | tenantCRD | References the public CRD that will be synced into the provider namespace. | | true | | derivedCR | References the DerivedCustomResource controlling the Tenant-side CRD. | | true | | paused | Paused tell controller to pause reconciliation process and assume that Catapult is ready | PausedFlagType.operator.kubecarrier.io/v1alpha1 | false | | logLevel | LogLevel | *int.operator.kubecarrier.io/v1alpha1 | false | ElevatorStatus defines the observed state of Elevator. | Field | Description | Scheme | Required | | -- | -- | | -- | | observedGeneration | ObservedGeneration is the most recent generation observed for this Elevator by the controller. | int64 | false | | conditions | Conditions represents the latest available observations of a Elevator's current state. | | false | | phase | DEPRECATED. Phase represents the current lifecycle state of this object. Consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to strings when printing the property. This is only for display purpose, for everything else use conditions. | ElevatorPhaseType.operator.kubecarrier.io/v1alpha1 | false | Ferry manages the deployment of the Ferry controller manager. Ferry lives in the Provider Namespace. For each ferry the KubeCarrier operator spins up the ferry controller deployment, necessary roles, service accounts, and role bindings. The reason for ferry controller deployment are multiples: security --> KubeCarrier operator has greater privileges then ferry controller resource isolation --> each ferry controller pod operates only on a single service cluster, thus resource allocation and monitoring is separate per ferry. This allows finer grade resource tuning and monitoring flexibility --> If needed different ferries could have different deployments depending on their specific need (e.g. KubeCarrier image version for gradual rolling upgrade, different resource allocation, etc), | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | FerryCondition contains details for the current condition of this Ferry. | Field | Description | Scheme | Required | | -- | -- | | -- | | lastTransitionTime | LastTransitionTime is the last time the condition transit from one status to another. | metav1.Time | true | | message | Message is the human readable message indicating details about last transition. | string | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | status | Status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.operator.kubecarrier.io/v1alpha1 | true | | type | Type of the condition, currently ('Ready'). | FerryConditionType.operator.kubecarrier.io/v1alpha1 | true | FerryList contains a list of Ferry. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | FerrySpec defines the desired state of Ferry. | Field | Description | Scheme | Required | | -- | -- | | -- | | kubeconfigSecret | KubeconfigSecret specifies the Kubeconfig to use when connecting to the ServiceCluster. | | true | | paused | Paused tell controller to pause reconciliation process and assume that Ferry is ready | PausedFlagType.operator.kubecarrier.io/v1alpha1 | false | | logLevel | LogLevel |

| false | FerryStatus defines the observed state of Ferry. | Field | Description | Scheme | Required | | -- | -- | | -- | | phase | DEPRECATED. Phase represents the current lifecycle state of this object. Consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to strings when printing the property. This is only for display purpose, for everything else use conditions. | FerryPhaseType.operator.kubecarrier.io/v1alpha1 | false | | conditions | Conditions is a list of all conditions this Ferry is in. | | false | | observedGeneration | The most recent generation observed by the controller. | int64 | false | KubeCarrier manages the deployment of the KubeCarrier controller manager. | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | spec | | | false | | status | | | false | KubeCarrierCondition contains details for the current condition of this KubeCarrier. | Field | Description | Scheme | Required | | -- | -- | | -- | | type | Type is the type of the KubeCarrier condition, currently ('Ready'). | KubeCarrierConditionType.operator.kubecarrier.io/v1alpha1 | true | | status | Status is the status of the condition, one of ('True', 'False', 'Unknown'). | ConditionStatus.operator.kubecarrier.io/v1alpha1 | true | | lastTransitionTime | LastTransitionTime is the last time the condition transits from one status to another. | metav1.Time | true | | reason | Reason is the (brief) reason for the condition's last transition. | string | true | | message | Message is the human readable message indicating details about last transition. | string | true | KubeCarrierList contains a list of KubeCarrier | Field | Description | Scheme | Required | | -- | -- | | -- | | metadata | | | false | | items | | | true | KubeCarrierSpec defines the desired state of KubeCarrier | Field | Description | Scheme | Required | | -- | -- | | -- | | api | | | false | | paused | Paused tell controller to pause reconciliation process and assume that KubaCarrier is ready | PausedFlagType.operator.kubecarrier.io/v1alpha1 | false | | logLevel | LogLevel | int.operator.kubecarrier.io/v1alpha1 | false | KubeCarrierStatus defines the observed state of KubeCarrier | Field | Description | Scheme | Required | | -- | -- | | -- | | observedGeneration | ObservedGeneration is the most recent generation observed for this KubeCarrier by the controller. | int64 | false | | conditions | Conditions represents the latest available observations of a KubeCarrier's current state. | | false | | phase | DEPRECATED. Phase represents the current lifecycle state of this object. Consider this field DEPRECATED, it will be removed as soon as there is a mechanism to map conditions to strings when printing the property. This is only for display purpose, for everything else use conditions. | KubeCarrierPhaseType.operator.kubecarrier.io/v1alpha1 | false | CRDReference references a CustomResourceDefitition. | Field | Description | Scheme | Required | | -- | -- | | -- | | kind | | string | true | | version | | string | true | | group | | string | true | | plural | | string | true | ObjectReference describes the link to another object in the same namespace | Field | Description | Scheme | Required | | -- | -- | | -- | | name | | string | true |