# Build and Publish a Bundle Project
# Overview
This tutorial describes how to deploy an existing Villanova project directory into the Local Hub. Following the steps below will:
- Build Docker images for the bundle and any microservices
- Push the Docker images to a Docker registry
- Apply the bundle custom resource to Kubernetes
- Install the bundle into an Villanova Application
The Villanova Bundle CLI tool (ent bundle) automates many of the tasks involved in deploying an Villanova project bundle.
# Prerequisites
- Verify dependencies with the Villanova CLI:
ent check-env develop - Authenticated Docker credentials
- A Docker repository
- A running Villanova instance with your profile attached, e.g. use
ent attach-vm YOUR-VM-NAME. Refer to Profile and Configuration Management for information on connecting to and configuring an instance. - An Villanova project directory. You can create this from scratch or with the Villanova Component Generator.
# Create and Deploy a Bundle Project
The following steps leverage the Villanova ent bundle command and its convenience methods.
From the root bundle directory, generate the Docker image:
ent bundle packThis builds the bundle components and Docker images.
Publish the Docker image to a Docker registry:
ent bundle publishDeploy the bundle to your Villanova Application:
ent bundle deployYour bundle will appear in the Local Hub of your Villanova instance, accessible from
App Builder→Hub, and show a status of DEPLOYED.Install the bundle in your Villanova Application from
App Builder→Hubor with the following command:ent bundle installYour bundle will now show a status of INSTALLED.
# Notes
The Villanova Platform downloads and installs the Docker images for microservices and installs the micro frontends into the Villanova Application. You can add micro frontend widgets to a page or page template provided by Villanova, or to one you create yourself following the Page Management tutorial.
An application based on the Villanova Blueprint expects a user to be authenticated. If your project bundle was generated using the Villanova Component Generator, your widget can only be added to a page template that includes the UX fragment keycloak_auth.