Installs: 4 959
Open Issues: 2
- php: ^7.2 || ^8.0
- psr/log: ^1.0
- symfony/console: ^4.0 || ^5.0
- symfony/process: ^4.0 || ^5.0
- phpstan/phpstan: ^0.12.47
- phpstan/phpstan-phpunit: ^0.12.16
- phpstan/phpstan-strict-rules: ^0.12.5
- phpunit/phpunit: ^8.2 || ^9.0
- squizlabs/php_codesniffer: ^3.2
This package is auto-updated.
Last update: 2023-03-01 00:14:15 UTC
This is a premade Symfony Console component to manually deploy your application.
At this time, it only supports deployment to Kubernetes via
Deploying multiple images at once is supported.
Ultimately, it's a fancy wrapper around running
kubectl set image deploy ....
Configuration and Usage
composer require firehed/deploy-command
Somewhere in your existing Symfony Console setup or config:
$targets = [ [ 'container' => 'your-container-name', 'deployment' => 'your-deployment-name', 'image' => 'yourco/yourimage:$IMAGE', 'namespace' => 'your-deployment-namespace', ], [ // Another thing to deploy at the same time ] ]; $kubectl = new Firehed\Console\Deploy\Kubectl($targets); $deploy = new Firehed\Console\Deploy($kubectl); $application = new Symfony\Component\Console\Application(); // ... $application->add($deploy); $application->run();
$IMAGE will be substituted with the commit hash of the command argument, or that of
It is NOT a PHP variable in the above example (note single quotes).
namespace is optional, and will default to Kubernetes'
The deploy command will run any event hooks you request before or after the deployment process runs.
To register a hook, call
The hook must be a callable with the signature
function (string $hash, string $revision, bool $isDryRun).
Hooks were designed primarily for sending notifications (e.g. posting to Slack) but can be used for whatever you want.
Requirements and Limitations
This only works in git repositories, and expects that your docker image will be tagged with the full 40-character commit hash (e.g.
This is only a deployment tool, and does not perform the builds.
All of the images deployed will use the same hash, and all deploy together. Selective deployment is not supported at this time.