CloudBees action: Configure OCI credentials

2 minute read

Use this action to sign in a local container configuration file to an Open Container Initiative (OCI) registry, such as Docker Hub, with a username and password.

Prerequisites

Make sure to add the following to your YAML file:

      - name: Check out repo
        uses: actions/checkout@v1
All CloudBees action repositories are listed at CloudBees, Inc. on GitHub.

Inputs

Table 1. Input details
Input name Data type Required? Description

registry

String

Yes

The registry server URL.

username

String

Yes

The registry username.

password

String

Yes

The registry password.

Usage examples

Sign in to registry, build and push a container image

Sign in to an OCI registry, then build, tag, and push a container image to it.

      - name: Sign in to OCI registry
        uses: cloudbees-io/configure-oci-credentials@v1
        with:
          registry: ${{ vars.OCI_REGISTRY }}
          username: ${{ secrets.OCI_USERNAME }}
          password: ${{ secrets.OCI_PASSWORD }}

      - name: Build, tag, and push container image to OCI registry
        uses: cloudbees-io/kaniko@v1
        with:
          destination: ${{ vars.OCI_REGISTRY }}/my-oci-repo:latest

Sign in to registry, package and push a Helm chart

Sign in to an OCI registry, then package and push a Helm chart to it.

      - name: Sign in to OCI registry
        uses: cloudbees-io/configure-oci-credentials@v1
        with:
          registry: ${{ vars.OCI_REGISTRY }}
          username: ${{ secrets.OCI_USERNAME }}
          password: ${{ secrets.OCI_PASSWORD }}

      - name: Package and push Helm chart to OCI registry
        uses: docker://alpine/helm:latest
        run: |
          helm package my-oci-repo
          helm push my-oci-repo-0.1.0.tgz ${{ vars.OCI_REGISTRY }}
(For Kaniko users) Helm and Kaniko use the same credential store, so you can use the same credentials for both.

Sign in to multiple OCI registries

Merge the credentials into \~/.docker/config.json so you can chain multiple times, to ensure you have sufficient credentials to build and publish an image.

      - name: Sign in to Docker Hub registry
        uses: cloudbees-io/configure-oci-credentials@v1
        with:
          registry: https://index.docker.io/v1/
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Sign in to OCI registry
        uses: cloudbees-io/configure-oci-credentials@v1
        with:
          registry: ${{ vars.OCI_REGISTRY }}
          username: ${{ secrets.OCI_USERNAME }}
          password: ${{ secrets.OCI_PASSWORD }}