diff --git a/README.md b/README.md index f04aa3d..5c82d89 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,71 @@ -# Harness Community Edition -This repo contains the files necessary to run Harness CE on your hardware. +

+ +

-We support two methods of installation, [Docker Compose](https://docs.docker.com/compose/) and [Helm](https://helm.sh/). -If you are unsure which method is right for you, start with Docker Compose. +--- -## Getting started -To get started with Docker Compose read our [Docker Compose instructions](./docker-compose/harness/README.md). +Harness CD is a modern self-service continuous delivery solution that allows developers to deploy, verify and automatically rollback Kubernetes and other cloud-native applications on any public or private cloud infrastructure of their choice. -For Helm/Kubernetes, read our [Helm instructions](./helm/README.md). +- [What is Harness CD Community Edition?](#what-is-harness-cd-community-edition) +- [Get Started with Harness CD Community Edition](#starting-with-harness-cd-community-edition) +- [Get Started with Harness CD SaaS Plans](#starting-with-harness-cd-saas-plans) +- [Docs](#docs) +- [Need Help?](#need-help) +- [Contributing](#contributing) +- [Licensing](#design) +- [Comparison with Other CD Tools](#comparison-with-other-cd-tools) +- [See Also](#see-also) + +## What is Harness CD Community Edition? + +Harness CD Community Edition is a free and open edition of Harness CD that is designed for developers to deploy cloud-native services at the fastest velocity possible. Developers can self-host this edition on Docker or Kubernetes using a [docker-compose.yml](./docker-compose/harness/README.md) or a [helm-chart](./helm/README.md) respectively. This `harness-cd-community` repo houses these docker-compose and helm installers for Harness CD Community Edition while the `harness-core` and other public repos in this `harness` organization house the source code. + +Harness CD is also available as a fully-managed SaaS solution in three different plans, namely Free, Team and Enterprise. For more details, see the [Harness CD Editions & Plans](https://harness.io/pricing/?module=cd) page. + +

+ +

+ + +## Get Started with Harness CD Community Edition + +1. Install Harness CD Community Edition: [using docker-compose](./docker-compose/harness/README.md) or [using helm chart](./helm/README.md). +2. Create a [Kubernetes CD pipeline](https://ngdocs.harness.io/article/ltvkgcwpum-harness-community-edition-quickstart#step_2_create_pipeline) and deploy a sample microservice into your local minikube or external Kubernetes cluster. +3. Explore core features, such as [canary rollout](https://ngdocs.harness.io/article/i5p4feil89-create-a-kubernetes-canary-deployment), [automated infrastructure/Terraform provisioning](https://ngdocs.harness.io/article/boug6e884h-terraform-provisioning-with-harness), [pipeline-as-code](https://ngdocs.harness.io/article/1eishcolt3-harness-yaml-quickstart), [Git Experience](https://ngdocs.harness.io/article/dm69dkv34g-harness-git-experience-quickstart) and [built-in approvals](https://ngdocs.harness.io/article/43pzzhrcbv-using-harness-approval-steps-in-cd-stages). + +## Get Started with Harness CD SaaS Plans + +We can run Harness CD for you, so you don't have to host and manage your own instance. All you have to do is signup at [harness.io](https://app.harness.io/auth/#/signup/?module=cd). + +## Docs + +For additional guidance on installation, usage, and administration, see our [User Documentation](https://ngdocs.harness.io/article/ltvkgcwpum-harness-community-edition-quickstart). + +## Need Help? + +- [Harness Community Slack](https://join.slack.com/t/harnesscommunity/shared_invite/zt-y4hdqh7p-RVuEQyIl5Hcx4Ck8VCvzBw) - Join the `#cd-community` slack channel to connect with our engineers and other users running Harness CD. +- [Harness Community Forum](https://community.harness.io/) - Ask questions, find answers, and help other users. +- [Troubleshooting documentation](https://ngdocs.harness.io/article/jzklic4y2j-troubleshooting) - Learn how to troubleshoot common errors. +- For filing bugs, suggesting improvements, or requesting new features, help us out by [opening an issue](https://github.com/harness/harness-cd-community/issues/new). + +## Contributing + +We welcome your contributions! We will soon be publishing guidelines on how you can contribute to Harness CD. + +## Licensing + +Harness CD Community Edition code is released under the source available [PolyForm Shield 1.0.0](https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt) license. `harness-core` and other public repos in the `harness` organization contain code for the Harness CD Community Edition. These repos also have additional code that is licensed under [PolyForm Free Trial](https://polyformproject.org/wp-content/uploads/2020/05/PolyForm-Free-Trial-1.0.0.txt) license. + +When contributing to a Harness CD feature, you can find the relevant license in the comments at the top of each file. + +For more information, see the [Harness Loves Open Source page](). + +## Comparison with Other CD Tools + +To see how key features of Harness CD stack up against other CD tools, check out [Harness CD in Comparison](https://harness.io/learn/comparison-guide/). + +## See Also + +- [Technical Resources](https://harness.io/learn/resource-center/) (by Harness engineers and customers!) +- [Harness Software Delivery Platform Documentation](https://ngdocs.harness.io/) +- [The Harness Blog](https://harness.io/blog/) \ No newline at end of file diff --git a/docker-compose/harness/README.md b/docker-compose/harness/README.md index 9757bc1..bf53470 100644 --- a/docker-compose/harness/README.md +++ b/docker-compose/harness/README.md @@ -1,8 +1,8 @@ -# Harness Community Edition - Docker Compose -This page contains the instructions necessary to run Harness CE using Docker Compose. +# Docker Compose for Harness CD Community Edition +This page contains the instructions to run Harness CD Community Edition using Docker Compose. The steps below use Docker Desktop for simplicity but can be used on any VM running docker and docker-compose. ## Pre-requisites -1) Install [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) on your system +1) Install [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) on your laptop or VM. ## Hardware requirements * 4 CPUs or more @@ -10,69 +10,68 @@ This page contains the instructions necessary to run Harness CE using Docker Com * 20GB of free disk space * Internet connection -## Installing Harness -1) Increase Docker Desktop memory to 4GB and CPU to 4 - For Docker Desktop, see [Docker for Mac](https://docs.docker.com/docker-for-mac/#resources) or [Docker for Windows](https://docs.docker.com/docker-for-windows/#resources) for details on increasing resources -1) Clone this repo +## Start Harness CD +1) Increase Docker Desktop memory to 4GB and CPU to 4. For Docker Desktop, see [Docker for Mac](https://docs.docker.com/docker-for-mac/#resources) or [Docker for Windows](https://docs.docker.com/docker-for-windows/#resources) for details on increasing resources. +2) Clone this repo. ```shell git clone https://github.com/harness/harness-cd-community.git cd harness-cd-community/docker-compose/harness ``` -1) If you are running Docker Desktop on Windows or Mac skip this step. If you are running on Linux or wish to run a production install then please see [Advanced Configuration](#advanced-configuration) to set the hostname of your machine. -1) Start harness +3) If you are running Docker Desktop on Windows or Mac skip this step. If you are running on Linux or wish to run a production install then please see [Advanced Configuration](#advanced-configuration) to set the hostname of your machine. +4) Start Harness CD. ```shell docker-compose up -d ``` -1) Wait for startup to complete + If this is your first time running the above command, then the docker images used in the docker-compose.yml file will now be pulled from DockerHub. +5) Wait for startup to complete. ```shell docker-compose run --rm proxy wait-for-it.sh ng-manager:7090 -t 180 ``` -## Using Harness -1) Open http://localhost/#/signup -1) Complete the signup form -1) You need to install a Harness delegate before you can run pipelines, see [Install a Docker Delegate](https://ngdocs.harness.io/article/cya29w2b99-install-a-docker-delegate) -1) For help with getting started, read the Harness [documentation](https://ngdocs.harness.io/article/u8lgzsi7b3-quickstarts) +## Use Harness CD +1) Open http://localhost/#/signup and complete the registration form. Now your Harness CD account along with the first (admin) user is created. If you have already completed this step, then login to Harness CD at http://localhost/#/signin +2) Follow the Harness CD Community Edition [quickstart](https://ngdocs.harness.io/article/ltvkgcwpum-harness-community-edition-quickstart) ## Profiles -Harness supports multiple hardware profiles the default profile being `laptop` for low resource environments -and `production` for use in more demanding environments. +Harness CD Community Edition supports multiple hardware profiles. The default profile is `laptop` for low resource environments. There is also a `production` profile available for use in more demanding environments. To run the `production` profile use this startup command ```shell docker-compose -f docker-compose.yml -f profile-production.yml up -d ``` -## Stop Harness +## Stop Harness CD ```shell docker-compose down ``` -## Remove Harness -To uninstall your instance of Harness run +## Remove Harness CD +To uninstall your instance of Harness CD run the following command. The `-v` option deletes the docker volumes where the Harness CD data is stored. ```shell docker-compose down -v ``` -To remove all Harness docker images from your system run +To also remove the Harness docker images from your system run ```shell docker images --filter=reference='harness/*' --quiet | xargs docker rmi ``` -## Upgrading an existing Harness Installation -1) Update this repository +## Upgrade Harness CD +1) Update this repository. ```shell git pull ``` -2) Re-run docker compose +2) Pull any new images that may have been published. + ```shell + docker-compose pull + ``` +3) Re-run docker compose. ```shell docker-compose up -d ``` ## Advanced Configuration ### How to deploy the Harness Delegate to a separate environment -You simply need to set the `HARNESS_HOST` environment variable, see [Set hostname environment variable](#set-hostname-environment-variable) below. -### Set hostname environment variable -1) Set the `HARNESS_HOST` environment variable, this should be the IP address or hostname of the machine where you are deploying Harness. You cannot use `localhost`. +You simply need to set the `HARNESS_HOST` environment variable. This should be the IP address or hostname of the machine where you are deploying Harness. You cannot use **localhost** for this variable. Example, ```shell export HARNESS_HOST="192.168.0.1" diff --git a/helm/README.md b/helm/README.md index ae08ce8..4d12be3 100644 --- a/helm/README.md +++ b/helm/README.md @@ -1,5 +1,5 @@ -# Harness Community Edition - Helm -This page contains the instructions necessary to run Harness CE using Helm on your Kubernetes cluster. +# Helm Chart for Harness CD Community Edition +This page contains the instructions necessary to install and manage Harness CD Community Edition using a helm-chart. The steps below use minikube for simplicity but can be used any Kubernetes cluster. ## Pre-requisites 1) Install [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) @@ -13,7 +13,7 @@ This page contains the instructions necessary to run Harness CE using Helm on yo * 20GB of free disk space * Internet connection -## Starting Harness +## Start Harness CD 1) Start by cloning this repo ```shell git clone https://github.com/harness/harness-cd-community.git @@ -24,34 +24,30 @@ This page contains the instructions necessary to run Harness CE using Helm on yo minikube start --memory 4g --cpus 4 ``` 1) If you are running Docker Desktop on Windows or Mac skip this step. If you are running on Linux or wish to run a production install then please see [Advanced Configuration](#advanced-configuration) to set the hostname of your machine. -1) Start Harness +1) Start Harness CD using the helm-chart ```shell helm install harness ./harness --create-namespace --namespace harness ``` -## Using Harness +## Use Harness CD 1) Follow the notes printed by Helm to access the application. -1) Open the link which is displayed and complete the signup form. -1) You need to install a Harness delegate before you can run pipelines, see [Install a Kubernetes Delegate](https://ngdocs.harness.io/article/f9bd10b3nj-install-a-kubernetes-delegate), [Install the Docker Delegate](https://ngdocs.harness.io/article/cya29w2b99-install-a-docker-delegate). -1) For help with getting started, read the Harness [documentation](https://ngdocs.harness.io/article/ltvkgcwpum-harness-community-edition-quickstart). +2) Open the link which is displayed and complete the registration form. Now your Harness CD account along with the first (admin) user is created. If you have already completed this step, then login to Harness CD at `/signin` +3) Follow the Harness CD Community Edition [quickstart](https://ngdocs.harness.io/article/ltvkgcwpum-harness-community-edition-quickstart) + ## Profiles -Harness supports multiple hardware profiles the default profile being `laptop` for low resource environments -and`production` for use in more demanding environments. +Harness CD Community Edition supports multiple hardware profiles. The default profile is `laptop` for low resource environments. There is also a `production` profile available for use in more demanding environments. To run the `production` profile use this startup command ```shell helm install -f harness/values-production.yaml harness ./harness --create-namespace --namespace harness ``` -## Remove Harness +## Remove Harness CD ```shell helm uninstall harness ``` ## Advanced Configuration ### How to deploy the Harness Delegate to a separate environment -You simply need to set the `harness_host` configuration parameter, see [Set hostname configuration parameter](#set-hostname-configuration-parameter) below. -### Set hostname configuration parameter -1) Set the `harness_host` configuration parameter, this should be the IP address or hostname of the machine where you are deploying Harness. You **cannot** use `localhost`. - Open values.yaml in your editor and update the `harness_host` parameter. +You simply need to set the `harness_host` configuration parameter. This should be the IP address or hostname of the machine where you are deploying Harness. You **cannot** use `localhost` for this parameter. Open values.yaml in your editor and update the `harness_host` parameter.