API Reference

The KubeCarrier API is implemented as a extension of the Kubernetes API as CustomResourceDefinitions. All available objects and their usage are described below.

The API consists of multiple API groups:

Core

The core kubecarrier.io API group contains the basic buildings blocks of KubeCarrier and objects to setup cross-cluster management of resources.

CustomResourceDiscovery.kubecarrier.io/v1alpha1

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 Management 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

apiVersion: kubecarrier.io/v1alpha1
kind: CustomResourceDiscovery
metadata:
  name: couchdb.eu-west-1
spec:
  crd:
    name: couchdbs.couchdb.io
  serviceCluster:
    name: eu-west-1
FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specCustomResourceDiscoverySpec.kubecarrier.io/v1alpha1false
statusCustomResourceDiscoveryStatus.kubecarrier.io/v1alpha1false

Back to Group

CustomResourceDiscoveryCondition.kubecarrier.io/v1alpha1

CustomResourceDiscoveryCondition contains details of the current state of this CustomResourceDiscovery.

FieldDescriptionSchemeRequired
lastTransitionTimeLastTransitionTime is the last time the condition transit from one status to another.metav1.Timetrue
messageMessage is the human readable message indicating details about last transition.stringtrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
statusStatus of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.kubecarrier.io/v1alpha1true
typeType of the condition, currently (‘Ready’).CustomResourceDiscoveryConditionType.kubecarrier.io/v1alpha1true

Back to Group

CustomResourceDiscoveryList.kubecarrier.io/v1alpha1

CustomResourceDiscoveryList is a list of CustomResourceDiscovery.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]CustomResourceDiscovery.kubecarrier.io/v1alpha1true

Back to Group

CustomResourceDiscoverySpec.kubecarrier.io/v1alpha1

CustomResourceDiscoverySpec describes the desired state of a CustomResourceDiscovery.

FieldDescriptionSchemeRequired
crdCRD references a CustomResourceDefinition within the ServiceCluster.ObjectReference.kubecarrier.io/v1alpha1true
serviceClusterServiceCluster references a ServiceCluster to search the CustomResourceDefinition on.ObjectReference.kubecarrier.io/v1alpha1true
kindOverrideKindOverride overrides the kind of the discovered CRD.stringfalse
webhookStrategyWebhookStrategy 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/v1alpha1false

Back to Group

CustomResourceDiscoveryStatus.kubecarrier.io/v1alpha1

CustomResourceDiscoveryStatus represents the observed state of a CustomResourceDiscovery.

FieldDescriptionSchemeRequired
crdCRD defines the original CustomResourceDefinition specification from the service cluster.*apiextensionsv1.CustomResourceDefinitionfalse
managementClusterCRDManagementClusterCRD references the CustomResourceDefinition that is created by a CustomResourceDiscovery.*ObjectReference.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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 conditionsCustomResourceDiscoveryPhaseType.kubecarrier.io/v1alpha1false
conditionsConditions is a list of all conditions this CustomResourceDiscovery is in.[]CustomResourceDiscoveryCondition.kubecarrier.io/v1alpha1false
observedGenerationThe most recent generation observed by the controller.int64false

Back to Group

CustomResourceDiscoverySet.kubecarrier.io/v1alpha1

CustomResourceDiscoverySet manages multiple CustomResourceDiscovery objects for a set of ServiceClusters.

Example

apiVersion: kubecarrier.io/v1alpha1
kind: CustomResourceDiscoverySet
metadata:
  name: couchdb
spec:
  crd:
    name: couchdbs.couchdb.io
  serviceClusterSelector: {}
FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specCustomResourceDiscoverySetSpec.kubecarrier.io/v1alpha1false
statusCustomResourceDiscoverySetStatus.kubecarrier.io/v1alpha1false

Back to Group

CustomResourceDiscoverySetCRDReference.kubecarrier.io/v1alpha1

CustomResourceDiscoverySetCRDReference references a discovered CustomResourceDefinition.

FieldDescriptionSchemeRequired
crdObjectReference.kubecarrier.io/v1alpha1true
serviceClusterObjectReference.kubecarrier.io/v1alpha1true

Back to Group

CustomResourceDiscoverySetCondition.kubecarrier.io/v1alpha1

CustomResourceDiscoverySetCondition contains details for the current condition of this CustomResourceDiscoverySet.

FieldDescriptionSchemeRequired
lastTransitionTimeLastTransitionTime is the last time the condition transit from one status to another.metav1.Timetrue
messageMessage is the human readable message indicating details about last transition.stringtrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
statusStatus of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.kubecarrier.io/v1alpha1true
typeType of the condition, currently (‘Ready’).CustomResourceDiscoverySetConditionType.kubecarrier.io/v1alpha1true

Back to Group

CustomResourceDiscoverySetList.kubecarrier.io/v1alpha1

CustomResourceDiscoverySetList is a list of CustomResourceDiscoverySet.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]CustomResourceDiscoverySet.kubecarrier.io/v1alpha1true

Back to Group

CustomResourceDiscoverySetSpec.kubecarrier.io/v1alpha1

CustomResourceDiscoverySetSpec describes the desired state of a CustomResourceDiscoverySet.

FieldDescriptionSchemeRequired
crdCRD references a CustomResourceDefinition within the ServiceCluster.ObjectReference.kubecarrier.io/v1alpha1true
serviceClusterSelectorServiceClusterSelector references a set of ServiceClusters to search the CustomResourceDefinition on.metav1.LabelSelectortrue
kindOverrideKindOverride overrides the kind of the discovered CRD.stringfalse
webhookStrategyWebhookStrategy 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/v1alpha1false

