Coder Social home page Coder Social logo

p4ndafr / harbor-operator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from goharbor/harbor-operator

0.0 1.0 1.0 9.15 MB

Kubernetes operator for Harbor service components

License: Apache License 2.0

Dockerfile 0.36% Makefile 3.38% Go 96.26%

harbor-operator's Introduction

Harbor Operator

ATTENTIONS: THIS PROJECT IS STILL UNDER DEVELOPMENT AND NOT STABLE YET.

Why an Harbor Operator

Harbor is a very active project, composed on numerous stateful and stateless sub-projects and dependencies. These components may be deployed, updated, healed, backuped or scaled respecting some constraints.

The Harbor Operator extends the usual K8s resources with Harbor-related custom ones. The Kubernetes API can then be used in a declarative way to manage Harbor and ensure its high-availability operation, thanks to the Kubernetes control loop.

The Harbor operator aims to cover both Day1 and Day2 operations of an enterprise-grade Harbor deployment.

The operator was initially developed by OVHcloud and donated to the CNCF as part of the Harbor project in March 2020, becoming the basis of the official Kubernetes Operator.

A modular and agnostic design

OVHcloud uses the operator at scale to operate part of its private registry service, but the project was designed in an agnostic way, to bring value to any company in search of deploying and managing one or multiple Harbor.

Configuration allows tuning both Harbor itself (with or without some optional components) or its dependencies. It is designed to be used on any Kubernetes cluster, in a cloud or on premise context.

Project status

Harbor Operator is still very early stage and currently covers deployment, scale and destruction of Harbor in 1.10 version. Other parts of the life-cycle will be managed in future versions of the operator. As any project in this repository, do not hesitate to raise issues or suggest code improvements.

Features

Harbor components is controlled by a custom Harbor resource. With ConfigMaps and Secrets, it handles almost all configuration combination.

Deploy a new stack

This operator is able to deploy an Harbor stack, fully or partially.

Following components are always deployed:

  • Harbor Core
  • Registry
  • Registry Controller
  • Portal
  • Job Service

Following components are optional:

  • ChartMuseum
  • Notary
  • Clair

Delete the stack

When deleting the Harbor resource, all linked components are deleted. With two Harbor resources, the right components are deleted and components of the other Harbor are not changed.

Adding/Removing a component

It is possible to add and delete ChartMuseum, Notary and Clair by editing the Harbor resource.

Future features

  1. Auto-scaling for each component.
  2. Backup/restore data (registry layer, chartmuseum data, databases content).

Installation

See install documentation.

Compatibility

Supported platforms

Harbor version

This Operator currently only supports Harbor version 1.10.x

Howto's

Configuration

Generate resources using make generate

Development

Now, this project is maintained and developed by the Harbor operator workgroup. If you're willing to join the group and do contributions to operator project, welcome to contact us. Follow the Development guide to start on the project.

Community

Additional documentation

  1. Learn how reconciliation works
  2. Custom Resource Definition

Related links

License

See https://github.com/goharbor/harbor-operator/blob/master/LICENSE

harbor-operator's People

Contributors

holyhope avatar steven-zou avatar bitsf avatar jsuchome avatar jmonsinjon avatar phisco avatar mhurtrel avatar

Watchers

James Cloos avatar

Forkers

ricoleabricot

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.