Update config file names

Signed-off-by: DQ <dengq@vmware.com>
This commit is contained in:
DQ 2019-08-07 17:14:14 +08:00
parent 8fd8c5f345
commit 377739204b
7 changed files with 127 additions and 112 deletions

View File

@ -1,7 +1,6 @@
--- ---
name: Bug report name: Bug report
about: Create a report to help us improve about: Create a report to help us improve
--- ---
If you are reporting a problem, please make sure the following information are provided: If you are reporting a problem, please make sure the following information are provided:
@ -14,10 +13,12 @@ Please provide the steps to reproduce this problem.
**Versions:** **Versions:**
Please specify the versions of following systems. Please specify the versions of following systems.
- harbor version: [x.x.x] - harbor version: [x.x.x]
- docker engine version: [y.y.y] - docker engine version: [y.y.y]
- docker-compose version: [z.z.z] - docker-compose version: [z.z.z]
**Additional context:** **Additional context:**
* **Harbor config files:** You can get them by packaging `harbor.cfg` and files in the same directory, including subdirectory.
* **Log files:** You can get them by package the `/var/log/harbor/` . - **Harbor config files:** You can get them by packaging `harbor.yml` and files in the same directory, including subdirectory.
- **Log files:** You can get them by package the `/var/log/harbor/` .

View File

@ -1,4 +1,5 @@
### Deploying Harbor using Docker Machine ### Deploying Harbor using Docker Machine
Docker Machine allows you to deploy your containers to several cloud providers or on premises using a unified interface. Docker Machine allows you to deploy your containers to several cloud providers or on premises using a unified interface.
To deploy Harbor using Docker Machine, first create a virtual machine using Docker Machine. To deploy Harbor using Docker Machine, first create a virtual machine using Docker Machine.
@ -15,7 +16,7 @@ You can get this IP address using:
$ docker-machine ip harbor.mydomain.com $ docker-machine ip harbor.mydomain.com
``` ```
Make sure to change the `hostname` in `Deploy/harbor.cfg` to `harbor.mydomain.com`, configure everything else according to the [Harbor Installation Guide](../docs/installation_guide.md) and run `prepare`. Make sure to change the `hostname` in `Deploy/harbor.yml` to `harbor.mydomain.com`, configure everything else according to the [Harbor Installation Guide](../docs/installation_guide.md) and run `prepare`.
Now, activate the created Docker Machine instance: Now, activate the created Docker Machine instance:

View File