Back to Group

CustomResourceDiscoverySetStatus.kubecarrier.io/v1alpha1

CustomResourceDiscoverySetStatus represents the observed state of a CustomResourceDiscoverySet.

FieldDescriptionSchemeRequired
managementClusterCRDsManagementClusterCRDs contains the CRDs information that created by the CustomResourceDiscovery objects of this CustomResourceDiscoverySet.[]CustomResourceDiscoverySetCRDReference.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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 conditionsCustomResourceDiscoverySetPhaseType.kubecarrier.io/v1alpha1false
conditionsConditions is a list of all conditions this CustomResourceDiscovery is in.[]CustomResourceDiscoverySetCondition.kubecarrier.io/v1alpha1false
observedGenerationThe most recent generation observed by the controller.int64false

Back to Group

ServiceCluster.kubecarrier.io/v1alpha1

ServiceCluster represents a Kubernets Cluster registered into KubeCarrier.

Example

apiVersion: kubecarrier.io/v1alpha1
kind: ServiceCluster
metadata:
  name: eu-west-1
spec:
  metadata:
    displayName: EU West 1
  kubeconfigSecret:
    name: eu-west-1-kubeconfig
FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specServiceClusterSpec.kubecarrier.io/v1alpha1false
statusServiceClusterStatus.kubecarrier.io/v1alpha1false

Back to Group

ServiceClusterCondition.kubecarrier.io/v1alpha1

ServiceClusterCondition contains details for the current condition of this ServiceCluster.

FieldDescriptionSchemeRequired
lastHeartbeatTimeLastHeartbeatTime is the timestamp corresponding to the last update of this condition.metav1.Timetrue
lastTransitionTimeLastTransitionTime is the last time the condition transit from one status to another.metav1.Timetrue
messageMessage is the human readable message indicating details about last transition.stringtrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
statusStatus of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.kubecarrier.io/v1alpha1true
typeType of the condition, currently (‘Ready’).ServiceClusterConditionType.kubecarrier.io/v1alpha1true

Back to Group

ServiceClusterList.kubecarrier.io/v1alpha1

ServiceClusterList contains a list of ServiceCluster.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]ServiceCluster.kubecarrier.io/v1alpha1true

Back to Group

ServiceClusterMetadata.kubecarrier.io/v1alpha1

ServiceClusterMetadata describes metadata of the ServiceCluster for the Service Catalog.

FieldDescriptionSchemeRequired
displayNameDisplayName is the human-readable name of this ServiceCluster.stringfalse
descriptionDescription is the human-readable description of this ServiceCluster.stringfalse

Back to Group

ServiceClusterSpec.kubecarrier.io/v1alpha1

ServiceClusterSpec describes the desired state of a ServiceCluster.

FieldDescriptionSchemeRequired
metadataMetadata for display in the Service Catalog.ServiceClusterMetadata.kubecarrier.io/v1alpha1false
kubeconfigSecretKubeconfigSecret specifies the Kubeconfig to use when connecting to the ServiceCluster.ObjectReference.kubecarrier.io/v1alpha1true

Back to Group

ServiceClusterStatus.kubecarrier.io/v1alpha1

ServiceClusterStatus represents the observed state of a ServiceCluster.

FieldDescriptionSchemeRequired
phaseDEPRECATED. 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 conditionsServiceClusterPhaseType.kubecarrier.io/v1alpha1false
conditionsConditions is a list of all conditions this ServiceCluster is in.[]ServiceClusterCondition.kubecarrier.io/v1alpha1false
observedGenerationThe most recent generation observed by the controller.int64false
kubernetesVersionKubernetesVersion of the service cluster API Server*version.Infofalse

Back to Group

ServiceClusterAssignment.kubecarrier.io/v1alpha1

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

apiVersion: kubecarrier.io/v1alpha1
kind: ServiceClusterAssignment
metadata:
  name: example1.eu-west-1
spec:
  serviceCluster:
    name: eu-west-1
  managementNamespace:
    name: example1
FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specServiceClusterAssignmentSpec.kubecarrier.io/v1alpha1false
statusServiceClusterAssignmentStatus.kubecarrier.io/v1alpha1false

Back to Group

ServiceClusterAssignmentCondition.kubecarrier.io/v1alpha1

ServiceClusterAssignmentCondition contains details for the current condition of this ServiceClusterAssignment.

FieldDescriptionSchemeRequired
lastTransitionTimeLastTransitionTime is the last time the condition transit from one status to another.metav1.Timetrue
messageMessage is the human readable message indicating details about last transition.stringtrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
statusStatus of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.kubecarrier.io/v1alpha1true
typeType of the condition, currently (‘Ready’).ServiceClusterAssignmentConditionType.kubecarrier.io/v1alpha1true

Back to Group

ServiceClusterAssignmentList.kubecarrier.io/v1alpha1

ServiceClusterAssignmentList contains a list of ServiceClusterAssignment.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]ServiceClusterAssignment.kubecarrier.io/v1alpha1true

Back to Group

ServiceClusterAssignmentSpec.kubecarrier.io/v1alpha1

ServiceClusterAssignmentSpec describes the desired state of ServiceClusterAssignment.

FieldDescriptionSchemeRequired
serviceClusterReferences the ServiceCluster.ObjectReference.kubecarrier.io/v1alpha1true
managementNamespaceReferences the source namespace in the management cluster.ObjectReference.kubecarrier.io/v1alpha1true

