-
Notifications
You must be signed in to change notification settings - Fork 14
Open
Labels
enhancementNew feature or requestNew feature or requesthacktoberfestIssues perfect for Hacktoberfest contributionsIssues perfect for Hacktoberfest contributions
Description
Description
Add support for non-image OCI artifacts like Helm charts and ArgoCD applications packed as OCI artifacts, requiring a different processing workflow.
Complexity
High - This is a complex task requiring a fundamentally different approach since these artifacts lack standard Docker image structure.
Challenge
Unlike Docker images, OCI artifacts (Helm charts, ArgoCD apps, etc.) have:
- No standard image config structure
- No layer history like Docker images
- Different metadata and annotation handling
- Various artifact types with different internal structures
Tasks
- Research OCI artifact specifications and common types
- Implement artifact type detection from OCI manifest
- Design alternative Git commit structure for non-layered artifacts
- Create custom processors for different artifact types:
- Helm charts
- ArgoCD applications
- Generic OCI artifacts
- Implement metadata extraction specific to each artifact type
- Add comprehensive tests for different artifact scenarios
- Update CLI to handle artifact-specific options
Skills Required
- Rust programming (advanced)
- Deep OCI specification knowledge
- Helm chart understanding
- ArgoCD application structure knowledge
- Complex workflow and architecture design
- Metadata parsing and Git repository design
Technical Challenges
Artifact Detection
// Detect artifact type from manifest annotations
match manifest.annotations.get("org.opencontainers.artifact.type") {
Some("application/vnd.cncf.helm.chart.content.v1.tar+gzip") => process_helm_chart(),
Some("application/vnd.argoproj.application+yaml") => process_argo_app(),
_ => process_generic_artifact(),
}Different Git Structure
Instead of layer-based commits, create artifact-based structure:
- Initial commit: Artifact metadata
- Content commits: Logical groupings of files
- Preserve artifact-specific annotations and labels
Helm Chart Processing
- Extract Chart.yaml metadata
- Process templates, values, and dependencies
- Maintain Helm-specific directory structure
ArgoCD Application Processing
- Parse application manifests
- Handle Kustomize/Helm source references
- Preserve ArgoCD-specific configurations
Implementation Approach
- Detection Phase: Identify artifact type from manifest
- Processing Phase: Use artifact-specific processor
- Git Generation Phase: Create appropriate repository structure
- Metadata Phase: Extract and store artifact-specific metadata
Files to Create
src/artifact_processors/- New module for artifact handlingsrc/artifact_processors/helm.rs- Helm chart processorsrc/artifact_processors/argo.rs- ArgoCD app processorsrc/artifact_processors/generic.rs- Generic artifact processor
Files to Modify
- Main processing pipeline - Add artifact detection
- Git repository generation - Support different structures
- CLI options - Add artifact-specific flags
Expected Impact
Expand oci2git beyond Docker images to support the growing ecosystem of OCI artifacts, making it a comprehensive OCI analysis tool.
This is an advanced task perfect for experienced Hacktoberfest contributors! 🎃
Hacktoberfest 2025 🍂
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthacktoberfestIssues perfect for Hacktoberfest contributionsIssues perfect for Hacktoberfest contributions