DeanHnter / CoreNiko

CoreNiko is a binary wrapper for Kaniko to simplify docker builds inside docker/kubernetes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Develop

CoreNiko

CoreNiko aims to wrap Kaniko in an easy to deploy solution to simplify scalable builds in Kubernetes. The key goal of the project is to allow developers to setup scalable build agents quickly using kubernetes with a docker like CLI tool with as close to 1-1 compatibility as possible. The project is currently in Alpha state.

Key Features:

  • Docker CLI Proxy: CoreNiko serves as a drop-in replacement for the Docker CLI, allowing developers to execute standard Docker build commands that are then transparently translated to utilize Kaniko's executor within a Kubernetes environment.

  • Leveraging Kaniko's Strengths: Kaniko is trusted for its ability to build container images in Kubernetes without the use of Docker. CoreNiko builds upon this foundation, ensuring a seamless integration with Kubernetes by automating Kaniko's complexities with a Docker-like experience.

  • Enhanced CI/CD Workflows: By integrating Kaniko's capabilities, CoreNiko enhances CI/CD pipelines with features that improve build efficiency, support advanced caching mechanisms, and ensure that builds are free from potential Docker daemon security concerns.

  • Ease of Transition: Adopting CoreNiko means there is no need to alter Dockerfiles or learn new workflows. Development teams can switch from Docker to Kaniko-based builds without friction, thanks to CoreNiko's proxy capabilities.

How it Works:

CoreNiko acts as an intermediary proxy that simplifies the use of Kaniko. Developers can perform Docker builds using the same commands as they would on a local machine:

$ docker build -t my-image .

In the background, CoreNiko processes this command and leverages Kaniko to perform the actual image build within a Kubernetes cluster. The proxy ensures that the Docker command's functionality is preserved without the need for direct interaction with Kaniko's command structure.

Contributing to CoreNiko:

We welcome contributions to the CoreNiko project! Whether you're fixing bugs, adding features, improving documentation, or helping the community, your efforts will make a significant impact. Here's how you can contribute:

Reporting Issues:

  1. Utilize the project's issue tracker to report bugs or suggest enhancements.
  2. Provide detailed descriptions and reproducible steps if you're reporting a bug.

Code Contributions:

  1. Fork the repository and create a new branch for your contribution.
  2. Follow the code style and contribution guidelines of the project.
  3. Update or create tests as necessary.
  4. Ensure your contributions pass existing tests.
  5. Commit your changes with clear and understandable messages.
  6. Push your changes and open a pull request against the original repo.

Roadmap:

This is not an exhaustive list.

  1. Implement missing commands. Currently only docker login and docker build are functional.
  2. Implement extended features such as a local mock docker registry. This should simplify use-cases where each deployment will be independent.
  3. Implement image commands (ls etc) to provide an overview of images stored in the mock docker registry.
  4. Implement automatic detection of other auth-cred providers such as GCR and ECR.
  5. Implement a basic helm example that deploys a simple container with the docker tool inside that allows people to test it out before implementing their own build images.
  6. Implement support for multiple container registry automatic setup. This should be completed after the helm example.

About

CoreNiko is a binary wrapper for Kaniko to simplify docker builds inside docker/kubernetes.


Languages

Language:Go 99.2%Language:Dockerfile 0.8%Language:Python 0.0%