Back to Group

ServiceClusterAssignmentStatus.kubecarrier.io/v1alpha1

ServiceClusterAssignmentStatus represents the observed state of ServiceClusterAssignment.

FieldDescriptionSchemeRequired
phaseDEPRECATED. 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 conditionsServiceClusterAssignmentPhaseType.kubecarrier.io/v1alpha1false
conditionsConditions is a list of all conditions this ServiceClusterAssignment is in.[]ServiceClusterAssignmentCondition.kubecarrier.io/v1alpha1false
observedGenerationThe most recent generation observed by the controller.int64false
serviceClusterNamespaceServiceClusterNamespace references the Namespace on the ServiceCluster that was assigned.*ObjectReference.kubecarrier.io/v1alpha1false

Back to Group

ObjectReference.kubecarrier.io/v1alpha1

ObjectReference describes the link to another object in the same Namespace.

FieldDescriptionSchemeRequired
namestringtrue

Back to Group

Catalog

The catalog.kubecarrier.io API group contains all objects that are used to setup service catalogs in KubeCarrier.

Account.catalog.kubecarrier.io/v1alpha1

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

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
FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specAccountSpec.catalog.kubecarrier.io/v1alpha1false
statusAccountStatus.catalog.kubecarrier.io/v1alpha1false

Back to Group

AccountCondition.catalog.kubecarrier.io/v1alpha1

AccountCondition contains details for the current condition of this Account.

FieldDescriptionSchemeRequired
typeType is the type of the Account condition, currently (‘Ready’).AccountConditionType.catalog.kubecarrier.io/v1alpha1true
statusStatus is the status of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.catalog.kubecarrier.io/v1alpha1true
lastTransitionTimeLastTransitionTime is the last time the condition transits from one status to another.metav1.Timetrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
messageMessage is the human readable message indicating details about last transition.stringtrue

Back to Group

AccountList.catalog.kubecarrier.io/v1alpha1

AccountList contains a list of Account.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]Account.catalog.kubecarrier.io/v1alpha1true

Back to Group

AccountMetadata.catalog.kubecarrier.io/v1alpha1

AccountMetadata contains the metadata of the Account.

FieldDescriptionSchemeRequired

Back to Group

AccountSpec.catalog.kubecarrier.io/v1alpha1

AccountSpec describes the desired state of Account.

FieldDescriptionSchemeRequired
metadataMetadata\tcontains additional human readable account details.AccountMetadata.catalog.kubecarrier.io/v1alpha1false
rolesRoles this account uses.[]AccountRole.catalog.kubecarrier.io/v1alpha1true
subjectsSubjects holds references to the objects that managed RBAC roles should apply to.[]rbacv1.Subjecttrue

Back to Group

AccountStatus.catalog.kubecarrier.io/v1alpha1

AccountStatus represents the observed state of Account.

FieldDescriptionSchemeRequired
namespaceNamespaceName is the name of the Namespace that the Account manages.*ObjectReference.catalog.kubecarrier.io/v1alpha1false
observedGenerationObservedGeneration is the most recent generation observed for this Account by the controller.int64false
conditionsConditions represents the latest available observations of a Account’s current state.[]AccountCondition.catalog.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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/v1alpha1false

Back to Group

Catalog.catalog.kubecarrier.io/v1alpha1

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

apiVersion: catalog.kubecarrier.io/v1alpha1
kind: Catalog
metadata:
  name: default
spec:
  tenantSelector: {}
  catalogEntrySelector: {}
FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specCatalogSpec.catalog.kubecarrier.io/v1alpha1false
statusCatalogStatus.catalog.kubecarrier.io/v1alpha1false

Back to Group

CatalogCondition.catalog.kubecarrier.io/v1alpha1

CatalogCondition contains details for the current condition of this Catalog.

FieldDescriptionSchemeRequired
typeType is the type of the Catalog condition, currently (‘Ready’).CatalogConditionType.catalog.kubecarrier.io/v1alpha1true
statusStatus is the status of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.catalog.kubecarrier.io/v1alpha1true
lastTransitionTimeLastTransitionTime is the last time the condition transits from one status to another.metav1.Timetrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
messageMessage is the human readable message indicating details about last transition.stringtrue

Back to Group

CatalogList.catalog.kubecarrier.io/v1alpha1

CatalogList contains a list of Catalog.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]Catalog.catalog.kubecarrier.io/v1alpha1true

Back to Group

CatalogSpec.catalog.kubecarrier.io/v1alpha1

CatalogSpec describes the desired contents of a Catalog.

FieldDescriptionSchemeRequired
catalogEntrySelectorCatalogEntrySelector selects CatalogEntry objects that should be part of this catalog.*metav1.LabelSelectorfalse
tenantSelectorTenantSelector selects Tenant objects that the catalog should be published to.*metav1.LabelSelectorfalse

Back to Group

CatalogStatus.catalog.kubecarrier.io/v1alpha1

CatalogStatus represents the observed state of Catalog.

FieldDescriptionSchemeRequired
tenantsTenants is the list of the Tenants(Tenant) that selected by this Catalog.[]ObjectReference.catalog.kubecarrier.io/v1alpha1false
entriesEntries is the list of the CatalogEntries that selected by this Catalog.[]ObjectReference.catalog.kubecarrier.io/v1alpha1false
observedGenerationObservedGeneration is the most recent generation observed for this Catalog by the controller.int64false
conditionsConditions represents the latest available observations of a Catalog’s current state.[]CatalogCondition.catalog.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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/v1alpha1false

Back to Group

CatalogEntry.catalog.kubecarrier.io/v1alpha1

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

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.kubermatic

Example with limited fields

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.kubermatic
  derive:
    kindOverride: CouchDBPublic
    expose:
    - versions:
      - v1alpha1
      fields:
      - jsonPath: .spec.username
      - jsonPath: .spec.password
      - jsonPath: .status.phase
      - jsonPath: .status.fauxtonAddress
      - jsonPath: .status.address
      - jsonPath: .status.observedGeneration
FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specCatalogEntrySpec.catalog.kubecarrier.io/v1alpha1false
statusCatalogEntryStatus.catalog.kubecarrier.io/v1alpha1false

Back to Group

CatalogEntryCondition.catalog.kubecarrier.io/v1alpha1

CatalogEntryCondition contains details for the current condition of this CatalogEntry.

FieldDescriptionSchemeRequired
typeType is the type of the CatalogEntry condition, currently (‘Ready’).CatalogEntryConditionType.catalog.kubecarrier.io/v1alpha1true
statusStatus is the status of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.catalog.kubecarrier.io/v1alpha1true
lastTransitionTimeLastTransitionTime is the last time the condition transits from one status to another.metav1.Timetrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
messageMessage is the human readable message indicating details about last transition.stringtrue

Back to Group

CatalogEntryList.catalog.kubecarrier.io/v1alpha1

CatalogEntryList contains a list of CatalogEntry.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]CatalogEntry.catalog.kubecarrier.io/v1alpha1true

Back to Group

CatalogEntryMetadata.catalog.kubecarrier.io/v1alpha1

CatalogEntryMetadata contains metadata of the CatalogEntry.

FieldDescriptionSchemeRequired

Back to Group

CatalogEntrySpec.catalog.kubecarrier.io/v1alpha1

CatalogEntrySpec describes the desired state of CatalogEntry.

FieldDescriptionSchemeRequired
metadataMetadata contains the metadata of the CatalogEntry for the Service Catalog.CatalogEntryMetadata.catalog.kubecarrier.io/v1alpha1true
baseCRDBaseCRD is the underlying BaseCRD objects that this CatalogEntry refers to.ObjectReference.catalog.kubecarrier.io/v1alpha1true
deriveDerive contains the configuration to generate DerivedCustomResource from the BaseCRD of this CatalogEntry.*DerivedConfig.catalog.kubecarrier.io/v1alpha1false

Back to Group

CatalogEntryStatus.catalog.kubecarrier.io/v1alpha1

CatalogEntryStatus represents the observed state of CatalogEntry.

FieldDescriptionSchemeRequired
tenantCRDTenantCRD holds the information about the Tenant facing CRD that is offered by this CatalogEntry.*CRDInformation.catalog.kubecarrier.io/v1alpha1false
providerCRDProviderCRD holds the information about the Provider facing CRD that is offered by this CatalogEntry.*CRDInformation.catalog.kubecarrier.io/v1alpha1false
observedGenerationObservedGeneration is the most recent generation observed for this CatalogEntry by the controller.int64false
conditionsConditions represents the latest available observations of a CatalogEntry’s current state.[]CatalogEntryCondition.catalog.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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/v1alpha1false

Back to Group

DerivedConfig.catalog.kubecarrier.io/v1alpha1

DerivedConfig can be used to limit fields that should be exposed to a Tenant.

FieldDescriptionSchemeRequired
kindOverrideoverrides the kind of the derived CRD.stringfalse
exposecontrols which fields will be present in the derived CRD.[]VersionExposeConfig.catalog.kubecarrier.io/v1alpha1true

Back to Group

CatalogEntrySet.catalog.kubecarrier.io/v1alpha1

CatalogEntrySet manages a CustomResourceDiscoverySet and creates CatalogEntries for each CRD discovered from the selected ServiceClusters.

Example See CatalogEntry documentation for more configuration details.

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: {}
FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specCatalogEntrySetSpec.catalog.kubecarrier.io/v1alpha1false
statusCatalogEntrySetStatus.catalog.kubecarrier.io/v1alpha1false

Back to Group

CatalogEntrySetCondition.catalog.kubecarrier.io/v1alpha1

CatalogEntrySetCondition contains details for the current condition of this CatalogEntrySet.

FieldDescriptionSchemeRequired
typeType is the type of the CatalogEntrySet condition, currently (‘Ready’).CatalogEntrySetConditionType.catalog.kubecarrier.io/v1alpha1true
statusStatus is the status of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.catalog.kubecarrier.io/v1alpha1true
lastTransitionTimeLastTransitionTime is the last time the condition transits from one status to another.metav1.Timetrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
messageMessage is the human readable message indicating details about last transition.stringtrue

Back to Group

CatalogEntrySetList.catalog.kubecarrier.io/v1alpha1

CatalogEntrySetList contains a list of CatalogEntrySet.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]CatalogEntrySet.catalog.kubecarrier.io/v1alpha1true

Back to Group

CatalogEntrySetMetadata.catalog.kubecarrier.io/v1alpha1

CatalogEntrySetMetadata contains the metadata (display name, description, etc) of the CatalogEntrySet.

FieldDescriptionSchemeRequired

Back to Group

CatalogEntrySetSpec.catalog.kubecarrier.io/v1alpha1

