Skip to content

KubeRocketCI/krci-portal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

158 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

KubeRocketCI Portal

Version License

KRCI Portal is a modern web-based user interface for KubeRocketCI, providing a comprehensive platform for managing CI/CD pipelines, codebases, and deployment flows in Kubernetes environments.

Overview

KRCI Portal serves as the central management hub for the KubeRocketCI ecosystem, enabling developers and DevOps teams to:

  • Manage Codebases: Create and manage applications, libraries, autotests, and infrastructure components
  • CI/CD Pipeline Management: Configure and monitor Tekton-based CI/CD pipelines
  • Deployment Flows: Orchestrate application deployments across multiple environments
  • GitOps Integration: Seamless integration with Git servers and Argo CD for GitOps workflows
  • Real-time Monitoring: Track pipeline executions, deployment statuses, and resource health
  • Third-party Integrations: Integrate remote clusters, security scanners, artifact registries, etc.

Core Features

The KRCI portal offers many features designed to streamline the process of building a robust CI/CD flow:

Codebase Management

  • Multi-type Support: Applications, Libraries, Autotests, Infrastructure, and System components
  • Git Integration: Support for GitHub, GitLab, Gerrit, and Bitbucket
  • Branch Management: Create and manage feature branches with automated pipelines
  • Quality Gates: Integrated SonarQube analysis and security scanning

CI/CD Pipelines

  • Tekton Integration: Native support for Tekton pipelines and tasks
  • Build Automation: Automated builds with multiple build tools (Maven, Gradle, npm, etc.)
  • Testing: Automated testing with quality gates and coverage reports
  • Security Scanning: SAST/SCA analysis with vulnerability reporting

Deployment Management

  • Environment Management: Create and manage deployment environments
  • GitOps Workflows: Argo CD integration for declarative deployments
  • Progressive Delivery: Support for blue-green and canary deployments
  • Rollback Capabilities: Easy rollback to previous versions

Platform Features

  • Multi-cluster Support: Manage multiple Kubernetes clusters
  • RBAC Integration: Role-based access control with Keycloak/OIDC
  • Real-time Updates: WebSocket-based real-time status updates
  • Extensible Architecture: Plugin-based architecture for custom integrations

Architecture

KRCI Portal follows a modern monorepo architecture with clear separation of concerns:

krci-portal/
├── apps/
│   ├── client/          # React frontend application
│   └── server/          # Fastify backend API
├── packages/
│   └── shared/          # Shared types and utilities
├── deploy-templates/    # Helm charts for deployment
└── docs/               # Documentation

Technology Stack

Frontend (Client)

  • Framework: React 19 with TypeScript
  • Routing: TanStack Router
  • State Management: Zustand + TanStack Query
  • UI Components: Material-UI + Radix UI + Tailwind CSS
  • Build Tool: Vite

Backend (Server)

  • Framework: Fastify with TypeScript
  • API: tRPC for type-safe APIs
  • Database: SQLite with better-sqlite3
  • Authentication: Session-based with OIDC integration
  • Kubernetes: Official Kubernetes client

Shared

  • Validation: Zod schemas
  • Type Safety: Full TypeScript coverage
  • Monorepo: pnpm workspaces

Quick Start

Prerequisites

Before installing KRCI Portal, ensure you have:

  • Node.js 18+ and pnpm 10+
  • Kubernetes cluster
  • Access to the cluster with appropriate RBAC permissions
  • (Optional) KubeRocketCI and operators installed

Development Setup

To run the KubeRocketCI Portal, follow the steps below:

  1. Clone the repository
git clone https://github.com/KubeRocketCI/krci-portal.git
cd krci-portal
  1. Configure environment

    For local development, copy .env.example to .env in the repository root and set at least the following:

    • PORTAL_URL — Public URL of the portal (e.g. http://localhost:5173 for dev). Must match the OIDC redirect URI registered in your IdP.
    • OIDC_ISSUER_URL, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_SCOPE — OIDC provider settings (e.g. Keycloak); required for authentication.
    • SERVER_SECRET — Session signing secret (minimum 32 characters).
    • TEKTON_RESULTS_URL — Tekton Results API URL for pipeline run data.
    • DEFAULT_CLUSTER_NAME, DEFAULT_CLUSTER_NAMESPACE — Target Kubernetes cluster and namespace when using cluster features.

    For production deployment, configure deploy-templates/values.yaml; see deploy-templates/README.md for all options.

  2. Install dependencies

pnpm install
  1. Start development servers
pnpm dev

This starts both the client (port 5173) and server (port 3000) in development mode.

  1. Access the application

Production Deployment

KubeRocketCI Portal is a part of the edp-install chart. There are two options to install the chart:

Full install:

helm repo add krci-portal https://epam.github.io/edp-helm-charts/stable
helm install krci-portal krci-portal/edp-install

KRCI Portal standalone installation:

helm repo add krci-portal https://epam.github.io/edp-helm-charts/stable
helm install krci-portal krci-portal/krci-portal

Documentation

Please refer to the following materials to get more info about the KRCI portal usage and configuration:

Contributing

We welcome contributions from the community! Please read our Contributing Guidelines before submitting pull requests.

Development Workflow

To start the development process, follow the steps below:

  1. Fork the repository.

  2. Create a feature branch:

git checkout -b feature/amazing-feature
  1. Make your changes and add tests.

  2. Run the test suite:

pnpm test:coverage
  1. Run linting:
pnpm lint
  1. Format code:
pnpm format:check
  1. Commit your changes:
git commit -m 'Add amazing feature'
  1. Push to the branch:
git push origin feature/amazing-feature
  1. Open a Pull Request.

Code Quality

Make sure your changes pass the review pipeline in the Pull Request. Additionally, take care of:

  • Testing: Vitest for unit and integration tests
  • Linting: ESLint with TypeScript support
  • Formatting: Prettier for consistent code style
  • Type Checking: Full TypeScript coverage
  • Quality Gates: SonarQube analysis on all PRs

Security

Security is a top priority for KRCI Portal. Please review our Security Policy for:

  • Reporting security vulnerabilities
  • Security best practices
  • Supported versions

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Community & Support

Acknowledgments

Project Status

  • Current Version: 0.1.0-SNAPSHOT
  • Development Status: Active
  • Maintenance: Actively maintained
  • Support: Community supported

Built with ❤️ by the KubeRocketCI community

About

Modern web-based UI for KubeRocketCI platform - Manage CI/CD pipelines, codebases, and GitOps deployments in Kubernetes with React, TypeScript, and Fastify

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors