Skip to content

Commit

Permalink
Merge pull request #30 from schoudhury/main
Browse files Browse the repository at this point in the history
Updates to READMEs
  • Loading branch information
guna-harness authored Jan 17, 2022
2 parents da28182 + 4f70c51 commit 3fb6657
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 49 deletions.
75 changes: 68 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,71 @@
# Harness Community Edition
This repo contains the files necessary to run Harness CE on your hardware.
<p align="center">
<img src='https://harness.io/harness-light.svg' width='70%'>
</p>

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.

<p align="center">
<img src='https://cms.harness.io/uploads/prod_cd_illus_96831ffa02.svg' width='70%'>
</p>


## 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/)
53 changes: 26 additions & 27 deletions docker-compose/harness/README.md
Original file line number Diff line number Diff line change
@@ -1,78 +1,77 @@
# 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
* 4GB of free memory
* 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"
Expand Down
26 changes: 11 additions & 15 deletions helm/README.md
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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
Expand All @@ -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 `<URL>/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.

0 comments on commit 3fb6657

Please sign in to comment.