CatalogEntrySetSpec defines the desired state of CatalogEntrySet.

FieldDescriptionSchemeRequired
metadataMetadata contains the metadata of each CatalogEntry for the Service Catalog.CatalogEntrySetMetadata.catalog.kubecarrier.io/v1alpha1true
deriveDerive contains the configuration to generate DerivedCustomResources from the BaseCRDs that are selected by this CatalogEntrySet.*DerivedConfig.catalog.kubecarrier.io/v1alpha1false
discoverDiscover contains the configuration to create a CustomResourceDiscoverySet.CustomResourceDiscoverySetConfig.catalog.kubecarrier.io/v1alpha1true

Back to Group

CatalogEntrySetStatus.catalog.kubecarrier.io/v1alpha1

CatalogEntrySetStatus defines the observed state of CatalogEntrySet.

FieldDescriptionSchemeRequired
observedGenerationObservedGeneration is the most recent generation observed for this CatalogEntrySet by the controller.int64false
conditionsConditions represents the latest available observations of a CatalogEntrySet’s current state.[]CatalogEntrySetCondition.catalog.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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/v1alpha1false

Back to Group

CustomResourceDiscoverySetConfig.catalog.kubecarrier.io/v1alpha1

FieldDescriptionSchemeRequired
crdCRD references a CustomResourceDefinition within the ServiceCluster.ObjectReference.catalog.kubecarrier.io/v1alpha1true
serviceClusterSelectorServiceClusterSelector references a set of ServiceClusters to search the CustomResourceDefinition on.metav1.LabelSelectortrue
kindOverrideKindOverride overrides resulting internal CRDs kindstringfalse
webhookStrategyWebhookStrategy 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.WebhookStrategyTypefalse

Back to Group

CRDInformation.catalog.kubecarrier.io/v1alpha1

CRDInformation contains type information about the CRD.

FieldDescriptionSchemeRequired
namestringtrue
apiGroupstringtrue
kindstringtrue
pluralstringtrue
versions[]CRDVersion.catalog.kubecarrier.io/v1alpha1true
regionRegion references a Region of this CRD.ObjectReference.catalog.kubecarrier.io/v1alpha1true

Back to Group

CRDVersion.catalog.kubecarrier.io/v1alpha1

CRDVersion holds CRD version specific details.

FieldDescriptionSchemeRequired
nameName of this version, for example: v1, v1alpha1, v1beta1stringtrue
schemaSchema of this CRD version.*apiextensionsv1.CustomResourceValidationfalse

Back to Group

DerivedCustomResource.catalog.kubecarrier.io/v1alpha1

DerivedCustomResource derives a new CRD from a existing one.

FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specDerivedCustomResourceSpec.catalog.kubecarrier.io/v1alpha1false
statusDerivedCustomResourceStatus.catalog.kubecarrier.io/v1alpha1false

Back to Group

DerivedCustomResourceCondition.catalog.kubecarrier.io/v1alpha1

DerivedCustomResourceCondition contains details for the current condition of this DerivedCustomResource.

FieldDescriptionSchemeRequired
typeType is the type of the DerivedCustomResource condition, currently (‘Ready’).DerivedCustomResourceConditionType.catalog.kubecarrier.io/v1alpha1true
statusStatus is the status of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.catalog.kubecarrier.io/v1alpha1true
lastTransitionTimeLastTransitionTime is the last time the condition transits from one status to another.metav1.Timetrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
messageMessage is the human readable message indicating details about last transition.stringtrue

Back to Group

DerivedCustomResourceList.catalog.kubecarrier.io/v1alpha1

DerivedCustomResourceList contains a list of DerivedCustomResource.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]DerivedCustomResource.catalog.kubecarrier.io/v1alpha1true

Back to Group

DerivedCustomResourceSpec.catalog.kubecarrier.io/v1alpha1

DerivedCustomResourceSpec defines the desired state of DerivedCustomResource.

FieldDescriptionSchemeRequired
baseCRDCRD that should be used as a base to derive a new CRD from.ObjectReference.catalog.kubecarrier.io/v1alpha1true
kindOverrideoverrides the kind of the derived CRD.stringfalse
exposecontrols which fields will be present in the derived CRD.[]VersionExposeConfig.catalog.kubecarrier.io/v1alpha1true

Back to Group

DerivedCustomResourceStatus.catalog.kubecarrier.io/v1alpha1

DerivedCustomResourceStatus defines the observed state of DerivedCustomResource.

FieldDescriptionSchemeRequired
observedGenerationObservedGeneration is the most recent generation observed for this DerivedCustomResource by the controller.int64false
conditionsConditions represents the latest available observations of a DerivedCustomResource’s current state.[]DerivedCustomResourceCondition.catalog.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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/v1alpha1false
derivedCRDerivedCR holds information about the derived CRD.*ObjectReference.catalog.kubecarrier.io/v1alpha1false

Back to Group

FieldPath.catalog.kubecarrier.io/v1alpha1

FieldPath is specifying how to address a certain field.

FieldDescriptionSchemeRequired
jsonPathJSONPath e.g. .spec.somefield.somesubfieldstringtrue

Back to Group

VersionExposeConfig.catalog.kubecarrier.io/v1alpha1

VersionExposeConfig specifies which fields to expose in the derived CRD.

FieldDescriptionSchemeRequired
versionsspecifies the versions of the referenced CRD, that this expose config applies to. The same version may not be specified in multiple VersionExposeConfigs.[]stringtrue
fieldsspecifies the fields that should be present in the derived CRD.[]FieldPath.catalog.kubecarrier.io/v1alpha1true

