Creates a standalone service instance from existing credentials. User-provided services can be used to inject credentials for services managed outside of Kf into Apps.
Credentials are stored in a Kubernetes Secret in the Space the service is created in. On GKE these Secrets are encrypted at rest and can optionally be encrypted using KMS.
Examples
# Bring an existing database service
kf create-user-provided-service db-service -p '{"url":"mysql://..."}'
# Create a service with tags for autowiring
kf create-user-provided-service db-service -t "mysql,database,sql"
Flags
--async
Don't wait for the action to complete on the server before returning
-h, --help
help for create-user-provided-service
--mock-class=string
Mock class name to use in VCAP_SERVICES rather than 'user-provided'.
--mock-plan=string
Mock plan name to use in VCAP_SERVICES rather than blank.
-p, --params=string
JSON object or path to a JSON file containing configuration parameters. (default "{}")
-r, --route=string
URL to which requests for bound routes will be forwarded. Scheme must be https.
-t, --tags=string
User-defined tags to differentiate services during injection.
Inherited flags
These flags are inherited from parent commands.
--config=string
Config file (default is $HOME/.kf)
--kubeconfig=string
Kubectl config file (default is $HOME/.kube/config)
--log-http
Log HTTP requests to stderr
--space=string
Space to run the command against. This overrides the currently targeted space
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# kf create-user-provided-service\n\n### Name\n\n`kf create-user-provided-service` - Create a standalone service instance from existing credentials\n\n### Synopsis\n\n```\nkf create-user-provided-service SERVICE_INSTANCE [-p CREDENTIALS] [-t TAGS] [flags]\n```\n\n### Description\n\nCreates a standalone service instance from existing credentials. User-provided services can be used to inject credentials for services managed outside of Kf into Apps.\n\nCredentials are stored in a Kubernetes Secret in the Space the service is created in. On GKE these Secrets are encrypted at rest and can optionally be encrypted using KMS.\n\n### Examples\n\n```\n # Bring an existing database service\n kf create-user-provided-service db-service -p '{\"url\":\"mysql://...\"}'\n \n # Create a service with tags for autowiring\n kf create-user-provided-service db-service -t \"mysql,database,sql\"\n```\n\n### Flags\n\n`--async`\n: Don't wait for the action to complete on the server before returning\n\n`-h, --help`\n: help for create-user-provided-service\n\n`--mock-class=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Mock class name to use in VCAP_SERVICES rather than 'user-provided'.\n\n`--mock-plan=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Mock plan name to use in VCAP_SERVICES rather than blank.\n\n`-p, --params=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: JSON object or path to a JSON file containing configuration parameters. (default \"{}\")\n\n`-r, --route=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: URL to which requests for bound routes will be forwarded. Scheme must be https.\n\n`-t, --tags=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: User-defined tags to differentiate services during injection.\n\n### Inherited flags\n\nThese flags are inherited from parent commands.\n\n`--config=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Config file (default is $HOME/.kf)\n\n`--kubeconfig=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Kubectl config file (default is $HOME/.kube/config)\n\n`--log-http`\n: Log HTTP requests to stderr\n\n`--space=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Space to run the command against. This overrides the currently targeted space"]]