Overview
Kittyhawk integrates seamlessly with GitHub Actions through Kraken, Penn Labs’ CI/CD system. The deployment process automatically generates Kubernetes YAML files from your TypeScript constructs.
Important Note
You should NOT generate YAML manually and commit it to your repository. The YAML generation should be handled automatically by your CI pipeline.
Using Kittyhawk with Kraken
The DeployJob construct in Kraken handles the YAML file generation process automatically. This job:
- Reads your TypeScript deployment configuration
- Generates the Kubernetes YAML files
- Deploys them to your cluster
For detailed information on configuring the DeployJob, see the Kraken documentation.
Required Environment Variables
For YAML generation to work properly in your CI pipeline, the following environment variables must be set:
RELEASE_NAME: The name of the application being deployed (typically set to the repository name)
GIT_SHA: The SHA of the latest commit (used for image tagging and versioning)
CI Workflow
When you push code to your repository, the GitHub Actions workflow:
- Triggers the Kraken
DeployJob
- Sets the required environment variables (
RELEASE_NAME and GIT_SHA)
- Runs
yarn compile && yarn synth in your k8s directory
- Generates the YAML file in the
dist folder as RELEASE_NAME.k8s.yaml
- Deploys the generated YAML to your Kubernetes cluster
Next Steps