# Setting up a Workload for Cross Cloud Delivery

## Creating a Custom Microservice

An application in the context of Ozone is a microservice that is mapped to a repository, a registry or a helm chart.

By creating applications, you can deploy the microservice for both public and private access through a workflow with in-built secret management.

&#x20;

### Pre-requisites

* You should have synced a source control repository from the [ecosystem integrations](https://docs.ozone.one/ozone-end-user-guide/~/changes/7YIrhOgqbpKF1lkWsq0G/guides/quickstart/setting-up-ecosystem-integrations)
* You should have synced a *registry* that Ozone can push to and pull from from the [ecosystem integrations](https://docs.ozone.one/ozone-end-user-guide/~/changes/7YIrhOgqbpKF1lkWsq0G/guides/quickstart/setting-up-ecosystem-integrations)
* You should have a cluster [*synced*](https://docs.ozone.one/ozone-end-user-guide/~/changes/7YIrhOgqbpKF1lkWsq0G/guides/quickstart/syncing-kubernetes-clusters-for-cd) to ozone with Helm and Tekton enabled from the cluster settings at the very least&#x20;

&#x20;

### How do I set it up a custom microservice?

* Navigate to Microservices on the side bar
* Click on **+New Microservice**
* Select the Custom Application type
* Enter the name, description and the environments this microservice has access to
* Select a repository from the available providers within the current project to pull the code from
  * If this is a pure container image, disable the CI option and Ozone will orchestrate just the CD flows
* Enter the dockerfile location relative to the root of the repository structure
* Select the namespace that the application will be deployed to on any given cluster
* Expose the service suitably from the given options
  * Supported options are ClusterIP, Nodeport, Loadbalancer and Ingress
* Map the registry to push this application to
* Select how you would like to expose this service (Nodeport, Load Balancer, Cluster IP, Ingress)

{% embed url="<https://youtu.be/WklOl0-kL9Q>" %}
Creating a microservice for deployments
{% endembed %}

## Creating a Helm Microservice

A Helm Application is one that is typically provided by third party vendors to your organization and you are using a helm chart to deploy it to any given Kubernetes Cluster

### Pre-requisites

* You should have [enabled Helm](https://docs.ozone.one/ozone-end-user-guide/~/changes/7YIrhOgqbpKF1lkWsq0G/guides/quickstart/syncing-kubernetes-clusters-for-cd) for the target clusters that you would like to deploy to.
* You must have at least one public or private helm channel linked to Ozone

### How do I setup a Helm Application?

* Navigate to Applications
* Click on +CREATE
* Select Helm Application as the type to create
* Select the Helm Chart that you would like this app to represent
* Click on SUBMIT to save the application
* You can now create Helm Releases for each application


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ozone.one/ozone-end-user-guide/~/changes/7YIrhOgqbpKF1lkWsq0G/guides/quickstart/setting-up-a-workload-for-cross-cloud-delivery.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
