Stay organized with collections
Save and categorize content based on your preferences.
Name
kf push - Create a new App or apply updates to an existing one.
Synopsis
kf push APP_NAME [flags]
Examples
kf push myapp
kf push myapp --buildpack my.special.buildpack # Discover via kf buildpacks
kf push myapp --env FOO=bar --env BAZ=foo
kf push myapp --stack cloudfoundry/cflinuxfs3 # Use a cflinuxfs3 runtime
kf push myapp --health-check-http-endpoint /myhealthcheck # Specify a healthCheck for the app
Flags
--app-suffix=string
Suffix to append to the end of every pushed App.
--args=stringArray
Override the args for the image. Can't be used with the command flag.
-b, --buildpack=string
Use the specified buildpack rather than the built-in.
-c, --command=string
Startup command for the App, this overrides the default command specified by the web process.
--container-registry=string
Container registry to push images to.
--cpu-cores=string
Number of dedicated CPU cores to give each App instance (for example 100m, 0.5, 1, 2). For more information see https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/.
-k, --disk-quota=string
Size of dedicated ephemeral disk attached to each App instance (for example 512M, 2G, 1T).
--docker-image=string
Docker image to deploy rather than building from source.
--dockerfile=string
Path to the Dockerfile to build. Relative to the source root.
--entrypoint=string
Overwrite the default entrypoint of the image. Can't be used with the command flag.
-e, --env=stringArray
Set environment variables. Multiple can be set by using the flag multiple times (for example, NAME=VALUE).
--health-check-http-endpoint=string
HTTP endpoint to target as part of the health-check. Only valid if health-check-type is http.
-u, --health-check-type=string
App health check type: http, port (default) or process.
-h, --help
help for push
-i, --instances=int32
If set, overrides the number of instances of the App to run, -1 represents non-user input. (default -1)
-f, --manifest=string
Path to the application manifest.
-m, --memory-limit=string
Amount of dedicated RAM to give each App instance (for example 512M, 6G, 1T).
--no-manifest
Do not read the manifest file even if one exists.
--no-route
Prevents the App from being reachable once deployed.
--no-start
Build but do not run the App.
-p, --path=string
If specified, overrides the path to the source code.
--random-route
Create a random Route for this App if it doesn't have one.
--route=stringArray
Use the routes flag to provide multiple HTTP and TCP routes. Each Route for this App is created if it does not already exist.
-s, --stack=string
Base image to use for to use for Apps created with a buildpack.
--task
Push an App to execute Tasks only. The App will be built, but not run. It will not have a route assigned.
-t, --timeout=int
Amount of time the App can be unhealthy before declaring it as unhealthy.
--var=stringToString
Manifest variable substitution. Multiple can be set by using the flag multiple times (for example NAME=VALUE).
--vars-file=stringArray
JSON or YAML file to read variable substitutions from. Can be supplied multiple times.
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 push\n\n### Name\n\n`kf push` - Create a new App or apply updates to an existing one.\n\n### Synopsis\n\n```\nkf push APP_NAME [flags]\n```\n\n### Examples\n\n```\n kf push myapp\n kf push myapp --buildpack my.special.buildpack # Discover via kf buildpacks\n kf push myapp --env FOO=bar --env BAZ=foo\n kf push myapp --stack cloudfoundry/cflinuxfs3 # Use a cflinuxfs3 runtime\n kf push myapp --health-check-http-endpoint /myhealthcheck # Specify a healthCheck for the app\n```\n\n### Flags\n\n`--app-suffix=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Suffix to append to the end of every pushed App.\n\n`--args=`\u003cvar translate=\"no\"\u003estringArray\u003c/var\u003e\n: Override the args for the image. Can't be used with the command flag.\n\n`-b, --buildpack=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Use the specified buildpack rather than the built-in.\n\n`-c, --command=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Startup command for the App, this overrides the default command specified by the web process.\n\n`--container-registry=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Container registry to push images to.\n\n`--cpu-cores=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Number of dedicated CPU cores to give each App instance (for example 100m, 0.5, 1, 2). For more information see https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/.\n\n`-k, --disk-quota=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Size of dedicated ephemeral disk attached to each App instance (for example 512M, 2G, 1T).\n\n`--docker-image=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Docker image to deploy rather than building from source.\n\n`--dockerfile=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Path to the Dockerfile to build. Relative to the source root.\n\n`--entrypoint=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Overwrite the default entrypoint of the image. Can't be used with the command flag.\n\n`-e, --env=`\u003cvar translate=\"no\"\u003estringArray\u003c/var\u003e\n: Set environment variables. Multiple can be set by using the flag multiple times (for example, NAME=VALUE).\n\n`--health-check-http-endpoint=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: HTTP endpoint to target as part of the health-check. Only valid if health-check-type is http.\n\n`-u, --health-check-type=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: App health check type: http, port (default) or process.\n\n`-h, --help`\n: help for push\n\n`-i, --instances=`\u003cvar translate=\"no\"\u003eint32\u003c/var\u003e\n: If set, overrides the number of instances of the App to run, -1 represents non-user input. (default -1)\n\n`-f, --manifest=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Path to the application manifest.\n\n`-m, --memory-limit=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Amount of dedicated RAM to give each App instance (for example 512M, 6G, 1T).\n\n`--no-manifest`\n: Do not read the manifest file even if one exists.\n\n`--no-route`\n: Prevents the App from being reachable once deployed.\n\n`--no-start`\n: Build but do not run the App.\n\n`-p, --path=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: If specified, overrides the path to the source code.\n\n`--random-route`\n: Create a random Route for this App if it doesn't have one.\n\n`--route=`\u003cvar translate=\"no\"\u003estringArray\u003c/var\u003e\n: Use the routes flag to provide multiple HTTP and TCP routes. Each Route for this App is created if it does not already exist.\n\n`-s, --stack=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Base image to use for to use for Apps created with a buildpack.\n\n`--task`\n: Push an App to execute Tasks only. The App will be built, but not run. It will not have a route assigned.\n\n`-t, --timeout=`\u003cvar translate=\"no\"\u003eint\u003c/var\u003e\n: Amount of time the App can be unhealthy before declaring it as unhealthy.\n\n`--var=`\u003cvar translate=\"no\"\u003estringToString\u003c/var\u003e\n: Manifest variable substitution. Multiple can be set by using the flag multiple times (for example NAME=VALUE).\n\n`--vars-file=`\u003cvar translate=\"no\"\u003estringArray\u003c/var\u003e\n: JSON or YAML file to read variable substitutions from. Can be supplied multiple times.\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."]]