# How to Create a Shared Deployment in AceCloud

### **Overview**

A **Shared Deployment** in AceCloud allows you to run containerized applications on **pooled infrastructure**, making it a cost-effective and scalable option for most workloads.

This guide provides step-by-step instructions to create a deployment using:

* **Public Image**
* **Private Image (AceCloud Registry)**

### **Prerequisites**

Before creating a deployment, ensure:

* You are logged in to the AceCloud portal
* A **Project** and **Region** are selected
* You have a valid **container image**

### **Step 1: Navigate to Deployment Creation**

1. From the left navigation menu, click **Deployment,** then **Overview**

![](/files/3f373221bb610bda8109be7404ea8ecbc224188f)

2. Click **Create Deployment**

![](/files/f74a11b830fe4e36b1d765617cd40f35b31afe23)

### **Step 2: Configure Deployment Details**

#### **2.1 Deployment Name**

* Enter a unique name for your deployment
* Example: my-app

#### **2.2 Deployment Type**

* Select **Shared**

### **Step 3: Select Image Type**

You must choose how your container image will be sourced.

#### **Option A: Public Image**

#### **3A.1 Select Public Image**

* Choose **Public Image**
* Images will be pulled from a public registry

#### **3A.2 Image URL / Tag**

* Enter the image URL

**Examples:**

nginx

myrepo/myapp

#### **3A.3 Command (Optional)**

* Enter a custom startup command to override the default container command if required.
* Leave blank to use the default container command

![](/files/2a12daa9cd199a4d46ab1912903f5bd4760fe881)

#### **Option B: Private Image**

#### **3B.1 Select Private Image**

* Choose **Private Image**
* Images will be pulled from the AceCloud registry

#### **3B.2 Select Registry Secret**

* Choose an existing **Registry Secret** from the dropdown

**OR**

* Click **Create new Registry secret**
* Provide required details (e.g., registry credentials)
* Save the secret and select it

This is required to authenticate and pull private images.

***Note:*** If registry credentials are regenerated using **Generate Credentials**, the previously saved credentials are invalidated. Ensure that you update the **Registry Secret** and restart the deployment from the **Actions (⋮)** menu.

#### **3B.3 Image URL / Tag**

* Enter the image name and tag

**Example:**

*myapp:latest*

*ubuntu:latest*

![](/files/42706e6eeadeb9090c5ce341afbf16e28e1d0bda)

***Note:***\_ The registry URL is automatically prefixed. Enter only the image in the format image:tag (e.g., ubuntu:latest).

*Only images from the AceCloud registry are supported. To use images from other private registries, migrate them to the AceCloud registry using ACR Source Registry + Replication.*

#### **3B.4 Command (Optional)**

* Override default container command if needed

### **Step 4: Configure Resources**

#### **4.1 CPU Request**

* Specify CPU allocation
* Example: 0.1, 0.5, 1

#### **4.2 Memory Request**

* Specify memory in MiB or GiB
* Example: 128, 512, 1024

#### **4.3 Replicas**

* Define the number of instances
* Example:
  * 1: Single instance
  * 2+: High availability

![](/files/9a9f208818d6adcca9a8563950db5ce5866b05fe)

#### **4.4 Autoscaling (Optional)**

Enable autoscaling to automatically adjust replicas based on usage.

If enabled, configure:

* **Minimum Replicas** → Minimum number of instances
* **Maximum Replicas** → Maximum scaling limit
* **CPU Target (%)** → CPU usage threshold
* **Memory Target (%)** → Memory usage threshold

Example:

* Min: 1
* Max: 12
* CPU Target: 50%
* Memory Target: 70%

### **Step 5: Configure Networking**

#### **5.1 External Access**

* Enable to make your deployment accessible externally

#### **5.2 Endpoint Access Type**

**🔸 Public**

* Accessible from anywhere on the internet

**🔸 Protected**

* Access is restricted to specific IP ranges

When **Protected** is selected:

* You must enter **Allowed IP CIDR(s)**

#### **5.3 Allowed IP CIDR(s)**

* Enter allowed IP ranges

**Example:**

192.168.1.0/24

10.0.0.0/16

![](/files/dfc8e584fa71fa088113d634e2e7ee5f55b24c4c)

#### **5.4 Ports Configuration**

Click **Add Port** and provide:

* **Name** → Logical name (e.g., http)
* **Protocol** → HTTP / HTTPS / TCP / UDP
* **Exposed Port** → Public-facing port
* **Container Port** → Port inside container

#### **Example Configuration:**

| **Field**      | **Value** |
| -------------- | --------- |
| Name           | http      |
| Protocol       | HTTP      |
| Exposed Port   | 80        |
| Container Port | 3000      |

### **Step 6: Configure Volumes (Optional)**

* Click **Add Volume**
* Attach persistent storage

![](/files/89f6c6ab5f3229bd3e23ab8785674bd3ed33aeab)

### **Step 7: Configure Environment Variables**

#### **7.1 Environment Secrets**

* Select existing secrets OR
* Click **Create new secret** to add sensitive data

#### **7.2 Environment Variables**

* Add key-value pairs

**Example:**

NODE\_ENV=production

PORT=3000

![](/files/126936a6521720df53924fe4a8bf0fff207ac78a)

### **Step 8: Review Deployment Summary**

On the right panel, verify:

* Deployment Type → Shared
* Image Type → Public / Private
* CPU, Memory, Replicas
* Autoscaling configuration
* External access
* Ports configured

![](/files/d3645ff8ab5ea6a9207a679039fd7e2467e4e180)

### **Step 9: Create Deployment**

* Click **Create Deployment**

![](/files/4c6965ed1cc61f078f31cdc4cbb49e79f566259c)

The platform will:

* Pull the container image
* Allocate resources
* Start container(s)
* Configure networking and access

### **Post Deployment**

After successful deployment:

* Access your application via the provided endpoint
* Monitor performance under **Insights**
* If the deployment remains in the **Provisioning** state for an extended period, open the deployment and review the container logs to identify any errors or issues preventing the deployment from becoming active.
* Shared deployments typically take **5–10 minutes** to become active. The provisioning time may vary depending on the size of the container image.


---

# 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.acecloud.ai/knowledge-base/deployment/how-to-create-a-shared-deployment-in-acecloud.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.
