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
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 (e.g, 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 (e.g. 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 (e.g., NAME=VALUE).
-u, --health-check-type=string
App health check type (http, port or process, default: port)
-h, --help
help for push
-i, --instances=int32
Number of instances of the App to run (default: 1) (default -1)
-f, --manifest=string
Path to manifest
-m, --memory-limit=string
Amount of dedicated RAM to give each App instance (e.g. 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
Path to the source code (default: current directory) (default ".")
--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.
-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 (e.g., 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.
--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 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```\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 (e.g, 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 (e.g. 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 (e.g., NAME=VALUE).\n\n`-u, --health-check-type=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: App health check type (http, port or process, default: port)\n\n`-h, --help`\n: help for push\n\n`-i, --instances=`\u003cvar translate=\"no\"\u003eint32\u003c/var\u003e\n: Number of instances of the App to run (default: 1) (default -1)\n\n`-f, --manifest=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Path to manifest\n\n`-m, --memory-limit=`\u003cvar translate=\"no\"\u003estring\u003c/var\u003e\n: Amount of dedicated RAM to give each App instance (e.g. 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: Path to the source code (default: current directory) (default \".\")\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`-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 (e.g., 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`--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"]]