Skip to main content

Managed services

As a Project member, use managed services to run software that your provider operates for you. Select a service and plan from the catalog. For services that publish application credentials, connect through a service binding. Use the console, Kubernetes manifests, or GitOps to manage the same resources.

The catalog can contain databases, caches, message brokers, analytics systems, and applications. Each installation publishes its own selection. The catalog is extensible and is not limited to the examples in this guide. A service appears only after the provider installs its integration and publishes a plan.

One control model for an extensible catalogThe provider publishes classes and plans. A tenant selects a plan through the console or API to create a ManagedService. The platform applies the family integration and reports status. A ServiceBinding delivers a credential Secret that the application uses to connect. Operations and backups depend on the selected plan.SERVICE WORKFLOW · PROVISION AND CONNECTProvider catalogclasses · plans · capabilitiesTenant requestconsole · manifests · GitOpsManagedServiceselected class and planPlatform executionfamily integration · statusServiceBindingcredential role → SecretApplicationservice endpoint · TLSPublished capabilitiesOperations, topology, and recovery depend on the family and plan.
The catalog defines the service contract. The platform runs the service. Bindings deliver credentials to applications in the Project.

Find your task​

Use Common tasks for workflows shared by service families. Use a service's guide for its parameters, supported operations, clients, and recovery limits.

TaskStart here
Choose capacity and availabilityClasses and plans
Create or manage a service through the browserUse the console
Deliver credentials to an applicationConnect applications
Change passwords manually or on a scheduleRotate credentials
Request a change and follow its resultRequest an operation
Select a backup and recover a serviceBack up and restore
Diagnose readiness or a refused changeCheck status and troubleshoot
Remove a service and check what remainsDelete a service

Choose a service​

The following families have guides. These examples do not define the complete catalog:

FamilyPurposeData protection
PostgreSQLRelational databaseBase backups and continuous log archives. Point-in-time recovery requires plan support
MySQL and MariaDBRelational databasesVerified logical archives. Restore creates a new service
ClickHouseAnalytical databaseVerified native archives. Restore creates a new service
ValkeyCache and key-value storeRDB archives on backup-enabled plans. Restore creates a new service
KafkaEvent streamingMetadata export only. Message protection depends on replication and external copies
GitHub Actions runnersEphemeral CI workers and Dockerfile buildsGitHub keeps workflow history and artifacts; workspaces are temporary

Read the published plan before you select a service. Check its capacity, topology, operations, backup policy, and support responsibilities. A Production or HA label does not, by itself, promise a recovery time or protection from site failure. See Classes and plans.

Resource model​

The managed services API uses services.kube-dc.com/v1alpha1. These resources have the same purpose across service families:

ResourceScopePurpose
ManagedServiceProjectSelects the class, plan, placement, connectivity, and service settings
ServiceBindingProjectDelivers one credential role as a Kubernetes Secret
ServiceOperationProjectRecords one immutable action and its result
ServiceCredentialPolicyProjectSets a credential rotation schedule
ServiceBackupProjectRecords backup history and available recovery information
ManagedServiceClassClusterDefines a service family, parameters, endpoints, credential roles, and operations
ManagedServicePlanClusterDefines versions, capacity limits, allowed operations, and provider policy
ConnectivityClassClusterDefines how applications reach a service

Project roles cannot read the cluster catalog directly. The console shows the published catalog through a filtered API response. Ask your provider for catalog names when you write manifests.

For a service that publishes application credentials, follow these steps:

  1. Create a ManagedService from a published plan.
  2. Wait for its Ready condition.
  3. Create a ServiceBinding with the service name and UID.
  4. Configure your application to read the delivered Secret.

The console can create a binding after it creates the service. See Use the console or Connect applications for the shared procedure. GitHub Actions runners have a separate pool and GitHub authorization workflow; see GitHub Actions runners.

The service UID​

The UID identifies one service throughout its life. Kubernetes assigns it when it creates the resource. Deleting and recreating a service with the same name produces a different UID.

Operations and credential policies require spec.serviceUID. Set it on bindings too, so each request identifies the intended service. A mismatched UID causes ServiceIdentityChanged. Create the service first, then read its UID for resources that refer to it. For a restore from a deleted source, use the source UID in the selected ServiceBackup record.

Changes after creation​

Each class assigns a mutation rule to its parameters:

RuleHow to change the value
CreateOnlyCreate another service with the required value
OnlineDesiredEdit the service manifest or use Settings in the console
OperationOnlySubmit the matching ServiceOperation

Operation support depends on both the service integration and the plan. See Managed service operations for actions, approval, execution windows, and results. An accepted request is not proof of completion. Read the service conditions and operation status.

Responsibilities​

The provider and the Project team have different responsibilities:

ProviderProject team
Publish qualified classes, plans, and connectivity optionsSelect a plan that meets application needs
Install and operate service engines and their controllersManage application data, queries, and client behavior
Provide capacity and execute supported operationsRequest changes and check their results
Execute backups where the plan enables themSelect retention within plan limits and test restores
Deliver credentials and execute supported rotationControl Secret access and refresh application credentials
Approve operations that require approvalAllow time for approval and maintenance

The platform protects service-owned workloads, volumes, and credentials from direct tenant modification. Use managed services resources or the console to change a service.

Project roles​

Standard Project roles grant the following access:

Actionadmindeveloperproject-manageruser
Read services, bindings, operations, policies, and backup historyYesYesYesYes
Create, edit, or delete servicesYesYesNoNo
Create or delete bindings and rotation policiesYesYesNoNo
Create operations or request cancellation before executionYesYesNoNo
Change an existing rotation policyYesYesYesNo
Read delivered credential SecretsYesYesYesNo
Approve operations or write resource statusNoNoNoNo
Read cluster catalog resources directlyNoNoNoNo

See User and group management for role assignment. Ask your provider when an operation waits in AwaitingApproval.

The Project is the credential boundary​

For in-Project placement, a binding delivers credentials into the service's Project. A binding to another namespace is refused with ConsumerNamespaceRejected.

The consumer on a binding does not restrict who can read its Secret. Project identities with Secret read permission can read delivered credentials. Use separate Projects for teams or workloads that must not share credentials.

Delete a service or a Project​

spec.deletionPolicy selects Retain, SnapshotAndDelete, or Delete. The default is Retain. Available policies depend on the plan and service family. spec.deletionProtection: true blocks deletion of the service resource until you disable protection in a separate update.

Project deletion removes service data

For in-Project placement, deleting a Project removes its services and data volumes without a final backup. Service deletion policies and deletion protection do not prevent Project deletion. Copy required data outside the Project before you delete it.

See Delete a managed service for retained resources, backup records, and deletion checks.

Next steps​

Use these guides for your next task: