OpenMCF logoOpenMCF

Loading...

OCI DevOps Project

Deploys an Oracle Cloud Infrastructure DevOps project — the organizational container for CI/CD pipelines, code repositories, deployment environments, artifacts, and triggers. The project provides a shared namespace and an ONS notification topic for pipeline event delivery.

What Gets Created

When you deploy an OciDevopsProject resource, OpenMCF provisions:

  • DevOps Project — a devops.Project resource in the specified compartment with a notification topic for pipeline events (build completions, deployment successes, failures). The project name is derived from metadata.name.

Prerequisites

  • OCI credentials configured via environment variables or OpenMCF provider config (API Key, Instance Principal, Security Token, Resource Principal, or OKE Workload Identity)
  • A compartment OCID where the project will be created — either a literal value or a reference to an OciCompartment resource
  • An ONS topic OCID for receiving DevOps pipeline events — the topic must already exist in OCI Notifications

Quick Start

Create a file devops-project.yaml:

apiVersion: oci.openmcf.org/v1
kind: OciDevopsProject
metadata:
  name: my-project
  labels:
    openmcf.org/provisioner: pulumi
    pulumi.openmcf.org/organization: my-org
    pulumi.openmcf.org/project: my-project
    pulumi.openmcf.org/stack.name: dev.OciDevopsProject.my-project
spec:
  compartmentId:
    value: "ocid1.compartment.oc1..example"
  notificationTopicId:
    value: "ocid1.onstopic.oc1..example"

Deploy:

openmcf apply -f devops-project.yaml

This creates a DevOps project in the specified compartment with pipeline events routed to the ONS topic. The project OCID and namespace are exported as stack outputs.

Configuration Reference

Required Fields

FieldTypeDescriptionValidation
compartmentIdStringValueOrRefOCID of the compartment where the project will be created. Can reference an OciCompartment resource via valueFrom.Required
notificationTopicIdStringValueOrRefOCID of the ONS topic for pipeline event notifications (build started, deployment succeeded, etc.). Can reference an ONS topic via valueFrom.Required

Optional Fields

FieldTypeDefaultDescription
descriptionstring—Human-readable description of the project's purpose.

Examples

Minimal Project

A DevOps project with direct OCID values:

apiVersion: oci.openmcf.org/v1
kind: OciDevopsProject
metadata:
  name: my-project
  labels:
    openmcf.org/provisioner: pulumi
    pulumi.openmcf.org/organization: my-org
    pulumi.openmcf.org/project: my-project
    pulumi.openmcf.org/stack.name: dev.OciDevopsProject.my-project
spec:
  compartmentId:
    value: "ocid1.compartment.oc1..example"
  notificationTopicId:
    value: "ocid1.onstopic.oc1..example"

Project with Compartment Reference

A project referencing an OciCompartment for composability in infra charts:

apiVersion: oci.openmcf.org/v1
kind: OciDevopsProject
metadata:
  name: platform-cicd
  labels:
    openmcf.org/provisioner: pulumi
    pulumi.openmcf.org/organization: my-org
    pulumi.openmcf.org/project: my-project
    pulumi.openmcf.org/stack.name: prod.OciDevopsProject.platform-cicd
spec:
  compartmentId:
    valueFrom:
      kind: OciCompartment
      name: cicd-compartment
      fieldPath: status.outputs.compartmentId
  notificationTopicId:
    value: "ocid1.onstopic.oc1..example"
  description: "Platform team CI/CD pipelines for production workloads"

Full-Featured with Description

A production project with a descriptive purpose:

apiVersion: oci.openmcf.org/v1
kind: OciDevopsProject
metadata:
  name: backend-services
  labels:
    openmcf.org/provisioner: pulumi
    pulumi.openmcf.org/organization: acme-corp
    pulumi.openmcf.org/project: backend
    pulumi.openmcf.org/stack.name: prod.OciDevopsProject.backend-services
spec:
  compartmentId:
    valueFrom:
      kind: OciCompartment
      name: prod-compartment
      fieldPath: status.outputs.compartmentId
  notificationTopicId:
    valueFrom:
      kind: OciCompartment
      name: notifications-topic
      fieldPath: status.outputs.compartmentId
  description: "Backend microservices build and deployment pipelines"

Stack Outputs

After deployment, the following outputs are available in status.outputs:

OutputTypeDescription
project_idstringOCID of the DevOps project
namespacestringNamespace associated with the project, used in container registry paths and artifact references

Related Components

  • OciCompartment — provides the compartment referenced by compartmentId via valueFrom
  • OciContainerEngineCluster — OKE clusters are common deployment targets for DevOps pipelines
  • OciFunctionsApplication — Functions applications are deployment targets for serverless pipelines

Next article

OCI DNS Record

OCI DNS Record Deploys an OCI DNS Record Set (RRSet) — a set of DNS resource records sharing the same domain and record type within an OCI DNS zone. Updates replace the entire record set atomically, supporting A, AAAA, CNAME, MX, TXT, SRV, CAA, NS, PTR, and other standard DNS record types. What Gets Created When you deploy an OciDnsRecord resource, OpenMCF provisions: DNS Record Set — a dns.Rrset resource within the target zone. Each record item carries its own rdata and TTL. The set is managed...
Read next article
Presets
1 ready-to-deploy configurationView presets →