- Can I use this package to define Kubernetes manifests entirely in PHP instead of YAML?
- Yes, this package lets you programmatically define Kubernetes resources like Deployments, Services, and Ingress in PHP. You avoid manual YAML by using a Laravel-friendly API, though you still need basic Kubernetes knowledge to configure resources correctly.
- How do I install and set up `dealroadshow/k8s-framework` in a Laravel project?
- Run `composer require dealroadshow/k8s-framework`, then register the service provider in `config/app.php`. The package integrates with Laravel’s DI container, so you can autowire its classes or use facades for cleaner syntax.
- Does this package support dynamic manifest generation at runtime (e.g., per-request or based on business logic)?
- Yes, you can generate manifests dynamically in PHP, such as creating sidecar containers when a Laravel event fires or scaling resources based on application state. However, runtime generation may introduce latency for high-frequency operations.
- What Laravel versions does this package support, and are there any PHP version requirements?
- The package targets modern Laravel (8.x+) and PHP 8.0+. Check the package’s `composer.json` for exact version constraints, as dependencies like `symfony/yaml` may impose additional requirements.
- Can I use this package to manage Helm charts or Kustomize patches instead of raw manifests?
- No, this package focuses on raw Kubernetes manifests (YAML) generated in PHP. For Helm templating or Kustomize patches, you’d need to combine it with other tools like `robmorgan/phinx` for Helm or manually handle Kustomize logic.
- How do I validate or debug Kubernetes manifests generated by this package before applying them?
- The package doesn’t include a built-in validator, but you can use `kubectl apply --dry-run=client -f -` to test manifests in CI or locally. For Laravel, you might create an Artisan command to output YAML and validate it with a tool like `yq` or a PHP YAML parser.
- Is this package suitable for production deployments, or is it better for development/testing?
- It’s production-ready for teams comfortable with Kubernetes, but dynamic manifest generation requires careful design to avoid conflicts or idempotency issues. Static manifests (pre-generated) are safer for production, while dynamic use cases need robust testing and monitoring.
- Can I integrate this with Laravel’s Artisan commands to automate Kubernetes deployments?
- Absolutely. You can create custom Artisan commands (e.g., `php artisan k8s:deploy`) to generate and apply manifests. The package’s Laravel integration makes it easy to bind commands to the framework’s console kernel.
- What are the alternatives to this package for managing Kubernetes from PHP?
- Alternatives include Helm (for templating), Kustomize (for patching), or Terraform’s Kubernetes provider (for multi-cloud). Helm is the closest for PHP-based templating, but this package offers a lighter-weight, PHP-native approach for teams already using Laravel.
- How do I handle sensitive data like secrets or API keys in dynamically generated manifests?
- Avoid hardcoding secrets in PHP. Use Laravel’s environment variables or a secrets manager (e.g., AWS Secrets Manager) to inject values at runtime. For Kubernetes, leverage `Secret` resources or external tools like HashiCorp Vault for secure storage.