firehed / deploy-command
Deployment command
Installs: 4 964
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 7
Requires
- php: ^7.2 || ^8.0
- psr/log: ^1.0
- symfony/console: ^4.0 || ^5.0
- symfony/process: ^4.0 || ^5.0
Requires (Dev)
- 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
- dev-master
- 1.2.0
- 1.1.0
- 1.0.0
- dev-dependabot/composer/phpstan/phpstan-phpunit-tw-0.12.16or-tw-1.0.0
- dev-dependabot/composer/phpstan/phpstan-tw-0.12.47or-tw-1.0.0
- dev-dependabot/composer/phpstan/phpstan-strict-rules-tw-0.12.5or-tw-1.0.0
- dev-dependabot/composer/psr/log-tw-1.0or-tw-3.0
- dev-dependabot/composer/symfony/process-tw-4.0or-tw-5.0or-tw-7.0
- dev-record-flag
This package is auto-updated.
Last update: 2024-10-10 02:22:31 UTC
README
This is a premade Symfony Console component to manually deploy your application.
At this time, it only supports deployment to Kubernetes via kubectl
.
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();
In your image
, $IMAGE
will be substituted with the commit hash of the command argument, or that of master
.
It is NOT a PHP variable in the above example (note single quotes).
namespace
is optional, and will default to Kubernetes' default
.
Event hooks
The deploy command will run any event hooks you request before or after the deployment process runs.
To register a hook, call $deploy->before($hook);
or $deploy->after($hook);
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. yourname/yourfancyproject:92dac20583b35ea7167366bbf0b24243016911c0
).
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.