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
Do not 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, --parameters=string
JSON object or path to a JSON file containing configuration parameters. (default "{}")
--params=string
JSON object or path to a JSON file containing configuration parameters. DEPRECATED: use --parameters instead (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.
--as=string
Username to impersonate for the operation.
--as-group=strings
Group to impersonate for the operation. Include this flag multiple times to specify multiple groups.
--config=string
Path to the Kf config file to use for CLI requests.
--kubeconfig=string
Path to the kubeconfig file to use for CLI requests.
--log-http
Log HTTP requests to standard error.
--space=string
Space to run the command against. This flag 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-08-28 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: Do not 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, --parameters=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: JSON object or path to a JSON file containing configuration parameters. (default \"{}\")\n\n`--params=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: JSON object or path to a JSON file containing configuration parameters. DEPRECATED: use --parameters instead (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`--as=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Username to impersonate for the operation.\n\n`--as-group=`\u003cvar translate=\"no\"\u003estrings\u003c/var\u003e\n: Group to impersonate for the operation. Include this flag multiple times to specify multiple groups.\n\n`--config=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Path to the Kf config file to use for CLI requests.\n\n`--kubeconfig=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Path to the kubeconfig file to use for CLI requests.\n\n`--log-http`\n: Log HTTP requests to standard error.\n\n`--space=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Space to run the command against. This flag overrides the currently targeted Space."]]