Back to Group

Offering.catalog.kubecarrier.io/v1alpha1

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.

FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specOfferingSpec.catalog.kubecarrier.io/v1alpha1false

Back to Group

OfferingList.catalog.kubecarrier.io/v1alpha1

OfferingList contains a list of Offering.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]Offering.catalog.kubecarrier.io/v1alpha1true

Back to Group

OfferingMetadata.catalog.kubecarrier.io/v1alpha1

OfferingMetadata contains the metadata (display name, description, etc) of the Offering.

FieldDescriptionSchemeRequired

Back to Group

OfferingSpec.catalog.kubecarrier.io/v1alpha1

OfferingSpec defines the data (metadata, provider, crds, etc.) of Offering.

FieldDescriptionSchemeRequired
metadataOfferingMetadata.catalog.kubecarrier.io/v1alpha1true
providerProvider references the Provider managing this Offering.ObjectReference.catalog.kubecarrier.io/v1alpha1true
crdCRD holds the information about the underlying CRD that is offered by this offering.CRDInformation.catalog.kubecarrier.io/v1alpha1false

Back to Group

Provider.catalog.kubecarrier.io/v1alpha1

Provider exposes information of an Account with the Provider role.

Provider objects are created automatically by KubeCarrier in Account namespaces, that have a service offered to them via a Catalog.

FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specProviderSpec.catalog.kubecarrier.io/v1alpha1false

Back to Group

ProviderList.catalog.kubecarrier.io/v1alpha1

ProviderList contains a list of Provider.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]Provider.catalog.kubecarrier.io/v1alpha1true

Back to Group

ProviderSpec.catalog.kubecarrier.io/v1alpha1

ProviderSpec defines the desired state of Provider

FieldDescriptionSchemeRequired
metadataMetadata contains the metadata (display name, description, etc) of the Provider.AccountMetadata.catalog.kubecarrier.io/v1alpha1true

Back to Group

Region.catalog.kubecarrier.io/v1alpha1

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.

FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specRegionSpec.catalog.kubecarrier.io/v1alpha1false

Back to Group

RegionList.catalog.kubecarrier.io/v1alpha1

RegionList contains a list of Region.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]Region.catalog.kubecarrier.io/v1alpha1true

Back to Group

RegionSpec.catalog.kubecarrier.io/v1alpha1

RegionSpec defines the desired state of Region

FieldDescriptionSchemeRequired
metadataMetadata contains the metadata (display name, description, etc) of the ServiceCluster.corev1alpha1.ServiceClusterMetadatafalse
providerProvider references the Provider that this ServiceCluster belongs to.ObjectReference.catalog.kubecarrier.io/v1alpha1true

Back to Group

Tenant.catalog.kubecarrier.io/v1alpha1

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".

FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specTenantSpec.catalog.kubecarrier.io/v1alpha1false

Back to Group

TenantList.catalog.kubecarrier.io/v1alpha1

TenantList contains a list of Tenant.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]Tenant.catalog.kubecarrier.io/v1alpha1true

Back to Group

TenantSpec.catalog.kubecarrier.io/v1alpha1

TenantSpec defines the desired state of Tenant

FieldDescriptionSchemeRequired

Back to Group

CommonMetadata.catalog.kubecarrier.io/v1alpha1

CommonMetadata contains human-readable information shared for all catalog related objects.

FieldDescriptionSchemeRequired
displayNameDisplayName is the human-readable name of this Service.stringtrue
descriptionDescription is the long and detailed description of the Service.stringfalse
shortDescriptionShortDescription is a single line short description of the Service.stringtrue
logoLogo is the full sized logo of the service.*Image.catalog.kubecarrier.io/v1alpha1false
iconIcon is a small squared logo of the service.*Image.catalog.kubecarrier.io/v1alpha1false

Back to Group

Image.catalog.kubecarrier.io/v1alpha1

Image describes an inlined image.

FieldDescriptionSchemeRequired
mediaTypeMediaType of the included image in data. e.g. image/png, image/jpeg, image/svgstringtrue
dataData is the image data.[]byte.catalog.kubecarrier.io/v1alpha1true

Back to Group

ObjectReference.catalog.kubecarrier.io/v1alpha1

ObjectReference describes the link to another object in the same namespace.

FieldDescriptionSchemeRequired
namestringtrue

Back to Group

Operator

The operator.kubecarrier.io API group contains objects to interact with the KubeCarrier installation.

APIServer.operator.kubecarrier.io/v1alpha1

APIServer manages the deployment of the KubeCarrier central API server.

FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specAPIServerSpec.operator.kubecarrier.io/v1alpha1false
statusAPIServerStatus.operator.kubecarrier.io/v1alpha1false

Back to Group

APIServerCondition.operator.kubecarrier.io/v1alpha1

APIServerCondition contains details for the current condition of this APIServer.

FieldDescriptionSchemeRequired
typeType is the type of the APIServer condition, currently (‘Ready’).APIServerConditionType.operator.kubecarrier.io/v1alpha1true
statusStatus is the status of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.operator.kubecarrier.io/v1alpha1true
lastTransitionTimeLastTransitionTime is the last time the condition transits from one status to another.metav1.Timetrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
messageMessage is the human readable message indicating details about last transition.stringtrue

Back to Group

APIServerList.operator.kubecarrier.io/v1alpha1

APIServerList contains a list of APIServer

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]APIServer.operator.kubecarrier.io/v1alpha1true

Back to Group

APIServerOIDCConfig.operator.kubecarrier.io/v1alpha1

FieldDescriptionSchemeRequired
issuerURLIssuerURL 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#ProviderConfigstringtrue
clientIDClientID 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#IDTokenstringtrue
apiAudiencesAPIAudiences are the audiences that the API server identitifes as. The (API audiences unioned with the ClientIDs) should have a non-empty intersection with the request’s target audience. This preserves the behavior of the OIDC authenticator pre-introduction of API audiences.authenticator.Audiencesfalse
certificateAuthorityCertificateAuthority references the secret containing issuer’s CA in a PEM encoded root certificate of the provider.ObjectReference.operator.kubecarrier.io/v1alpha1true
usernameClaimUsernameClaim is the JWT field to use as the user’s username.stringtrue
usernamePrefixUsernamePrefix, if specified, causes claims mapping to username to be prefix with the provided value. A value "oidc:" would result in usernames like "oidc:john".stringfalse
groupsClaimGroupsClaim, 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.stringfalse
groupsPrefixGroupsPrefix, 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".stringfalse
supportedSigningAlgsSupportedSigningAlgs 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 Connect spec:\n\nhttps://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation[]stringfalse
requiredClaimsRequiredClaims, if specified, causes the OIDCAuthenticator to verify that all the required claims key value pairs are present in the ID Token.map[string]stringfalse

Back to Group

APIServerSpec.operator.kubecarrier.io/v1alpha1

APIServerSpec defines the desired state of APIServer

FieldDescriptionSchemeRequired
tlsSecretRefTLSSecretRef references the TLS certificate and private key for serving the KubeCarrier API.*ObjectReference.operator.kubecarrier.io/v1alpha1false
oidcOIDC specifies OpenID Connect configuration for API Server authentication*APIServerOIDCConfig.operator.kubecarrier.io/v1alpha1false
staticUsersStaticUsers specifies static users configuration for API Server authentication*StaticUsers.operator.kubecarrier.io/v1alpha1false

Back to Group

APIServerStatus.operator.kubecarrier.io/v1alpha1

APIServerStatus defines the observed state of APIServer

FieldDescriptionSchemeRequired
observedGenerationObservedGeneration is the most recent generation observed for this APIServer by the controller.int64false
conditionsConditions represents the latest available observations of a APIServer’s current state.[]APIServerCondition.operator.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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/v1alpha1false

Back to Group

StaticUsers.operator.kubecarrier.io/v1alpha1

FieldDescriptionSchemeRequired
htpasswdSecretHtpassswdSecret specifies the htpasswd secret to use for static user authentication.ObjectReference.operator.kubecarrier.io/v1alpha1true

Back to Group

Catapult.operator.kubecarrier.io/v1alpha1

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.

FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specCatapultSpec.operator.kubecarrier.io/v1alpha1false
statusCatapultStatus.operator.kubecarrier.io/v1alpha1false

Back to Group

CatapultCondition.operator.kubecarrier.io/v1alpha1

CatapultCondition contains details for the current condition of this Catapult.

FieldDescriptionSchemeRequired
typeType is the type of the Catapult condition, currently (‘Ready’).CatapultConditionType.operator.kubecarrier.io/v1alpha1true
statusStatus is the status of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.operator.kubecarrier.io/v1alpha1true
lastTransitionTimeLastTransitionTime is the last time the condition transits from one status to another.metav1.Timetrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
messageMessage is the human readable message indicating details about last transition.stringtrue

Back to Group

CatapultList.operator.kubecarrier.io/v1alpha1

CatapultList contains a list of Catapult.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]Catapult.operator.kubecarrier.io/v1alpha1true

Back to Group

CatapultSpec.operator.kubecarrier.io/v1alpha1

CatapultSpec defines the desired state of Catapult.

FieldDescriptionSchemeRequired
managementClusterCRDReferences the CRD in the Management Cluster.CRDReference.operator.kubecarrier.io/v1alpha1true
serviceClusterCRDReferences the CRD in the ServiceCluster.CRDReference.operator.kubecarrier.io/v1alpha1true
serviceClusterReferences the ServiceCluster object that this object belongs to.ObjectReference.operator.kubecarrier.io/v1alpha1true
webhookStrategyWebhookStrategy 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.WebhookStrategyTypefalse

Back to Group

CatapultStatus.operator.kubecarrier.io/v1alpha1

CatapultStatus defines the observed state of Catapult.

FieldDescriptionSchemeRequired
observedGenerationObservedGeneration is the most recent generation observed for this Catapult by the controller.int64false
conditionsConditions represents the latest available observations of a Catapult’s current state.[]CatapultCondition.operator.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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/v1alpha1false

Back to Group

Elevator.operator.kubecarrier.io/v1alpha1

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.

FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specElevatorSpec.operator.kubecarrier.io/v1alpha1false
statusElevatorStatus.operator.kubecarrier.io/v1alpha1false

Back to Group

ElevatorCondition.operator.kubecarrier.io/v1alpha1

ElevatorCondition contains details for the current condition of this Elevator.

FieldDescriptionSchemeRequired
typeType is the type of the Elevator condition, currently (‘Ready’).ElevatorConditionType.operator.kubecarrier.io/v1alpha1true
statusStatus is the status of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.operator.kubecarrier.io/v1alpha1true
lastTransitionTimeLastTransitionTime is the last time the condition transits from one status to another.metav1.Timetrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
messageMessage is the human readable message indicating details about last transition.stringtrue

