---
name: openshift-tutorial-no-registry-cos
title: Creating a VPC cluster without an Object Storage bucket
description: Create an Red Hat OpenShift on IBM Cloud cluster on VPC without an IBM Cloud Object Storage bucket backing the internal image registry. For environments that must meet IBM Financial Services Cloud requirements, you can create the cluster without an IBM Cloud Object Storage instance and pull container images directly from IBM Cloud Container Registry. When no IBM Cloud Object Storage instance is provided at cluster creation, the internal registry uses ephemeral `emptyDir` storage, which ensures the cluster operates consistently with FS Cloud standards that rely on centralized image management rather than the internal registry.
last-updated: 2026-08-13
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/openshift?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Creating a VPC cluster without an Object Storage bucket
{: #tutorial-no-registry-cos}
{: toc-content-type="tutorial"}
{: toc-services="openshift, vpc"}
{: toc-completion-time="30m"}

[Virtual Private Cloud]{: tag-vpc}



Create an Red Hat OpenShift on IBM Cloud cluster on VPC without an IBM Cloud Object Storage bucket backing the internal image registry. For environments that must meet [IBM Financial Services Cloud](https://cloud.ibm.com/docs/framework-financial-services?format=markdown){: external} requirements, you can create the cluster without an IBM Cloud Object Storage instance and pull container images directly from IBM Cloud Container Registry. When no IBM Cloud Object Storage instance is provided at cluster creation, the internal registry uses ephemeral `emptyDir` storage, which ensures the cluster operates consistently with FS Cloud standards that rely on centralized image management rather than the internal registry.
{: shortdesc}

## Audience
{: #tutorial-no-registry-cos-audience}

This tutorial is for cluster administrators who are creating an Red Hat OpenShift on IBM Cloud cluster on VPC infrastructure in environments that must meet IBM Financial Services Cloud requirements. It is intended for teams that need to use IBM Cloud Container Registry as the primary image registry instead of the cluster-internal registry.
{: shortdesc}

## Objectives
{: #tutorial-no-registry-cos-objectives}

In this tutorial, you create an Red Hat OpenShift on IBM Cloud VPC cluster without configuring an IBM Cloud Object Storage instance, consistent with IBM Financial Services Cloud standards. The cluster's internal image registry uses ephemeral `emptyDir` storage, and images are managed centrally through IBM Cloud Container Registry.

## What you'll get
{: #tutorial-no-registry-cos-get}

In this tutorial, you create the following resources. There are optional steps to delete these resources if you do not want to keep them after completing the tutorial.

- An Red Hat OpenShift on IBM Cloud cluster on VPC without a COS-backed internal registry
- Cluster access configured for administrative use

## Before you begin
{: #tutorial-no-registry-cos-prereqs}

Complete the following prerequisite steps before you create your cluster.
{: shortdesc}

The decision to omit an IBM Cloud Object Storage instance is permanent. After you create a cluster, you cannot add or remove a COS-backed internal registry. If your requirements change and you need persistent internal registry storage, you must create a new cluster and provide a COS instance at creation time.
{: important}


Permissions
:   If you are the account owner, you already have the required permissions to create a cluster and can continue to the next step. Otherwise, ask the account owner to [set up the API key and assign you the minimum user permissions in IBM Cloud IAM](https://cloud.ibm.com/docs/openshift?topic=openshift-iam-platform-access-roles&format=markdown).

Command-line tools
:   Set up your local command-line environment by completing the following steps.
    1. [Install the IBM Cloud CLI (`ibmcloud`)](https://cloud.ibm.com/docs/cli?topic=cli-getting-started&format=markdown).
    2. Install the Red Hat OpenShift on IBM Cloud plug-in.
        ```sh
        ibmcloud plugin install kubernetes-service
        ```
        {: pre}

    3. Install the Red Hat OpenShift CLI (`oc`). For instructions, see [Installing the OpenShift CLI](https://docs.redhat.com/en/documentation/openshift_container_platform/4.17/html/cli_tools/openshift-cli-oc#installing-openshift-cli){: external}.

VPC infrastructure
:   Before you create your cluster, you must have an existing VPC and subnet. To create them, see [Creating a VPC and subnet](https://cloud.ibm.com/docs/vpc?topic=vpc-creating-a-vpc-using-the-ibm-cloud-console&format=markdown).

## Create the cluster
{: #tutorial-no-registry-cos-create}
{: step}

Create an Red Hat OpenShift on IBM Cloud cluster on VPC without providing an IBM Cloud Object Storage instance. When no COS instance is specified, the internal image registry is backed by `emptyDir` storage.
{: shortdesc}

When you omit the `--cos-instance` option from the cluster creation command, the internal registry uses `emptyDir` storage instead of IBM Cloud Object Storage. `emptyDir` storage is ephemeral — data stored in the registry is lost when the image-registry pod restarts or is rescheduled. This setup is not suitable for production use cases that rely on the internal registry. If you need a persistent internal registry in the future, you can configure an IBM Cloud Object Storage bucket after cluster creation. For more information, see [Backing up your internal image registry to IBM Cloud Object Storage](https://cloud.ibm.com/docs/openshift?topic=openshift-registry&format=markdown#cos_image_registry).
{: important}

1. Log in to the IBM Cloud account, resource group, and region where you want to create your cluster. If you have a federated ID, include the `--sso` option.
    ```sh
    ibmcloud login -r REGION [-g RESOURCE_GROUP] [--sso]
    ```
    {: pre}

2. Create the cluster. Replace the placeholder values with your own cluster name, zone, Red Hat OpenShift version, worker node flavor, VPC ID, and subnet ID.
    ```sh
    ibmcloud oc cluster create vpc-gen2 \
      --name <cluster-name> \
      --zone <zone> \
      --version <openshift-version> \
      --flavor <worker-flavor> \
      --workers <number-of-workers> \
      --vpc-id <vpc-id> \
      --subnet-id <subnet-id>
    ```
    {: pre}

    Notice that the command does not include the `--cos-instance` option. Omitting this option is what configures the internal registry to use `emptyDir` storage.
    {: tip}

3. Wait for the cluster to finish provisioning. This process might take 20 - 30 minutes. Monitor the cluster state by running the following command until the **State** field shows `normal`.
    ```sh
    ibmcloud oc cluster get --cluster CLUSTER_NAME
    ```
    {: pre}

## Configure cluster access
{: #tutorial-no-registry-cos-access}
{: step}

After your cluster is running, download the cluster configuration to set up `oc` CLI access.
{: shortdesc}

1. Download the cluster configuration file and set the `KUBECONFIG` environment variable.
    ```sh
    ibmcloud oc cluster config --cluster CLUSTER_NAME --admin
    ```
    {: pre}

2. Verify that you can connect to the cluster.
    ```sh
    oc get nodes
    ```
    {: pre}

    All nodes should show a **STATUS** of `Ready`.

## Verify the image registry configuration
{: #tutorial-no-registry-cos-verify}
{: step}

Confirm that the internal image registry is using `emptyDir` storage as expected.
{: shortdesc}

1. Check the image registry deployment status.
    ```sh
    oc get deployment -n openshift-image-registry
    ```
    {: pre}

2. Confirm the storage type in the image registry configuration. In the output, the `storage` field should show `emptyDir: {}`.
    ```sh
    oc get configs.imageregistry.operator.openshift.io cluster -o yaml
    ```
    {: pre}

## What's next?
{: #tutorial-no-registry-cos-next}

Your cluster is now running with an `emptyDir`-backed internal registry. You can push and pull images by using IBM Cloud Container Registry.
{: shortdesc}

- [Push images to IBM Cloud Container Registry](https://cloud.ibm.com/docs/openshift?topic=openshift-registry&format=markdown#builds_registry) and pull them directly into your cluster workloads.
- [Configure an image pull secret](https://cloud.ibm.com/docs/openshift?topic=openshift-registry&format=markdown#other_registry_accounts) so that your pods can pull images from IBM Cloud Container Registry.
- [Set up IBM Cloud monitoring](https://cloud.ibm.com/docs/openshift?topic=openshift-health-monitor&format=markdown) to observe your cluster.
- If you want to add persistent internal registry storage later, see [Backing up your internal image registry to IBM Cloud Object Storage](https://cloud.ibm.com/docs/openshift?topic=openshift-registry&format=markdown#cos_image_registry).
- If you see an `E7278` error during cluster creation, see [Why do I get an error about a cloud object storage bucket when I create a cluster?](https://cloud.ibm.com/docs/openshift?topic=openshift-ts_cos_bucket_cluster_create&format=markdown). If the steps there do not resolve the issue, [contact IBM Cloud support](https://cloud.ibm.com/docs/get-support?format=markdown).