{"id":18512814,"url":"https://github.com/vmware/harbor-boshrelease","last_synced_at":"2026-01-22T10:32:19.882Z","repository":{"id":31895025,"uuid":"127189713","full_name":"vmware/harbor-boshrelease","owner":"vmware","description":"CFF BOSH Release for Project Harbor","archived":false,"fork":false,"pushed_at":"2024-08-14T02:12:37.000Z","size":4901,"stargazers_count":36,"open_issues_count":26,"forks_count":24,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-12-07T12:40:35.626Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vmware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-28T19:41:58.000Z","updated_at":"2024-08-09T15:18:11.000Z","dependencies_parsed_at":"2023-01-14T20:02:54.338Z","dependency_job_id":"ea89e59e-2031-4d41-acd4-e712dfe13ef4","html_url":"https://github.com/vmware/harbor-boshrelease","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware%2Fharbor-boshrelease","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware%2Fharbor-boshrelease/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware%2Fharbor-boshrelease/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware%2Fharbor-boshrelease/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vmware","download_url":"https://codeload.github.com/vmware/harbor-boshrelease/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230400616,"owners_count":18219831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T15:35:34.810Z","updated_at":"2026-01-22T10:32:19.841Z","avatar_url":"https://github.com/vmware.png","language":"Shell","readme":"# Harbor BOSH Release\n\nProject Harbor is an enterprise-class registry server that stores and distributes Docker images. Harbor extends the open source Docker Distribution by adding the functionalities usually required by an enterprise, such as security, identity and management. As an enterprise private registry, Harbor offers better performance and security. Having a registry closer to the build and run environment improves the image transfer efficiency. Harbor supports the setup of multiple registries and has images replicated between them. In addition, Harbor offers advanced security features, such as user management, access control and activity auditing.\n\nThis repository uses the [Harbor](https://github.com/vmware/harbor) offline installation package to create the [BOSH](https://bosh.io) release for Harbor, which can be used to quickly deploy a standalone Harbor. The main idea of this Harbor BOSH release is running the Harbor components as containers on top of Docker and docker-compose. Please be noted here that **it's not a HA architecture deployed with this Harbor BOSH release.**\n\nThis BOSH release for Harbor is open sourced under Apache License Version 2.0.\n\n## Repository Contents\n\nThis repository consists of the following file directories.\n\n### packages\nPackaging instructions used by BOSH to build each of the dependencies. The following 4 packages are contained in this repository:\n* common: provide some utility scripts like pid operations\n* docker: provide installation for Docker\n* docker-compose: provide docker-compose tool\n* harbor-app: harbor application packages including templates and all the docker images of harbor components\n\n### jobs\nStart and stop commands for each of the jobs (processes) running on Harbor nodes. Currently, only 1 job named **harbor** in this repository because we start harbor via docker-compose.\nThe job 'harbor' is composed by the following things:\n* **templates/config/harbor.cfg:** The base configuration file template of harbor. The real content will come from the properties user provided when deploying.\n* **templates/tls/server.*:** The server certificate and key file template. The real content of the cert and key will also provided by user in the deployment manifest.\n* **templates/bin/pre-start.erb:** The script is executed in the pre-start stage of the job lifecycle and used to prepare the running environment:\n  * Set cgroup mount point\n  * Start docker daemon process\n  * Load docker images of harbor components into docker\n  * Execute harbor prepare scripts\n* **templates/bin/ctl.erb:** Provide start/stop harbor process commands. 'start' command is based on docker-compose. 'stop' is directly kill the process keep in the pid file.\n* **templates/bin/status_check.erb:** Check if the harbor is working well. Besides checking the container status, it will also issue http request to call the harbor api.\n* **spec:** Define the package dependencies and properties.\n* **monit:** Provide monit way for BOSH to check the status of harbor process.\n\n### config\nURLs and access credentials to the bosh blobstore for storing final releases. Currently, only contain configuration for local blob.\n\n### src\nProvide the utility script source code for the **common** package.\n\n### manifests\nProvide deployment manifest templates and related manifest generation scripts. Currently, only provides manifest file for vSphere vCenter.\n* **deployment-vsphere.yml:** Deploy Harbor to vSphere vCenter.\n\n### .final_builds\nReferences into the public blobstore for final jobs \u0026 packages (each referenced by one or more **releases**)\n\n### releases\nyml files containing the references to blobs for each package in a given release; these are solved within **.final_builds**.\n\n## Deploy Harbor via BOSH\n\n### Install BOSH CLI V2\n[Download](https://bosh.io/docs/cli-v2.html#install) the binary for your platform and place it on your **PATH**.\n\n### Create BOSH env\nHere we just provide the command for vCenter/vSphere, for other IaaS platform, please refer to [BOSH doc](https://bosh.io/docs/init.html).\n```\n# Create directory to keep state\nmkdir bosh-1 \u0026\u0026 cd bosh-1\n\n# Clone Director templates\ngit clone https://github.com/cloudfoundry/bosh-deployment\n\n# Fill below variables (replace example values) and deploy the Director\nbosh create-env bosh-deployment/bosh.yml \\\n    --state=state.json \\\n    --vars-store=creds.yml \\\n    -o bosh-deployment/vsphere/cpi.yml \\\n    -o bosh-deployment/uaa.yml \\\n    -o bosh-deployment/misc/config-server.yml \\\n    -v director_name=bosh-1 \\\n    -v internal_cidr=10.0.0.0/24 \\\n    -v internal_gw=10.0.0.1 \\\n    -v internal_ip=10.0.0.6 \\\n    -v network_name=\"VM Network\" \\\n    -v vcenter_dc=my-dc \\\n    -v vcenter_ds=datastore0 \\\n    -v vcenter_ip=192.168.0.10 \\\n    -v vcenter_user=root \\\n    -v vcenter_password=vmware \\\n    -v vcenter_templates=bosh-1-templates \\\n    -v vcenter_vms=bosh-1-vms \\\n    -v vcenter_disks=bosh-1-disks \\\n    -v vcenter_cluster=cluster1\n    -o bosh-deployment/vsphere/resource-pool.yml \\\n    -v vcenter_rp=bosh-rp1\n\n# Create alias for the created env\nbosh alias-env \u003calias name\u003e -e \u003cdirector IP\u003e --ca-cert \u003c(bosh int ./creds.yml --path /director_ssl/ca)\n\n# Set env\nbosh int ./creds.yml --path /director_ssl/ca \u003e root_ca_certificate\nexport BOSH_CA_CERT=root_ca_certificate\nexport BOSH_CLIENT=admin\nexport BOSH_CLIENT_SECRET=`bosh int ./creds.yml --path /admin_password`\nexport BOSH_ENVIRONMENT=\u003cdirector IP\u003e\n```\n\n### Download source code\n```\n# Clone repostiry\ngit clone git@github.com:vmware/harbor-boshrelease.git\ncd harbor-boshrelease\n```\n\n### Make a deployment with pre-build final release\nYou can deploy the published pre-build final release without creating a local dev release:\n```\nbosh -n -d harbor-deployment deploy manifests/harbor.yml -v hostname=harbor.local\n```\n\n### Make a deployment with dev release\nBefore deploy, you need to create the Harbor BOSH release.\n### Create the Harbor BOSH release\n```\n# Sync remote pre-build blobs\nbosh sync-blobs\n# Or download blobs locally with new version of blob packages\ncd scripts\nbash add_blobs.sh\n\n# Create a dev release\nbosh create-release --force\n\n# Or create a final release\nbosh create-release --final [--version \u003cversion\u003e]\n\n# Upload the created dev release:\nbosh upload-release\n\n# Confirm the release is uploaded.\nbosh releases\n```\n\n### Upload cloud-config and runtime-config\n\nYou can find the bosh cloud config file, bosh runtime config file and deployment manifest samples in directory manifests.\n**NOTES:**\n* Change cloud-config-vsphere.yml per your environment.\n* Change configuration in the deployment manifest sample file deployment-vsphere.yml (e.g. azs name, networks name) per your environment.\n* Change the version of harbor-container-registry release in runtime-config-harbor.yml.\n\nUpload cloud-config and runtime-config:\n```\nbosh -n update-cloud-config   manifests/cloud-config-vsphere.yml\nbosh -n update-runtime-config manifests/runtime-config-bosh-dns.yml --name bosh-dns\nbosh -n update-runtime-config manifests/runtime-config-harbor.yml   --name harbor\n```\n### Kick off the deployment\n```\nbosh -n -d harbor-deployment deploy templates/deployment-vsphere.yml -v hostname=harbor.local [--vars-store /path/to/creds.yml]\nbosh run-errand smoke-test -d harbor-deployment\n```\nAfter the deployment is completed, you can check the status of the deployment:\n```\n# See current deployments\nbosh deployments\n\n# Check the status of vms\nbosh vms\n\n# Check the status of instances\nbosh instances\n```\n\n### Delete the deployment\nIf you want to delete the specified deployment, execute:\n```\n## --force ignore the errors when deleting\nbosh -d harbor-deployment delete-deployment --force\n```\n\n## Maintainers\n\n- Jesse Hu [huh at vmware.com]\n- Steven Zou [szou at vmware.com]\n- Daojun Zhang [daojunz at vmware.com]\n- Daniel Jiang [jiangd at vmware.com]\n\n## Contributing\n\nThe harbor-boshrelease project team welcomes contributions from the community. If you wish to contribute code and you have not\nsigned our contributor license agreement (CLA), our bot will update the issue when you open a Pull Request. For any\nquestions about the CLA process, please refer to our [FAQ](https://cla.vmware.com/faq). For more detailed information,\nrefer to [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nRefer to [LICENSE](LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmware%2Fharbor-boshrelease","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvmware%2Fharbor-boshrelease","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmware%2Fharbor-boshrelease/lists"}