Back to Group

ElevatorList.operator.kubecarrier.io/v1alpha1

ElevatorList contains a list of Elevator.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]Elevator.operator.kubecarrier.io/v1alpha1true

Back to Group

ElevatorSpec.operator.kubecarrier.io/v1alpha1

ElevatorSpec defines the desired state of Elevator.

FieldDescriptionSchemeRequired
providerCRDReferences the provider or internal CRD, that should be created in the provider namespace.CRDReference.operator.kubecarrier.io/v1alpha1true
tenantCRDReferences the public CRD that will be synced into the provider namespace.CRDReference.operator.kubecarrier.io/v1alpha1true
derivedCRReferences the DerivedCustomResource controlling the Tenant-side CRD.ObjectReference.operator.kubecarrier.io/v1alpha1true

Back to Group

ElevatorStatus.operator.kubecarrier.io/v1alpha1

ElevatorStatus defines the observed state of Elevator.

FieldDescriptionSchemeRequired
observedGenerationObservedGeneration is the most recent generation observed for this Elevator by the controller.int64false
conditionsConditions represents the latest available observations of a Elevator’s current state.[]ElevatorCondition.operator.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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/v1alpha1false

Back to Group

Ferry.operator.kubecarrier.io/v1alpha1

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),
FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specFerrySpec.operator.kubecarrier.io/v1alpha1false
statusFerryStatus.operator.kubecarrier.io/v1alpha1false

Back to Group

FerryCondition.operator.kubecarrier.io/v1alpha1

FerryCondition contains details for the current condition of this Ferry.

FieldDescriptionSchemeRequired
lastTransitionTimeLastTransitionTime is the last time the condition transit from one status to another.metav1.Timetrue
messageMessage is the human readable message indicating details about last transition.stringtrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
statusStatus of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.operator.kubecarrier.io/v1alpha1true
typeType of the condition, currently (‘Ready’).FerryConditionType.operator.kubecarrier.io/v1alpha1true

Back to Group

FerryList.operator.kubecarrier.io/v1alpha1

FerryList contains a list of Ferry.

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]Ferry.operator.kubecarrier.io/v1alpha1true

Back to Group

FerrySpec.operator.kubecarrier.io/v1alpha1

FerrySpec defines the desired state of Ferry.

FieldDescriptionSchemeRequired
kubeconfigSecretKubeconfigSecret specifies the Kubeconfig to use when connecting to the ServiceCluster.ObjectReference.operator.kubecarrier.io/v1alpha1true

Back to Group

FerryStatus.operator.kubecarrier.io/v1alpha1

FerryStatus defines the observed state of Ferry.

FieldDescriptionSchemeRequired
phaseDEPRECATED. 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/v1alpha1false
conditionsConditions is a list of all conditions this Ferry is in.[]FerryCondition.operator.kubecarrier.io/v1alpha1false
observedGenerationThe most recent generation observed by the controller.int64false

Back to Group

KubeCarrier.operator.kubecarrier.io/v1alpha1

KubeCarrier manages the deployment of the KubeCarrier controller manager.

FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specKubeCarrierSpec.operator.kubecarrier.io/v1alpha1false
statusKubeCarrierStatus.operator.kubecarrier.io/v1alpha1false

Back to Group

KubeCarrierCondition.operator.kubecarrier.io/v1alpha1

KubeCarrierCondition contains details for the current condition of this KubeCarrier.

FieldDescriptionSchemeRequired
typeType is the type of the KubeCarrier condition, currently (‘Ready’).KubeCarrierConditionType.operator.kubecarrier.io/v1alpha1true
statusStatus is the status of the condition, one of (‘True’, ‘False’, ‘Unknown’).ConditionStatus.operator.kubecarrier.io/v1alpha1true
lastTransitionTimeLastTransitionTime is the last time the condition transits from one status to another.metav1.Timetrue
reasonReason is the (brief) reason for the condition’s last transition.stringtrue
messageMessage is the human readable message indicating details about last transition.stringtrue

Back to Group

KubeCarrierList.operator.kubecarrier.io/v1alpha1

KubeCarrierList contains a list of KubeCarrier

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]KubeCarrier.operator.kubecarrier.io/v1alpha1true

Back to Group

KubeCarrierSpec.operator.kubecarrier.io/v1alpha1

KubeCarrierSpec defines the desired state of KubeCarrier

FieldDescriptionSchemeRequired
apiAPIServerSpec.operator.kubecarrier.io/v1alpha1false

Back to Group

KubeCarrierStatus.operator.kubecarrier.io/v1alpha1

KubeCarrierStatus defines the observed state of KubeCarrier

FieldDescriptionSchemeRequired
observedGenerationObservedGeneration is the most recent generation observed for this KubeCarrier by the controller.int64false
conditionsConditions represents the latest available observations of a KubeCarrier’s current state.[]KubeCarrierCondition.operator.kubecarrier.io/v1alpha1false
phaseDEPRECATED. 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/v1alpha1false

Back to Group

CRDReference.operator.kubecarrier.io/v1alpha1

CRDReference references a CustomResourceDefitition.

FieldDescriptionSchemeRequired
kindstringtrue
versionstringtrue
groupstringtrue
pluralstringtrue

Back to Group

ObjectReference.operator.kubecarrier.io/v1alpha1

ObjectReference describes the link to another object in the same namespace

FieldDescriptionSchemeRequired
namestringtrue

Back to Group