kestra-io / kestra-io/plugin-oci

OCI Plugin Suite — Oracle Cloud Infrastructure

Open
#2 0 comments 0 reactions 0 assignees View on GitHub
area/devops area/docs area/plugin
Dominant language
Java
Stars
0
Forks
0
Avg merge
18h 3m
Merged PRs (30d)
1

Description

## Summary

This EPIC tracks the implementation of `plugin-oci`, a new OSS Kestra plugin that integrates with Oracle Cloud Infrastructure (OCI). It enables Kestra users to orchestrate OCI services — compute, storage, databases, serverless functions, streaming, and more — directly from their flows, without resorting to shell scripts or custom HTTP tasks.

## Plugins in Scope

- **Compute** — Manage VM instances and instance pools (start, stop, create, terminate)
- **Object Storage** — Interact with OCI buckets and objects (upload, download, list, delete)
- **Block Storage** — Manage volumes, volume backups, and attachments
- **Database** — Orchestrate Autonomous Database, MySQL HeatWave, and Base Database lifecycle
- **Functions** — Invoke OCI serverless functions from flows
- **Data Flow** — Submit and monitor Spark jobs via OCI Data Flow
- **Data Integration** — Trigger and manage OCI Data Integration workspaces, tasks, and pipelines
- **Streaming** — Produce and consume messages on OCI Streaming (Kafka-compatible)
- **Notifications** — Publish messages to OCI Notification Service (ONS) topics
- **Resource Manager** — Create and apply Terraform stacks via OCI Resource Manager
- **Container Instances** — Run ephemeral containers without managing Kubernetes
- **Container Engine / OKE** — Manage Oracle Container Engine for Kubernetes clusters and node pools
- **Identity & Access Management** — Manage users, groups, dynamic groups, and policies

## Plugin Details

- **Repository**: `plugin-oci`
- **Namespace**: `io.kestra.plugin.oci`
- **Metadata title**: Oracle Cloud Infrastructure
- **Plugin categories**: `CLOUD`, `INFRASTRUCTURE` (in `package-info.java`)
- **SDK**: OCI Java SDK v3.87.0 (via BOM `com.oracle.oci.sdk:oci-java-sdk-bom:3.87.0`)
- **Authentication**: `ConfigFileAuthenticationDetailsProvider` (dev), `InstancePrincipalsAuthenticationDetailsProvider` (OCI-hosted), `SimpleAuthenticationDetailsProvider` (secrets-driven)

## Sub-issues

## Acceptance Criteria

- [ ] All sub-issues listed above are implemented, reviewed, and merged
- [ ] Shared authentication base class / abstract task in place
- [ ] Each sub-plugin has `package-info.java` with `@PluginSubGroup(category = PluginSubGroup.PluginCategory.CLOUD)` and `INFRASTRUCTURE`
- [ ] `metadata/index.yaml` and plugin icon SVG present for the repository
- [ ] Integration documented in the Kestra docs

---

## Repository Setup Checklist

### 1. Scaffold the repository

Create the repository using the Kestra plugin scaffold tool:
https://github.com/kestra-io/plugins-devtools#kestra-plugin-scaffold

### 2. Add to Sanity check page

Add this plugin to the [Sanity check Notion page](https://www.notion.so/kestra-io/32736907f7b580cbb00dc7c061e624b1?v=32736907f7b58002ac2b000ccc63d8a2).

### 3. Run scoped Terraform apply

Run the following from `infra/terraform/github`:

```bash
terraform apply \
-target='github_repository.repo["plugin-oci"]' \
-target='github_issue_labels.plugins["plugin-oci"]' \
-target='github_repository_ruleset.branch["plugin-oci"]'
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the Kestra plugin scaffold tool, then review the shared authentication base class, package-info.java requirements, metadata/index.yaml, and the repository setup checklist. The scope is divided into the listed OCI service sub-plugins, so begin by locating or creating the relevant sub-issues. Done means all scoped sub-issues are implemented, reviewed, merged, documented, and the metadata and icon are present.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
cloud, documentation, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.