github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/docs/4-deploy-a-jackal-package/index.md (about) 1 # Deploy a Jackal Package 2 3 Jackal Packages are designed to be easily deployable on a variety of systems, including air-gapped systems. All of the necessary dependencies are included within the package, eliminating the need for outbound internet connectivity. When deploying the package onto a cluster, the dependencies contained in each component are automatically pushed into a Docker registry and/or Git server created by or known to Jackal on the air-gapped system. 4 5 Once the Jackal package has arrived in your target environment, run the `jackal package deploy` command to deploy the package onto your [Jackal initialized](../3-create-a-jackal-package/3-jackal-init-package.md) cluster. This command deploys the package's capabilities into the target environment, including all external resources required for the package. The `jackal.yaml` file included in the package will be used to orchestrate the deployment of the application according to the instructions provided. 6 7 :::tip 8 9 For a comprehensive tutorial of deploying a Jackal Package, see the [Deploying Jackal Packages tutorial](../5-jackal-tutorials/2-deploying-jackal-packages.md). 10 11 ::: 12 13 ## Deployment Options 14 15 Jackal provides a few options that can provide control over how a deployment of a Jackal Package proceeds in a given environment. These are baked into a Jackal Package by a package creator and include: 16 17 - **Package Variables** - Templates resources with environment specific values such as domain names or secrets. 18 - **Optional Components** - Allows for components to be optionally chosen when they are needed for a subset of environments. 19 - **Components Groups** - Provides a choice of one component from a defined set of components in the same component group. 20 21 ## Additional Deployment-modes 22 23 Jackal normally expects to operate against a Kubernetes cluster that has been [Jackal initialized](../3-create-a-jackal-package/3-jackal-init-package.md), but there are additional modes that can be configured by package creators including: 24 25 - **YOLO Mode** - Yaml-OnLy Online mode allows for a faster deployment without requiring the `jackal init` command to be run beforehand. It can be useful for testing or for environments that manage their own registries and Git servers completely outside of Jackal. Given this mode does not use the [Jackal Agent](../8-faq.md#what-is-the-jackal-agent) any resources specified will need to be manually modified for the environment. 26 27 - **Cluster-less** - Jackal normally interacts with clusters and kubernetes resources, but it is possible to have Jackal perform actions before a cluster exists (including [deploying the cluster itself](../5-jackal-tutorials/5-creating-a-k8s-cluster-with-jackal.md)). These packages generally have more dependencies on the host or environment that they run within. 28 29 ## Additional Resources 30 31 To learn more about deploying a Jackal package, you can check out the following resources: 32 33 - [Getting Started with Jackal](../1-getting-started/index.md): A step-by-step guide to installing Jackal and a description of the problems it seeks to solve. 34 - [Jackal CLI Documentation](../2-the-jackal-cli/index.md): A comprehensive guide to using the Jackal command-line interface. 35 - [The Package Deploy Lifecycle](./1-package-deploy-lifecycle.md): An overview of the lifecycle of `jackal package deploy`. 36 - [Deploying a Jackal Package Tutorial](../5-jackal-tutorials/3-deploy-a-retro-arcade.md): A tutorial covering how to deploy a package onto an initialized cluster. 37 - [The Jackal Init Package](../3-create-a-jackal-package/3-jackal-init-package.md): Learn about the 'init' package that is used to store resources for jackal packages. 38 39 ## Typical Deployment Workflow: 40 41 The general flow of a Jackal package deployment on an existing initialized cluster is as follows: 42 43 ```shell 44 # To deploy a package run the following: 45 $ jackal package deploy 46 # - Find and select the package using tab (shows packages from the local system) 47 # - Review Supply Chain and other pre-deploy information (clicking on the link to view SBOMs) 48 # - Type "y" to confirm package deployment or "N" to cancel 49 # - Enter any variables that have not yet been defined 50 # - Select any optional components that you want to add to the deployment 51 # - Select any component groups for this deployment 52 53 # Once the deployment finishes you can interact with the package 54 $ jackal connect [service name] 55 # - Your browser window should open to the service you selected 56 # - Not all packages define `jackal connect` services 57 # - You can list those that are available with `jackal connect list` 58 ``` 59 60 :::note 61 62 You can also specify a package locally, or via oci such as `jackal package deploy oci://defenseunicorns/dos-games:1.0.0-$(uname -m) --key=https://jackal.dev/cosign.pub` 63 64 :::