@ -6,6 +6,14 @@ This guide provides instructions for developers to build and run Harbor from sou
Harbor is deployed as several Docker containers and most of the code is written in Go language. The build environment requires Docker, Docker Compose and golang development environment. Please install the below prerequisites: Harbor is deployed as several Docker containers and most of the code is written in Go language. The build environment requires Docker, Docker Compose and golang development environment. Please install the below prerequisites:
| Software | Required Version |
| -------------- | ---------------- |
| docker | 17.05 + |
| docker-compose | 1.11.0 + |
| python | 2.7 + |
| git | 1.9.1 + |
| make | 3.81 + |
| golang\* | 1.7.3 + |
Software | Required Version Software | Required Version
----------------------|-------------------------- ----------------------|--------------------------
@ -14,14 +22,14 @@ docker-compose | 1.23.0 +
git | 1.9.1 + git | 1.9.1 +
make | 3.81 + make | 3.81 +
golang* | 1.7.3 + golang* | 1.7.3 +
*optional, required only if you use your own Golang environment.
\*optional, required only if you use your own Golang environment.
## Step 2: Getting the source code ## Step 2: Getting the source code
```sh ```sh
$ git clone https://github.com/goharbor/harbor $ git clone https://github.com/goharbor/harbor
``` ```
## Step 3: Building and installing Harbor ## Step 3: Building and installing Harbor
@ -29,10 +37,10 @@ golang* | 1.7.3 +
Edit the file **make/harbor.yml** and make necessary configuration changes such as hostname, admin password and mail server. Refer to **[Installation and Configuration Guide](installation_guide.md#configuring-harbor)** for more info. Edit the file **make/harbor.yml** and make necessary configuration changes such as hostname, admin password and mail server. Refer to **[Installation and Configuration Guide](installation_guide.md#configuring-harbor)** for more info.
```sh ```sh
$ cd harbor $ cd harbor
$ vi make/harbor.yml $ vi make/harbor.yml
``` ```
### Compiling and Running ### Compiling and Running
@ -40,138 +48,139 @@ You can compile the code by one of the three approaches:
#### I. Build with official Golang image #### I. Build with official Golang image
* Get official Golang image from docker hub: - Get official Golang image from docker hub:
```sh ```sh
$ docker pull golang:1.12.5 $ docker pull golang:1.12.5
``` ```
* Build, install and bring up Harbor without Notary: - Build, install and bring up Harbor without Notary:
```sh ```sh
$ make install GOBUILDIMAGE=golang:1.12.5 COMPILETAG=compile_golangimage $ make install GOBUILDIMAGE=golang:1.12.5 COMPILETAG=compile_golangimage
``` ```
* Build, install and bring up Harbor with Notary: - Build, install and bring up Harbor with Notary:
```sh ```sh
$ make install GOBUILDIMAGE=golang:1.12.5 COMPILETAG=compile_golangimage NOTARYFLAG=true $ make install GOBUILDIMAGE=golang:1.12.5 COMPILETAG=compile_golangimage NOTARYFLAG=true
``` ```
* Build, install and bring up Harbor with Clair: - Build, install and bring up Harbor with Clair:
```sh ```sh
$ make install GOBUILDIMAGE=golang:1.12.5 COMPILETAG=compile_golangimage CLAIRFLAG=true $ make install GOBUILDIMAGE=golang:1.12.5 COMPILETAG=compile_golangimage CLAIRFLAG=true
``` ```
#### II. Compile code with your own Golang environment, then build Harbor #### II. Compile code with your own Golang environment, then build Harbor
* Move source code to $GOPATH - Move source code to \$GOPATH
```sh ```sh
$ mkdir $GOPATH/src/github.com/goharbor/ $ mkdir $GOPATH/src/github.com/goharbor/
$ cd .. $ cd ..
$ mv harbor $GOPATH/src/github.com/goharbor/. $ mv harbor $GOPATH/src/github.com/goharbor/.
``` ```
* Build, install and run Harbor without Notary and Clair: - Build, install and run Harbor without Notary and Clair:
```sh ```sh
$ cd $GOPATH/src/github.com/goharbor/harbor $ cd $GOPATH/src/github.com/goharbor/harbor
$ make install $ make install
``` ```
* Build, install and run Harbor with Notary and Clair: - Build, install and run Harbor with Notary and Clair:
```sh
$ cd $GOPATH/src/github.com/goharbor/harbor
$ make install -e NOTARYFLAG=true CLAIRFLAG=true
```
```sh
$ cd $GOPATH/src/github.com/goharbor/harbor
$ make install -e NOTARYFLAG=true CLAIRFLAG=true
```
### Verify your installation ### Verify your installation
If everything worked properly, you can get the below message: If everything worked properly, you can get the below message:
```sh ```sh
... ...
Start complete. You can visit harbor now. Start complete. You can visit harbor now.
``` ```
Refer to [Installation and Configuration Guide](installation_guide.md#managing-harbors-lifecycle) for more information about managing your Harbor instance. Refer to [Installation and Configuration Guide](installation_guide.md#managing-harbors-lifecycle) for more information about managing your Harbor instance.
## Appendix ## Appendix
* Using the Makefile
- Using the Makefile
The `Makefile` contains these configurable parameters: The `Makefile` contains these configurable parameters:
Variable | Description | Variable | Description |
-------------------|------------- | ------------------- | ---------------------------------------------------------------- |
BASEIMAGE | Container base image, default: photon | BASEIMAGE | Container base image, default: photon |
DEVFLAG | Build model flag, default: dev | DEVFLAG | Build model flag, default: dev |
COMPILETAG | Compile model flag, default: compile_normal (local golang build) | COMPILETAG | Compile model flag, default: compile_normal (local golang build) |
NOTARYFLAG | Notary mode flag, default: false | NOTARYFLAG | Notary mode flag, default: false |
CLAIRFLAG | Clair mode flag, default: false | CLAIRFLAG | Clair mode flag, default: false |
HTTPPROXY | NPM http proxy for Clarity UI builder | HTTPPROXY | NPM http proxy for Clarity UI builder |
REGISTRYSERVER | Remote registry server IP address | REGISTRYSERVER | Remote registry server IP address |
REGISTRYUSER | Remote registry server user name | REGISTRYUSER | Remote registry server user name |
REGISTRYPASSWORD | Remote registry server user password | REGISTRYPASSWORD | Remote registry server user password |
REGISTRYPROJECTNAME| Project name on remote registry server | REGISTRYPROJECTNAME | Project name on remote registry server |
VERSIONTAG | Harbor images tag, default: dev | VERSIONTAG | Harbor images tag, default: dev |
PKGVERSIONTAG | Harbor online and offline version tag, default:dev | PKGVERSIONTAG | Harbor online and offline version tag, default:dev |
* Predefined targets: - Predefined targets:
Target | Description | Target | Description |
--------------------|------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------- |
all | prepare env, compile binaries, build images and install images | all | prepare env, compile binaries, build images and install images |
prepare | prepare env | prepare | prepare env |
compile | compile ui and jobservice code | compile | compile ui and jobservice code |
compile_portal | compile portal code | compile_portal | compile portal code |
compile_ui | compile ui binary | compile_ui | compile ui binary |
compile_jobservice | compile jobservice binary | compile_jobservice | compile jobservice binary |
build | build Harbor docker images (default: using build_photon) | build | build Harbor docker images (default: using build_photon) |
build_photon | build Harbor docker images from Photon OS base image | build_photon | build Harbor docker images from Photon OS base image |
install | compile binaries, build images, prepare specific version of compose file and startup Harbor instance | install | compile binaries, build images, prepare specific version of compose file and startup Harbor instance |
start | startup Harbor instance (set NOTARYFLAG=true when with Notary) | start | startup Harbor instance (set NOTARYFLAG=true when with Notary) |
down | shutdown Harbor instance (set NOTARYFLAG=true when with Notary) | down | shutdown Harbor instance (set NOTARYFLAG=true when with Notary) |
package_online | prepare online install package | package_online | prepare online install package |
package_offline | prepare offline install package | package_offline | prepare offline install package |
pushimage | push Harbor images to specific registry server | pushimage | push Harbor images to specific registry server |
clean all | remove binary, Harbor images, specific version docker-compose file, specific version tag and online/offline install package | clean all | remove binary, Harbor images, specific version docker-compose file, specific version tag and online/offline install package |
cleanbinary | remove ui and jobservice binary | cleanbinary | remove ui and jobservice binary |
cleanimage | remove Harbor images | cleanimage | remove Harbor images |
cleandockercomposefile | remove specific version docker-compose | cleandockercomposefile | remove specific version docker-compose |
cleanversiontag | remove specific version tag | cleanversiontag | remove specific version tag |
cleanpackage | remove online/offline install package | cleanpackage | remove online/offline install package |
#### EXAMPLE: #### EXAMPLE:
#### Push Harbor images to specific registry server #### Push Harbor images to specific registry server
```sh ```sh
$ make pushimage -e DEVFLAG=false REGISTRYSERVER=[$SERVERADDRESS] REGISTRYUSER=[$USERNAME] REGISTRYPASSWORD=[$PASSWORD] REGISTRYPROJECTNAME=[$PROJECTNAME] $ make pushimage -e DEVFLAG=false REGISTRYSERVER=[$SERVERADDRESS] REGISTRYUSER=[$USERNAME] REGISTRYPASSWORD=[$PASSWORD] REGISTRYPROJECTNAME=[$PROJECTNAME]
``` ```
**Note**: need add "/" on end of REGISTRYSERVER. If REGISTRYSERVER is not set, images will be pushed directly to Docker Hub. **Note**: need add "/" on end of REGISTRYSERVER. If REGISTRYSERVER is not set, images will be pushed directly to Docker Hub.
```sh
$ make pushimage -e DEVFLAG=false REGISTRYUSER=[$USERNAME] REGISTRYPASSWORD=[$PASSWORD] REGISTRYPROJECTNAME=[$PROJECTNAME]
```sh ```
$ make pushimage -e DEVFLAG=false REGISTRYUSER=[$USERNAME] REGISTRYPASSWORD=[$PASSWORD] REGISTRYPROJECTNAME=[$PROJECTNAME]
```
#### Clean up binaries and images of a specific version #### Clean up binaries and images of a specific version
```sh ```sh
$ make clean -e VERSIONTAG=[TAG] $ make clean -e VERSIONTAG=[TAG]
``` ```
**Note**: If new code had been added to Github, the git commit TAG will change. Better use this command to clean up images and files of previous TAG.
**Note**: If new code had been added to Github, the git commit TAG will change. Better use this command to clean up images and files of previous TAG.
#### By default, the make process create a development build. To create a release build of Harbor, set the below flag to false. #### By default, the make process create a development build. To create a release build of Harbor, set the below flag to false.
```sh ```sh
$ make XXXX -e DEVFLAG=false $ make XXXX -e DEVFLAG=false
``` ```

View File

@ -1,11 +1,14 @@
### Setup ### Setup
In harbor.cfg, make sure the attribute ```ui_url_protocol``` is set to ```https```, and the attributes ```ssl_cert``` and ```ssl_cert_key``` are pointed to valid certificates. For more information about generating https certificate please refer to: [Configuring HTTPS for Harbor](configure_https.md)
In harbor.yml, make sure https is enabled, and the attributes `ssl_cert` and `ssl_cert_key` are pointed to valid certificates. For more information about generating https certificate please refer to: [Configuring HTTPS for Harbor](configure_https.md)
### Copy Root Certificate ### Copy Root Certificate
Suppose the Harbor instance is hosted on a machine ```192.168.0.5```
If you are using a self-signed certificate, make sure to copy the CA root cert to ```/etc/docker/certs.d/192.168.0.5/``` and ```~/.docker/tls/192.168.0.5:4443/``` Suppose the Harbor instance is hosted on a machine `192.168.0.5`
If you are using a self-signed certificate, make sure to copy the CA root cert to `/etc/docker/certs.d/192.168.0.5/` and `~/.docker/tls/192.168.0.5:4443/`
### Enable Docker Content Trust ### Enable Docker Content Trust
It can be done via setting environment variables: It can be done via setting environment variables:
``` ```
@ -14,7 +17,8 @@ export DOCKER_CONTENT_TRUST_SERVER=https://192.168.0.5:4443
``` ```
### Set alias for notary (optional) ### Set alias for notary (optional)
Because by default the local directory for storing meta files for notary client is different from docker client. If you want to use notary client to manipulate the keys/meta files generated by Docker Content Trust, please set the alias to reduce the effort:
Because by default the local directory for storing meta files for notary client is different from docker client. If you want to use notary client to manipulate the keys/meta files generated by Docker Content Trust, please set the alias to reduce the effort:
``` ```
alias notary="notary -s https://192.168.0.5:4443 -d ~/.docker/trust --tlscacert /etc/docker/certs.d/192.168.0.5/ca.crt" alias notary="notary -s https://192.168.0.5:4443 -d ~/.docker/trust --tlscacert /etc/docker/certs.d/192.168.0.5/ca.crt"

View File

@ -41,12 +41,12 @@ def validate(conf, **kwargs):
redis_host = conf.get("redis_host") redis_host = conf.get("redis_host")
if redis_host is None or len(redis_host) < 1: if redis_host is None or len(redis_host) < 1:
raise Exception( raise Exception(
"Error: redis_host in harbor.cfg needs to point to an endpoint of Redis server or cluster.") "Error: redis_host in harbor.yml needs to point to an endpoint of Redis server or cluster.")
redis_port = conf.get("redis_port") redis_port = conf.get("redis_port")
if redis_host is None or (redis_port < 1 or redis_port > 65535): if redis_host is None or (redis_port < 1 or redis_port > 65535):
raise Exception( raise Exception(
"Error: redis_port in harbor.cfg needs to point to the port of Redis server or cluster.") "Error: redis_port in harbor.yml needs to point to the port of Redis server or cluster.")
def parse_versions(): def parse_versions():

View File

@ -56,12 +56,12 @@ def validate(conf, **kwargs):
redis_host = conf.get("configuration", "redis_host") redis_host = conf.get("configuration", "redis_host")
if redis_host is None or len(redis_host) < 1: if redis_host is None or len(redis_host) < 1:
raise Exception( raise Exception(
"Error: redis_host in harbor.cfg needs to point to an endpoint of Redis server or cluster.") "Error: redis_host in harbor.yml needs to point to an endpoint of Redis server or cluster.")
redis_port = conf.get("configuration", "redis_port") redis_port = conf.get("configuration", "redis_port")
if len(redis_port) < 1: if len(redis_port) < 1:
raise Exception( raise Exception(
"Error: redis_port in harbor.cfg needs to point to the port of Redis server or cluster.") "Error: redis_port in harbor.yml needs to point to the port of Redis server or cluster.")
redis_db_index = conf.get("configuration", "redis_db_index").strip() redis_db_index = conf.get("configuration", "redis_db_index").strip()
if len(redis_db_index.split(",")) != 3: if len(redis_db_index.split(",")) != 3:

View File

@ -24,7 +24,7 @@ def main():
input_version = utils.get_conf_version(args.input_path) input_version = utils.get_conf_version(args.input_path)
curr_dir = os.path.dirname(__file__) curr_dir = os.path.dirname(__file__)
if input_version == target_version: if input_version == target_version:
print ("Version of input harbor.cfg is identical to target %s, no need to upgrade" % input_version) print ("Version of input harbor.yml is identical to target %s, no need to upgrade" % input_version)
sys.exit(0) sys.exit(0)
if args.output_path is None: if args.output_path is None:
if float(input_version[:input_version.rfind('.')]) < 1.8 and \ if float(input_version[:input_version.rfind('.')]) < 1.8 and \