diff --git a/_data/home-content.yml b/_data/home-content.yml index f78bc0a8c..de13c3902 100644 --- a/_data/home-content.yml +++ b/_data/home-content.yml @@ -15,6 +15,20 @@ - title: Concepts in Codefresh localurl: /docs/getting-started/concepts/ + +- title: Quick starts + icon: images/home-icons/started.svg + url: '' + links: + - title: Create Codefresh account + localurl: /docs/quick-start/create-codefresh-account/ + - title: CI pipeline quick start + localurl: /docs/quick-start/ci-quickstart/create-ci-pipeline/ + - title: Kubernetes deployment quick start + localurl: /docs/quick-start/ci-quickstart/deploy-to-kubernetes/ + - title: Helm quick start + localurl: /docs/quick-start/ci-quickstart/deploy-with-helm/ + - title: Pipeline integrations icon: images/home-icons/cloud-integrations.png links: @@ -72,6 +86,7 @@ - title: Quay Registry for GitOps localurl: /docs/gitops-integrations/container-registries/quay/ + - title: Dashboards & insights icon: images/home-icons/guides.png url: '' diff --git a/_data/nav.yml b/_data/nav.yml index 7f769e9c6..087b07e73 100644 --- a/_data/nav.yml +++ b/_data/nav.yml @@ -12,7 +12,20 @@ - title: Concepts in Codefresh url: "/concepts" - +- title: Quick starts + url: "/quick-start" + pages: + - title: Create Codefresh account + url: "/create-codefresh-account" + - title: CI/CD quick starts + url: "/ci-quickstart" + sub-pages: + - title: CI pipeline quick start + url: "/create-ci-pipeline" + - title: Kubernetes deployment quick start + url: "/deploy-to-kubernetes" + - title: Helm quick start + localurl: "/deploy-to-helm" - title: Dashboards & Insights diff --git a/_docs/administration/account-user-management/create-codefresh-account.md b/_docs/administration/account-user-management/create-codefresh-account.md index 158246684..9de8d7e32 100644 --- a/_docs/administration/account-user-management/create-codefresh-account.md +++ b/_docs/administration/account-user-management/create-codefresh-account.md @@ -3,11 +3,7 @@ title: "Create a Codefresh account" description: "Welcome to Codefresh!" group: administration sub_group: account-user-management -redirect_from: - - /docs/ - - /docs/create-an-account/ - - /docs/getting-started/ - - /docs/getting-started/introduction/ +toc: true --- Before you can do anything in Codefresh such as building and deploying your applications, you need to create a Codefresh account. @@ -23,7 +19,7 @@ max-width="90%" %} ## Step 1: Select your Identity Provider -As the first step in setting up ypur account in Codefresh, select the identity provider (IdP) to use. +As the first step in setting up your account in Codefresh, select the identity provider (IdP) to use. Codefresh currently supports the following IdPs: * GitHub * Bitbucket @@ -37,7 +33,7 @@ If you need an IdP that is not in the list, please [contact us](https://codefres >NOTES: For Git repositories, the login method is less important, as you can Git repositories through [Git integrations]({{site.baseurl}}/docs/integrations/git-providers/), regardless of your sign-up process. - If you multiple sign-up methods, as long as you use the same email address in all the sign-ups, Codefresh automatically redirects you to the account dashboard. + If you have multiple sign-up methods, as long as you use the same email address in all the sign-ups, Codefresh automatically redirects you to the account dashboard. 1. Go to the [Codefresh Sign Up page](https://g.codefresh.io/signup). diff --git a/_docs/quick-start/ci-quick-start.md b/_docs/quick-start/ci-quick-start.md new file mode 100644 index 000000000..57f6ef389 --- /dev/null +++ b/_docs/quick-start/ci-quick-start.md @@ -0,0 +1,45 @@ +--- +title: "Create a project for pipeline" +description: "" +group: quick-start +toc: true +--- + +Codefresh pipelines are grouped under projects. Think of a project as a folder or directory that groups related pipelines. For example, all pipleines that package/deploy the different microservices for an application. +You can define any name for the project, the most common example being the name of the application that the pipelines + +### Where are you + + + +### Before you beigin + +* [Connect a Docker registry to Codefresh]({{site.baseurl}}/docs/quick-start/create-docker-registry-integration) + +### How to +1. In the Codefresh UI, in the sidebar, from Pipelines, select **Projects**. +1. On the top-right, click **New Project**. +1. Enter the **Project Name**. For example, `my-first-project`. +1. Leave the **Project Tags** empty for the quick start. +1. Select any **Icon** you want. The icon is prefixed to the project name in the Projects page. +1. Click **Create**. + +{% include image.html + lightbox="true" + file="/images/quick-start/quick-start-ci/create-ci-project.png" + url="/images/quick-start/quick-start-ci/create-ci-project.png" + alt="Create project for pipeline" + caption="Create project for pipeline" + max-width="70%" +%} + +You now have a new project and can create your first pipeline. + + +### Continue with + + + + + + diff --git a/_docs/quick-start/ci-quickstart/create-ci-pipeline.md b/_docs/quick-start/ci-quickstart/create-ci-pipeline.md new file mode 100644 index 000000000..134333e7b --- /dev/null +++ b/_docs/quick-start/ci-quickstart/create-ci-pipeline.md @@ -0,0 +1,576 @@ +--- +title: "CI pipeline quick start" +description: "Quick start to set up a continuous integration (CI) pipeline" +group: quick-start +toc: true +--- + +This quick start guides you through setting up a CI (continuous integration) pipeline in Codefresh to create the Docker image of a sample application, run the pipeline, view results, and optionally upload the Docker image to a public registry. + +This quick start describes the following tasks: + +1. [Create and run CI pipeline](#create-and-run-ci-pipeline) +1. [Run unit tests on the Docker image](#run-unit-tests-on-the-docker-image) +1. [(Optional) Upload Docker images to Docker Hub](#optional-upload-docker-images-to-docker-hub) + + +## CI process overview + +The diagram illustrates the CI [(Continuous Integration)](https://en.wikipedia.org/wiki/Continuous_integration){:target="\_blank"} process. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/pipeline-overview.jpg" +url="/images/quick-start/quick-start-ci/pipeline-overview.jpg" +alt="CI process overview" +caption="CI process overview" +max-width="100%" +%} + + +1. Connects to GitHub and checks out the source code of the sample application +1. Uses the Dockerfile of the application to create a Docker image +1. Runs unit tests in the same Docker image to verify the validity of the code +1. Stores the Docker image in your private Registry +1. (Optional) Pushes the Docker image to Docker Hub + +### Note on the sample application +For the pipeline, we'll use a sample application, the [Python/Flask](https://www.palletsprojects.com/p/flask/){:target="\_blank"} project, that has: +* Its own [Dockerfile](https://github.com/codefresh-contrib/python-flask-sample-app/blob/master/Dockerfile){:target="\_blank"} in the root of the repository. +* Unit tests. + +You can either use the sample application to follow along, or create your own Docker based example (don't forget to write unit tests). + + +With Codefresh you can create a Docker image from without any local Docker installation, (Docker building as a service). + + + + + +## CI pipeline quick start prerequisites + +* Codefresh account +* Free [GitHub account](https://github.com/join){:target="\_blank"} +* Docker registry service account, such as [GitHub](https://github.com/features/packages){:target="\_blank"} +* Source code of the sample application +* (Optional) Docker Hub account if you also want to make your image public + +### Download source code of the sample application +We use an example application located in GitHub. + +>Codefresh supports GitLab, Bitbucket and Azure GIT repositories apart from GitHub. The +same principles presented in this tutorial apply for all Git providers. + +1. Go to the GitHub repo with the [Python Flask](https://github.com/codefresh-contrib/python-flask-sample-app) sample application. +1. At the top-right, click **Fork** to bring the source code to your own account. + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/fork-example-project.png" +url="/images/quick-start/quick-start-ci/fork-example-project.png" +alt="Forking the example application" +caption="Forking the example application" +max-width="80%" +%} + +After a few minutes, you should see the repo in your Git account. + +## Create and run CI pipeline + +We'll start by focusing on the first part of the CI pipeline, creating a Docker image. + +Docker images play a central role in Codefresh pipelines. They are the basic building blocks that serve as the link +between what your source code generates and what gets deployed. + +The example application already comes with its own Dockerfile. If your own application is not "dockerized" yet, you +need to create a Dockerfile for it first, before moving it into the Codefresh infrastructure. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/docker-build-steps.jpg" +url="/images/quick-start/quick-start-ci/docker-build-steps.jpg" +alt="Preparing a Docker image" +caption="Preparing a Docker image" +max-width="60%" +%} + + + + + +Creating a Codefresh pipeline includes: +1. [Connect a Docker registry to Codefresh](#connect-a-docker-registry-to-codefresh) +1. [Create a project for CI pipeline](#create-a-project-for-ci-pipeline) +1. [Create and run CI pipeline](#create-and-run-ci-pipeline) +1. [View and monitor CI pipeline build](#view-and-monitor-ci-pipeline-build) +1. [View the Docker image stored in Codefresh](#view-the-docker-image-stored-in-codefresh) + +### Connect a Docker registry to Codefresh + +Connect your Docker regsitry to Codefresh to store the Docker image of the sample application. +Codefresh supports all the popular Docker registries. +If you don't already have a registry, we recommend starting with the GitHub Registry for this quick start. + +#### Before you begin +Make sure you have completed all the [prerequsites](#quick-start-prerequisites) for the CI pipeline quick start + +#### How to + +1. In the Codefresh UI, on the toolbar, click the Settings icon, and then from Configuration, select **Pipeline Integrations**. +1. Select **Docker Registries** and then click **Configure**. +1. From the **Add Registry Provider** dropdown, select **Other Registries**. +1. Define the following: + * **Registry name**: A unique name for this configuration. + * **Username**: Your GitHub username. + * **Password**: Your GitHub personal token. + * **Domain**: `ghcr.io`. + * Expand **Advanced Options** and define the [**Repository Prefix**]({{site.baseurl}}/docs/integrations/docker-registries/#using-an-optional-repository-prefix) as your GitHub username. + +{% include image.html + lightbox="true" + file="/images/integrations/docker-registries/github/github-registry-codefresh.png" + url="/images/integrations/docker-registries/github/github-registry-codefresh.png" + alt="GitHub Container Registry settings" + caption="GitHub Container Registry settings" + max-width="70%" +%} + +{:start="5"} +1. To verify the connection details, click **Test Connection**. +1. To apply the changes, click **Save**. +1. Continue with [Create a project for CI pipeline](#create-a-project-for-ci-pipeline) + +### Create a project for CI pipeline + +Codefresh pipelines are grouped under projects. Think of a project as a folder or directory that groups related pipelines. For example, all pipleines that package/deploy the different microservices for an application. +You can define any name for the project, the most common example being the name of the application that the pipelines build and deploy. + +#### Before you begin + +* [Connect a Docker registry to Codefresh]({{site.baseurl}}/docs/quick-start/create-docker-registry-integration) + +#### How to +1. In the Codefresh UI, in the sidebar, from Pipelines, select **Projects**. +1. On the top-right, click **New Project**. +1. Enter the **Project Name**. For example, `my-first-project`. +1. Leave the **Project Tags** empty for the quick start. +1. Select any **Icon** you want. The icon is prefixed to the project name in the Projects page. +1. Click **Create**. + +{% include image.html + lightbox="true" + file="/images/quick-start/quick-start-ci/create-ci-project.png" + url="/images/quick-start/quick-start-ci/create-ci-project.png" + alt="Create project for CI pipeline" + caption="Create project for CI pipeline" + max-width="70%" +%} + + You now have a new project and can create your CI first pipeline. + +{:start="6"} +1. Continue with [Create and run the CI pipeline](#create-and-run-the-ci-pipeline). + +### Create and run CI pipeline +Create a CI pipeline to clone the Git repo and build the Docker image. +The pipeline includes just two steps: + * A [`git-clone`]({{site.baseurl}}/docs/pipelines/steps/git-clone/) step to check out the code. + The clone step also uses built-in variables that ensures that the pipeline checks out the exact code described in the commit of the trigger. Don't worry if the exact details are not clear to you yet. + * A [`build`]({{site.baseurl}}/docs/pipelines/steps/build/) step to build the docker image **AND** push it to the connected Docker registry. + The build step uses a [Dockerfile](https://github.com/codefresh-contrib/python-flask-sample-app/blob/master/Dockerfile) that is located at the root folder of the project and creates a Docker image with tag `v1.0.0`. + +#### Before you begin +* [Create a project for CI pipeline](#create-a-project-for-ci-pipeline) + +#### How to +1. From the Project page, select the project you created. +1. Click **Create Pipeline**. +1. Define the following: + * **Project**: The project is already selected. + * **Pipeline Name**: Enter a name for the pipeline. + * **Add Git repository**: Toggle to on. This setting launches the pipeline when there is a commit to the Git repository. + * **Add Git clone step to pipeline**: Select the repository with the sample application you forked from the list. +1. Click **Create**. + In the Workflow tab of the pipeline creation workspace, you'll see that the Inline YAML editor already has a sample YAML. + +{% include image.html + lightbox="true" + file="/images/quick-start/quick-start-ci/create-pipeline.png" + url="//images/quick-start/quick-start-ci/create-pipeline.png" + alt="Define pipeline settings" + caption="Define pipeline settings" + max-width="70%" +%} + +{:start="5"} +1. Copy and paste the `codefresh.yaml` below into the Inline editor to replace the existing content. +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - package +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}' + revision: '${{CF_REVISION}}' + stage: checkout + MyAppDockerImage: + title: Building Docker Image + type: build + stage: package + image_name: my-app-image + working_directory: ./ + tag: v1.0.0 + dockerfile: Dockerfile +{% endraw %} +{% endhighlight %} + +{:start="6"} +1. To apply your changes, click **Save**. +1. To start the pipeline, click **Run**. +1. Retain the default settings, and click **Run** once again. +1. Continue with [View and monitor CI pipeline build](#view-and-monitor-ci-pipeline-build) + +### View and monitor CI pipeline build +When you run the pipeline, Codefresh takes you to the Builds page where you can monitor the build progress of the sample application. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/building.png" +url="/images/quick-start/quick-start-ci/building.png" +alt="Monitoring the build run" +caption="Monitoring the build" +max-width="50%" +%} + +#### Before you begin +* [Create and run the CI pipeline](#create-and-run-the-ci-pipeline) + +#### How to +1. Click on the step **Building Docker Image**, and view the logs in the **Output** tab. + You can download the logs in HTML or text formats if you want to review them offline. + +The build should complete successfully. + +All previous runs are displayed in the [Builds page](https://g.codefresh.io/builds). + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/finished-build.png" +url="/images/quick-start/quick-start-ci/finished-build.png" +alt="Build details" +caption="Build details" +max-width="80%" +%} + +1. Contine with [View Docker image stored in Codefresh](#view-docker-image-stored-in-codefresh). + +### View Docker image stored in Codefresh + +The Codefresh build logs show that a Docker image is created after each successful build. Where does this image go? + +Codefresh has the unique feature where the build step that creates the Docker image, automatically also pushes the image to your default Docker registry! All the images that we have created so far, are stored in the registry you connected at the beginning of the quick start. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/docker-store-stage.jpg" +url="/images/quick-start/quick-start-ci/docker-store-stage.jpg" +alt="Automatic storage of Docker images" +caption="Automatic storage of Docker images" +max-width="80%" +%} + +#### Before you begin +[View and monitor CI pipeline build](#view-and-monitor-ci-pipeline-build) + +#### How to +1. In the Codefresh UI, expand Artifacts in the sidebar, and click **Images**. + A list of Docker images are displayed, sorted by the most recent. This dashboard is populated in real-time with updates from your Docker registry. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/docker-images.png" +url="/images/quick-start/quick-start-ci/docker-images.png" +alt="Recent Docker images" +caption="Recent Docker images (click image to enlarge)" +max-width="100%" +%} + + + +## Run unit tests on the Docker image +Run unit tests to validate the Docker image and confirm that it satisfies the requested functionality. Unit tests must be an integral part of the build process. + +We will add a new [freestyle step]({{site.baseurl}}/docs/pipelines/steps/freestyle/) to the pipeline's YAML, that runs unit tests. Freestyle steps run custom commands within Docker containers. + +For the quick start, we run the python command [within the docker image]({{site.baseurl}}/docs/pipelines/variables/#context-related-variables), created from the previous step `MyAppDockerImage` defined by the `image` property. + + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/unit-test-stage.jpg" +url="/images/quick-start/quick-start-ci/unit-test-stage.jpg" +alt="Unit tests workflow" +caption="Unit tests workflow" +max-width="80%" +%} + +### Before you begin + +* Verify you have a Docker image in Codefresh + +### How to + +1. In the Builds page, click the **YAML** tab and then click **Edit Pipeline**. + The Inline YAML editor in the Workflow tab is displayed. +1. Paste the following YAML that includes the new step to run unit tests into the Inline editor: + + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - package + - test +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}' + revision: '${{CF_REVISION}}' + stage: checkout + MyAppDockerImage: + title: Building Docker Image + type: build + stage: package + image_name: my-app-image #Change to your image name + working_directory: ./ + tag: v1.0.1 + dockerfile: Dockerfile + MyUnitTests: + title: Running Unit tests + image: '${{MyAppDockerImage}}' + stage: test + commands: + - pip install pytest + - pytest +{% endraw %} +{% endhighlight %} +{:start="3"} +1. Click **Run** and then click **Run** again to relaunch the build. +1. In the Builds page, you can see a new stage with the step labeled **Running unit tests**. +1. Click the step name to see the test output of the application. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/unit-test-result.png" +url="/images/quick-start/quick-start-ci/unit-test-result.png" +alt="Unit test results" +caption="Unit test results" +max-width="60%" +%} +{:start="6"} +1. Continue with [(Optional) Upload Docker images to Docker Hub](#optional-upload-docker-images-to-docker-hub). + +> Tip: + Codefresh can also run [integration tests]({{site.baseurl}}/docs/pipelines/steps/composition/), and report [test results]({{site.baseurl}}/docs/testing/test-reports/). + Therefore, regardless of the type of tests you employ, Codefresh can accommodate your testing process in a fully automated manner as part of the main build. + + +Codefresh offers extended functionality for pipelines. Read about it in the [YAML documentation]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/). + + + +## (Optional) Upload Docker images to Docker Hub + +As we saw, Codefresh automatically pushes the Docker image to the default Docker registry. +You can also upload the same Docker image to a different external registry or make it public in Docker Hub. + +The [push pipeline step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) does exactly that. It pushes an existing Docker image to the registry you define. + + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/docker-push-stage.jpg" +url="/images/quick-start/quick-start-ci/docker-push-stage.jpg" +alt="Pushing a Docker image" +caption="Pushing a Docker image" +max-width="80%" +%} + +As the last task in the CI pipeline quick start, we will push our sample application to [Docker Hub](https://cloud.docker.com/){:target="\_blank"}, the free public hosting registry of Docker Inc. +To do so, you will first need to create a free account in Docker Hub and then connect Docker Hub to Codefresh. + + +### Before you begin +* Verify you have a Docker image in Codefresh + + +### How to +1. Create a free account in Docker Hub. +1. Note down your username and password. + In your own projects, you can use any other [external registry]({{site.baseurl}}/docs/integrations/docker-registries/) you wish. + + >Docker.io allows you to only push images tagged with your username. If you can do so, create +a Docker Hub account with the same username that you have in Codefresh. If not, you need to change the Docker image +created to match your username in your Docker Hub account. + +{:start="3"} +1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from Configuration, select **Pipeline Integrations**. +1. Select **Docker Registries** and then click **Configure**. +1. From the **Add Registry Provider** dropdown, select **Docker Hub**. +1. Define the following: + * **Registry name**: Enter a unique name for this configuration. Note down the regsitry name. You will need it to define it in the pipeline. + * **Username**: Your Docker Hub username. + * **Password**: Your Docker Hub password. + * To verify the connection details, click **Test Connection**. You should see a success message. +1. To apply the changes, click **Save**. + You have now connected your Docker Hub account to your Codefresh account. + + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/add-docker-hub.png" +url="/images/quick-start/quick-start-ci/add-docker-hub.png" +alt="Docker Hub registry integration" +caption="Docker Hub registry integration" +max-width="60%" +%} + +{:start="8"} +1. Go back to the [Builds](https://g.codefresh.io/builds2){:target="\_blank"} page, and click the pipeline to return to the Inline editor. +1. Paste the following YAML to replace the existing content. + We added a [push step]({{site.baseurl}}/docs/codefresh-yaml/steps/push/) at the end of the pipeline. The image is tagged with the name of the branch. +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - package + - test + - upload +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}' + revision: '${{CF_REVISION}}' + stage: checkout + MyAppDockerImage: + title: Building Docker Image + type: build + stage: package + image_name: my-app-image + working_directory: ./ + tag: v1.0.1 + dockerfile: Dockerfile + MyUnitTests: + title: Running Unit tests + image: '${{MyAppDockerImage}}' + stage: test + commands: + - pip install pytest + - pytest + MyPushStep: + title: Pushing to Docker Registry + type: push + stage: upload + tag: '${{CF_BRANCH}}' + candidate: '${{MyAppDockerImage}}' + image_name: kkapelon/pythonflasksampleapp #Change kkapelon to your dockerhub username + registry: dockerhub # Name of your integration as was defined in the Registry screen +{% endraw %} +{% endhighlight %} +{:start="10"} +1. Replace the `registry` name with the name you specified in the Docker Hub integration settings. +1. To apply your changes, click **Save**, and then click **Run** to start the pipeline again. +1. Click the **Pushing to Docker registry** step to view the log and monitor the progress of the push step. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/docker-pushing.png" +url="/images/quick-start/quick-start-ci/docker-pushing.png" +alt="Pushing to Docker Hub" +caption="Pushing to Docker Hub (click image to enlarge)" +max-width="70%" +%} + +> Now you have two Docker registries connected to Codefresh. After the build completes execution, the Docker image of the sample application is stored **both** in the default Docker registry and in Docker Hub. + +To verify the latter, visit your profile in Docker Hub and look at the image details: + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-ci/docker-hub.png" +url="/images/quick-start/quick-start-ci/docker-hub.png" +alt="Image details in Docker Hub" +caption="Image details in Docker Hub" +max-width="60%" +%} + + +You have now completed the final task in the CI pipeline quick start. Now that we have the basic functionality ready, we can see how Codefresh handles [continuous integration](https://en.wikipedia.org/wiki/Continuous_integration) with Pull Requests (PRs) and automatic builds. + +## Read more on CI pipelines +[Introduction to Codefresh pipelines]({{site.baseurl}}/docs/pipelines/introduction-to-codefresh-pipelines/) +[Working with Docker registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/) +[Codefresh pipeline definitions YAML]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/) +[On-demand environments]({{site.baseurl}}/docs/getting-started/on-demand-environments/) +[Kubernetes deployment quick start]({{site.baseurl}}/docs/quick-start/ci-quickstart/deploy-to-kubernetes/) \ No newline at end of file diff --git a/_docs/quick-start/ci-quickstart/deploy-to-kubernetes.md b/_docs/quick-start/ci-quickstart/deploy-to-kubernetes.md new file mode 100644 index 000000000..0cc914827 --- /dev/null +++ b/_docs/quick-start/ci-quickstart/deploy-to-kubernetes.md @@ -0,0 +1,253 @@ +--- +title: "Kubernetes deployment quick start" +description: "How to deploy to a Kubernetes cluster from the Codefresh UI" +group: quick-start +sub_group: ci-quickstart +toc: true +--- + +This quick start will guide you through deploying the Docker image you created to a Kubernetes cluster, both manually through the Codefresh UI, and automatically through a pipeline. +Deploying the image through a pipeline, automatically redeploys the image when there are changes in the source code. + +For the quick start, we will use the Codefresh UI to create both the Kubernetes service inside the cluster and the CI/CD pipeline that keeps it up to date. + + +At the end of this quick start we will have a pipeline that: + +1. Checks out code from GitHub and creates a Docker image. +1. Stores it in the default Docker registry connected to your Codefresh account. +1. Notifies the Kubernetes cluster that a new version of the application is present. Kubernetes will pull the new image and deploy it. + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-k8s/overview.png" +url="/images/quick-start/quick-start-k8s/overview.png" +alt="Deployment to Kubernetes cluster" +caption="Deployment to Kubernetes cluster" +max-width="80%" +%} + + + +## Prerequisites for Kubernetes quick start + +* [Kubernetes cluster]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster) in Codefresh +* The Docker registry you connected to your Codefresh account in the CI pipeline quick start +* Either our sample application or your own application that has a Dockerfile. + +>For the quick start, you **don't** need a Kubernetes deployment file. Codefresh creates one for you via the UI. + + + +## Manually deploy Docker image to Kubernetes + +Deploy the Docker image to your Kubernetes cluster without writing any configuration files at all. + +1. Get the name of the Docker image you created: + 1. In the Codefresh UI, expand Artifacts in the sidebar, and select **Images**. + 1. Click the Docker image your created and then click **more details** on the right. + 1. In the **Summary** tab, copy the image name from Image Info. + + + + + +>Do not use `latest` for your deployments. This doesn't help you to understand which version is deployed. Use +either branch names or even better git hashes so that you know exactly what is deployed on your Kubernetes cluster. + Notice also that the YAML manifest that Codefresh creates has an image pull policy of `always`, so the cluster will always redeploy the latest image even if it has the same name as the previous one. + +{:start="2"} +1. In the Codefresh UI, expand Ops from the sidebar, and select **Kubernetes Services**. + Codefresh displays the deployments (pods and namespaces) in your Kubernetes cluster. +1. On the top-right, click **New**, and then select **Add Service**. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-k8s/add-service-button.png" +url="/images/quick-start/quick-start-k8s/add-service-button.png" +alt="Codefresh Kubernetes Dashboard" +caption="Codefresh Kubernetes Dashboard" +max-width="70%" +%} + +{:start="4"} +1. Create a Kubernetes deployment (and associated service): + * **Cluster**: The cluster to which to deploy your image. If you have more than one cluster, select the cluster. + * **Namespace**: The namespace in the cluster to which to deploy the application. For the quick start, retain **default**. + * **Service Name**: An arbitrary name for your service. + * **Replicas**: The number of replicas to create for resiliency. For the quick start, we'll define **1**. + * **Expose Port**: Select to make your application available outside the cluster and users can access it. + * **Image**: The fully qualified name of your Docker image that you copied from the Images dashboard. By default, Codefresh appends the branch name of a git commit to the resulting Docker image. This is why +we used the branch name as tag. + * **Image Pull Secret**: Select your default Docker registry and create a pull secret for it. + * **Internal Ports**: The port exposed from your application. The example Python app we deploy, exposes `5000`. +1. Click **Deploy**. Codefresh creates a Kubernetes YAML file behind the scenes and apply it to your Kubernetes cluster. + The cluster: + * Pulls the image from the Codefresh registry + * Creates all the needed resources (service, deployments, pods) to make the application available +1. Monitor the status of the deployment in the UI. + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-k8s/after-deployment.png" +url="/images/quick-start/quick-start-k8s/after-deployment.png" +alt="Codefresh K8s deployment" +caption="Codefresh K8s deployment" +max-width="70%" +%} + +Once the deployment is complete, you can see the public URL of the application. You can visit it in the browser +and see the application running. + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-k8s/before-change.png" +url="/images/quick-start/quick-start-k8s/before-change.png" +alt="Example Python Application" +caption="Example Python Application" +max-width="50%" +%} + +You have completed manually deploying a Docker image to a Kubernetes cluster without writing any YAML files at all! + +In the following task, we will automate the deployment process, so that every time there is a commit in Git, the application is redeployed. + +## Automatically deploy images to Kubernetes + +Set up a pipeline in Codefresh so that any commits in GitHub automatically redeploys the application, giving us a true CI/CD pipeline. +To do this, we will add a new [deploy step]({{site.baseurl}}/docs/pipelines/steps/deploy/) at the end of the pipeline. Deploy steps allow you to deploy Kubernetes applications in a declarative manner. + + +>The application itself is already running successfully in the Kubernetes cluster after the manual deployment. + +1. In the Codefresh UI, expand Pipelines in the sidebar, and select **Pipelines**. +1. From the pipeline list, select the pipeline you created. +1. Switch to the **Workflows** tab. +1. Replace the existing content in the Inline YAML editor with the example below. +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - package + - test + - upload + - deploy +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}' + revision: '${{CF_REVISION}}' + stage: checkout + MyAppDockerImage: + title: Building Docker Image + type: build + stage: package + image_name: my-app-image + working_directory: ./ + tag: '${{CF_BRANCH}}' + dockerfile: Dockerfile + disable_push: true + MyUnitTests: + title: Running Unit tests + image: '${{MyAppDockerImage}}' + stage: test + commands: + - python setup.py test + MyPushStep: + title: Pushing to DockerHub Registry + type: push + stage: upload + tag: '${{CF_BRANCH}}' + candidate: '${{MyAppDockerImage}}' + image_name: kkapelon/pythonflasksampleapp #Change kkapelon to your dockerhub username + registry: dockerhub # Name of your integration as was defined in the Registry screen + DeployToMyCluster: + title: deploying to cluster + type: deploy + stage: deploy + kind: kubernetes + ## cluster name as the shown in account's integration page + cluster: my-demo-k8s-cluster + # desired namespace + namespace: default + service: python-demo + candidate: + # The image that will replace the original deployment image + # The image that been build using Build step + image: kkapelon/pythonflasksampleapp:${{CF_BRANCH}} + # The registry that the user's Kubernetes cluster can pull the image from + # Codefresh will generate (if not found) secret and add it to the deployment so the Kubernetes master can pull it + registry: dockerhub +{% endraw %} +{% endhighlight %} +{:start="5"} +1. Click **Save**. + The deploy step updates the *existing* Kubernetes deployment. If needed, the step creates a [pull secret]({{site.baseurl}}/docs/ci-cd-guides/access-docker-registry-from-kubernetes/) for the image. It does not create any Kubernetes services, as we already created a Kubernetes service when we manually deployed the image. +1. Modify the application in the production branch, and commit/push the change to Git. + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-k8s/git-change.png" +url="/images/quick-start/quick-start-k8s/git-change.png" +alt="Commit change to Git" +caption="Commit change to Git" +max-width="70%" +%} + + Codefresh automatically identifies the change and [triggers]({{site.baseurl}}/docs/pipeline/triggers/) a new build that deploys the new version: + + + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-k8s/deployment-build.png" +url="/images/quick-start/quick-start-k8s/deployment-build.png" +alt="Codefresh K8s deployment" +caption="Codefresh K8s deployment" +max-width="90%" +%} + + +Once the build is complete, if you visit the URL, you will see your change applied. + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-k8s/after-change.png" +url="/images/quick-start/quick-start-k8s/after-change.png" +alt="Example Python Application after change" +caption="Example Python Application after change" +max-width="50%" +%} + +You now have a complete CI/CD pipeline in Codefresh for fully automated builds to Kubernetes. + +## Read more on Kubernetes deployments +[Helm deployment to Kubernetes quick start]({{site.baseurl}}/docs/quick-start/ci-quickstart/deploy-with-helm/) +[Deployment options for Kubernetes]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/) +[Introduction to Codefresh pipelines]({{site.baseurl}}/docs/pipelines/introduction-to-codefresh-pipelines/) +[Working with Docker registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/) +[Codefresh pipeline definitions YAML]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/) + + + + + + + + + + + + + + diff --git a/_docs/quick-start/ci-quickstart/deploy-with-helm.md b/_docs/quick-start/ci-quickstart/deploy-with-helm.md new file mode 100644 index 000000000..ac3167670 --- /dev/null +++ b/_docs/quick-start/ci-quickstart/deploy-with-helm.md @@ -0,0 +1,366 @@ +--- +title: "Helm deployment to Kubernetes quick start" +description: "Use the Helm package manager to deploy to a Kubernetes cluster from the Codefresh UI" +group: quick-start +sub_group: ci-quickstart +toc: true +--- + +The [Kubernetes deployment quick start]({{site.baseurl}}/docs/quick-start/ci-quickstart/deploy-to-kubernetes/) showed you how to quickly deploy an application directly to Kubernetes. + +The Helm quick start guides you through using [Helm](https://helm.sh/){:target="\_blank"} as a package manager in Codefresh to deploy to Kubernetes, view the Helm release, and store a Helm chart. + +[Helm](https://helm.sh/){:target="\_blank"} is similar to other package managers (yum, apt, npm, maven, pip, gems), but works at the application level allowing you to deploy multiple manifests together. + + + + + + + + + +This quick start will show you how to: + +1. Deploy a Helm release to your Kubernetes cluster +1. View the Helm release +1. Store a Helm package inside the integrated Codefresh repository + + + +For reasons of simplicity, we will use the [default Docker registry]({{site.baseurl}}/docs/docker-registries/external-docker-registries/#the-default-registry) that is set up globally in your Codefresh account. For your own application you can also use any other of your registries even if it is not the default. + + +## Prerequisites +* A [Kubernetes cluster]({{site.baseurl}}/docs/integrations/kubernetes/add-kubernetes-cluster/) in Codefresh +* The Docker registry you connected to your Codefresh account in the CI pipeline quick start +* An application that has a Dockerfile and a [Helm chart]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/#helm-setup) +* Cluster with pull access to your default Docker registry + If not read the [previous guide]({{site.baseurl}}/docs/getting-started/deployment-to-kubernetes-quick-start-guide/#deploying-a-docker-image-to-kubernetes-manually) or look at the [documentation]({{site.baseurl}}/docs/deploy-to-kubernetes/deploy-to-kubernetes/create-image-pull-secret/) + +If you want to follow along, feel free to fork this [repository](https://github.com/codefresh-contrib/python-flask-sample-app) in your Git account and look at the [with-helm](https://github.com/codefresh-contrib/python-flask-sample-app/tree/with-helm) branch. + +## Deploy a Helm Release to your Kubernetes cluster + + + + + + +Codefresh provides a special [Helm step](https://codefresh.io/steps/step/helm){:target="\_blank"} that you can use to perform a deployment. +We will create a new pipeline with the Helm deploy step and run it to deploy the release to your Kubernetes cluster. + + +The `DeployMyChart` Helm step has three environment variables: +* `chart_name` points to the [chart in the Git repository](https://github.com/codefresh-contrib/python-flask-sample-app/tree/with-helm/charts/python){:target="\_blank"}. +* `release_name` defines the name of the deployment to be created in the cluster. +* `kube_context` defines which cluster to be used. The name is the same as that of the cluster you added [Codefresh Integrations](https://g.codefresh.io/account-admin/account-conf/integration/kubernetes). + +The step deploys the Helm chart using the default values as found in `values.yaml` within the chart folder. +It makes sense to override the defaults using some parameters in the build. For example, instead of tagging the Docker image with the branch name (which is always the same for each build), we could tag it with the hash of the source revision. + +The `custom_values` override the default chart values. The underscores are replaced with dots. +Here we override the name of tag (to match the Docker image built in the previous step) and the pull policy. + + + +1. From the Project page, select the project you created. +1. Click **Create Pipeline**. +1. Define the following: + * **Project**: The project is already selected. + * **Pipeline Name**: Enter a name for the pipeline that will deploy with Helm. + * **Add Git repository**: Toggle to on. This setting launches the pipeline when there is a commit to the Git repository. + * **Add Git clone step to pipeline**: Select the repository with the sample application you forked from the list. +1. Click **Create**. + In the Workflow tab, you'll see that the Inline YAML editor already has a sample YAML. +1. Replace the existing content in the Inline YAML editor with the example below. +`YAML` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - package + - deploy +steps: + clone: + title: Cloning main repository... + type: git-clone + arguments: + repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}' + revision: '${{CF_REVISION}}' + stage: checkout + BuildingDockerImage: + title: Building Docker Image + type: build + arguments: + image_name: my-flask-app + working_directory: ./python-flask-sample-app + tag: '${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}}' + dockerfile: Dockerfile + stage: package + DeployMyChart: + type: helm + stage: deploy + working_directory: ./python-flask-sample-app + arguments: + action: install + chart_name: charts/python + release_name: my-python-chart + helm_version: 3.0.2 + kube_context: kostis-demo@FirstKubernetes + custom_values: + - 'buildID=${{CF_BUILD_ID}}' + - 'image_pullPolicy=Always' + - 'repository=r.cfcr.io/kostis-codefresh/my-flask-app' + - 'image_tag=${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}}' + - 'image_pullSecret=codefresh-generated-r.cfcr.io-cfcr-default' +{% endraw %} +{% endhighlight %} +1. Click **Save** and then click **Run** twice to run the pipeline. +1. Continue with [View Helm release](#view-helm-release). + +You can see the value replacements in the Helm logs inside the pipeline: + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-helm/helm-logs.png" +url="/images/quick-start/quick-start-helm/helm-logs.png" +alt="Helm Value replacement" +caption="Helm Value replacement" +max-width="100%" +%} + + +This is the easiest way to deploy to Kubernetes without having to manually change values in manifests. Helm and Codefresh take care of replacements using the built-in steps. + +## View Helm release + +When a Helm package is deployed to your Kubernetes cluster, Codefresh displays it in the [Helm releases]({{site.baseurl}}/docs/new-helm/helm-releases-management/) dashboard. + +### Before you begin +* [Deploy a Helm Release to your Kubernetes cluster](#deploy-a-helm-release-to-your-kubernetes-cluster) + +### How to + +1. In the Codefresh UI, expand Ops from the sidebar, and select **Helm Releases**. + The new release is displayed. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-helm/helm-release-details.png" +url="/images/quick-start/quick-start-helm/helm-release-details.png" +alt="Helm Releases dashboard with new release" +caption="Helm Releases dashboard with new release" +max-width="90%" +%} + + + +{:start="2"} +1. Click on the release and get information regarding its chart, its revisions, changed files and the resulting manifests. + +The build values that we defined in the `codefresh.yml` are shown here in a separate tab so it is very easy to +verify the correct parameters. + + {% include +image.html +lightbox="true" +file="/images/getting-started/quick-start-helm/helm-values.png" +url="/images/getting-started/quick-start-helm/helm-values.png" +alt="Helm values" +caption="Helm values" +max-width="70%" +%} + +>Tip: + To view the services/pods/deployments that comprise the helm release, you can go to the [Kubernetes Services dashboard](https://g.codefresh.io/kubernetes/services/){:target="\_blank"} . + + +### Roll back a Helm release + + + +With Helm, you can rollback a Helm release to a previous version without actually re-running the pipeline. +Helm gives you easy rollbacks for free. If you make some commits in your project, Helm retains the same deployment and adds new revisions on it. The server part of Helm keeps a history of all releases, and knows the exact contents of each respective Helm package. +As the rollback creates a new revision, you can move backwards and forwards in time to any revision. + +1. In the Codefresh UI, expand Ops from the sidebar, and select **Helm Releases**. +1. Click on the release, and then select the **History** tab. +1. From the list of revisions, select one as the rollback target. + + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-helm/helm-rollback.png" +url="/images/quick-start/quick-start-helm/helm-rollback.png" +alt="Helm rollback" +caption="Helm rollback" +max-width="70%" +%} + + + +## Store a Helm chart + +Codefresh includes a [built-in Helm repository]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/), available to all accounts. Like any other public Helm repository, you can store charts in this repository, and also manually deploy applications from it. + +For the quick start, we will modify the pipeline with the Helm deploy step you created in the previous task. +We use the same `helm` step, but instead of deploying the Helm package which is the default action, we define `push` as the action. The pipeline now stores the Helm chart in the internal repository. + +To store a Helm chart, you either need to import the shared configuration that defines the integrated Helm repository, or define the repository URL directly. +For the quick start, we will import the shared configuration. + + +#### Before you begin +* [Create and run pipeline with a Helm step](#create-and-run-pipeline-with-a-helm-step) + +#### How to + +1. In the Codefresh UI, expand Pipelines from the sidebar, and select **Pipelines**. +1. Select the pipeline with the Helm deploy step. +1. In the Workflow tab, click the **Variables** tab on the right. +1. From the Variables toolbar, click the context menu, and then select **Add Shared Configuration**. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-helm/helm-select-shared-configuration.png" +url="/images/getting-started/quick-start-helm/helm-select-shared-configuration.png" +alt="Add Shared Configuration option" +caption="Add Shared Configuration option" +max-width="70%" +%} + +{:start="5"} +1. From the list, select **CF_HELM_DEFAULT** which defines the configuration of the integrated Helm repository, and click **Add**. + + {% include +image.html +lightbox="true" +file="/images/getting-started/quick-start-helm/import-helm-repo-conf.png" +url="/images/getting-started/quick-start-helm/import-helm-repo-conf.png" +alt="Helm settings" +caption="Import Helm repository configuration (click image to enlarge)" +max-width="70%" +%} + +{:start="6"} +1. Go to the Inline YAML editor with the pipeline definition and modify the deploy step in your `codefresh.yml`: +`YAML` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - package + - deploy +steps: + clone: + title: Cloning main repository... + type: git-clone + arguments: + repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}' + revision: '${{CF_REVISION}}' + stage: checkout + BuildingDockerImage: + title: Building Docker Image + type: build + working_directory: ${{clone}} + arguments: + image_name: my-flask-app + tag: '${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}}' + dockerfile: Dockerfile + stage: package + deploy: + title: Storing Helm chart + type: helm + stage: deploy + working_directory: ./python-flask-sample-app + arguments: + action: push + chart_name: charts/python + helm_version: 3.0.2 + kube_context: 'mydemoAkscluster@BizSpark Plus' +{% endraw %} +{% endhighlight %} + + As you can see, the `action` argument has `push` as its value. + +{:start="7"} +1. Click **Save** and **Run** twice to run the pipeline. +1. View the pipeline build in the [Helm releases]({{site.baseurl}}/docs/new-helm/helm-releases-management/) dashboard. + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-helm/helm-only-store.png" +url="/images/quick-start/quick-start-helm/helm-only-store.png" +alt="Storing Helm chart" +caption="Storing Helm chart" +max-width="100%" +%} + +{:start="8"}click the +1. When the pipeline build completes execution, expand Artifacts from the sidebar, and select **Helm charts**. + + {% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-helm/helm-repo.png" +url="/images/quick-start/quick-start-helm/helm-repo.png" +alt="Helm chart in repository" +caption="Helm chart in repository" +max-width="70%" +%} + + +> You can click the **Install** button to manually deploy manually the chart. Codefresh will allow to enter your own values in that case and also select your target cluster. + + + +You now know how to deploy a Helm release from Codefresh, view the release, and store the Helm chart in a repository. + +## Read more on deployments with Helm +[Codefresh built-in Helm repository]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/) +[Using Helm in Codefresh pipelines]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/) +[Helm pipeline example]({{site.baseurl}}/docs/example-catalog/cd-examples/helm/) +[Codefresh pipeline definitions YAML]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/) + diff --git a/_docs/quick-start/ci-quickstart/on-demand-environments.md b/_docs/quick-start/ci-quickstart/on-demand-environments.md new file mode 100644 index 000000000..4e07f5766 --- /dev/null +++ b/_docs/quick-start/ci-quickstart/on-demand-environments.md @@ -0,0 +1,112 @@ +--- +title: "On-demand environment quick start" +description: "Code collaboration with Codefresh" +group: quick-start +sub_group: ci-quickstart +toc: true + +--- + +This quick start guides you through creating separate demo environments to test different features that developers are working on. + +Codefresh has the unique capability of launching Docker images in temporary test environments. These test environments +are ephemeral, and are perfect for quick demos. Use them to quickly share a feature with a colleague or a customer. + +> Test environments are not intended to be used as QA (let alone production) environments. + +## Launch a Docker image using Codefresh + +Docker images play a central role in Codefresh. +In the [CI pipeline quick start]({{site.baseurl}}/docs/quick-start/ci-quickstart/create-ci-pipeline/), you saw how to easily create a Docker image from your source code. + +In this quick start, we will take this one step further, and launch the resulting Docker image. +Codefresh has the unique capability of launching a Docker image (using [Docker Swarm](https://docs.docker.com/engine/swarm/) behind the scenes) on the same hosted environment that Codefresh itself runs on. +This means that with zero effort from your side, you can quickly inspect the status of your application using the Codefresh infrastructure. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-test-pr/demo-stage.jpg" +url="/images/quick-start/quick-start-test-pr/demo-stage.jpg" +max-width="80%" +%} + + + +1. In the Codefresh UI, go to [Images](https://g.codefresh.io/2.0/images){:target="\_blank"}. +1. Select the image and click **Launch**. + + +1. As our sample application consists of only a single Docker image, select **standalone**. + Codefresh automatically knows which port should be exposed in the test environment, that is, which port of the Docker container should be made available for external connections. + Our sample application exposes its web interface at port 5000, but a random port is actually assigned for external connections. +1. Once the application is launched, Codefresh displays the run log. You will see the same messages that would appear if you executed the `docker run` command locally. + +{% include +image.html +lightbox="true" +file="/images/getting-started/quick-start-test-pr/launch-url.png" +url="/images/getting-started/quick-start-test-pr/launch-url.png" +alt="Start logs" +caption="Start logs (click image to enlarge)" +max-width="60%" +%} + +## Access the test environment + +Once launch is complete, Codefresh prints a dynamic URL for the deployed environment. +Now you have a demo environment created just for you! You can send this link with an email to a colleague to ask for feedback or to a customer to show progress. + + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-test-pr/demo-environment.png" +url="/images/quick-start/quick-start-test-pr/demo-environment.png" +alt="Test environment" +caption="Test environment" +max-width="60%" +%} + +>If the environment is not functioning correctly for your own application, make sure that the port exposed by Codefresh in the **Launch settings** is the one that is actually used in your application as an HTTP endpoint. + +You can also view your on-demand environment in Codefresh, and get additional details on the environment. + +1. In the Codefresh UI, go to [Compositions](https://g.codefresh.io/compositions){:target="\_blank"}. +1. Click the **Running Compositions** tab. + You will see the test environment you created, and details such as: + * The branch from which this environment is created + * The Git commit that represents this environment + * The URL endpoint created by Codefresh + * On the right, action button that allow you to visit the environment directly, share the link on Slack, and most importantly, stop the environment, so that it doesn't count against your account. + It is a good practice to launch environments only when you need them and clean them up once you are done with them. + +{% include +image.html +lightbox="true" +file="/images/quick-start/quick-start-test-pr/env-details.png" +url="/images/quick-start/quick-start-test-pr/env-details.png" +alt="Details for an active on-demand environment" +caption="Details for active on-demand environment" +max-width="70%" +%} + + + +## Read more +[Kubernetes deployment quick start]({{site.baseurl}}/docs/getting-started/deployment-to-kubernetes-quick-start-guide/) +[Introduction to Codefresh pipelines]({{site.baseurl}}/docs/pipelines/introduction-to-codefresh-pipelines/) + + + diff --git a/_docs/quick-start/create-codefresh-account.md b/_docs/quick-start/create-codefresh-account.md new file mode 100644 index 000000000..210e0590d --- /dev/null +++ b/_docs/quick-start/create-codefresh-account.md @@ -0,0 +1,123 @@ +--- +title: "Create Codefresh account quick start" +description: "Start working in Codefresh" +group: quick-start +toc: true +--- +Once you have installed Codefresh, the next step is to create an account in Codefresh. + +This quick start guides you through creating an account in Codefresh: + +After you select the IdP (identity provider), Codefresh requests permission to access your basic details, and for Git providers, to access your Git repositories. The Permissions window that is displayed differs according to the IdP selected in the previous step. + +Don't worry, Codefresh will not do anything without your explicit approval, so don't be scared by the permissions shown +in the request window. The permissions requested by Codefresh are needed in order to build and deploy your projects. + +{% include +image.html +lightbox="true" +file="/images/administration/create-account/create-account-steps.png" +url="/images/administration/create-account/create-account-steps.png" +alt="Codefresh account creation steps" +max-width="90%" +%} + +## Step 1: Select your Identity Provider +As the first step in setting up your account in Codefresh, +Codefresh currently supports the following IdPs: +* GitHub +* Bitbucket +* GitLab +* Azure +* Google +* LDAP + +If you need an IdP that is not in the list, please [contact us](https://codefresh.io/contact-us/) with the details. + +>NOTES: + For Git repositories, the login method is less important, as you can Git repositories through [Git integrations]({{site.baseurl}}/docs/integrations/git-providers/), regardless of your sign-up process. + + If you multiple sign-up methods, as long as you use the same email address in all the sign-ups, Codefresh automatically redirects you to the account dashboard. + +1. Select the identity provider (IdP) to use: + 1. Go to the [Codefresh Sign Up page](https://g.codefresh.io/signup). + 1. Select the IdP for sign-up. + +{% include +image.html +lightbox="true" +file="/images/administration/create-account/select-identity-provider.png" +url="/images/administration/create-account/select-identity-provider.png" +alt="Codefresh sign-up page" +caption="Codefresh sign-up page" +max-width="40%" +%} + +{:start="2"} +1. Accept the permissions request for the selected IdP: + * For GitHub: To continue, click **Authorize codefresh-io**. + * For Bitbucket: To continue, click **Grant access**. + * For GitLab: To continue, click **Authorize**. + + Once you confirm the permissions for your Git provider, Codefresh automatically connects to your Git provider and fetches your basic account details, such as your email. + +{:start="3"} +1. Review the details for your new account, make the relevant changes, and click **NEXT**. + +{% include +image.html +lightbox="true" +file="/images/administration/create-account/codefresh-signup.png" +url="/images/administration/create-account/codefresh-signup.png" +alt="Codefresh account details" +caption="Codefresh account details" +max-width="40%" +%} + +{:start="4"} +1. Enter a name for your account, and click **NEXT**. + +{% include +image.html +lightbox="true" +file="/images/administration/create-account/codefresh-accountname.png" +url="/images/administration/create-account/codefresh-accountname.png" +alt="Codefresh account name" +caption="Codefresh account name" +max-width="40%" +%} + +{:start="5"} +1. Finally, answer the questions to personalize your account and click **FINISH**. + +{% include +image.html +lightbox="true" +file="/images/administration/create-account/codefresh-personalize.png" +url="/images/administration/create-account/codefresh-personalize.png" +alt="Codefresh personalize account" +caption="Codefresh personalize account" +max-width="40%" +%} + +Congratulations! Your new Codefresh account is now ready. + +{% include +image.html +lightbox="true" +file="/images/administration/create-account/codefresh-dashboard.png" +url="/images/administration/create-account/codefresh-dashboard.png" +alt="Codefresh dashboard" +caption="Codefresh dashboard" +max-width="40%" +%} + + +## Related quick starts +[CI pipeline quick start]({{site.baseurl}}/docs/quick-start/ci-quickstart/create-ci-pipeline/) +[Kubernetes deployment quick start]({{site.baseurl}}/docs/quick-start/ci-quickstart/deploy-to-kubernetes/) +[Helm deployment to Kubernetes quick start]({{site.baseurl}}/docs/quick-start/ci-quickstart/deploy-with-helm/) +[On-demand environment quick start]({{site.baseurl}}/docs/quick-start/ci-quickstart/on-demand-environments/) + + + diff --git a/images/create-project.png b/images/create-project.png new file mode 100644 index 000000000..2a582026b Binary files /dev/null and b/images/create-project.png differ diff --git a/images/quick-start/create-account/bitbucket-authorize.png b/images/quick-start/create-account/bitbucket-authorize.png new file mode 100644 index 000000000..987adbff3 Binary files /dev/null and b/images/quick-start/create-account/bitbucket-authorize.png differ diff --git a/images/quick-start/create-account/codefresh-accountname.png b/images/quick-start/create-account/codefresh-accountname.png new file mode 100644 index 000000000..44cfd1036 Binary files /dev/null and b/images/quick-start/create-account/codefresh-accountname.png differ diff --git a/images/quick-start/create-account/codefresh-dashboard.png b/images/quick-start/create-account/codefresh-dashboard.png new file mode 100644 index 000000000..86c077b08 Binary files /dev/null and b/images/quick-start/create-account/codefresh-dashboard.png differ diff --git a/images/quick-start/create-account/codefresh-personalize.png b/images/quick-start/create-account/codefresh-personalize.png new file mode 100644 index 000000000..205fd55b3 Binary files /dev/null and b/images/quick-start/create-account/codefresh-personalize.png differ diff --git a/images/quick-start/create-account/codefresh-signup.png b/images/quick-start/create-account/codefresh-signup.png new file mode 100644 index 000000000..ab7a35661 Binary files /dev/null and b/images/quick-start/create-account/codefresh-signup.png differ diff --git a/images/quick-start/create-account/create-account-steps.png b/images/quick-start/create-account/create-account-steps.png new file mode 100644 index 000000000..9769257b5 Binary files /dev/null and b/images/quick-start/create-account/create-account-steps.png differ diff --git a/images/quick-start/create-account/git-firewall.png b/images/quick-start/create-account/git-firewall.png new file mode 100644 index 000000000..bf4842c4f Binary files /dev/null and b/images/quick-start/create-account/git-firewall.png differ diff --git a/images/quick-start/create-account/github-authorize.png b/images/quick-start/create-account/github-authorize.png new file mode 100644 index 000000000..49aa8809b Binary files /dev/null and b/images/quick-start/create-account/github-authorize.png differ diff --git a/images/quick-start/create-account/gitlab-authorize.png b/images/quick-start/create-account/gitlab-authorize.png new file mode 100644 index 000000000..d666b39f6 Binary files /dev/null and b/images/quick-start/create-account/gitlab-authorize.png differ diff --git a/images/quick-start/create-account/select-identity-provider.png b/images/quick-start/create-account/select-identity-provider.png new file mode 100644 index 000000000..d5321606e Binary files /dev/null and b/images/quick-start/create-account/select-identity-provider.png differ diff --git a/images/quick-start/create-account/stash.png b/images/quick-start/create-account/stash.png new file mode 100644 index 000000000..1415da356 Binary files /dev/null and b/images/quick-start/create-account/stash.png differ diff --git a/images/quick-start/quick-start-ci/add-docker-hub.png b/images/quick-start/quick-start-ci/add-docker-hub.png new file mode 100644 index 000000000..fcac5f314 Binary files /dev/null and b/images/quick-start/quick-start-ci/add-docker-hub.png differ diff --git a/images/quick-start/quick-start-ci/add-new.png b/images/quick-start/quick-start-ci/add-new.png new file mode 100644 index 000000000..92780006e Binary files /dev/null and b/images/quick-start/quick-start-ci/add-new.png differ diff --git a/images/quick-start/quick-start-ci/build-button.png b/images/quick-start/quick-start-ci/build-button.png new file mode 100644 index 000000000..6da6cdc1c Binary files /dev/null and b/images/quick-start/quick-start-ci/build-button.png differ diff --git a/images/quick-start/quick-start-ci/build-method.png b/images/quick-start/quick-start-ci/build-method.png new file mode 100644 index 000000000..1be012842 Binary files /dev/null and b/images/quick-start/quick-start-ci/build-method.png differ diff --git a/images/quick-start/quick-start-ci/building.png b/images/quick-start/quick-start-ci/building.png new file mode 100644 index 000000000..07d491905 Binary files /dev/null and b/images/quick-start/quick-start-ci/building.png differ diff --git a/images/quick-start/quick-start-ci/ci-with-merges.svg b/images/quick-start/quick-start-ci/ci-with-merges.svg new file mode 100644 index 000000000..2da15cc57 --- /dev/null +++ b/images/quick-start/quick-start-ci/ci-with-merges.svg @@ -0,0 +1,974 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + Git + + + + Compile/Package + + + + Build Docker Image + + + StoreDocker Image + + + PushDockerImage + + + + Test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pull request + Pull request + Feature 2 + Feature 1 + Master + + + + + diff --git a/images/quick-start/quick-start-ci/create-ci-project.png b/images/quick-start/quick-start-ci/create-ci-project.png new file mode 100644 index 000000000..b794862c0 Binary files /dev/null and b/images/quick-start/quick-start-ci/create-ci-project.png differ diff --git a/images/quick-start/quick-start-ci/create-pipeline.png b/images/quick-start/quick-start-ci/create-pipeline.png new file mode 100644 index 000000000..332301eb6 Binary files /dev/null and b/images/quick-start/quick-start-ci/create-pipeline.png differ diff --git a/images/quick-start/quick-start-ci/dashboard.png b/images/quick-start/quick-start-ci/dashboard.png new file mode 100644 index 000000000..34a927ba3 Binary files /dev/null and b/images/quick-start/quick-start-ci/dashboard.png differ diff --git a/images/quick-start/quick-start-ci/docker-build-steps.jpg b/images/quick-start/quick-start-ci/docker-build-steps.jpg new file mode 100644 index 000000000..69b2f4165 Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-build-steps.jpg differ diff --git a/images/quick-start/quick-start-ci/docker-build-steps.png b/images/quick-start/quick-start-ci/docker-build-steps.png new file mode 100644 index 000000000..178b822eb Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-build-steps.png differ diff --git a/images/quick-start/quick-start-ci/docker-build-steps.svg b/images/quick-start/quick-start-ci/docker-build-steps.svg new file mode 100644 index 000000000..2b0021a39 --- /dev/null +++ b/images/quick-start/quick-start-ci/docker-build-steps.svg @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + Git + + + + Compile/Package + + + + Build Docker Image + + + + + diff --git a/images/quick-start/quick-start-ci/docker-file-locate.png b/images/quick-start/quick-start-ci/docker-file-locate.png new file mode 100644 index 000000000..81d73d6d5 Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-file-locate.png differ diff --git a/images/quick-start/quick-start-ci/docker-hub.png b/images/quick-start/quick-start-ci/docker-hub.png new file mode 100644 index 000000000..ff945379c Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-hub.png differ diff --git a/images/quick-start/quick-start-ci/docker-images.png b/images/quick-start/quick-start-ci/docker-images.png new file mode 100644 index 000000000..986ba244e Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-images.png differ diff --git a/images/quick-start/quick-start-ci/docker-layers.png b/images/quick-start/quick-start-ci/docker-layers.png new file mode 100644 index 000000000..090e94c0d Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-layers.png differ diff --git a/images/quick-start/quick-start-ci/docker-push-stage.jpg b/images/quick-start/quick-start-ci/docker-push-stage.jpg new file mode 100644 index 000000000..47575b018 Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-push-stage.jpg differ diff --git a/images/quick-start/quick-start-ci/docker-push-stage.png b/images/quick-start/quick-start-ci/docker-push-stage.png new file mode 100644 index 000000000..101dec208 Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-push-stage.png differ diff --git a/images/quick-start/quick-start-ci/docker-push-stage.svg b/images/quick-start/quick-start-ci/docker-push-stage.svg new file mode 100644 index 000000000..597cd444d --- /dev/null +++ b/images/quick-start/quick-start-ci/docker-push-stage.svg @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + Git + + Compile/Package + + Build Docker Image + + StoreDocker Image + + + PushDockerImage + + + Test + + + + + + + diff --git a/images/quick-start/quick-start-ci/docker-pushing.png b/images/quick-start/quick-start-ci/docker-pushing.png new file mode 100644 index 000000000..68243eaf0 Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-pushing.png differ diff --git a/images/quick-start/quick-start-ci/docker-store-stage.jpg b/images/quick-start/quick-start-ci/docker-store-stage.jpg new file mode 100644 index 000000000..df71408b8 Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-store-stage.jpg differ diff --git a/images/quick-start/quick-start-ci/docker-store-stage.png b/images/quick-start/quick-start-ci/docker-store-stage.png new file mode 100644 index 000000000..99ddf870b Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-store-stage.png differ diff --git a/images/quick-start/quick-start-ci/docker-store-stage.svg b/images/quick-start/quick-start-ci/docker-store-stage.svg new file mode 100644 index 000000000..dcc35e69f --- /dev/null +++ b/images/quick-start/quick-start-ci/docker-store-stage.svg @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + Git + + Compile/Package + + Build Docker Image + + + StoreDocker Image + + + Test + + + + + + diff --git a/images/quick-start/quick-start-ci/docker-timeline.png b/images/quick-start/quick-start-ci/docker-timeline.png new file mode 100644 index 000000000..ea7c844d9 Binary files /dev/null and b/images/quick-start/quick-start-ci/docker-timeline.png differ diff --git a/images/quick-start/quick-start-ci/external-registries.png b/images/quick-start/quick-start-ci/external-registries.png new file mode 100644 index 000000000..572b45d1b Binary files /dev/null and b/images/quick-start/quick-start-ci/external-registries.png differ diff --git a/images/quick-start/quick-start-ci/finished-build.png b/images/quick-start/quick-start-ci/finished-build.png new file mode 100644 index 000000000..aa474d944 Binary files /dev/null and b/images/quick-start/quick-start-ci/finished-build.png differ diff --git a/images/quick-start/quick-start-ci/fork-example-project.png b/images/quick-start/quick-start-ci/fork-example-project.png new file mode 100644 index 000000000..22dd534b6 Binary files /dev/null and b/images/quick-start/quick-start-ci/fork-example-project.png differ diff --git a/images/quick-start/quick-start-ci/inspect-docker-file.png b/images/quick-start/quick-start-ci/inspect-docker-file.png new file mode 100644 index 000000000..8652e71ec Binary files /dev/null and b/images/quick-start/quick-start-ci/inspect-docker-file.png differ diff --git a/images/quick-start/quick-start-ci/pipeline-overview.jpg b/images/quick-start/quick-start-ci/pipeline-overview.jpg new file mode 100644 index 000000000..6443154ef Binary files /dev/null and b/images/quick-start/quick-start-ci/pipeline-overview.jpg differ diff --git a/images/quick-start/quick-start-ci/pipeline-overview.png b/images/quick-start/quick-start-ci/pipeline-overview.png new file mode 100644 index 000000000..b36aa08d6 Binary files /dev/null and b/images/quick-start/quick-start-ci/pipeline-overview.png differ diff --git a/images/quick-start/quick-start-ci/pipeline-overview.svg b/images/quick-start/quick-start-ci/pipeline-overview.svg new file mode 100644 index 000000000..51fbcdadb --- /dev/null +++ b/images/quick-start/quick-start-ci/pipeline-overview.svg @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + Git + + + + Compile/Package + + + + Build Docker Image + + + StoreDocker Image + + + PushDockerImage + + + + Test + + DemoEnvironment + + + + + + + + diff --git a/images/quick-start/quick-start-ci/push-to-registry.png b/images/quick-start/quick-start-ci/push-to-registry.png new file mode 100644 index 000000000..26214fb07 Binary files /dev/null and b/images/quick-start/quick-start-ci/push-to-registry.png differ diff --git a/images/quick-start/quick-start-ci/sample-application.png b/images/quick-start/quick-start-ci/sample-application.png new file mode 100644 index 000000000..0bbe73d5f Binary files /dev/null and b/images/quick-start/quick-start-ci/sample-application.png differ diff --git a/images/quick-start/quick-start-ci/select-branch-to-build.png b/images/quick-start/quick-start-ci/select-branch-to-build.png new file mode 100644 index 000000000..9ecb3f18c Binary files /dev/null and b/images/quick-start/quick-start-ci/select-branch-to-build.png differ diff --git a/images/quick-start/quick-start-ci/select-git-repository.png b/images/quick-start/quick-start-ci/select-git-repository.png new file mode 100644 index 000000000..d42f3c64c Binary files /dev/null and b/images/quick-start/quick-start-ci/select-git-repository.png differ diff --git a/images/quick-start/quick-start-ci/unit-test-result.png b/images/quick-start/quick-start-ci/unit-test-result.png new file mode 100644 index 000000000..a7ad54d86 Binary files /dev/null and b/images/quick-start/quick-start-ci/unit-test-result.png differ diff --git a/images/quick-start/quick-start-ci/unit-test-stage.jpg b/images/quick-start/quick-start-ci/unit-test-stage.jpg new file mode 100644 index 000000000..9e0c9c06e Binary files /dev/null and b/images/quick-start/quick-start-ci/unit-test-stage.jpg differ diff --git a/images/quick-start/quick-start-ci/unit-test-stage.png b/images/quick-start/quick-start-ci/unit-test-stage.png new file mode 100644 index 000000000..e0e098ff2 Binary files /dev/null and b/images/quick-start/quick-start-ci/unit-test-stage.png differ diff --git a/images/quick-start/quick-start-ci/unit-test-stage.svg b/images/quick-start/quick-start-ci/unit-test-stage.svg new file mode 100644 index 000000000..29b91cffc --- /dev/null +++ b/images/quick-start/quick-start-ci/unit-test-stage.svg @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + Git + + Compile/Package + + Build Docker Image + + + Test + + + + + + diff --git a/images/quick-start/quick-start-ci/unit-tests.png b/images/quick-start/quick-start-ci/unit-tests.png new file mode 100644 index 000000000..e881c02a6 Binary files /dev/null and b/images/quick-start/quick-start-ci/unit-tests.png differ diff --git a/images/quick-start/quick-start-ci/webhook-github.png b/images/quick-start/quick-start-ci/webhook-github.png new file mode 100644 index 000000000..60021616b Binary files /dev/null and b/images/quick-start/quick-start-ci/webhook-github.png differ diff --git a/images/quick-start/quick-start-ci/yaml-toggle.png b/images/quick-start/quick-start-ci/yaml-toggle.png new file mode 100644 index 000000000..a3712d889 Binary files /dev/null and b/images/quick-start/quick-start-ci/yaml-toggle.png differ diff --git a/images/quick-start/quick-start-helm/empty-helm-cluster.png b/images/quick-start/quick-start-helm/empty-helm-cluster.png new file mode 100644 index 000000000..3af8d098e Binary files /dev/null and b/images/quick-start/quick-start-helm/empty-helm-cluster.png differ diff --git a/images/quick-start/quick-start-helm/helm-logs.png b/images/quick-start/quick-start-helm/helm-logs.png new file mode 100644 index 000000000..fa5a57942 Binary files /dev/null and b/images/quick-start/quick-start-helm/helm-logs.png differ diff --git a/images/quick-start/quick-start-helm/helm-only-store.png b/images/quick-start/quick-start-helm/helm-only-store.png new file mode 100644 index 000000000..0e7f4e2c6 Binary files /dev/null and b/images/quick-start/quick-start-helm/helm-only-store.png differ diff --git a/images/quick-start/quick-start-helm/helm-release-details.png b/images/quick-start/quick-start-helm/helm-release-details.png new file mode 100644 index 000000000..fdd692b8e Binary files /dev/null and b/images/quick-start/quick-start-helm/helm-release-details.png differ diff --git a/images/quick-start/quick-start-helm/helm-repo.png b/images/quick-start/quick-start-helm/helm-repo.png new file mode 100644 index 000000000..bab1ce09b Binary files /dev/null and b/images/quick-start/quick-start-helm/helm-repo.png differ diff --git a/images/quick-start/quick-start-helm/helm-rollback.png b/images/quick-start/quick-start-helm/helm-rollback.png new file mode 100644 index 000000000..8e7afa0a2 Binary files /dev/null and b/images/quick-start/quick-start-helm/helm-rollback.png differ diff --git a/images/quick-start/quick-start-helm/helm-select-shared-configuration.png b/images/quick-start/quick-start-helm/helm-select-shared-configuration.png new file mode 100644 index 000000000..4f1cb75c0 Binary files /dev/null and b/images/quick-start/quick-start-helm/helm-select-shared-configuration.png differ diff --git a/images/quick-start/quick-start-helm/helm-values.png b/images/quick-start/quick-start-helm/helm-values.png new file mode 100644 index 000000000..f5eae9b13 Binary files /dev/null and b/images/quick-start/quick-start-helm/helm-values.png differ diff --git a/images/quick-start/quick-start-helm/helm-version-selection.png b/images/quick-start/quick-start-helm/helm-version-selection.png new file mode 100644 index 000000000..b88412000 Binary files /dev/null and b/images/quick-start/quick-start-helm/helm-version-selection.png differ diff --git a/images/quick-start/quick-start-helm/import-helm-repo-conf.png b/images/quick-start/quick-start-helm/import-helm-repo-conf.png new file mode 100644 index 000000000..6b0b984fe Binary files /dev/null and b/images/quick-start/quick-start-helm/import-helm-repo-conf.png differ diff --git a/images/quick-start/quick-start-k8s/add-codefresh-registry.png b/images/quick-start/quick-start-k8s/add-codefresh-registry.png new file mode 100644 index 000000000..1f189587d Binary files /dev/null and b/images/quick-start/quick-start-k8s/add-codefresh-registry.png differ diff --git a/images/quick-start/quick-start-k8s/add-service-button.png b/images/quick-start/quick-start-k8s/add-service-button.png new file mode 100644 index 000000000..5201bb34a Binary files /dev/null and b/images/quick-start/quick-start-k8s/add-service-button.png differ diff --git a/images/quick-start/quick-start-k8s/add-service.png b/images/quick-start/quick-start-k8s/add-service.png new file mode 100644 index 000000000..9e591d297 Binary files /dev/null and b/images/quick-start/quick-start-k8s/add-service.png differ diff --git a/images/quick-start/quick-start-k8s/after-change.png b/images/quick-start/quick-start-k8s/after-change.png new file mode 100644 index 000000000..5251e7d9d Binary files /dev/null and b/images/quick-start/quick-start-k8s/after-change.png differ diff --git a/images/quick-start/quick-start-k8s/after-deployment.png b/images/quick-start/quick-start-k8s/after-deployment.png new file mode 100644 index 000000000..24785c27f Binary files /dev/null and b/images/quick-start/quick-start-k8s/after-deployment.png differ diff --git a/images/quick-start/quick-start-k8s/before-change.png b/images/quick-start/quick-start-k8s/before-change.png new file mode 100644 index 000000000..00277967c Binary files /dev/null and b/images/quick-start/quick-start-k8s/before-change.png differ diff --git a/images/quick-start/quick-start-k8s/deployment-build.png b/images/quick-start/quick-start-k8s/deployment-build.png new file mode 100644 index 000000000..d99bb08c9 Binary files /dev/null and b/images/quick-start/quick-start-k8s/deployment-build.png differ diff --git a/images/quick-start/quick-start-k8s/deployment-in-progress.png b/images/quick-start/quick-start-k8s/deployment-in-progress.png new file mode 100644 index 000000000..d4f7c703e Binary files /dev/null and b/images/quick-start/quick-start-k8s/deployment-in-progress.png differ diff --git a/images/quick-start/quick-start-k8s/deployment-step.png b/images/quick-start/quick-start-k8s/deployment-step.png new file mode 100644 index 000000000..d4f7c703e Binary files /dev/null and b/images/quick-start/quick-start-k8s/deployment-step.png differ diff --git a/images/quick-start/quick-start-k8s/docker-image-name.png b/images/quick-start/quick-start-k8s/docker-image-name.png new file mode 100644 index 000000000..162a46c8f Binary files /dev/null and b/images/quick-start/quick-start-k8s/docker-image-name.png differ diff --git a/images/quick-start/quick-start-k8s/generate-api-button.png b/images/quick-start/quick-start-k8s/generate-api-button.png new file mode 100644 index 000000000..ab9926668 Binary files /dev/null and b/images/quick-start/quick-start-k8s/generate-api-button.png differ diff --git a/images/quick-start/quick-start-k8s/generate-api-key.png b/images/quick-start/quick-start-k8s/generate-api-key.png new file mode 100644 index 000000000..e2f795dce Binary files /dev/null and b/images/quick-start/quick-start-k8s/generate-api-key.png differ diff --git a/images/quick-start/quick-start-k8s/git-change.png b/images/quick-start/quick-start-k8s/git-change.png new file mode 100644 index 000000000..7e4e60c57 Binary files /dev/null and b/images/quick-start/quick-start-k8s/git-change.png differ diff --git a/images/quick-start/quick-start-k8s/integrations.png b/images/quick-start/quick-start-k8s/integrations.png new file mode 100644 index 000000000..3f90509a1 Binary files /dev/null and b/images/quick-start/quick-start-k8s/integrations.png differ diff --git a/images/quick-start/quick-start-k8s/overview.png b/images/quick-start/quick-start-k8s/overview.png new file mode 100644 index 000000000..d04961b28 Binary files /dev/null and b/images/quick-start/quick-start-k8s/overview.png differ diff --git a/images/quick-start/quick-start-k8s/push-to-registry.png b/images/quick-start/quick-start-k8s/push-to-registry.png new file mode 100644 index 000000000..009f52eed Binary files /dev/null and b/images/quick-start/quick-start-k8s/push-to-registry.png differ diff --git a/images/quick-start/quick-start-test-pr/auto-build-feature.png b/images/quick-start/quick-start-test-pr/auto-build-feature.png new file mode 100644 index 000000000..1189d9a71 Binary files /dev/null and b/images/quick-start/quick-start-test-pr/auto-build-feature.png differ diff --git a/images/quick-start/quick-start-test-pr/auto-build-pr.png b/images/quick-start/quick-start-test-pr/auto-build-pr.png new file mode 100644 index 000000000..89669530d Binary files /dev/null and b/images/quick-start/quick-start-test-pr/auto-build-pr.png differ diff --git a/images/quick-start/quick-start-test-pr/auto-build-settings.png b/images/quick-start/quick-start-test-pr/auto-build-settings.png new file mode 100644 index 000000000..f74365f78 Binary files /dev/null and b/images/quick-start/quick-start-test-pr/auto-build-settings.png differ diff --git a/images/quick-start/quick-start-test-pr/demo-environment.png b/images/quick-start/quick-start-test-pr/demo-environment.png new file mode 100644 index 000000000..48614f490 Binary files /dev/null and b/images/quick-start/quick-start-test-pr/demo-environment.png differ diff --git a/images/quick-start/quick-start-test-pr/demo-stage.jpg b/images/quick-start/quick-start-test-pr/demo-stage.jpg new file mode 100644 index 000000000..db836686c Binary files /dev/null and b/images/quick-start/quick-start-test-pr/demo-stage.jpg differ diff --git a/images/quick-start/quick-start-test-pr/demo-stage.png b/images/quick-start/quick-start-test-pr/demo-stage.png new file mode 100644 index 000000000..aafe111be Binary files /dev/null and b/images/quick-start/quick-start-test-pr/demo-stage.png differ diff --git a/images/quick-start/quick-start-test-pr/demo-stage.svg b/images/quick-start/quick-start-test-pr/demo-stage.svg new file mode 100644 index 000000000..eab0ac324 --- /dev/null +++ b/images/quick-start/quick-start-test-pr/demo-stage.svg @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + Git + + Compile/Package + + Build Docker Image + + StoreDocker Image + + Test + DemoEnvironment + + + + + + + diff --git a/images/quick-start/quick-start-test-pr/env-details.png b/images/quick-start/quick-start-test-pr/env-details.png new file mode 100644 index 000000000..949a2c051 Binary files /dev/null and b/images/quick-start/quick-start-test-pr/env-details.png differ diff --git a/images/quick-start/quick-start-test-pr/launch-dashboard.png b/images/quick-start/quick-start-test-pr/launch-dashboard.png new file mode 100644 index 000000000..05f317da9 Binary files /dev/null and b/images/quick-start/quick-start-test-pr/launch-dashboard.png differ diff --git a/images/quick-start/quick-start-test-pr/launch-url.png b/images/quick-start/quick-start-test-pr/launch-url.png new file mode 100644 index 000000000..bacf0b7f9 Binary files /dev/null and b/images/quick-start/quick-start-test-pr/launch-url.png differ diff --git a/images/quick-start/quick-start-test-pr/launch.png b/images/quick-start/quick-start-test-pr/launch.png new file mode 100644 index 000000000..ce0ae37cf Binary files /dev/null and b/images/quick-start/quick-start-test-pr/launch.png differ diff --git a/images/quick-start/quick-start-test-pr/multiple-pipelines.png b/images/quick-start/quick-start-test-pr/multiple-pipelines.png new file mode 100644 index 000000000..16a42677b Binary files /dev/null and b/images/quick-start/quick-start-test-pr/multiple-pipelines.png differ diff --git a/images/quick-start/quick-start-test-pr/port-setting.png b/images/quick-start/quick-start-test-pr/port-setting.png new file mode 100644 index 000000000..a6f234a7c Binary files /dev/null and b/images/quick-start/quick-start-test-pr/port-setting.png differ diff --git a/images/quick-start/quick-start-test-pr/view-branches.png b/images/quick-start/quick-start-test-pr/view-branches.png new file mode 100644 index 000000000..df584d087 Binary files /dev/null and b/images/quick-start/quick-start-test-pr/view-branches.png differ diff --git a/images/quick-start/quick-start-test-pr/view-prs.png b/images/quick-start/quick-start-test-pr/view-prs.png new file mode 100644 index 000000000..3706ca172 Binary files /dev/null and b/images/quick-start/quick-start-test-pr/view-prs.png differ