Architecture Of Konflux

MintMaker

# Overview

MintMaker is a Kubernetes controller that automates dependency updates for Konflux components using Renovate. It provides a declarative way to trigger dependency scanning and updates across multiple components in Konflux applications.

# Description

MintMaker introduces the DependencyUpdateCheck custom resource, which acts as a trigger for the dependency update process. When a DependencyUpdateCheck CR is created, MintMaker examines all components within Konflux for dependency updates and creates Tekton PipelineRun instances to execute Renovate scans.

Konflux components originate from repositories on two types of platforms, GitHub and GitLab. MintMaker adapts its functionality based on the platform:

# Dependencies

MintMaker depends on:

# Controllers

The MintMaker controller contains these controllers:

# Interface

# DependencyUpdateCheck CR

The DependencyUpdateCheck CR is the primary interface to trigger dependency updates in Konflux components.

# To scan all components across the cluster:

apiVersion: appstudio.redhat.com/v1alpha1
kind: DependencyUpdateCheck
metadata:
  name: global-dependency-check
  namespace: mintmaker
spec: {}

# To scan specific namespaces and applications:

apiVersion: appstudio.redhat.com/v1alpha1
kind: DependencyUpdateCheck
metadata:
  name: targeted-dependency-check
  namespace: mintmaker
spec:
  namespaces:
  - namespace: "my-namespace"
    applications:
    - application: "my-application"
      components:
      - "component1"
      - "component2"
    - application: "another-application"
  - namespace: "another-namespace"

# Component Annotations

Components can be excluded from MintMaker processing using annotations:

apiVersion: appstudio.redhat.com/v1alpha1
kind: Component
metadata:
  name: my-component
  annotations:
    mintmaker.appstudio.redhat.com/disabled: "true"

# Generated Resources

When processing a DependencyUpdateCheck, MintMaker creates:

# Workflow

  1. A DependencyUpdateCheck CR is created in the mintmaker namespace
  2. The controller discovers Konflux Components based on the CR specification:
    • By default: all Component resources across the cluster
    • Or: a filtered subset when spec.namespaces is provided
  3. For each unique repository+branch combination, the controller creates a Tekton PipelineRun
  4. The PipelineRun executes Renovate to:
    • Scan the repository for outdated dependencies
    • Create pull requests with dependency updates
    • Generate reports on dependency status
  5. Results are tracked through PipelineRun status and logs

# Security Considerations

# Configuration

MintMaker can be configured through:

# Monitoring and Metrics

MintMaker provides metrics for:

# Integration with Konflux

MintMaker integrates with Konflux by:

The service operates as an add-on, providing dependency management capabilities without requiring changes to core Konflux services.