This is a BOSH release for VMware Harbor, an enterprise-class registry server that stores and distributes Docker images.
This is NOT a production ready BOSH release. I created it for my own experimentation and it may not be supported in the future.
If you are looking for a supported Docker Registry BOSH release, please check the bosh.io releases page or the cloudfoundry-community github organization.
In order to use this BOSH release you will need:
- BOSH CLI v2
- An already deployed BOSH environment
- A compatible cloud-config with a
default
option fornetwork
andvm_types
(you can use the example that comes from cf-deployment)
First, clone this repository into your workspace:
git clone https://github.com/frodenas/harbor-boshrelease
cd harbor-boshrelease
export BOSH_ENVIRONMENT=<name>
To deploy a basic harbor
server use the following command:
bosh -d harbor deploy manifests/harbor.yml \
--vars-store tmp/deployment-vars.yml \
-v harbor_secret_key=0a0b0c0d0e0f1a1b1c1d1e1f
NOTE: The harbor_secret_key
variable MUST be a 16, 24, or 32 bytes AES key
Additional operations files are located at the manifests/operators directory. Those files includes a basic configuration, so extra ops files might be needed for additional configuration.
Please review the op files before deploying them to check the requeriments, dependencies and necessary variables.
File | Description |
---|---|
enable-cf-route-registrar.yml | Registers harbor as a Cloud Foundry route (under your system domain ) |
enable-redis-cache.yml | Enables nginx as a proxy in front of your Docker Registry instances |
enable-registry-azure.yml | Uses Microsoft Azure Storage as the Docker Registry storage backend |
enable-registry-gcs.yml | Uses Google Cloud Storage as the Docker Registry storage backend |
enable-registry-oss.yml | Uses Aliyun Object Storage Service as the Docker Registry storage backend |
enable-registry-s3.yml | Uses Amazon S3 as the Docker Registry storage backend |
enable-registry-swift.yml | Uses OpenStack Swift as the Docker Registry storage backend |
Some operators files requires additional information to provide environment-specific or sensitive configuration such as various credentials. To do this in the default configuration, we use the --vars-store
. This flag takes the name of a yml
file that it will read and write to. Where necessary credential values are not present, it will generate new values based on the type information stored at the different deployment files. Necessary variables that BOSH can't generate need to be supplied as well.
See each particular op files you're using for any additional necessary variables.
See also the BOSH CLI documentation for more information about ways to supply such additional variables.
Refer to CONTRIBUTING.md.
Apache License 2.0, see LICENSE.