Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc(README):update README to reflect latest changes #740

Merged
merged 1 commit into from
Aug 11, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 18 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ Harbor deployment stack is controlled by a custom Harbor resource `HarborCluster
* Add the optional Harbor components
* Support upgrading the managed Harbor registry version
* Deletes all the linked resources when deleting the Harbor cluster
* Configures Harbor system settings with ConfigMap in a declarative way
* Support services exposed with [ingress](https://kubernetes.io/fr/docs/concepts/services-networking/ingress/) ([`default`](https://git.k8s.io/ingress-nginx/README.md#readme), [`gce`](https://git.k8s.io/ingress-gce/README.md#readme) and `ncp`)
* Configures Harbor system settings with CRD-based configuration or labeled ConfigMap
* Support services exposed with [ingress](https://kubernetes.io/fr/docs/concepts/services-networking/ingress/) ([`default`](https://git.k8s.io/ingress-nginx/README.md#readme), [`gce`](https://git.k8s.io/ingress-gce/README.md#readme), `ncp` and `contour`)
* Support services exposed with LoadBalancer

## Future features

Expand All @@ -42,15 +43,13 @@ Harbor deployment stack is controlled by a custom Harbor resource `HarborCluster
* [ ] [gcs](https://cloud.google.com/storage): A driver storing objects in a Google Cloud Storage bucket.
* Supports updating the deployed Harbor cluster
* Remove the optional Harbor components
* CRD based day2 configuration
* Support services exposed with LoadBalancer
* More day2 operations (see [PoC project](https://github.com/szlabs/harbor-automation-4k8s))
* Auto mapping Kubernetes namespaces and Harbor project
* Pull secrets injections
* Container image path rewriting
* Transparent proxy cache settings

## Replease plans
## Release plans

* [Release 1.1](https://github.com/goharbor/harbor-operator/projects/8)
* [Release 1.2](https://github.com/goharbor/harbor-operator/projects/7)
Expand All @@ -65,7 +64,7 @@ Versions of the underlying components are listed below:

| Components | Harbor | MinIO operator | PostgreSQL operator | Redis operator |
|---------------|-------------------|----------------|---------------------|----------------|
| Versions | 2.2.x `[1]` | 4.0.6 | 1.5.0 | 1.0.0 |
| Versions | 2.3.x `[1]` | 4.0.6+ | 1.5.0+ | 1.0.0 |

NOTES:

Expand All @@ -77,28 +76,30 @@ NOTES:

Harbor operator supports two extra Kubernetes versions besides the current latest version (`n-2` pattern):

| Versions | 1.19 | 1.20 | 1.21 |
|---------------|--------------------|--------------------|---------------------------|
| Compatibility | :heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: |
| Versions | 1.19 | 1.20 | 1.21 |
|---------------|--------------------|--------------------|---------------------|
| Compatibility | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |

### Cert manager versions

Harbor operator relies on cert manager to manage kinds of certificates used by Harbor cluster components. Table shown below lists the compatibilities of cert manager versions:

| Versions | 1.1.1 | 1.2.0 | 1.3.1 | 1.4.0 |
|---------------|--------------------|--------------------|----------------------|----------------------|
| Compatibility | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Versions | 1.2 | 1.3 | 1.4 |
|---------------|--------------------|----------------------|----------------------|
| Compatibility | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |

### Ingress controller types

Harbor operator exposes the frontend service with ingress (CRD version: `v1beta1`). Table shown below lists the ingress controller types supported.

| Ingress Controller | default | gce | ncp | contour |
|----------------------|---------------------|--------------------|--------------------|---------------------|
| Compatibility | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Description | Default ingress controller like NGINX | Google Cloud Engine ingress controller | NSX-T Container plugin ingress controller | Ingress controller that works by deploying the Envoy proxy |
| Ingress Controller | Compatibility | Description |
|----------------------|---------------------|------------------------------------------------------------|
| default | :heavy_check_mark: | Default ingress controller like NGINX |
| gce | :heavy_check_mark: | Google Cloud Engine ingress controller |
| ncp | :heavy_check_mark: | NSX-T Container plugin ingress controller |
| contour | :heavy_check_mark: | Ingress controller that works by deploying the Envoy proxy |

NOTES:
**NOTES:**

:heavy_check_mark: : support
:heavy_multiplication_x: : not support
Expand Down
73 changes: 40 additions & 33 deletions docs/installation/customize-storage-db-redis.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,28 +52,33 @@ Then put the related PostgreSQL info into the `database` spec. e.g.:

```yaml
spec:
# Configure existing pre-deployed or cloud database service.
database: # Optional
# PostgreSQL user name to connect as.
# Defaults to be the same as the operating system name of the user running the application.
username: postgres # Required
# Secret containing the password to be used if the server demands password authentication.
passwordRef: harbor-database-password # Optional
# PostgreSQL hosts.
# At least 1.
hosts:
# Name of host to connect to.
# If a host name begins with a slash, it specifies Unix-domain communication rather than
# TCP/IP communication; the value is the name of the directory in which the socket file is stored.
- host: my.psql.com # Required
# Port number to connect to at the server host,
# or socket file name extension for Unix-domain connections.
# Zero, specifies the default port number established when PostgreSQL was built.
database:
# Configure existing pre-deployed or cloud database service.
kind: PostgreSQL
# Database spec
spec:
# PostgreSQL configuration spec.
postgresql:
# PostgreSQL user name to connect as.
# Defaults to be the same as the operating system name of the user running the application.
username: postgres # Required
# Secret containing the password to be used if the server demands password authentication.
passwordRef: harbor-database-password # Optional
# PostgreSQL hosts.
# At least 1.
hosts:
# Name of host to connect to.
# If a host name begins with a slash, it specifies Unix-domain communication rather than
# TCP/IP communication; the value is the name of the directory in which the socket file is stored.
- host: my.psql.com # Required
# Port number to connect to at the server host,
# or socket file name extension for Unix-domain connections.
# Zero, specifies the default port number established when PostgreSQL was built.
port: 5432 # Optional
# PostgreSQL has native support for using SSL connections to encrypt client/server communications for increased security.
# Supports values ["disable","allow","prefer","require","verify-ca","verify-full"].
sslMode: prefer # Optional, default=prefer
prefix: prefix # Optional
# PostgreSQL has native support for using SSL connections to encrypt client/server communications for increased security.
# Supports values ["disable","allow","prefer","require","verify-ca","verify-full"].
sslMode: prefer # Optional, default=prefer
prefix: prefix # Optional
```

The thing to note here is the names of the databases `core`, `notaryserver` (only needed when enabling notary) and `notarysigner` (only needed when enabling notary) are relatively unchangeable. You can only append some prefixes to the database names by setting the optional field `prefix` in the `database` spec. For example, if the `spec.database.prefix` is "prefix", the database names will be "prefix-core", "prefix-notaryserver" and "prefix-notarysigner".
Expand Down Expand Up @@ -108,16 +113,18 @@ Then put the related Redis info into the `redis` spec. e.g.:

```yaml
spec:
# Redis configuration.
redis: # Optional
# Server host.
host: myredis.com # Required
# Server port.
port: 6347 # Required
# For setting sentinel masterSet.
sentinelMasterSet: sentinel # Optional
# Secret containing the password to use when connecting to the server.
passwordRef: harbor-redis # Optional
# Secret containing the client certificate to authenticate with.
certificateRef: cert # Optional
kind: Redis
spec:
# Redis configuration.
redis:
# Server host.
host: myredis.com # Required
# Server port.
port: 6347 # Required
# For setting sentinel masterSet.
sentinelMasterSet: sentinel # Optional
# Secret containing the password to use when connecting to the server.
passwordRef: harbor-redis # Optional
# Secret containing the client certificate to authenticate with.
certificateRef: cert # Optional
```