All Projects → goharbor → Harbor Operator

goharbor / Harbor Operator

Licence: apache-2.0
Kubernetes operator for Harbor service components

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Harbor Operator

rabbitmq-operator
RabbitMQ Kubernetes operator
Stars: ✭ 16 (-87.69%)
Mutual labels:  operator, kubernetes-operator
Metering Operator
The Metering Operator is responsible for collecting metrics and other information about what's happening in a Kubernetes cluster, and providing a way to create reports on the collected data.
Stars: ✭ 320 (+146.15%)
Mutual labels:  operator, kubernetes-operator
Service Level Operator
Manage application's SLI and SLO's easily with the application lifecycle inside a Kubernetes cluster
Stars: ✭ 260 (+100%)
Mutual labels:  operator, kubernetes-operator
grafana-operator
An operator for Grafana that installs and manages Grafana instances, Dashboards and Datasources through Kubernetes/OpenShift CRs
Stars: ✭ 449 (+245.38%)
Mutual labels:  operator, kubernetes-operator
Cluster Operator
cluster-operator creates, configures and helps manage StorageOS cluster on Kubernetes
Stars: ✭ 50 (-61.54%)
Mutual labels:  operator, kubernetes-operator
chaos-operator
chaos engineering via kubernetes operator
Stars: ✭ 90 (-30.77%)
Mutual labels:  operator, kubernetes-operator
Es Operator
Kubernetes Operator for Elasticsearch
Stars: ✭ 282 (+116.92%)
Mutual labels:  operator, kubernetes-operator
varnish-operator
Run and manage Varnish clusters on Kubernetes
Stars: ✭ 47 (-63.85%)
Mutual labels:  operator, kubernetes-operator
Kopf
A Python framework to write Kubernetes operators in just few lines of code.
Stars: ✭ 971 (+646.92%)
Mutual labels:  operator, kubernetes-operator
Kudo
Kubernetes Universal Declarative Operator (KUDO)
Stars: ✭ 849 (+553.08%)
Mutual labels:  operator, kubernetes-operator
oracle-database-operator
The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases. It eliminates the dependency on a human operator or administrator for the majority of database operations.
Stars: ✭ 74 (-43.08%)
Mutual labels:  operator, kubernetes-operator
K8s Mediaserver Operator
Repository for k8s Mediaserver Operator project
Stars: ✭ 81 (-37.69%)
Mutual labels:  operator, kubernetes-operator
mysql-operator
Asynchronous MySQL Replication on Kubernetes using Percona Server and Openark's Orchestrator.
Stars: ✭ 810 (+523.08%)
Mutual labels:  operator, kubernetes-operator
siddhi-operator
Operator allows you to run stream processing logic directly on a Kubernetes cluster
Stars: ✭ 16 (-87.69%)
Mutual labels:  operator, kubernetes-operator
td-redis-operator
一款强大的云原生redis-operator,经过大规模生产级运行考验,支持分布式集群、支持主备切换等缓存集群解决方案…The powerful cloud-native redis-operator, which has passed the test of large-scale production-level operation, supports distributed clusters and active/standby switching ...
Stars: ✭ 327 (+151.54%)
Mutual labels:  operator, kubernetes-operator
Capsule
Kubernetes Operator for multi-tenancy
Stars: ✭ 261 (+100.77%)
Mutual labels:  operator, kubernetes-operator
cmak-operator
CMAK (prev. Kafka Manager) for Kubernetes
Stars: ✭ 45 (-65.38%)
Mutual labels:  operator, kubernetes-operator
sieve
Automatic Reliability Testing for Kubernetes Controllers
Stars: ✭ 183 (+40.77%)
Mutual labels:  operator, kubernetes-operator
Kopf
A Python framework to write Kubernetes operators in just a few lines of code
Stars: ✭ 488 (+275.38%)
Mutual labels:  operator, kubernetes-operator
Container Security Operator
Identify image vulnerabilities in Kubernetes pods
Stars: ✭ 68 (-47.69%)
Mutual labels:  operator, kubernetes-operator

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.

Supported storage configuration

  • [X] filesystem: A storage driver configured to use a directory tree in the a kubernetes volume.
  • [X] s3: A driver storing objects in an Amazon Simple Storage Service (S3) bucket.
  • [X] swift: A driver storing objects in Openstack Swift.
  • [ ] azure: A driver storing objects in Microsoft Azure Blob Storage.
  • [ ] oss: A driver storing objects in Aliyun OSS.
  • [ ] gcs: A driver storing objects in a Google Cloud Storage bucket.

Deploy a new stack

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

When Creating the Harbor resource, following components are always deployed:

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

Following components are optional:

  • ChartMuseum
  • Notary
  • Clair
  • Trivy

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, Clair and Trivy 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 2.0

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].