diff --git a/_data/home-content.yml b/_data/home-content.yml
index 06c2b4890..fce2a45e9 100644
--- a/_data/home-content.yml
+++ b/_data/home-content.yml
@@ -1,172 +1,3 @@
-
-
-- title: Getting started
- icon: images/home-icons/started.svg
- url: ''
- links:
- - title: Introduction to Codefresh
- localurl: /docs/getting-started/intro-to-codefresh/
- - title: Codefresh for CI
- localurl: /docs/getting-started/ci-codefresh/
- - title: Codefresh for CD
- localurl: /docs/getting-started/cd-codefresh/
- - title: Codefresh for GitOps
- localurl: /docs/getting-started/gitops-codefresh/
- - 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:
- - title: Hosted GitOps
- localurl: /docs/integrations/codefresh-hosted-gitops/
- - title: Git Providers
- localurl: /docs/integrations/git-providers/
- - title: Kubernetes
- localurl: /docs/integrations/kubernetes/
- - title: Amazon Web Services
- localurl: /docs/integrations/amazon-web-services/
- - title: Microsoft Azure
- localurl: /docs/integrations/microsoft-azure/
- - title: Google Cloud
- localurl: /docs/integrations/google-cloud/
- - title: Docker Registries
- localurl: /docs/integrations/docker-registries/
- - title: Secret Storage
- localurl: /docs/integrations/secret-storage/
- - title: Helm
- localurl: /docs/integrations/helm/
- - title: Argo CD
- localurl: /docs/integrations/argocd/
- - title: Datadog
- localurl: /docs/integrations/datadog/
- - title: Jenkins integration/migration
- localurl: /docs/integrations/jenkins-integration/
- - title: Codefresh API
- localurl: /docs/integrations/codefresh-api/
-
-
-
-- title: GitOps integrations
- icon: images/home-icons/integrations.svg
- url: ''
- links:
- - title: Image enrichment with GitOps integrations
- localurl: /docs/gitops-integrations/image-enrichment-overview/
- - title: Codefresh Classic for GitOps
- localurl: /docs/gitops-integrations/ci-integrations/codefresh-classic/
- - title: GitHub Actions for GitOps
- localurl: /docs/gitops-integrations/ci-integrations/github-actions/
- - title: Jenkins for GitOps
- localurl: /docs/gitops-integrations/ci-integrations/jenkins/
- - title: Jira for GitOps
- localurl: /docs/gitops-integrations/issue-tracking/jira/
- - title: Amazon ECR for GitOps
- localurl: /docs/gitops-integrations/container-registries/amazon-ecr/
- - title: Docker Hub Registry for GitOps
- localurl: /docs/gitops-integrations/container-registries/dockerhub/
- - title: GitHub Container Registry for GitOps
- localurl: /docs/gitops-integrations/container-registries/github-cr/
- - title: JFrog Artifactory for GitOps
- localurl: /docs/gitops-integrations/container-registries/jfrog/
- - title: Quay Registry for GitOps
- localurl: /docs/gitops-integrations/container-registries/quay/
-
-
-
-- title: Getting started
- icon: images/home-icons/started.svg
- url: ''
- links:
- - title: Introduction to Codefresh
- localurl: /docs/getting-started/intro-to-codefresh/
- - title: Codefresh for CI
- localurl: /docs/getting-started/ci-codefresh/
- - title: Codefresh for CD
- localurl: /docs/getting-started/cd-codefresh/
- - title: Codefresh for GitOps
- localurl: /docs/getting-started/gitops-codefresh/
- - title: Concepts in Codefresh
- localurl: /docs/getting-started/concepts/
-
-- title: Dashboards & insights
- icon: images/home-icons/guides.png
- url: ''
- links:
- - title: Home dashboard
- localurl: /docs/dashboards/home-dashboard/
- - title: DORA metrics
- localurl: /docs/dashboards/dora-metrics/
-
-
-- title: Dashboards & insights
- icon: images/home-icons/guides.png
- url: ''
- links:
- - title: Home dashboard
- localurl: /docs/dashboards/home-dashboard/
- - title: DORA metrics
- localurl: /docs/dashboards/dora-metrics/
-
-
-
-- title: CI/CD guides
- icon: images/home-icons/guides.png
- url: ''
- links:
- - title: Building your app
- localurl: /docs/ci-cd-guides/packaging-compilation/
- - title: Building Docker images
- localurl: /docs/ci-cd-guides/building-docker-images/
- - title: Accessing a Docker registry from Kubernetes cluster
- localurl: /docs/ci-cd-guides/access-docker-registry-from-kubernetes/
- - title: Working with Docker registries
- localurl: /docs/ci-cd-guides/working-with-docker-registries/
- - title: Adding config maps to namespaces
- localurl: /docs/ci-cd-guides/add-config-maps-to-your-namespaces/
- - title: Pull Requests and branches
- localurl: /docs/ci-cd-guides/pull-request-branches/
- - title: Pipelines for microservices
- localurl: /docs/ci-cd-guides/microservices/
- - title: Deploying to predefined environments
- localurl: /docs/ci-cd-guides/environment-deployments/
- - title: Previewing dynamic environments
- localurl: /docs/ci-cd-guides/preview-environments/
- - title: Helm best practices
- localurl: /docs/ci-cd-guides/helm-best-practices/
- - title: Templating for Kubernetes
- localurl: /docs/ci-cd-guides/kubernetes-templating/
- - title: Progressive Delivery
- localurl: /docs/ci-cd-guides/progressive-delivery/
-
-
-
-- title: Example catalog
- icon: images/home-icons/tutorial.svg
- url: ''
- links:
- - title: CI examples
- localurl: /docs/example-catalog/ci-examples
- - title: CD examples
- localurl: /docs/example-catalog/cd-examples
- - title: GitOps examples
- localurl: /docs/example-catalog/gitops-examples
-
-
@@ -195,24 +26,24 @@
icon: images/home-icons/pipeline.svg
url: ''
links:
- - title: Introduction to Pipelines
- localurl: /docs/pipelines/introduction-to-codefresh-pipelines/
- - title: Creating Pipelines
- localurl: /docs/pipelines/pipelines/
- - title: Pipeline triggers
- localurl: /docs/pipelines/triggers/
- - title: Monitoring pipelines
- localurl: /docs/pipelines/monitoring-pipelines/
- - title: Shared Configuration
- localurl: /docs/pipelines/shared-configuration/
- - title: Using secrets
- localurl: /docs/pipelines/secrets-store/
- - title: Pipeline caching
- localurl: /docs/pipelines/pipeline-caching/
- - title: Running pipelines locally
- localurl: /docs/pipelines/running-pipelines-locally/
- - title: Debugging pipelines
- localurl: /docs/pipelines/debugging-pipelines/
+ - title: Introduction to Pipelines
+ localurl: /docs/pipelines/introduction-to-codefresh-pipelines/
+ - title: Creating Pipelines
+ localurl: /docs/pipelines/pipelines/
+ - title: Pipeline triggers
+ localurl: /docs/pipelines/triggers/
+ - title: Monitoring pipelines
+ localurl: /docs/pipelines/monitoring-pipelines/
+ - title: Shared Configuration
+ localurl: /docs/pipelines/shared-configuration/
+ - title: Using secrets
+ localurl: /docs/pipelines/secrets-store/
+ - title: Pipeline caching
+ localurl: /docs/pipelines/pipeline-caching/
+ - title: Running pipelines locally
+ localurl: /docs/pipelines/running-pipelines-locally/
+ - title: Debugging pipelines
+ localurl: /docs/pipelines/debugging-pipelines/
- title: Workflows
@@ -224,16 +55,21 @@
- title: Nested workflows
localurl: /docs/workflows/nested-workflows/
- title: Configure artifact repository
- localurl: /docs/pipelines/configure-artifact-repository/
localurl: /docs/workflows/configure-artifact-repository/
- title: Selectors for concurrency synchronization
- localurl: /docs/pipelines/concurrency-limit/
localurl: /docs/workflows/concurrency-limit/
- title: Sharing file systems
- localurl: /docs/pipelines/sharing-file-system/
localurl: /docs/workflows/sharing-file-system/
+
+
+- title: Clients
+ icon: images/home-icons/client.svg
+ url: ''
+ links:
+ - title: Codefresh CLI
+ localurl: /docs/clients/csdp-cli/
- title: Installation
@@ -242,11 +78,11 @@
links:
- title: Installation environments
localurl: /docs/installation/installation-options/
- - title: Codefresh Runner installation
+ - title: Codefresh Runner CI/CD installation
localurl: /docs/installation/codefresh-runner/
- - title: On-Premises installation
+ - title: On-Premises CI/CD installation
localurl: /docs/installation/codefresh-on-prem/
- - title: On-Premises upgrade
+ - title: On-Premises CI/CD upgrade
localurl: /docs/installation/codefresh-on-prem-upgrade/
- title: Hosted GitOps Runtime installation
localurl: /docs/installation/hosted-runtime/
@@ -264,24 +100,24 @@
icon: images/home-icons/administration.svg
url: ''
links:
- - title: Create a Codefresh account
- localurl: /docs/administration/account-user-management/create-codefresh-account/
- - title: Adding users and teams
- localurl: /docs/administration/account-user-management/add-users/
- - title: Single Sign-On
- localurl: /docs/single-sign-on/
- - title: Set up OAuth2 authentication for Git providers
- localurl: /docs/administration/account-user-management/oauth-setup/
- - title: Access control
- localurl: /docs/administration/account-user-management/access-control/
- - title: Audit
- localurl: /docs/administration/account-user-management/audit/
- - title: Codefresh IP addresses
- localurl: /docs/administration/account-user-management/platform-ip-addresses/
- - title: User settings
- localurl: /docs/administration/user-self-management/user-settings/
- - title: Manage Git PATs
- localurl: /docs/administration/user-self-management/manage-pats/
+ - title: Create a Codefresh account
+ localurl: /docs/administration/account-user-management/create-codefresh-account/
+ - title: Adding users and teams
+ localurl: /docs/administration/account-user-management/add-users/
+ - title: Single Sign-On
+ localurl: /docs/single-sign-on/
+ - title: Set up OAuth2 authentication for Git providers
+ localurl: /docs/administration/account-user-management/oauth-setup/
+ - title: Access control
+ localurl: /docs/administration/account-user-management/access-control/
+ - title: Audit
+ localurl: /docs/administration/account-user-management/audit/
+ - title: Codefresh IP addresses
+ localurl: /docs/administration/account-user-management/platform-ip-addresses/
+ - title: User settings
+ localurl: /docs/administration/user-self-management/user-settings/
+ - title: Manage Git PATs
+ localurl: /docs/administration/user-self-management/manage-pats/
- title: Reference
diff --git a/_data/nav.yml b/_data/nav.yml
index a3b881548..eeb18f1cd 100644
--- a/_data/nav.yml
+++ b/_data/nav.yml
@@ -1,191 +1,3 @@
-- title: Getting started
- url: "/getting-started"
- pages:
- - title: Introduction to Codefresh
- url: "/intro-to-codefresh"
- - title: Codefresh for CI
- url: "/ci-codefresh"
- - title: Codefresh for CD
- url: "/cd-codefresh"
- - title: Codefresh for GitOps
- url: "/gitops-codefresh"
- - 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
- url: "/deploy-with-helm"
-
-
-
-
-- title: Dashboards & Insights
- url: "/dashboards"
- pages:
- - title: Home dashboard
- url: "/home-dashboard"
- - title: DORA metrics
- url: "/dora-metrics"
-
-
-
-- title: CI/CD Guides
- url: "/ci-cd-guides"
- pages:
- - title: Building your app
- url: "/packaging-compilation"
- - title: Building Docker images
- url: "/building-docker-images"
- - title: Accessing Docker registries from Kubernetes cluster
- url: "/access-docker-registry-from-kubernetes"
- - title: Working with Docker registries
- url: "/working-with-docker-registries"
- - title: Adding config maps to namespaces
- url: "/add-config-maps-to-your-namespaces"
- - title: Pull Requests and branches
- url: "/pull-request-branches"
- - title: Building microservices
- url: "/microservices"
- - title: Deploying to predefined environments
- url: "/environment-deployments"
- - title: Previewing dynamic environments
- url: "/preview-environments"
- - title: Progressive delivery
- url: "/progressive-delivery"
- - title: GitOps deployments
- url: "/gitops-deployments"
- - title: Helm best practices
- url: "/helm-best-practices"
- - title: Kubernetes templating
- url: "/kubernetes-templating"
-
-
-
-
-- title: Example catalog
- url: "/example-catalog"
- pages:
- - title: CI examples
- url: "/ci-examples"
- sub-pages:
- - title: Check out Git repositories
- url: "/git-checkout"
- - title: Custom Git commmands
- url: "/git-checkout-custom"
- - title: Non-Git checkouts
- url: "/non-git-checkout"
- - title: Use Git Hash in CI
- url: "/get-short-sha-id-and-use-it-in-a-ci-process"
- - title: Build an Image with the Dockerfile in root directory
- url: "/build-an-image-with-the-dockerfile-in-root-directory"
- - title: Build an Images specifying Dockerfile Location
- url: "/build-an-image-specify-dockerfile-location"
- - title: Build an Image from a different Git repository
- url: "/build-an-image-from-a-different-git-repository"
- - title: Build and push an Image
- url: "/build-and-push-an-image"
- - title: Build an Image with build arguments
- url: "/build-an-image-with-build-arguments"
- - title: Share data between steps
- url: "/shared-volumes-between-builds"
- - title: Upload/download from Google Storage buckets
- url: "/uploading-or-downloading-from-gs"
- - title: Call other pipelines
- url: "/call-child-pipelines"
- - title: Run unit tests
- url: "/run-unit-tests"
- - title: Run integration tests
- url: "/run-integration-tests"
- - title: Fan-in/fan-out with unit tests
- url: "/fan-in-fan-out"
- - title: Codecov coverage reports
- url: "/codecov-testing"
- - title: Coveralls coverage reports
- url: "/coveralls-testing"
- - title: Codacy coverage reports
- url: "/codacy-testing"
- - title: Run integration tests with Mongo
- url: "/integration-tests-with-mongo"
- - title: Run integration tests with MySQL
- url: "/integration-tests-with-mysql"
- - title: Run integration tests with PostgreSQL
- url: "/integration-tests-with-postgres"
- - title: Run integration tests with Redis
- url: "/integration-tests-with-redis"
- - title: Populate a database with existing data
- url: "/populate-a-database-with-existing-data"
- - title: Share volumes in composition steps
- url: "/shared-volumes-of-service-from-composition-step-for-other-yml-steps"
- - title: Import data to MongoDB
- url: "/import-data-to-mongodb"
- - title: Vault Secrets in the Pipeline
- url: "/vault-secrets-in-the-pipeline"
- - title: Decrypt with Mozilla SOPS
- url: "/decryption-with-mozilla-sops"
- - title: GitOps secrets
- url: "/gitops-secrets"
- - title: Launch Composition
- url: "/launch-composition"
- - title: Use Docker compose
- url: "/launching-a-composition-and-defining-a-service-environment-variables-using-a-file"
- - title: Send notification to Slack
- url: "/sending-the-notification-to-slack"
- - title: Send notification to Jira
- url: "/sending-the-notification-to-jira"
- - title: CD examples
- url: "/cd-examples"
- sub-pages:
- - title: Import data to MongoDB
- url: "/import-data-to-mongodb"
- - title: NodeJS + Angular2 + MongoDB
- url: "/nodejs-angular2-mongodb"
- - title: Secure a Docker Container Using HTTP Basic Auth
- url: "/secure-a-docker-container-using-http-basic-auth"
- - title: Spring Boot + Kafka + Zookeeper
- url: "/spring-boot-kafka-zookeeper"
- - title: Web terminal
- url: "/web-terminal"
- - title: Trigger a K8s Deployment from a DockerHub Push Event
- url: "/trigger-a-k8s-deployment-from-docker-registry"
- - title: Deploy to VM
- url: "/packer-gcloud"
- - title: Deploy to a VM via FTP
- url: "/transferring-php-ftp"
- - title: Deploy to Tomcat using SCP
- url: "/deploy-to-tomcat-via-scp"
- - title: Deploy with Helm
- url: "/helm"
- - title: Deploy with Terraform
- url: "/terraform"
- - title: Deploy with Pulumi
- url: "/pulumi"
- - title: Deploy to Nomad
- url: "/nomad"
- - title: Deploy to Heroku
- url: "/deploy-to-heroku"
- - title: Use kubectl as part of Freestyle step
- url: "/use-kubectl-as-part-of-freestyle-step"
- - title: Deploy with Kustomize
- url: "/deploy-with-kustomize"
- - title: Deploy to Docker Swarm
- url: "/docker-swarm"
- - title: Amazon ECS/Fargate
- url: "/amazon-ecs"
- - title: Elastic Beanstalk
- url: "/elastic-beanstalk"
- - title: GitOps examples
- url: "/cd-examples"
- title: Deployments
url: "/deployments"
@@ -315,112 +127,6 @@
url: "/what-is-the-codefresh-yaml"
-- title: Pipeline integrations
- url: "/integrations"
- pages:
- - title: Codefresh Hosted GitOps
- url: "/codefresh-hosted-gitops"
- - title: Git Providers
- url: "/git-providers"
- - title: Kubernetes
- url: "/kubernetes"
- - title: Amazon Services
- url: "/amazon-web-services"
- - title: Microsoft Azure
- url: "/microsoft-azure"
- - title: Google Cloud
- url: "/google-cloud"
- - title: Docker registries
- url: "/docker-registries"
- sub-pages:
- - title: Docker Hub
- url: "/docker-hub"
- - title: Azure Docker Registry
- url: "/azure-docker-registry"
- - title: Amazon EC2 Container Registry
- url: "/amazon-ec2-container-registry"
- - title: Google Container Registry
- url: "/google-container-registry"
- - title: Google Artifact Registry
- url: "/google-artifact-registry"
- - title: JFrog Bintray.io/Artifactory
- url: "/bintray-io"
- - title: Quay.io
- url: "/quay-io"
- - title: GitHub Container Registry
- url: "/github-container-registry"
- - title: DigitalOcean Container Registry
- url: "/digital-ocean-container-registry"
- - title: Other Registries
- url: "/other-registries"
- - title: Secret Storage
- url: "/secret-storage"
- - title: Hashicorp Vault
- url: "/hashicorp-vault"
- - title: Helm Integration
- url: "/helm"
- - title: ArgoCD Integration
- url: "/argocd"
- - title: Datadog Integration
- url: "/datadog"
- - title: Jira Integration
- url: "/jira"
- - title: Jenkins Integration
- url: "/jenkins-integration"
- - title: Codecov Integration
- url: "/codecov-integration"
- - title: Google Cloud builder
- url: "/gcloud-builder"
- - title: Google Marketplace Installation
- url: "/google-marketplace"
- - title: GitHub Actions
- url: "/github-actions"
- - title: Notifications
- url: "/notifications"
- sub-pages:
- - title: Slack
- url: "/slack-integration"
- - title: Jira
- url: "/jira-integration"
- - title: Codefresh API
- url: "/codefresh-api"
-
-
-- title: GitOps integrations
- url: "/gitops-integrations"
- pages:
- - title: Image enrichment with GitOps integrations
- url: "/image-enrichment-overview"
- - title: GitOps CI integrations
- url: "/ci-integrations"
- sub-pages:
- - title: Codefresh Classic
- url: "/codefresh-classic"
- - title: GitHub Actions
- url: "/github-actions"
- - title: Jenkins
- url: "/jenkins"
- - title: GitOps issue tracking integrations
- url: "/issue-tracking"
- sub-pages:
- - title: Jira
- url: "/jira"
- - title: GitOps container registry integrations
- url: "/container-registries"
- sub-pages:
- - title: Amazon ECR
- url: "/amazon-ecr"
- - title: Docker Hub Registry
- url: "/dockerhub"
- - title: GitHub Container Registry
- url: "/github-cr"
- - title: JFrog Artifactory
- url: "/jfrog"
- - title: Quay Registry
- url: "/quay"
-
-
-
- title: Workflows
url: "/workflows"
pages:
@@ -444,7 +150,6 @@
url: "/csdp-cli"
-
- title: Installation
url: "/installation"
pages:
@@ -469,11 +174,11 @@
- title: Add Git Sources to to GitOps Runtimes
url: "/git-sources"
+
- title: Administration
url: "/administration"
pages:
- title: Account & user management
- url: /account-user-management
sub-pages:
- title: Create a Codefresh account
url: "/create-codefresh-account"
@@ -499,10 +204,6 @@
- title: Single Sign-On
url: /single-sign-on
pages:
- - title: SSO Overview
- url: /sso-overview
- - title: Common configuration
- url: /team-sync
- title: OpenID Connect
url: /oidc
sub-pages:
@@ -529,7 +230,8 @@
url: /saml-pingid
- title: LDAP
url: /ldap
-
+ - title: Common configuration
+ url: /team-sync
- title: Reference
@@ -543,59 +245,7 @@
url: "/shared-configuration"
-- title: Troubleshooting
- url: "/troubleshooting"
- pages:
- - title: Common Issues
- url: "/common-issues"
- sub-pages:
- - title: Can't find your organization repositories
- url: "/cant-find-your-organization-repositories"
- - title: Can’t find your private repositories
- url: "/cant-find-your-private-repositories"
- - title: 'Clone step failed: Command [git checkout $REVISION] exited with code [1]'
- url: "/git-clone-step-issue"
- - title: Handling commit messages with a quote character
- url: "/handling-commit-messages-with-quotes"
- - title: Docker image does not exist or no pull access
- url: "/the-docker-image-does-not-exist-or-no-pull-access"
- - title: 'Build step: No such file or directory'
- url: "/build-step-no-such-file-or-directory"
- - title: No Dockerfile found
- url: "/no-dockerfile-found"
- - title: Failed to tag image
- url: "/could-not-tag-image"
- - title: Error Code 137
- url: "/error-code-137"
- - title: Too many requests
- url: "/dockerhub-rate-limit"
- - title: Restoring data from pre-existing image hangs on
- url: "/restoring-data-from-pre-existing-image-hangs-on"
- - title: Disabling codefresh caching mechanisms
- url: "/disabling-codefresh-caching-mechanisms"
- - title: Pinning codefresh.yml for multi-git triggers
- url: "/multi-git-triggers"
- - title: Workflow terminated by the system
- url: "/workflow-terminated-by-system"
- - title: cf_export limitations
- url: "/cf-export-limitations"
- - title: Validation port warnings
- url: "/validation-port-warnings"
- - title: Forbidden Kubernetes resources
- url: "/forbidden-cluster-resources"
- - title: How to use SSH keys in freestyle steps
- url: "using-ssh-keys"
- - title: Failed to get accounts clusters during workflow
- url: "/failed-to-get-accounts-clusters-during-workflow"
- - title: Paging issues for builds and images
- url: "/paging-issues-builds-images"
- - title: Git step migration
- url: "/git-step-migration"
- - title: Personal Git Deprecation
- url: "/personal-git-deprecation"
- - title: GitOPs runtimes
- url: "/runtime-issues"
-
+
- title: Terms and Privacy Policy
url: "/terms-and-privacy-policy"
@@ -608,4 +258,3 @@
url: "/sla"
-
diff --git a/_docs/administration/account-user-management/create-codefresh-account.md b/_docs/administration/account-user-management/create-codefresh-account.md
index 9de8d7e32..158246684 100644
--- a/_docs/administration/account-user-management/create-codefresh-account.md
+++ b/_docs/administration/account-user-management/create-codefresh-account.md
@@ -3,7 +3,11 @@ title: "Create a Codefresh account"
description: "Welcome to Codefresh!"
group: administration
sub_group: account-user-management
-toc: true
+redirect_from:
+ - /docs/
+ - /docs/create-an-account/
+ - /docs/getting-started/
+ - /docs/getting-started/introduction/
---
Before you can do anything in Codefresh such as building and deploying your applications, you need to create a Codefresh account.
@@ -19,7 +23,7 @@ max-width="90%"
%}
## Step 1: Select your Identity Provider
-As the first step in setting up your account in Codefresh, select the identity provider (IdP) to use.
+As the first step in setting up ypur account in Codefresh, select the identity provider (IdP) to use.
Codefresh currently supports the following IdPs:
* GitHub
* Bitbucket
@@ -33,7 +37,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 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.
+ 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. Go to the [Codefresh Sign Up page](https://g.codefresh.io/signup).
diff --git a/_docs/administration/user-self-management/user-settings.md b/_docs/administration/user-self-management/user-settings.md
index d3a9a2089..ad969ff3b 100644
--- a/_docs/administration/user-self-management/user-settings.md
+++ b/_docs/administration/user-self-management/user-settings.md
@@ -99,7 +99,6 @@ caption="Generating a key for the API"
max-width="80%"
%}
-> The UI shows the first few characters in the second part of the key, after the `.`, and not the characters at the beginning of the key.
## Related articles
diff --git a/_docs/dashboards/dora-metrics.md b/_docs/dashboards/dora-metrics.md
deleted file mode 100644
index 6230c340d..000000000
--- a/_docs/dashboards/dora-metrics.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-title: "DORA metrics"
-description: "Get insights into your deployments"
-group: dashboards
-toc: true
----
-
-DevOps is a collaboration paradigm that is sometimes mistaken for being too abstract or too generic. In an effort to quantify the benefits of adopting DevOps, [Dora Research](https://www.devops-research.com/research.html#capabilities){:target="\_blank"} (acquired by Google in 2018), has introduced four key metrics that define specific goals for improving the software lifecycle in companies interested in adopting DevOps.
-
-DORA measures these metrics:
-
-* Deployment Frequency: How often an organization successfully releases to production
-* Lead Time for Changes: The length of time for a commit to be deployed into production
-* Change Failure Rate: The percentage of deployments causing a failure in production
-* Time to Restore Service: The length of time for an organization to recover from a failure in production
-
-[Read more on DORA](https://cloud.google.com/blog/products/devops-sre/using-the-four-keys-to-measure-your-devops-performance){:target="\_blank"}.
-
-## DORA metrics in Codefresh
-
-Monitoring DORA metrics can help identify delivery issues in your organization by detecting bottlenecks among teams and optimize your workflows at technical or organizational levels.
-Codefresh offers support for DORA metrics out of the box.
-
-* In the Codefresh UI, go to [DORA metrics](https://g.codefresh.io/2.0/dora-dashboard/dora){:target="\_blank"}.
-
-{% include
-image.html
-lightbox="true"
-file="/images/reporting/dora-metrics.png"
-url="/images/reporting/dora-metrics.png"
-alt="DORA metrics report"
-caption="DORA metrics report"
-max-width="100%"
-%}
-
-## Filters
-
-Use filters to define the exact subset of applications you are interested in. All filters support auto-complete and multiselect.
-More than one option within the same filter type has an OR relationship. Multiple filter types when defined share an AND relationship.
-
-* Runtimes: Show metrics for applications from selected runtimes
-* Clusters: Show metrics for applications deployed to selected clusters
-* Applications: Show metrics for selected applications.
-* Time: Show metrics from application for a specific time period
-
-> When no filters are defined, all metrics are shown for the last 90 days.
-
-## Metrics for favorite applications
-If you have [starred applications as favorites]({{site.baseurl}}/docs/deployment/applications-dashboard/#applications-dashboard-information) in the Applications dashboard, clicking {::nomarkdown}{:/} in DORA metrics, displays DORA metrics only for those applications.
-
-
-## Metric totals
-As the title indicates, the Totals bar shows the total numbers, based on the filters defined, or for the last 90 days, if there are no filters:
-
-* Deployments
-* Rollbacks
-* Commits/Pull Requests
-* Failure Rate: The number of failed deployments divided by the total number of deployments
-
-## Metric graphs
-The metric graphs are key to performance insights with DORA metrics. The metrics are again based on the filters defined, or for the last 90 days if there are no filters.
-
-In addition, you can select the granularity for each graph:
-
-* Daily
-* Weekly
-* Monthly
-
->Tip:
- Remember that the graphs for the DORA metrics reflect metrics of application deployments, not workflows.
-
-**Deployment Frequency**
- The frequency at which applications are deployed to production, including both successful (Healthy) and failed (Degraded), deployments. A deployment is considered an Argo CD sync where there was a change in the application source code that resulted in a new deployment of the application to production.
- The X-axis charts the time based on the granularity selected, and the Y-axis charts the number of deployments. The number shown on the top right is the average deployment frequency based on granularity.
-
-**Lead Time for Changes**
- The average number of days from the first commit for a PR (pull request) until the deployment date for the same PR. The key term here is _deployment_. Lead Time for Changes considers only those changes to workflows that result in a deployment. Making a change to a repo that does not result in a deployment is not included when calculating Lead Time for Changes.
- The X-axis charts the time based on the granularity selected, and the Y-axis charts the time in minutes until the deployment. The number shown on the top right is the average number of days for a commit to reach production.
-
-**Change Failure Rate**
- The failure or rollback rate in percentage for applications whose health status changed to Degraded on deployment. The key term here is _on deployment_. For example, bumping an image tag with one that does not exist, results in the application being Degraded on deployment, and designated as failed.
- The Change Failure Rate is derived by dividing the number of Degraded (failed/rollback) deployments with the total number of deployments.
- The X-axis charts the time based on the granularity selected, and the Y-axis charts the failure rate. The number shown on the top right is the average failure rate based on granularity, and therefore may not be equal to the Total Failure Rate.
-
-**Time to Restore Service**
- The average number of hours taken for the status of Degraded deployments to return to Healthy. Again, similar to the Change Failure Rate, Time to Restore Service includes only deployments that became Degraded. It is derived by dividing the total number of hours for all Degraded deployments to return to Healthy by the total number of Degraded deployments.
- The X-axis charts the time based on the granularity, and the Y-axis charts the time in hours. The number shown on the top right is the average number of hours between the previous deployment and rollback for the same application.
-
-## Related articles
-[Global analytics dashboard]({{site.baseurl}}/docs/dashboards/home-dashboard)
-[Monitoring applications]({{site.baseurl}}/docs/deployments/gitops/applications-dashboard/)
-
diff --git a/_docs/dashboards/home-dashboard.md b/_docs/dashboards/home-dashboard.md
deleted file mode 100644
index be0e4e505..000000000
--- a/_docs/dashboards/home-dashboard.md
+++ /dev/null
@@ -1,142 +0,0 @@
----
-title: "Global analytics dashboard"
-description: ""
-group: dashboards
-toc: true
----
-
-Get a global picture of runtimes, managed clusters, deployments, and pipelines in the Home dashboard. The Home dashboard is displayed when you log in to Codefresh, providing system-wide visualization in real-time.
-
-Global filters allow you to narrow the scope of the data, and drill down into specific entities for more details.
-
- {% include
- image.html
- lightbox="true"
- file="/images/reporting/home-dashboard.png"
- url="/images/reporting/home-dashboard.png"
- alt="Home dashboard: Global enterprise analytics"
- caption="Home dashboard: Global enterprise analytics"
- max-width="70%"
- %}
-
-### Global filters
-Filter the view in the Home dashboard by runtimes and date range.
-
-{% include
- image.html
- lightbox="true"
- file="/images/reporting/global-filters.png"
- url="/images/reporting/global-filters.png"
- alt="Home dashboard: Global filters"
- caption="Home dashboard: Global filters"
- max-width="60%"
- %}
-
-### Runtimes and Managed Clusters
-
-Identify the health of the runtimes and managed clusters in your enterprise.
-Health status is displayed for both hosted (if you have Hosted GitOps), and hybrid runtimes.
-
-Managed clusters are external clusters registered to runtimes to which you deploy applications and GitOps-managed resources.
-
- {% include
- image.html
- lightbox="true"
- file="/images/reporting/runtimes-clusters-widgets.png"
- url="/images/reporting/runtimes-clusters-widgets.png"
- alt="Runtimes and Managed Clusters in the Home dashboard"
- caption="Runtimes and Managed Clusters in the Home dashboard"
- max-width="80%"
- %}
-
-{: .table .table-bordered .table-hover}
-| Item | Description |
-| ------------------------| ---------------- |
-|**Runtimes** | Identify failed runtimes.|
-|**Managed Clusters** |{::nomarkdown}
Status: One of the following:
Connected: Argo CD is able to connect and successfully deploy resources to the cluster.
Failed: Argo CD is unable to connect to the cluster because of authentication, networking, or other issues.
Unknown: Argo CD has no information on the cluster as there are no resources deployed to the managed cluster.
View: Click to go to the Runtimes page. To see the runtime's managed clusters, select the runtime.
{:/}|
-
-
-### Deployments
-
-Identify trends for deployments.
-
- {% include
- image.html
- lightbox="true"
- file="/images/reporting/deployments-widget.png"
- url="/images/reporting/deployments-widget.png"
- alt="Deployments in the Home dashboard"
- caption="Deployments in the Home dashboard"
- max-width="70%"
- %}
-
-{: .table .table-bordered .table-hover}
-| Item | Description |
-| ------------------------| ---------------- |
-|**Daily/Weekly/Monthly** | Granularity for deployment views that affects the average number of deployments and the comparison to the reference period.|
-|**Number and Comparison Average** | The number on the top right is the number of successful/failed/rollback deployments for the selected granularity. The percentage is the comparison to the reference period, also for the selected granularity. |
-|**Successful** | The number of successful deployments per day, week, or month according to the selected granularity. |
-|**Failed Deployments** | The number of successful deployments per day, week, or month according to the selected granularity. |
-|**Rollbacks** | The number of successful deployments per day, week, or month according to the selected granularity. |
-
-
-
-### Applications
-
-Displays up to five of the most active applications and their current deployment status.
-
-{% include
- image.html
- lightbox="true"
- file="/images/reporting/applications-widget.png"
- url="/images/reporting/applications-widget.png"
- alt="Applications in the Home dashboard"
- caption="Applications in the Home dashboard"
- max-width="70%"
- %}
-
-{: .table .table-bordered .table-hover}
-
-| Item | Description |
-| ------------------------| ---------------- |
-|**Filter** | Filter applications by the cluster on which they are deployed. |
-|**View** | Click to go to the Applications dashboard. See |
-|**Application Name** | The name of the application, and the names of the runtime and cluster on which it is deployed. Click the name to drill down into the application in the Applications dashboard. |
-|**Health status** | The health status of the application, and can be either:{::nomarkdown}
Healthy (green): The application is running on the cluster.
Degraded (red): The application failed to run.
Rollback (yellow): There was a rollback to the previously deployed version.
To see the breakdown by health status, mouse over the chart. The number at the end of the bar is the total number of deployments for the application, with the overall decrease or increase compared to the reference period. {:/} |
-
-
-
-### Delivery Pipelines
-
-> Delivery Pipline data is shown for hybrid enviroments.
-
-Displays all active pipelines for the selected date range, providing insights into trends for pipelines. Active pipelines are those with at least one active or completed workflow.
-Analytics are derived by comparing the selected date range to the corresponding reference period. If your date range is the last seven days, the reference period is the seven days that precede the date range.
-
-{% include
- image.html
- lightbox="true"
- file="/images/reporting/delivery-pipeline-widget.png"
- url="/images/reporting/delivery-pipeline-widget.png"
- alt="Delivery Pipelines in the Home dashboard"
- caption="Delivery Pipelines in the Home dashboard"
- max-width="80%"
- %}
-
-{: .table .table-bordered .table-hover}
-
-| Item | Description |
-| ------------------------| ---------------- |
-|**Pipelines** | The number prefixed to the pipeline name indicates the change in position of the pipeline compared to the reference period. To drill down into a specific pipeline, click the pipeline.|
-|**Filter** | The filters available to focus on the pipelines of interest:{::nomarkdown}
Status:
Succeeded: Pipelines with workflows completed successfully.
Failed: Pipelines with workflows that failed.
Error: Pipelines with workflows that resulted in errors.
Repository: The Git repository or repositories tracked, with the events that triggered or ran the pipelines.
Event Type: The Git or Calendar event or events by which to view pipelines. If you select Git push, only those pipelines configured to be run on Git push are displayed.
Initiator: The user who made the commit that triggered the event and caused the pipeline to run.
{:/} |
-|**View** | Click to go to the Delivery Pipelines dashboard. |
-|**KPI Averages** | KPI averages for: {::nomarkdown}
Success Rate: The average number of successful executions, in percentage.
Average Duration: The average length of time to complete execution, in mm:ss.
Executions: The average number of times the pipeline was triggered, in percentage.
Committers: The number of users whose commits on the repository or repositories triggered the pipelines. User count is aggregated per user, so multiple commits from the same user are counted as a single commit.
To see detailed day-to-day values, select a line chart.{:/}|
-|**Most Active Delivery Pipelines** | Up to ten pipelines with the highest number of executions. The same KPIs are displayed, and compared to those in the reference period. |
-|**Longest Delivery Pipelines** | Up to ten pipelines with the longest duration. The same KPIs are displayed, and compared to those in the reference period. |
-
-### Related articles
-[DORA metrics]({{site.baseurl}}/docs/dashboards/dora-metrics/)
-[Monitoring applications]({{site.baseurl}}/docs/deployments/gitops/applications-dashboard/)
-[Images in Codefresh]({{site.baseurl}}/docs/deployments/gitops/images/)
-
-
diff --git a/_docs/deployments/gitops/applications-dashboard.md b/_docs/deployments/gitops/applications-dashboard.md
new file mode 100644
index 000000000..51907f811
--- /dev/null
+++ b/_docs/deployments/gitops/applications-dashboard.md
@@ -0,0 +1,788 @@
+---
+title: "Monitoring GitOps applications"
+description: ""
+group: deployments
+sub_group: gitops
+toc: true
+---
+
+Monitor applications across clusters, and the deployments, resources, and services for an application in the Applications dashboard. As a one-stop shop for Argo Rollouts and Argo CD, the Applications dashboard in Codefresh delivers on the challenge of keeping track of your applications and their deployments, whatever the frequency and scale, across all clusters in your enterprise. A wide range of filters, progressive delivery views, and enriched CI and CD information, provide full traceability and visibility to your deployments.
+
+Select the view format for the Applications Dashboard, as either [List or Card views](#select-view-mode-for-the-applications-dashboard). The default view displays all applications deployed within the last 30 days. Customize the scope through filters to display the [information](#applications-dashboard-information) you need.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/app-dashboard-main-view.png"
+url="/images/applications/app-dashboard-main-view.png"
+alt="Applications Dashboard: List view"
+caption="Applications Dashboard: List view"
+max-width="60%"
+%}
+
+
+Monitor the current [health and sync status of applications](#identify-applications-with-warningserrors), and then select an application to drill down into its resources, deployments, and services:
+* [View deployment and configuration info for selected application](#view-deployment-and-configuration-info-for-selected-application)
+* [Monitor health and sync statuses for selected application](#monitor-health-and-sync-statuses-for-selected-application)
+* [Monitor resources for selected application](#monitor-resources-for-selected-application)
+* [Monitor deployments for selected application](#monitor-deployments-for-selected-application)
+* [Monitor services for selected application](#monitor-services-for-selected-application)
+
+>For information on creating and managing applications and application resources, see [Creating applications]({{site.baseurl}}/docs/deployments/gitops/create-application/) and [Managing applications]({{site.baseurl}}/docs/deployments/gitops/manage-application/).
+
+## Select view mode for the Applications dashboard
+View deployed applications in either List (the default) or Card views. Both views are sorted by the most recent deployments.
+
+1. In the Codefresh UI, go to the [Applications dashboard](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}.
+1. Select **List** or **Cards**.
+
+### Applications List view
+
+Here is an example of the Applications dashboard in List view mode.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/app-dashboard-main-view.png"
+url="/images/applications/app-dashboard-main-view.png"
+alt="Applications Dashboard: List view"
+caption="Applications Dashboard: List view"
+max-width="60%"
+%}
+
+### Applications Card view
+Here is an example of the Applications dashboard in Card view mode. The Card view provides a scannable view of application data and the actions to manage applications.
+
+ {% include
+image.html
+lightbox="true"
+file="/images/applications/app-dashboard-card-view.png"
+url="/images/applications/app-dashboard-card-view.png"
+alt="Applications Dashboard: Card view"
+caption="Applications Dashboard: Card view"
+max-width="60%"
+%}
+
+## Applications dashboard information
+Here's a description of the information and actions in the Applications dashboard.
+
+{: .table .table-bordered .table-hover}
+| Item | Description |
+| -------------- | -------------- |
+|Application filters | Filter by a range of attributes to customize the information in the dashboard to bring you what you need. {::nomarkdown}
Application state A snapshot that displays a breakdown of the deployed applications by their health status. Click a status to filter by applications that match it. Codefresh tracks Argo CD's set of health statuses. See the official documentation on Health sets. .
Application attributes Attribute filters support multi-selection, and results are based on an OR relationship within the same filter with multiple options, and an AND relationship between filters. Clicking More Filters gives you options to filter by Health status, Cluster names, Namespace, and Type.
Application Type: Can be any of the following
Applications: Standalone applications. See the official documentation on Applications.
ApplicationSet: Applications created using the ApplicationSet Custom Resource (CR) template. An ApplicationSet can generate single or multiple applications. See the official documentation on Generating Applications with ApplicationSet.
Git Source: Applications created by Codefresh that includes other applications and CI resources. See Git Sources.
Labels:The K8s labels defined for the applications. The list displays labels of all the applications, even if you have applied filters. To see the available labels, select Add, and then select the required label and one or more values. To filter by the labels, select Add and then Apply. See the official documentation on Labels and selectors.
{:/}|
+|{::nomarkdown}{:/}| Star applications as favorites and view only the starred applications.{::nomarkdown} Select the to star the application as a favorite.
To filter by favorite applications, on the filters bar, select . {:/} TIP: If you star applications as favorites in the Applications dashboard, you can filter by the same applications in the [DORA metrics dashboard]({{site.baseurl}}/docs/reporting/dora-metrics/#metrics-for-favorite-applications). |
+|Application actions| Options to monitor/manage applications through the application's context menu. {::nomarkdown}
Quick view A comprehensive read-only view of the deployment and definition information for the application.
{:/}See [Application Quick View](#view-deployment-and-configuration-info-for-selected-application) in this article.{::nomarkdown}
Synchronize/Sync Manually synchronize the application.
Refresh and Hard Refresh: Available in Card view only. In List view, you must first select the application.
Refresh: Retrieve desired (Git) state, compare with the live (cluster) state, and refresh the application to sync with the desired state.
Hard Refresh: Refresh the application to sync with the Git state, while removing the cache.
{:/} |
+
+
+## Identify applications with warnings/errors
+Errors are flagged in the **Warnings/Errors** button, displayed at the top right of the Applications dashboard. Clicking the button shows the list of applications with the warnings/errors and the possible reasons for these.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/app-dashboard-warnings-errors.png"
+url="/images/applications/app-dashboard-warnings-errors.png"
+alt="Example of warning and error notifications for applications"
+caption="Example of warning and error notifications for applications"
+max-width="60%"
+%}
+
+Every notification identifies:
+* The type of resource with the problem (`Application`, `Deployment`, `Pod`)
+* If it is health or sync related
+* If it is a warning or error.
+
+All errors are Argo CD-generated errors. Codefresh generates custom warnings for the following:
+
+{::nomarkdown}
+
+{:/}
+
+### Warning: Missing Rollouts reporter in cluster
+
+**Reason**: Codefresh has detected that Argo Rollouts is not installed on the target cluster. Rollout instructions are therefore not executed and the application is not deployed.
+Applications with `rollout` resources need Argo Rollouts on the target cluster, both to visualize rollouts in the Applications dashboard and control rollout steps with the Rollout Player.
+
+**Corrective Action**: Click **Install** and install Argo Rollouts on the target cluster.
+
+{::nomarkdown}
+
+{:/}
+
+### Warning: Long sync
+**Reason**: Ongoing sync for application exceeds 30 minutes (Argo CD's default duration for a sync operation).
+
+**Corrective Action**:
+* Click **View Details** to take you directly to the Sync Result tab.
+ Here you can see details on the sync job that was started, and info on the Hooks if any. Failed hooks are dsiplayed at the top.
+* To see more details such as the message and sync duration, switch to **Sync Info**.
+* To stop the sync operation, click **Terminate**.
+* Drill down into the application to investigate the issue and make changes.
+
+
+## View deployment and configuration info for selected application
+
+View deployment, definition, and event information for the selected application in a centralized location through the Quick View.
+A read-only view, the Quick View displays information on the application state and location, labels and annotations, parameters, sync options, manifest, status and sync events.
+Access the Quick View from the Applications dashboard, either from the application's context menu, or after drilldown, from the Current State tab.
+
+1. In the Codefresh UI, go to the [Applications dashboard](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}.
+1. Do one of the following:
+ * From the List or Card views, select the context menu and then select **Quick View**.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/quick-view-context-menu.png"
+url="/images/applications/quick-view-context-menu.png"
+alt="Selecting Quick View from the context menu"
+caption="Selecting Quick View from the context menu"
+max-width="50%"
+%}
+
+ * Select the application, and from the application header's context menu on the right, select **Details**.
+
+ {% include
+image.html
+lightbox="true"
+file="/images/applications/app-header-view-details.png"
+url="/images/applicationsapp-header-view-details.png"
+alt="View app details from the application header context menu"
+caption="View app details from the application header context menu"
+max-width="50%"
+%}
+
+ * Select the application, and in the Current State tab, click the parent application resource.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/quick-view-access-app-resource.png"
+url="/images/applications/quick-view-access-app-resource.png"
+alt="Accessing Quick View from the Current State tab"
+caption="Accessing Quick View from the Current State tab"
+max-width="50%"
+%}
+
+
+
+### Quick View: Summary
+
+Displays health, sync status, and source and destination definitions.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/quick-view-summary.png"
+url="/images/applications/quick-view-summary.png"
+alt="Application Quick View: Summary"
+caption="Application Quick View: Summary"
+max-width="30%"
+%}
+
+
+### Quick View: Metadata
+
+Displays labels and annotations for the application.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/quick-view-metadata.png"
+url="/images/applications/quick-view-metadata.png"
+alt="Application Quick View: Metadata"
+caption="Application Quick View: Metadata"
+max-width="30%"
+%}
+
+
+### Quick View: Parameters
+
+Displays parameters configured for the application, based on the tool used to create the application's manifests.
+The parameters displayed differ according to the tool: `directory` (as in the screenshot below), `Helm` charts, or `Kustomize` manifests, or the specific plugin.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/quick-view-parameters.png"
+url="/images/applications/quick-view-parameters.png"
+alt="Application Quick View: Parameters"
+caption="Application Quick View: Parameters"
+max-width="30%"
+%}
+
+### Quick View: Sync Options
+
+Displays sync options enabled for the application.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/quick-view-parameters.png"
+url="/images/applications/quick-view-parameters.png"
+alt="Application Quick View: Parameters"
+caption="Application Quick View: Parameters"
+max-width="30%"
+%}
+
+### Quick View: Manifest
+
+Displays the YAML version of the application manifest.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/quick-view-manifest.png"
+url="/images/applications/quick-view-manifest.png"
+alt="Application Quick View: Manifest"
+caption="Application Quick View: Manifest"
+max-width="30%"
+%}
+
+### Quick View: Events
+
+Displays status and sync events for the application.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/quick-view-events.png"
+url="/images/applications/quick-view-events.png"
+alt="Application Quick View: Events"
+caption="Application Quick View: Events"
+max-width="30%"
+%}
+
+## Monitor health and sync statuses for selected application
+Monitor the health status of the selected application, the current sync status, and the result of the previous sync operation.
+Once you select an application, the quickest option to monitor statuses is through the application header which is always displayed, no matter what tab you navigate to.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/app-header-health-sync-status.png"
+url="/images/applications/app-header-health-sync-status.png"
+alt="Application header with health and sync status"
+caption="Application header with health and sync status"
+max-width="100%"
+%}
+
+Sync statuses also have **More** links that display details such as the date, tags, and message.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/app-header-sync-details.png"
+url="/images/applications/app-header-sync-details.png"
+alt="Sync details panel on clicking More"
+caption="Sync details panel on clicking More"
+max-width="40%"
+%}
+
+>Tip:
+ You can also view the current health and sync status for the application as a resource in the Current State tab.
+
+
+## Monitor resources for selected application
+
+Monitor the resources deployed in the current version of the selected application in the Current State tab.
+Selecting an application from the Applications dashboard takes you to the Current State tab, which as its title indicates, displays the
+live state of the application's resources (Kubernetes objects) on the cluster, including health, sync state, manifests, and logs.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/app-resources-monitor-screen.png"
+url="/images/applications/app-resources-monitor-screen.png"
+alt="Monitor application resources in Current State tab"
+caption="Monitor application resources in Current State tab"
+max-width="50%"
+%}
+
+The icon for a resource node identifies the type of Kubernetes resource it represents. For general information on K8s resources, see [Working with Kubernetes objects](https://kubernetes.io/docs/concepts/overview/working-with-objects/){:target="\_blank"}.
+
+You can view application resources in [List or Tree views](#view-modes-for-application-resources), [set filters](#filters-for-application-resources), and monitor:
+* [Health status](#health-status-for-application-resources)
+* [Sync status](#sync-status-for-application-resources)
+* [Manifests](#manifests-for-application-resources)
+* [Logs](#logs-for-application-resources)
+* [Events](#events-for-application-resources)
+
+
+> To quickly see which resources have been added, modified, or removed for the current or for a specific deployment, switch to the Timeline tab and expand the deployment record to show Updated Resources. See [Monitor resource updates for deployments](#monitor-resource-updates-for-deployments).
+
+### View modes for application resources
+
+The Current State tab supports Tree and List view formats.
+* Tree view (default): A hierarchical, interactive visualization of the application and its resources. Useful for complex deployments with multiple clusters and large numbers of resources. See also [Working with resources in Tree view](#working-with-resources-in-tree-view).
+Here is an example of the Current State in Tree view.
+
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-tree-app-in-progress.png"
+url="/images/applications/current-state-tree-app-in-progress.png"
+alt="Tree view of application resources in Current State"
+caption="Tree view of application resources in Current State"
+max-width="50%"
+%}
+
+* List View: A list-based representation of application's resources, sorted by the Last Update.
+ Here is an example of the Current State in List view.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/apps-current-state.png"
+url="/images/applications/apps-current-state.png"
+alt="List view of application resources in Current State"
+caption="List view of application resources in Current State"
+max-width="50%"
+%}
+
+
+
+
+#### Working with resources in Tree view
+The Tree view is designed to impart key information at a glance. Review the sections that follow for pointers to quickly get to what you need in the Tree view.
+
+**Context menu**
+Every resource has a context menu that opens on clicking the three dots on the right of the node. The options available differ according to the type of resource.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-resource-context-menu.png"
+url="/images/applications/current-state-resource-context-menu.png"
+alt="Current State Tree view: Resource context menu"
+caption="Current State Tree view: Resource context menu"
+max-width="50%"
+%}
+
+**Resource info**
+Mouse over a node to see a tooltip for that resource. For detailed information, select the resource.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-resource-summary.png"
+url="/images/applications/current-state-resource-summary.png"
+alt="Current State Tree view: Resource tooltip"
+caption="Current State Tree view: Resource tooltip"
+max-width="50%"
+%}
+
+**Search resources**
+Quickly find a resource by typing the resource name in the search field. You can identify search results through the border which is different from the borders depicting health status. Press Enter to navigate to the next result.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-tree-search.png"
+url="/images/applications/current-state-tree-search.png"
+alt="Current State Tree view: Search resources"
+caption="Current State: Search resources"
+max-width="50%"
+%}
+
+
+
+**Resource inventory**
+The Resource inventory in the Tree view (bottom-left), summarizes the aggregated count for each resource type in the application.
+For visibility and quick access, `Syncing` and `Out-of-Sync` resources are bucketed separately.
+
+{::nomarkdown}
+
+{:/}
+
+Click-filters:
+
+In the resource inventory, selecting a `Syncing` or `Out-of-Sync` resource type, filters the Current State by that resource type and sync status.
+These filters are automatically applied to the default filter list for both Tree and List views.
+Here's an example of an application with out-of-sync resources, and the result on selecting an out-of-sync resource type.
+
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-tree-resource-list.png"
+url="/images/applications/current-state-tree-resource-list.png"
+alt="Current State Tree view: Resource inventory"
+caption="Current State Tree view: Resource inventory"
+max-width="50%"
+%}
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-tree-resource-filtered.png"
+url="/images/applications/current-state-tree-resource-filtered.png"
+alt="Current State Tree view: Resource inventory filtered by out-of-sync service"
+caption="Current State Tree view: Resource inventory filtered by out-of-sync service"
+max-width="50%"
+%}
+
+
+### Filters for application resources
+Filters are common to both Tree and List views, and when applied are retained when switching between views.
+
+`IgnoreExtraneous` is a filter in [Argo CD](https://argo-cd.readthedocs.io/en/stable/user-guide/compare-options){:target="\_blank"} that allows you to hide specific resources from the Current State views. These resources are usually generated by a tool and their sync statuses have no impact on the sync status of the application. For example, `ConfigMap` and `pods`. The application remains in-sync even when such resources are syncing or out-of-sync.
+
+>The `IgnoreExtraneous` filter applies only to the sync status. The health status of the resource directly affects the application's health status. If the resource is degraded, then the application is also degraded.
+
+**For the `IgnoreExtraneous` filter to be effective:**
+
+* Add `IgnoreExtraneous` as an annotation to the resource, as in the example below of the `ConfigMap` resource.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-ignore-extraneous-annotation.png"
+url="/images/applications/current-state-ignore-extraneous-annotation.png"
+alt="Resource with IgnoreExtraneous annotation"
+caption="Resource with IgnoreExtraneous annotation"
+max-width="50%"
+%}
+
+* In the Current State tab, click the `IgnoreExtraneous` filter.
+ You can see that the `IgnoreExtraneous` filter is active and the `ConfigMap` resource is not displayed in the Current State.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-ignore-extraneous-on.png"
+url="/images/applications/current-state-ignore-extraneous-on.png"
+alt="Current State filtered by IgnoreExtraneous resources"
+caption="Current State filtered by IgnoreExtraneous resources"
+max-width="50%"
+%}
+
+
+### Health status for application resources
+View and monitor health status of the selected application's resources in the Current State tab, in Tree or List views.
+Identify the health of an application resource through the color-coded border and the resource-type icon (Tree view), or the textual labels at the right of the resource (List view).
+
+
+{: .table .table-bordered .table-hover}
+| Health status | Description | Display in Tree view |
+| -------------- | ------------| ------------------|
+
+| **Healthy** | Resource is functioning as required. | {::nomarkdown}{:/} |
+| **Progressing** | Resource is not healthy but can become healthy before the timeout occurs.| {::nomarkdown}{:/} |
+| **Suspended** | Resource is not functioning, and is either suspended or paused. For example, Cron job or a canary rollout.| {::nomarkdown}{:/} |
+| **Missing** | Resource is not present on the cluster. |{::nomarkdown}{:/} |
+| **Degraded** | Resource is not healthy, or a timeout occurred before it could reach a healthy status.| {::nomarkdown}{:/} |
+| **Unknown** | Resource does not have a health status, or the health status is not tracked in Argo CD. For example,`ConfigMaps` resource types. | {::nomarkdown}{:/} |
+
+
+See also [Argo CD's set of health checks](https://argo-cd.readthedocs.io/en/stable/operator-manual/health/){:target="\_blank"}.
+
+
+
+### Sync status for application resources
+
+Similar to the health status, the Current State also tracks the sync status of all application resources. The sync status identifies if the live state of the application resource on the cluster is synced with its desired state in Git.
+Identify the sync status through the icon on the left of the resource name and the color of the resource name (Tree view), or the textual labels at the right of the resource (List view).
+
+The table describes the possible sync statuses for an application resource, and its representation in the Tree view.
+
+{: .table .table-bordered .table-hover}
+| Sync state | Description |Display in Tree view |
+| -------------- | ---------- | ---------- |
+
+| **Synced** | The live state of the resource on the cluster is identical to the desired state in Git.| {::nomarkdown}{:/} |
+| **Syncing** | The live state of the resource was not identical to the desired state, and is currently being synced.| {::nomarkdown}{:/} |
+| **Out-of-Sync** | {::nomarkdown}The live state is not identical to the desired state. To sync a resource, select the Sync option from the resource's context menu in Tree view. {:/}| {::nomarkdown}{:/} |
+| **Unknown** | The sync status could not be determined. | {::nomarkdown}{:/} |
+
+
+> The application header displays the statuses of the current and previous sync operations. Clicking **More** opens the Sync panels with Sync Info, Sync Result and Commit Info.
+ The Application Warnings/Errors panel surfaces sync errors on exceeding the maximum number of retries and when a sync operation extends beyond 30 minutes.
+
+### Manifests for application resources
+
+In either Tree or List views, double-click an application resource to see its manifests. The manifests are displayed in the Summary tab.
+> Based on the selected resource type, you can also view logs, and events. Endpoints for example show only manifests, while pods show manifests, logs, and events.
+
+> To view information for the application resource, select the application node in Tree View. See [Application information](#application-quick-view).
+
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-resource-summary.png"
+url="/images/applications/current-state-resource-summary.png"
+alt="Current State Tree view: Resource tooltip"
+caption="Current State Tree view: Resource tooltip"
+max-width="50%"
+%}
+
+Here's what you can see and do in the Summary tab:
+> Press Ctrl/Command F to search for strings in the manifest.
+
+* Desired and Live states of the resource manifest:
+ * Managed resources, stored in Git repositories and using Git as the single source of truth, show both the Desired (Git) and the Live (cluster) states.
+ If there are discrepancies between them, the Diff view is displayed, highlighting the differences in both versions for comparison.
+ * Resources that are not stored in Git but live in the cluster, show only the Live state.
+* Share resource details: Copy the URL and send to others in your organization to share the resource details for collaborative review and analysis. Pasting the URL in a browser opens to the same view of the resource.
+* Hide Managed Fields: In the Live state version of the manifest, you can hide managed-field information from the manifest. Managed-fields show information on which field manager manages the field, after Kubernetes introduced `Server Side Apply`. For more information, see [Field Management](https://kubernetes.io/docs/reference/using-api/server-side-apply/#field-management){:target="\_blank"}.
+
+{::nomarkdown}
+
+{:/}
+
+### Logs for application resources
+In either Tree or List views, double-click an application resource to see its logs. Logs are available only for resource types such as pods.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-logs.png"
+url="/images/applications/current-state-logs.png"
+alt="Current State: Logs for resource"
+caption="Current State: Logs for resource"
+max-width="50%"
+%}
+
+
+* Search: Free-text search for any string in the log, using the next and previous buttons to navigate between the results, or Enter for sequential navigation.
+* Wrap: Enable/disable line wrapping
+* Download: Download the complete log into a text file for offline viewing and analysis.
+
+{::nomarkdown}
+
+{:/}
+
+### Events for application resources
+In either Tree or List views, double-click an application resource to see events in the Events tab.
+> If your runtime is lower than the version required to view events, you are notified to upgrade to the required version.
+
+The Events tab displays both successful and failed events from Argo CD, starting with the most recent event.
+Argo CD displays events as they occur for an application resource, and retains event information for a duration of 30 minutes. Historical events older than this duration are removed, and the Events tab can be empty if there are no ongoing events.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/current-state-events-tab.png"
+url="/images/applications/current-state-events-tab.png"
+alt="Current State: Events for resource"
+caption="Current State: Events for resource"
+max-width="50%"
+%}
+
+
+
+
+
+
+## Monitor deployments for selected application
+Monitor an ongoing deployment for the selected application, and review its historical deployments.
+The Timeline tab displays the history of deployments for the selected application, sorted by the most recent deployment (default), labeled **Current Version** at the top.
+
+The deployment chart displays the day-to-day deployments for the selected time period. Mouse over the dot on the deployment chart for information on historical deployments.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/dashboard-timeline-main.png"
+url="/images/applications/dashboard-timeline-main.png"
+alt="Applications Dashboard: Timeline tab"
+caption="Applications Dashboard: Timeline tab"
+max-width="30%"
+%}
+
+You can:
+* [Monitor CI details by deployments](#monitor-ci-details-by-deployment)
+* [Monitor updated resources by deployment](#monitor-updated-resources-by-deployment)
+* [Monitor rollouts by deployment](#monitor-rollouts-by-deployment)
+
+
+**How to monitor deployments**
+1. If required, set filters to narrow the number of deployments for the selected application.
+1. To view GitOps details for a deployment, in the deployment chart mouse over the dot that represents the deployment.
+1. To view additional details, expand the record for that deployment.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/apps-historical-deployment.png"
+url="/images/applications/apps-historical-deployment.png"
+alt="Applications Dashboard: Deployment chart"
+caption="Applications Dashboard: Deployment chart"
+max-width="30%"
+%}
+
+### Monitor CI details by deployment
+
+Each deployment record displays the complete CI history for that deployment.
+
+
+* The **CI Builds** shows the image(s) created or updated during deployment. Click to see the **Images** view in a new browser window.
+* The **Pull Request (PRs)** used for the commit.
+* The Jira **Issues** the PR aims to resolve or has resolved, with the current status.
+* The **Committer** who made the changes.
+
+
+### Monitor updated resources by deployment
+Each deployment record also identifies the resources that were changed (created, updated, or removed) as part of that deployment in **Updated Resources**. You can trace the history of a resource, from the original to their final versions. For each version, you can see the actual change or changes through the Diff view. The Full View shows the complete resource manifest, with the diff view of the changes, while the Compact View shows only those lines with the changes.
+
+> For detailed information on the current state of a resource, switch to the Current State tab and click the resource node. See [Monitoring application resources](#monitoring-application-resources).
+
+1. Select a deployment record, and expand **Updated Resources**.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/timeline-resources-updated.png"
+url="/images/applications/timeline-resources-updated.png"
+alt="Timeline tab: Updated Resources for deployment"
+caption="Timeline tab: Updated Resources for deployment"
+max-width="70%"
+%}
+
+{:start="2"}
+1. To see the changes for a resource, click the resource name.
+ The Full View of the resource manifest is displayed with the diff view of the changes.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/timeline-resources-full-view.png"
+url="/images/applications/timeline-resources-full-view.png"
+alt="Full View of changes for updated resource"
+caption="Full View of changes for updated resource"
+max-width="70%"
+%}
+
+{:start="3"}
+1. To view only the changes, click **Compact View**.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/timeline-resources-compact-view.png"
+url="/images/applications/timeline-resources-compact-view.png"
+alt="Full View of changes for updated resource"
+caption="Full View of changes for updated resource"
+max-width="70%"
+%}
+
+
+
+### Monitor rollouts by deployment
+A rollout is initiated when there is an Argo CD sync due to a change in the desired state.
+Visualize ongoing and completed rollouts by deployments in **Services**.
+
+> To view and manage a rollout, you must have an Argo `rollout` resource defined for your application, and [install Argo Rollouts in the cluster]({site.baseurl}}/docs/deployments/gitops/install-argo-rollouts).
+
+For detailed information on Argo Rollouts, see [Argo Rollouts documentation](https://argoproj.github.io/argo-rollouts/){:target="\_blank"}.
+
+#### Rollout progress
+For an ongoing rollout, the rollout bar displays the progress of the rollout. You can also visualize the steps in the rollout, and control the rollout using the options in the Rollout Player.
+
+Here is an example of an ongoing rollout for a canary deployment in Updated Services. The rollout comprising four steps has not started, and no traffic has not been routed as yet to the new version of the application.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/apps-dashboard-rollout-in-progress.png"
+url="/images/applications/apps-dashboard-rollout-in-progress.png"
+alt="Rollout in progress for deployment"
+caption="Rollout in progress for deployment"
+max-width="50%"
+%}
+
+Based on the current state of the rollout, you can pause and resume an ongoing rollout.
+Here is an example of the rollout for the same deployment on completion. All traffic has been routed to the new version.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/apps-dashboard-rollout-complete.png"
+url="/images/applications/apps-dashboard-rollout-complete.png"
+alt="Rollout completed for deployment"
+caption="Rollout completed for deployment"
+max-width="50%"
+%}
+
+#### Manage ongoing rollout
+Click the rollout name to visualize its steps. Manually manage the rollout through the controls in the Rollout Player.
+Here you can see that two out of four steps have been completed, 25% of the traffic has been routed, and the rollout has been paused for the defined length of time.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/rollout-player.png"
+url="/images/applications/rollout-player.png"
+alt="Rollout step visualization and Rollout Player"
+caption="Rollout steps and Rollout Player"
+max-width="50%"
+%}
+
+
+The table lists the controls in the Rollout Player to manage an ongoing rollout.
+
+: .table .table-bordered .table-hover}
+| Rollback player option | Description |
+| -------------- | ------------|
+| **Rollback** | Not available currently. |
+| **Resume** {::nomarkdown} {:/}| Resume a step that has been paused indefinitely. |
+| **Skip step** {::nomarkdown} {:/} | Skip execution of current step. Such steps are marked as Skipped in the rollout visualization. |
+| **Promote full rollout** {::nomarkdown} {:/} | Skip remaining pause, traffic routing, and analysis steps, and deploy the current release. |
+
+
+
+#### View analysis run
+If you have defined an analysis template for the rollout, you can check the run results and the manifest.
+ The result of an analysis run determines if the rollout is completed, paused, or aborted. For detailed information, see the [Analysis section in Argo Rollouts](https://argoproj.github.io/argo-rollouts/features/analysis/){:target="\_blank"}.
+
+If you are running Background Analysis for example, the first step shows the list of analysis metrics.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/app-rollout-analysis-template-step.png"
+url="/images/applications/app-rollout-analysis-template-step.png"
+alt="Rollout: Analysis Metrics in Background Analysis"
+caption="Analysis Template: Analysis Metrics in Background Analysis"
+max-width="50%"
+%}
+
+Click the metric link in the step.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/app-rollout-run-results-manifest.png"
+url="/images/applications/app-rollout-run-results-manifest.png"
+alt="Analysis Template: Run Results and Manifest for Analysis Metric"
+caption="Analysis Template: Run Results and Manifest for Analysis Metric"
+max-width="50%"
+%}
+
+
+## Monitor services for selected application
+The Services tab shows the K8s services for each deployment of the application.
+Each service shows the number of replicas, the endpoint IP, the labels that reference the application, and the health status.
+
+For more information, see the official documentation on [Services](https://kubernetes.io/docs/concepts/services-networking/service/){:target="\_blank"}.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/apps-dashboard-services.png"
+url="/images/applications/apps-dashboard-services.png"
+alt="Applications Dashboard: Services tab"
+caption="Applications Dashboard: Services tab"
+max-width="50%"
+%}
+
+## Related articles
+
+[Creating GitOps applications]({{site.baseurl}}/docs/deployments/gitops/create-application)
+[Managing GitOps applications]({{site.baseurl}}/docs/deployments/gitops/manage-applications)
+[Home dashboard]({{site.baseurl}}/docs/reporting/home-dashboard)
+[DORA metrics]({{site.baseurl}}/docs/reporting/dora-metrics/)
+
+
diff --git a/_docs/deployments/gitops/create-application.md b/_docs/deployments/gitops/create-application.md
new file mode 100644
index 000000000..274251725
--- /dev/null
+++ b/_docs/deployments/gitops/create-application.md
@@ -0,0 +1,232 @@
+---
+title: "Creating GitOps applications"
+description: ""
+group: deployments
+sub_group: gitops
+toc: true
+---
+
+
+
+Codefresh provides all the options and functionality to create and manage Argo CD applications in the Codefresh UI.
+* Create Argo CD applications that are fully GitOps compliant, from generating the application configuration manifest, committing it to Git, and syncing and deploying to the cluster.
+ Creating an application in Codefresh includes:
+ * Application definitions
+ * General configuration settings
+ * Advanced configuration settings
+
+ The Create application wizard guides you through the process of creating an application. For how-to information, see [Create an application](#create-an-application).
+ For example Argo CD applications, see this [repo](https://github.com/oleksandr-codefresh/argocd-example-apps){:target="_blank"}.
+
+* Edit and delete applications
+ Once the application is created and synced to the cluster, it is displayed in the Applications dashboard. Here, you can select an application to update the application's configuration settings, or delete it.
+ To monitor the health and sync status, deployments, and resources for the application, see [Monitoring GitOps applications]({{site.baseurl}}/docs/deployments/gitops/applications-dashboard/).
+
+### Application: Definitions
+Application definitions include the name, runtime, and the name of the YAML manifest. By default, the YAML manifest has the same name as that of the application.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/applications/add-app-definitions.png"
+ url="/images/applications/add-app-definitions.png"
+ alt="Application definitions"
+ caption="Application definitions"
+ max-width="50%"
+ %}
+
+
+### Application: General configuration settings
+
+General configuration settings define the source, destination, and sync policies for the application.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/applications/add-app-general-settings.png"
+ url="/images/applications/add-app-general-settings.png"
+ alt="General configuration settings"
+ caption="General configuration settings"
+ max-width="70%"
+ %}
+
+#### Source
+The Git repository to be tracked for changes to the application's source code.
+{::nomarkdown}
ArgoCD Project: The project group to which the application belongs. A project is useful to enforce restrictions on permitted sources and targets for applications, and roles. If not defined, the application is automatically assigned to the default project, which is created automatically by Argo CD and has no restrictions. For more information, see Argo CD's documentation on Projects.
Repository URL: The Git repo or the Helm package repo with the application source code, to be tracked for changes. If the Argo CD project is not the default project, make sure that the repo has the correct access roles for your application.
Revision and Path: Applies to Git repositories.
Chart: Applies to Helm repositories. The name of the Helm package with all the resource definitions for the application, and the version.
{:/}
+
+{::nomarkdown}
+
+{:/}
+
+#### Destination
+The cluster and namespace to which to deploy the application.
+{::nomarkdown}
Cluster: The cluster to which to deploy the application, defined as a URL, or as the user-defined display NAME.
Namespace: The namespace in the cluster to which to deploy the application.
{:/}
+
+{::nomarkdown}
+
+{:/}
+
+#### Sync Settings
+##### Sync Policy
+{::nomarkdown}The synchronization policy to apply when there are differences between the desired state in Git and the actual state in the cluster.
Manual: Manually sync the changes from the Argo CD UI.
Automatic: Automatically sync changes, with the following options if selected:
Prune resources:When selected, removes legacy resources that do not exist currently in Git.
Self heal: When selected, always enforces a sync to the desired state in Git, if and when there is a change to the actual state in the cluster. See Automatic self-healing.
{:/}
+
+{::nomarkdown}
+
+{:/}
+
+##### Sync Options
+{::nomarkdown}Common to both manual and automatic sync policies.
Skip schema validation: When selected, bypasses validating the YAML schema.
Auto-create namespace: When selected, automatically create the namespace if the specified namespace does not exist in the cluster.
Prune last: When selected, removes those resources that do not exist in the currently deployed version during the final wave of the sync operation. See Prune last.
Apply out of sync only: When selected, syncs only those resources in the application that have been changed and are OutOfSync, instead of syncing every resource regardless of their state. This option is useful to reduce load and save time when you have thousands of resources in an application. See Selective Sync.
{:/}
+
+{::nomarkdown}
+
+{:/}
+
+##### Prune propagation policy
+{::nomarkdown}Defines how resources are pruned, applying Kubernetes cascading deletion prune policies.
+For more information, see Kubernetes - Cascading deletion.
Foreground: The default prune propagation policy used by Argo CD. With this policy, Kubernetes changes the state of the owner resource to `deletion in progress`, until the controller deletes the dependent resources and finally the owner resource itself.
Background: When selected, Kubernetes deletes the owner resource immediately, and then deletes the dependent resources in the background.
Orphan: When selected, Kubernetes deletes the dependent resources that remain orphaned after the owner resource is deleted.
{:/}
+All Prune propagation policies can be used with:
+**Replace**: When selected, Argo CD executes `kubectl replace` or `kubectl create`, instead of the default `kubectl apply` to enforce the changes in Git. This action will potentially recreate resources and should be used with care. See [Replace Resource Instead Of Applying Change](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#replace-resource-instead-of-applying-changes){:target="_blank"}.
+
+**Retry**: When selected, retries a failed sync operation, based on the retry settings configured:
+* Maximum number of sync retries (**Limit**)
+* Duration of each retry attempt in seconds, minutes, or hours (**Duration**)
+* Maximum duration permitted for each retry (**Max Duration**)
+* Factor by which to multiply the Duration in the event of a failed retry (**Factor**). A factor of 2 for example, attempts the second retry in 2 X 2 seconds, where 2 seconds is the Duration.
+
+{::nomarkdown}
+
+{:/}
+
+### Application: Advanced configuration settings
+
+Advanced settings define the tool used to create the application, and related toll-specific settings.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/applications/add-app-advanced-settings.png"
+ url="/images/applications/add-app-advanced-settings.png"
+ alt="Advanced configuration settings"
+ caption="Advanced configuration settings"
+ max-width="70%"
+ %}
+
+
+#### Type of Application
+The tool used to create the application's manifests. Codefresh supports defining application manifests as a directory, Helm charts, or Kustomize. If you are using other tools to define application manifests, use the Plugin type. For more information, see the Argo CD's documentation on [Tools](https://argo-cd.readthedocs.io/en/stable/user-guide/application_sources/){:target="_blank"}.
+
+
+* **Directory**: A `directory` application, which is the default application type in Argo CD.
+ * **Directory recurse**: Optional. Select to include subdirectories.
+ * **Top-level arguments**: Optional. Select and define parameters.
+ * **External variables**: Optional. Select and define external variables.
+
+* **Helm**: Create the application as a Helm chart.
+ * **Values files**: One or more `values.yaml` files to store the parameters.
+ * **Values**: Optional. When defined, new values not in `values.yaml` files are added, and existing values are overridden.
+
+* **Kustomize**: Create a Kustomize application, with the following settings:
+ * **Version**: The version of Kustomize used to create the application.
+ * **Name Prefix** and **Name Suffix**: Optional. The prefix and suffix to be appended to the resources of the application.
+
+* **Plugin**: Use for any other tool.
+ * **Name**: The name of the Plugin used to create the application.
+ * **External Variables**: The variables to use in the application.
+
+For example applications, go to the [Argo CD example applications repo](https://github.com/argoproj/argocd-example-apps){:target="_blank"}.
+
+{::nomarkdown}
+
+{:/}
+
+### Create an application
+Create a new application from the Applications dashboard with the Add Application wizard.
+Edit the manifest directly in YAML mode, or define the settings in the Form mode. Toggle between the modes as convenient. You can also edit the YAML manifest directly at all stages, after defining configuration settings, and before the final commit.
+
+**Before you begin**
+
+Review:
+[General configuration](#general-configuration-settings)
+[Advanced configuration](#advanced-configuration-settings)
+
+
+**How to**
+1. In the Codefresh UI, go to [Applications dashboard](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}.
+1. On the top-right, select **Add Application**.
+1. In the Add Application panel, add definitions for the application:
+ * Application name: Must be unique within the cluster.
+ * Runtime: The runtime to associate with the application.
+ * YAML filename: The name of the application's configuration manifest, assigned on commit to Git. By default, the manifest is assigned the application name. Change the name as required.
+
+ >The application definitions cannot be changed after you continue to the Configuration settings.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/applications/add-app-definitions.png"
+ url="/images/applications/add-app-definitions.png"
+ alt="Add Application panel"
+ caption="Add Application panel"
+ max-width="50%"
+ %}
+
+{:start="4"}
+1. Select **Next** to go to the Configuration tab.
+ By default you are in Form mode. You can toggle between the Form and YAML modes as you define the application's configuration settings. You can edit the YAML manifest.
+1. Define the **General** settings for the application.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/applications/add-app-general-settings.png"
+ url="/images/applications/add-app-general-settings.png"
+ alt="Add Application: General settings"
+ caption="Add Application: General settings"
+ max-width="70%"
+ %}
+
+{:start="6"}
+1. Define the **Advanced** settings for the application.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/applications/add-app-general-settings.png"
+ url="/images/applications/add-app-general-settings.png"
+ alt="Add Application: Advanced settings"
+ caption="Add Application: Advanced settings"
+ max-width="70%"
+ %}
+
+{:start="7"}
+1. To commit all your changes, select **Commit**.
+ The Commit form is displayed with the application's definition on the left, and the read-only version of the manifest with the configuration settings you defined on the right.
+1. Enter the path to the **Git Source** to which to commit the application configuration manifest.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/applications/add-app-final-commit.png"
+ url="/images/applications/add-app-final-commit.png"
+ alt="Add Application: Commit to Git"
+ caption="Add Application: Commit to Git"
+ max-width="70%"
+ %}
+
+{:start="9"}
+1. Add a commit message and then select **Commit** on the bottom-right of the panel.
+
+
+Your application is first committed to Git, and then synced to the cluster which may take a few moments.
+Track the application in the [Applications dashboard](https://g.codefresh.io/2.0/applications-dashboard/list){:target="_blank"}.
+
+{::nomarkdown}
+
+{:/}
+
+
+### Related articles
+[Monitoring GitOps applications]({{site.baseurl}})/docs/deployments/gitops/applications-dashboard)
+[Managing GitOps applications]({{site.baseurl}})/docs/deployments/gitops/manage-applications)
+[Home dashboard]({{site.baseurl}}/docs/reporting/home-dashboard)
+[DORA metrics]({{site.baseurl}}/docs/reporting/dora-metrics/)
\ No newline at end of file
diff --git a/_docs/deployments/gitops/images.md b/_docs/deployments/gitops/images.md
new file mode 100644
index 000000000..ebe6af780
--- /dev/null
+++ b/_docs/deployments/gitops/images.md
@@ -0,0 +1,121 @@
+---
+title: "Images in Codefresh"
+description: ""
+group: deployments
+sub_group: gitops
+toc: true
+---
+
+Building Docker images is one of the most basic requirements for creating Codefresh pipelines and Argo Workflows.
+Once you create an image, push the image to a registry, and report it to Codefresh, image information is continually updated in the Images page.
+
+### Requirements for Images in Codefresh
+Complete the mandatory steps to see your Images in the Codefresh UI. Each step has links to examples in the Codefresh Hub for Argo.
+
+1. (Mandatory) Build the Docker image, and push the image to any registry.
+ See [Create a Docker image using Kaniko](https://codefresh.io/argohub/workflow-template/kaniko){:target="\_blank"}.
+1. (Optional) Enrich image information with annotations and metadata.
+ For Git and Jira image enrichment examples, see [Codefresh-metadata image enrichment](https://codefresh.io/argohub/workflow-template/CSDP-metadata){:target="\_blank"}.
+1. (Mandatory) Report image information to Codefresh.
+ See the [report-image-info](https://github.com/codefresh-io/argo-hub/blob/main/workflows/codefresh-csdp/versions/0.0.6/docs/report-image-info.md){:target="\_blank"} example.
+
+> If you are using an external GitHub Actions-based pipeline, we have a new template that combines image reporting and enrichment. See [Image enrichment with integrations]({{site.baseurl}}/docs/integrations/gitops/image-enrichment-overview/).
+
+### Image views in Codefresh
+* In the Codefresh UI, go to [Images](https://g.codefresh.io/2.0/images){:target="\_blank"}.
+
+Image views are layered to show three levels of data:
+* Repository and application deployment
+* Tags
+* Summary with metadata and binary information
+
+#### Filters for Image views
+As with any resource in Codefresh, image views support filters that allow you focus on the data that's important to you.
+Most image filters support multi-selection. Unless otherwise indicated, the filters are common to all view levels.
+
+{: .table .table-bordered .table-hover}
+| Filter | Description|
+| -------------- | -------------- |
+| **Repository Names** | The Git repository or repositories that contain the image. |
+| **Tag** | The tag by which to filter. |
+| **Registry Types** | The registry which stores your image. To filter by registries that are not listed, select **Other types**.|
+| **Git branch** | The Git branch to which the image is pushed.|
+| **Git repositories** | The Git provider you use.|
+| **Deployed in application**| The application or applications in which the image is currently deployed.|
+| **Sorted by** | List images by **Name**, or by the most recent update, **Last update**.
+
+
+
+#### Image repository and deployment view
+The default view for image resources shows repository and deployment information.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/image/application-level.png"
+ url="/images/image/application-level.png"
+ alt="Repository & deployment info for Images in Codefresh"
+ caption="Repository & deployment info for Images in Codefresh"
+ max-width="30%"
+ %}
+
+{: .table .table-bordered .table-hover}
+| Legend | Description|
+| -------------- | -------------- |
+| **1** | The name of the image. |
+| **2** | The applications in which the image is currently deployed. Select the application to go to the Applications dashboard.|
+| **3** | The details on the most recent commit associated with the image. Select the commit to view the changes in the Git repository.|
+| **4** | Binary information on the image.|
+| **5** | The registry to which the image is pushed, and from which it is distributed.|
+
+### Image tag view
+Drilldown on the repository shows tag information for the image.
+{% include
+ image.html
+ lightbox="true"
+ file="/images/image/tag-view.png"
+ url="/images/image/tag-view.png"
+ alt="Tag info for Images in Codefresh"
+ caption="Tag info for Images in Codefresh"
+ max-width="30%"
+ %}
+
+{: .table .table-bordered .table-hover}
+| Legend | Description|
+| -------------- | -------------- |
+| **1** | The image tag. |
+| **2** | The comment describing the commit or change, with the name of the Git provider and the corresponding PR. To view details of the commit changes in the Git repository, select the commit text.|
+| **3** | The hash of the Docker image, generated as sha256. A change in the digest indicates that something has changed in the image.|
+| **4** | The registry to which the image is pushed (stored), and from which it is distributed.|
+| **5** | The OS and architecture in which the image was created. The date and time of the most recent update is in the local time zone|
+| **6** | Additional information on the image. To view the Summary, select **more details**.|
+
+### Image summary view
+The Summary view shows metadata for the image.
+Selecting **more details** for an image tag.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/image/summary-view.png"
+ url="/images/image/summary-view.png"
+ alt="Summary info for Images in Codefresh"
+ caption="Summary info for Images in Codefresh"
+ max-width="30%"
+ %}
+
+{: .table .table-bordered .table-hover}
+| Legend | Description|
+| -------------- | -------------- |
+| **1** | The bugs or fix requests opened and being worked on for this image tag. |
+| **2** | The pull request or requests pending commit.|
+| **3** | The Git details for this image tag, such as the Git hash, the Jira issue number, Git Pull Request, commit information, the name of the user who performed the commit. |
+| **4** | The workflow for the image step. Select to go to the Workflow.|
+| **5** | The log information for the build image step in the relevant workflow. Select to view Logs panel. |
+
+## Related articles
+
+[Creating GitOps applications]({{site.baseurl}}/docs/deployments/gitops/create-application)
+[Managing GitOps applications]({{site.baseurl}}/docs/deployments/gitops/manage-applications)
+[Image enrichment with integrations]({{site.baseurl}}/integrations/image-enrichment-overview)
+[Home dashboard]({{site.baseurl}}/docs/reporting/home-dashboard)
diff --git a/_docs/deployments/gitops/install-argo-rollouts.md b/_docs/deployments/gitops/install-argo-rollouts.md
new file mode 100644
index 000000000..0847b58c3
--- /dev/null
+++ b/_docs/deployments/gitops/install-argo-rollouts.md
@@ -0,0 +1,28 @@
+---
+title: "Progressive delivery with GitOps"
+description: ""
+group: deployments
+sub_group: gitops
+toc: true
+---
+
+
+Install Argo Rollouts on managed clusters with a single click. With Argo Rollouts installed on your cluster, you can visualize rollout progress for deployed applications in the [Applications dashboard]({{site.baseurl}}/docs/deployments/gitops/applications-dashboard/#rollout-progress-visualization).
+If Argo Rollouts has not been installed, an **Install Argo Rollouts** button is displayed on selecting the managed cluster.
+
+1. In the Codefresh UI, go to [Runtimes](https://g.codefresh.io/2.0/account-settings/runtimes){:target="\_blank"}.
+1. Select **Topology View**.
+1. Select the target cluster, and then select **+ Install Argo Rollouts**.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/runtime/cluster-install-rollout.png"
+ url="/images/runtime/cluster-install-rollout.png"
+ alt="Install Argo Rollouts"
+ caption="Install Argo Rollouts"
+ max-width="40%"
+%}
+
+### Related articles
+[Add external clusters to runtimes]({{site.baseurl}}/docs/installation/managed-cluster/)
\ No newline at end of file
diff --git a/_docs/deployments/gitops/manage-application.md b/_docs/deployments/gitops/manage-application.md
new file mode 100644
index 000000000..15a0049d9
--- /dev/null
+++ b/_docs/deployments/gitops/manage-application.md
@@ -0,0 +1,360 @@
+---
+title: "Managing GitOps applications"
+description: ""
+group: deployments
+sub_group: gitops
+toc: true
+---
+
+Application creation and deployment is one part of the continuous deployment/delivery process. An equally important part is optimizing deployed applications when needed.
+
+* [Edit applications](#edit-application-definitions)
+ Optimize deployed applications by changing application definitions when needed.
+
+* [Synchronize applications](#manually-synchronize-an-application)
+ Sync applications on-demand by manually applying sync options or selecting the resources to sync.
+
+
+
+
+* [Manage rollouts for deployments](#manage-rollouts-for-deployments)
+ Control ongoing rollouts by resuming indefinitely paused steps, promoting rollouts, aborting, restarting and retrying rollouts.
+
+
+
+
+
+### Edit application definitions
+Update General or Advanced configuration settings for a deployed application through the Configuration tab. Once the application is deployed to the cluster, the Configuration tab is available on selecting the application in the Applications dashboard.
+
+> You cannot change application definitions (the application name and the selected runtime), and the Git Source selected for the application.
+
+**How to**
+
+1. In the Codefresh UI, go to the [Applications dashboard](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}.
+1. Do one of the following:
+ * Select the application to update, and then from the context menu on the right, select **Edit**.
+
+ * Click the application and then select the **Configuration** tab.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/applications/edit-app-configuration-tab.png"
+ url="/images/applications/edit-app-configuration-tab.png"
+ alt="Configuration tab with application settings"
+ caption="Configuration tab with application settings"
+ max-width="70%"
+ %}
+
+{:start="3"}
+1. Update the **General** or **Advanced** configuration settings as needed:
+ [General configuration]({{site.baseurl}}/docs/deployments/gitops/create-application/#application-general-configuration-settings)
+ [Advanced configuration]({{site.baseurl}}/docs/deployments/gitops/create-application/#application-advanced-configuration-settings)
+ When you change a setting, the Commit and Discard Changes buttons are displayed.
+
+ {% include
+ image.html
+ lightbox="true"
+ file="/images/applications/edit-app-change-setting.png"
+ url="/images/applications/edit-app-change-setting.png"
+ alt="Edit application settings"
+ caption="Edit application settings"
+ max-width="70%"
+ %}
+
+{:start="4"}
+1. Do one of the following:
+ * To _commit all changes_, click **Commit**. This final commit screen is displayed with a diff view of the changes.
+ * To _undo all changes_ and return to the previous settings, click **Discard Changes**. This action removes all the changes you have made so far and returns you to the Applications dashboard.
+
+ >If you change settings and then restore existing values for the same, Codefresh automatically removes the Commit and Discard Changes buttons as there are no new changes to commit or discard.
+
+ {% include
+ image.html
+ lightbox="true"
+ file="/images/applications/edit-app-diff-view.png"
+ url="/images/applications/edit-app-diff-view.png"
+ alt="Commit changes with diff view"
+ caption="Commit changes with diff view"
+ max-width="70%"
+ %}
+
+{:start="5"}
+1. To confirm all changes, at the bottom-left, click **Commit**.
+ The changes are committed to Git, and in a few moments also synced to the cluster.
+
+{::nomarkdown}
+
+{:/}
+
+### Manually synchronize an application
+Manually synchronize an application to expedite Git-to-cluster sync. The sync options selected for manual sync override the sync options defined for the application.
+The sync options, grouped into Revision and Additional Settings, are identical to the Sync options in the General settings when you created the application.
+
+>You can also synchronize application resources with sync statuses, such as `Service`, `AnalysisTemplate`, and `Rollouts` resources for example, in the Current State tab. The context menu of the resource shows the Sync option.
+
+**Before you begin**
+* Review:
+ [Revision settings for application sync](#revision-settings-for-application-sync)
+ [Additional Options for application sync](#additional-options-for-application-sync)
+ [Synchronize resources](#synchronize-resources)
+
+**How to**
+1. In the Codefresh UI, go to the [Applications dashboard](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}.
+1. Sync an application:
+ * Select the application to sync, and do one of the following:
+ * From the context menu on the right, select **Synchronize**.
+ * On the top-right, click **Synchronize**.
+
+ Sync a resource:
+ * Click the application with the resource to sync.
+ * In the **Current State** tab, open the context menu of the resource, and then select **Sync**.
+
+1. Select the **Revision** and **Additional Options** for the manual sync.
+ Review
+1. Click **Next**.
+1. In the Synchronize Resources form, select the scope of the manual sync:
+ * To sync only specific resources, search for the resources by any part of their names, or define a Regex to filter by the required resources.
+ * **All**: Sync all resources regardless of their sync state.
+ * **Out of sync**: Sync _only_ resources that are `Out of sync`.
+
+{::nomarkdown}
+
+{:/}
+
+#### Revision settings for application sync
+Revision settings determine the behavior for the branch you select.
+
+**Revision**
+The branch in Git to synchronize with the cluster.
+
+**Prune**
+When selected, removes legacy resources from the cluster that do not exist currently in the Git branch.
+
+**Apply only**
+When selected, syncs only those resources in the application that have been changed and are `OutOfSync`, instead of syncing every resource regardless of their state. This option is useful to reduce load and save time when you have thousands of resources in an application. See [Selective Sync](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#selective-sync){:target="\_blank"}.
+
+**Dry run**
+When selected, allows you to preview the application before changes are made to the cluster.
+
+**Force**
+When selected, orphans the dependents of a deleted resource during the sync operation. This option is useful to prevent
+
+{::nomarkdown}
+
+{:/}
+
+#### Additional Options for application sync
+
+##### Sync Options
+
+* **Skip schema validation**
+ When selected, bypasses validating the YAML schema.
+* **Auto-create namespace**
+ When selected, automatically creates the namespace if the specified namespace does not exist in the cluster. If the namespace already exists, this setting is ignored.
+* **Prune last**
+ When selected, removes those resources that do not exist in the currently deployed version during the final wave of the sync operation. See [Prune last](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#prune-last){:target="\_blank"}.
+* **Apply out of sync only**
+ When selected, syncs only those resources in the application that have been changed and are `OutOfSync`, instead of syncing every resource regardless of their state. This option is useful to reduce load and save time when you have thousands of resources in an application. See [Selective Sync](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#selective-sync){:target="\_blank"}.
+* **Respect ignore differences**
+ When selected, Argo CD omits resources defined for the `spec.ignoreDifferences` attribute from the sync. Otherwise, Argo CD implements the desired state ad-hoc during the sync operation. See [Respect ignore difference configs](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#respect-ignore-difference-configs){:target="\_blank"}.
+
+##### Prune propagation policy
+{::nomarkdown}Defines how resources are pruned, applying Kubernetes cascading deletion prune policies.
+Read more at Kubernetes - Cascading deletion.
Foreground: The default prune propagation policy used by Argo CD. With this policy, Kubernetes changes the state of the owner resource to `deletion in progress`, until the controller deletes the dependent resources and finally the owner resource itself.
Background: When selected, Kubernetes deletes the owner resource immediately, and then deletes the dependent resources in the background.
Orphan: When selected, Kubernetes deletes the dependent resources that remain orphaned after the owner resource is deleted.
{:/}
+All Prune propagation policies can be used with:
+
+**Replace**: When selected, Argo CD executes `kubectl replace` or `kubectl create`, instead of the default `kubectl apply` to enforce the changes in Git. This action will potentially recreate resources and should be used with care. See [Replace Resource Instead Of Applying Change](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#replace-resource-instead-of-applying-changes){:target="\_blank"}.
+
+
+**Retry**: When selected, retries a failed sync operation, based on the retry settings configured:
+* Maximum number of sync retries (**Limit**)
+* Duration of each retry attempt in seconds, minutes, or hours (**Duration**)
+* Maximum duration permitted for each retry (**Max Duration**)
+* Factor by which to multiply the Duration in the event of a failed retry (**Factor**). A factor of 2 for example, attempts the second retry in 2 X 2 seconds, where 2 seconds is the Duration.
+
+{::nomarkdown}
+
+{:/}
+
+#### Synchronize resources
+Synchronize Resource options allow you to selectively sync application resources. You can bypass sync settings at the application level, and directly select the resources you want to sync, by state or otherwise.
+* All resources regardless of their sync states
+* Only out-of-sync resources
+* Only selected resources
+
+By default, Synchronize Resources displays and selects all resources in the application.
+
+ {% include
+ image.html
+ lightbox="true"
+ file="/images/applications/sync-manual-resources-form.png"
+ url="/images/applications/sync-manual-resources-form.png"
+ alt="Default settings for Synchronize Resources"
+ caption="Default settings for Synchronize Resources"
+ max-width="50%"
+ %}
+
+You can search/filter resources using part of the resource names or regex strings, and then select the resources you want to sync.
+For example, if you made changes to `api` resources or `audit` resources, type `api` or `audit` to locate the resources and then selectively sync those resources.
+
+ {% include
+ image.html
+ lightbox="true"
+ file="/images/applications/sync-manual-resource-search.png"
+ url="/images/applications/sync-manual-resource-search.png"
+ alt="Selective sync in Synchronize Resources"
+ caption="Selective sync in Synchronize Resources"
+ max-width="50%"
+ %}
+
+
+{::nomarkdown}
+
+{:/}
+
+
+
+### Manage rollouts for deployments
+Control ongoing rollouts by resuming indefinitely paused steps, promoting rollouts, aborting, restarting and retrying rollouts.
+
+{::nomarkdown}
+
+{:/}
+
+#### Pause/resume ongoing rollouts
+Pause and resume ongoing rollouts directly from the Timeline tab in the Applications dashboard.
+If the rollout is already automatically paused as result of a step definition, this action pauses the rollout even after the pause duration.
+
+
+1. In the Codefresh UI, go to the [Applications dashboard](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}.
+1. Select the application and go to the Timelines tab.
+1. In the deployment record for the ongoing rollout, expand **Updated Services**.
+1. Based on the current state of the rollout, click **Pause** or **Resume**, as relevant.
+
+{% include
+ image.html
+ lightbox="true"
+ file="/images/applications/rollout-resume-indefinite-pause.png"
+ url="/images/applications/rollout-resume-indefinite-pause.png"
+ alt="Resume paused rollout"
+ caption="Resume paused rollout"
+ max-width="70%"
+ %}
+
+{::nomarkdown}
+
+{:/}
+
+#### Manage an ongoing rollout with the Rollout Player
+Manage an ongoing rollout using the controls in the Rollout Player to skip steps, and promote rollouts.
+
+1. In the Codefresh UI, go to the [Applications dashboard](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}.
+1. Select the application and go to the Timelines tab.
+1. In the deployment record for the ongoing rollout, click the name of the rollout.
+1. Select the required option in the Rollout Player.
+
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/rollout-player.png"
+url="/images/applications/rollout-player.png"
+alt="Rollout Player controls for an ongoing rollout"
+caption="Rollout Player controls for an ongoing rollout"
+max-width="50%"
+%}
+
+
+The table describes the controls in the Rollout Player.
+
+{: .table .table-bordered .table-hover}
+| Rollback player option | Description |
+| -------------- | ------------|
+| **Rollback** | Not available currently. |
+| **Pause** | Pause the rollout. If the rollout is already automatically paused as the result of a step definition, clicking Pause pauses the rollout also after the pause duration. |
+| **Resume** | Resume a rollout that was paused either manually by clicking Pause, or automatically through the step's definition. |
+| **Skip step** | Skip execution of current step. Such steps are marked as Skipped in the rollout visualization. |
+| **Promote full** | Skip all remaining steps, and deploy the current image. |
+
+{::nomarkdown}
+
+{:/}
+
+#### Manage the `rollout` resource
+
+Control the rollout through the options available for the Rollout resource.
+
+1. In the Codefresh UI, go to the [Applications dashboard](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}.
+1. Select the application and go to the Current State tab.
+1. Open the context menu of the `Rollout` resource, and select the relevant option.
+
+{% include
+image.html
+lightbox="true"
+file="/images/applications/rollout-resource-context-menu.png"
+url="/images/applications/rollout-resource-context-menu.png"
+alt="Options for `rollout` resource in the Current State tab"
+caption="Options for `rollout` resource in the Current State tab"
+max-width="50%"
+%}
+
+The table describes the options for the `Rollout` resource.
+
+{: .table .table-bordered .table-hover}
+| Option | Description |
+| -------------- | -------------- |
+|**Abort** | Terminate the current rollout. |
+|**Pause** | Pause the current rollout. |
+|**Promote-full** | Promote the current rollout by skipping all remaining stages in the rollout, and deploy the current image. |
+|**Restart** | Manually restart the pods of the rollout.|
+|**Resume** | Resume a rollout that has been paused. |
+|**Retry** | Retry a rollout that has been aborted. Available only when a rollout has been aborted. |
+|**Skip-current-step** | Skip executing the current step, and continue with the next step. |
+
+
+
+
+### Related articles
+[Creating GitOps applications]({{site.baseurl}}/docs/deployments/gitops/create-application)
+[Home dashboard]({{site.baseurl}}/docs/reporting/home-dashboard)
+[DORA metrics]({{site.baseurl}}/docs/reporting/dora-metrics)
+
+
+
diff --git a/_docs/deployments/helm/custom-helm-uploads.md b/_docs/deployments/helm/custom-helm-uploads.md
new file mode 100644
index 000000000..46da0a4d1
--- /dev/null
+++ b/_docs/deployments/helm/custom-helm-uploads.md
@@ -0,0 +1,125 @@
+---
+title: "Creating and uploading Helm packages"
+description: "Manually create and upload Helm packages"
+group: deployments
+sub_group: helm
+redirect_from:
+ - /docs/create-helm-artifacts-using-codefresh-pipeline/
+toc: true
+---
+
+Helm packages are just TAR files. Helm repositories are simple file hierarchies with an extra [index.yaml](https://helm.sh/docs/developing_charts/#the-chart-repository-structure){:target="\_blank"}.
+You can run custom commands and manually upload indexes and packages to a Helm repo.
+
+>This articles shows some non-standard Helm examples.
+ For the basic use cases, or if you are just getting started with Helm, see our [Helm quick start guide]({{site.baseurl}}/docs/getting-started/helm-quick-start-guide/) and [Using Helm in CI pipelines]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/).
+
+## Package a Helm chart
+Below is an example of a freestyle step in a Codefresh pipeline that packages the Helm chart and then extracts the chart name from the command output. It also saves that package name in an environment variable for later use.
+
+ `YAML`
+{% highlight yaml %}
+{% raw %}
+helm_package:
+ image: devth/helm
+ commands:
+ - cf_export PACKAGE=$(helm package | cut -d " " -f 8)
+{% endraw %}
+{% endhighlight %}
+
+The `helm package` command expects a path to an unpacked chart. Replace `` in the example with the directory that holds your chart files. Note that this directory must have the same name as the chart name, as per Helm requirements.
+See [Helm package docs](https://github.com/kubernetes/helm/blob/master/docs/helm/helm_package.md){:target="_blank"} and [Helm charts overview](https://github.com/kubernetes/helm/blob/master/docs/charts.md){:target="_blank"} for more information.
+
+{{site.data.callout.callout_info}}
+To use `cf_export`and make the variable available to other steps in the pipeline, see [Variables in pipelines]({{site.baseurl}}/docs/pipelines/variables).
+{{site.data.callout.end}}
+
+## Example 1: Push the chart to GCS based Helm Repository
+The first example pushes the packaged chart into a public cloud storage service, like AWS S3, Azure Storage, or Google Cloud Storage. We chose Google Cloud Storage (GCS) for this example.
+Our pipeline has three steps:
+
+{:start="1"}
+1. download_index: download the Helm `index.yaml` file from GCS, or create one of it's not there.
+
+{:start="2"}
+2. helm_package_merge: package the chart as described earlier, and also merge the new package into the downloaded `index.yaml` file, using the `helm repo index --merge` command.
+
+{:start="3"}
+3. push_gcs: upload the updated `index.yaml` file and the newly created package to GCS.
+
+ `YAML`
+{% highlight yaml %}
+{% raw %}
+steps:
+ download_index:
+ image: appropriate/curl:latest
+ commands:
+ - 'curl https://storage.googleapis.com/$GOOGLE_BUCKET_NAME/index.yaml --output ./index.yaml --fail || :'
+ - '[ ! -f ./index.yaml ] && echo "apiVersion: v1">./index.yaml'
+ helm_package_merge:
+ image: devth/helm
+ commands:
+ - cf_export PACKAGE=$(helm package | cut -d " " -f 8)
+ - helm repo index --merge ./index.yaml .
+ push_gcs:
+ image: camil/gsutil
+ commands:
+ - echo -E $GOOGLE_CREDENTIALS > /gcs-creds.json
+ - echo -e "[Credentials]\ngs_service_key_file = /gcs-creds.json\n[GSUtil]\ndefault_project_id = $GOOGLE_PROJECT_ID" > /root/.boto
+ - gsutil cp ./index.yaml gs://$GOOGLE_BUCKET_NAME
+ - gsutil cp $PACKAGE gs://$GOOGLE_BUCKET_NAME
+{% endraw %}
+{% endhighlight %}
+
+
+### Environment setup
+
+This pipeline references some predefined environment variables such as `GOOGLE_BUCKET_NAME`, `GOOGLE_PROJECT_ID` and `GOOGLE_CREDENTIALS`.
+For this example, we created a service account with appropriate permissions in Google Cloud, and saved the credentials into `GOOGLE_CREDENTIALS` as a Codefresh Secret.
+For more information, see:
+[Authenticating with Google services](https://cloud.google.com/storage/docs/authentication#service_accounts){:target="_blank"}.
+[Codefresh pipeline configuration and secrets](https://codefresh.io/docs/docs/codefresh-yaml/variables/#user-provided-variables){:target="_blank"}.
+
+## Example 2: Push the chart to Chart Museum
+Chart Museum is a Helm repository *server* that has an HTTP API, pluggable backends, authentication, and more.
+Read more about [Chart Museum](https://github.com/kubernetes-helm/chartmuseum){:target="_blank"}.
+
+In this example, we already have a Chart Museum server running, so we'll push the packaged chart to it.
+
+The steps will be:
+
+{:start="1"}
+1. helm_package: package the chart as described earlier.
+
+{:start="2"}
+2. get_repo_url: In order to avoid hard-coding the repository URL into the pipeline, we will retrieve it from the Codefresh Helm integration.
+In this case, we have added our repository with Codefresh as described in [Using external Helml repos in Codefresh pipelines]({{site.baseurl}}/docs/deployments/helm/helm-charts-and-repositories).
+Replace `` in the example with the name you gave to your repository when you added it to Codefresh.
+
+{:start="3"}
+3. helm_push: call the Chart Museum HTTP api to just upload the package. Chart Museum will take care of the rest.
+
+ `YAML`
+{% highlight yaml %}
+{% raw %}
+steps:
+ helm_package:
+ image: devth/helm
+ commands:
+ - cf_export PACKAGE=$(helm package | cut -d " " -f 8)
+ get_repo_url:
+ image: codefresh/cli:latest
+ commands:
+ - cf_export HELM_URL=$(codefresh get ctx -o=yaml | grep repositoryUrl | cut -d "'" -f 2)
+ helm_push:
+ image: appropriate/curl
+ commands:
+ - curl --data-binary "@$PACKAGE" $HELM_URL/api/charts
+{% endraw %}
+{% endhighlight %}
+
+
+## Related articles
+[Using Helm in a Codefresh pipeline]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/)
+[Using a managed Helm repository]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/)
+[Helm environment promotion]({{site.baseurl}}/docs/deployments/helm/helm-environment-promotion)
diff --git a/_docs/deployments/helm/helm-charts-and-repositories.md b/_docs/deployments/helm/helm-charts-and-repositories.md
new file mode 100644
index 000000000..8edfe049e
--- /dev/null
+++ b/_docs/deployments/helm/helm-charts-and-repositories.md
@@ -0,0 +1,111 @@
+---
+title: "Using external Helml repos in Codefresh pipelines"
+description: "Use external Helm Charts and repositories in Codefresh pipelines"
+group: deployments
+sub_group: helm
+toc: true
+---
+Codefresh allows you to integrate with external Helm repositories and Helm charts in the Helm Charts page.
+It is optional to use external Helm repositories as all Codefresh accounts already include a [built-in Helm repository]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/).
+
+## Add an external Helm repository
+
+Easily add your own Helm charts.
+By default, we show charts from the [official Helm repository](https://github.com/kubernetes/charts){:target="_blank"}.
+
+1. In the Codefresh UI, from the Artifacts section in the sidebar, select [**Helm Charts**](https://g.codefresh.io/helm/releases/releasesNew/){:target="\_blank"}.
+1. On the top right, click **Add Existing Helm Repository**.
+ You are taken to Pipeline Integrations.
+1. In the Integrations page, click **Add Helm Repository**, and then select the type of Helm repo to add from the list.
+1. Enter the **Helm repository name** and **URL**.
+ Do not include the specific path to `index.yaml` in the URL.
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/helm/quick-helm-integration.png"
+url="/images/deployments/helm/quick-helm-integration.png"
+alt="Adding a Helm repository"
+caption="Adding a Helm repository"
+max-width="70%"
+%}
+
+1. If your repository doesn't require authentication, to complete the process, click **Save**.
+
+For more details on adding Helm repositories, see [Helm integrations]({{site.baseurl}}/docs/integrations/helm/).
+
+## Use a Helm repository in a Codefresh pipeline
+
+Once connected, inject any Helm repository context into Codefresh pipelines.
+
+1. From the Pipelines page, select the pipeline into which to import the Helm configuation.
+1. In the Workflows tab, do one of the following:
+ * Click **Variables** on the right, and then click the **Settings** (gear) icon.
+ * Click the context menu next to the settings icon.
+1. Click on **Import from/Add shared configuration**, and select the name of the repository.
+ The repository settings are injected as environment variables into the pipeline.
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/helm/connect-helm-repo.png"
+url="/images/deployments/helm/connect-helm-repo.png"
+alt="Connecting a Helm repository in the pipeline"
+caption="Connecting a Helm repository in the pipeline"
+max-width="70%"
+%}
+
+1. If you are using the Helm step, the step uses these settings to connect to your authenticated repository automatically. For details, see [Using Helm in Codefresh pipelines]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/).
+
+## Install a chart from your Helm repository
+Install a chart from a Helm repository to your cluster.
+
+* Values in the Chart Install wizard are provided in the following order:
+ 1. Chart Default Values (implicitly part of the chart).
+ 2. Overridden default values (provided as values file, provided only if edited by the user).
+ 3. Supplied values files from Yaml Shared Configuration.
+ 4. Override variables are provided as `--set` arguments.
+* Variables available for custom pipelines:
+ If you select a custom pipeline, the following variables are available:
+ * `CF_HELM_RELEASE` - name of release
+ * `CF_HELM_KUBE_CONTEXT` - kubectl context name of target cluster (cluster name from [dashboard]({{site.baseurl}}/docs/deploy-to-kubernetes/manage-kubernetes/#work-with-your-services))
+ * `CF_HELM_INSTALLATION_NAMESPACE` - desired namespace for the release
+ * `CF_HELM_CHART_VERSION` - Chart Version,
+ * `CF_HELM_CHART_NAME` - Chart Name
+ * `CF_HELM_CONTEXTS` - values from [shared configuration]({{site.baseurl}}/docs/pipelines/shared-configuration/#using-shared-helm-values)
+ * `CF_HELM_VALUES` - extra values
+ * `CF_HELM_SET` - extra values,
+ * `CF_HELM_CHART_REPO_URL` - URL of Chart repository
+ * `CF_HELM_COMMIT_MESSAGE` - Message to show in Helm GUI,
+
+
+
+**Before you begin**
+* Make sure tht you have a Kubernetes integration with the cluster and namespace, as described [here]({{site.baseurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/)
+
+**How to**
+1. In the Codefresh UI, from the Artifacts section in the sidebar, select [**Helm Charts**](https://g.codefresh.io/helm/releases/releasesNew/){:target="\_blank"}.
+1. In the row with the chart to install, click **Install**.
+1. Enter the **Release name** for the chart, and select the **Chart version** to install.
+1. From Cluster Information, select a Kubernetes **Cluster** and the **Namespace** to install to.
+1. Select the **Pipeline** to install to.
+1. If required, edit the **Default Chart Values** to view and override them.
+ When the default values yaml is changed, it is provided to Helm install as a values file. You can revert to the original values cby clicking Revert.
+1. To provide additional values files, do the following:
+ * From the **Import from configuration** list, select **Add new context of type: YAML**.
+ * Enter the **Context name**.
+ * Insert your values YAML, and click **Save**.
+ The YAML is saved and added to the list of configuration files that you can import from.
+1. To override variable values, click **+Add variable**, and then enter the Key and Value.
+ > The order of value configurations matter for Helm: most recently provided values override earlier ones.
+1. Click **Install**. You can observe the newly installed release in Helm Releases.
+
+You can also install Helm releases from [any Helm environment board]({{site.baseurl}}/docs/deployments/helm/helm-environment-promotion).
+
+
+## Related articles
+[Using Helm in a Codefresh pipeline]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/)
+[Helm integrations]({{site.baseurl}}/docs/integrations/helm/)
+[Helm Dashboard]({{site.baseurl}}/docs/deployments/helm/helm-releases-management)
+[Helm Promotion boards]({{site.baseurl}}/docs/deployments/helm/helm-environment-promotion)
+[Helm best practices]({{site.baseurl}}/docs/ci-cd-guides/helm-best-practices/)
+
+
diff --git a/_docs/deployments/helm/helm-environment-promotion.md b/_docs/deployments/helm/helm-environment-promotion.md
new file mode 100644
index 000000000..21466e5dc
--- /dev/null
+++ b/_docs/deployments/helm/helm-environment-promotion.md
@@ -0,0 +1,290 @@
+---
+
+title: "Promoting Helm Environments"
+description: "Manage your Helm Environments with the Codefresh UI"
+group: deployments
+sub_group: helm
+toc: true
+---
+Apart from the [Helm Releases]({{site.baseurl}}/docs/deployments/helm/helm-releases-management) that show your Kubernetes clusters at the application level, Codefresh also comes with a special environment board that allows you to track one or more applications as they move within your infrastructure (example, Dev, QA, Prod).
+
+The environment board can function both as an overview of the whole lifecycle of the application, as well as a tool to shift-left/right Helm releases between environments.
+
+Here is an example board:
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/promotion/board.png"
+url="/images/deployments/helm/promotion/board.png"
+alt="Helm Environment Dashboard"
+caption="Helm Environment Dashboard"
+max-width="80%"
+%}
+
+This board has three environments that correspond to Kubernetes clusters:
+ * A Load-testing environment where applications are stress-tested
+ * A Staging environment where smoke tests are performed
+ * The Production environment where applications go live
+
+You can see that a Python example app at version 0.2.0 is already in production. Version 0.3.0 is waiting in the staging environment for smoke tests. Once it is tested it can be dragged to the production column therefore *promoting* it to production status.
+
+
+## Using the Helm Environment Board
+
+You can create and manage as many Helm promotion boards as you want.
+For each board, you define how many columns it will contain, where each column is a Helm-enabled Kubernetes cluster.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/promotion/helm-environments.png"
+url="/images/deployments/helm/promotion/helm-environments.png"
+alt="Helm environments column structure"
+caption="Helm environments column structure"
+max-width="80%"
+%}
+
+You can use different clusters for each column or different namespaces from the same cluster. You can even mix and match both approaches.
+As an example, you could create a Helm board with the following environments:
+
+* Column 1, dev cluster showing all namespaces (DEV)
+* Column 2, namespace qa from cluster staging (QA)
+* Column 3, namespace staging from cluster staging (STAGING)
+* Column 4, namespace production from cluster prod (PRODUCTION)
+
+Once you have your columns in place, you can move Helm releases between clusters/namespaces by drag-n-drop. Each Helm release can be dragged to any other column either promoting it, for example, from QA to Production, or shifting it left, for example, from Production to QA.
+
+## Creating a custom Helm Board
+
+Create your own Helm board with a single or multiple Helm applications. You can create as many boards as you want.
+
+1. In the Codefresh UI, from the DevOps Insights section in the sidebar, select [**Helm Boards**](https://g.codefresh.io/helm/helm-kanban/){:target="\_blank"}.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/promotion/board-selection.png"
+url="/images/deployments/helm/promotion/board-selection.png"
+alt="Helm board selection"
+caption="Helm board selection"
+max-width="80%"
+%}
+
+{:start="2"}
+1. On the top-right, click **Add board**.
+1. Enter the title of your board as the **Board Name**.
+1. Optional. In the **Release name regex expression** field, enter the Regex expression for this board to filter all its environments to show only Helm releases that match this regular expression.
+ Regex expressions are very helpful if you want your environment board to focus only on a single or set of Helm applications.
+ To see all Helm releases of your clusters, leave empty.
+
+You can edit both options for an existing board if you change your mind later.
+
+### Define Clusters/Namespaces for each Environment
+
+Once you create your Helm environment board, you are ready to define its columns.
+
+* To add a column, on the top-right, click **Add environment***.
+ You will see the environment details dialog:
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/promotion/edit-helm-environment.png"
+url="/images/deployments/helm/promotion/edit-helm-environment.png"
+alt="Edit Helm environment"
+caption="Edit Helm environment"
+max-width="50%"
+%}
+
+ For each environment you can select:
+ * A name for that column
+ * The Kubernetes cluster it corresponds to
+ * One or more namespaces that define this environment (You can even toggle the switch for a regex match)
+ * A custom pipeline that will be used when a Helm release is installed for the first time in this column
+ * A custom pipeline that will be used when a Helm release is dragged in this column (promoted from another column)
+ * Optional. One or more charts to use for the environment. Defining charts for the environment saves you from having to search through all the charts in your Helm repository. When you install an application from the install graphical dialog, only the selected chart(s) are displayed.
+ * A presentation color to easily identify the environment on the board (For example, a "production" environment should have a red color)
+
+You can also select no namespace at all. In that case, the column will show Helm releases for all namespaces in that cluster.
+You can change all these options after creation, so feel free to change your mind.
+
+Repeat the same process for additional environments. Remember that you can name your environment as you want and define any combination of cluster/namespace for any of the columns. This gives you a lot of power to define a Helm environment board that matches exactly your own process.
+
+You don't have to define the environments in order. You can drag-n-drop columns to change their order after the initial creation.
+
+
+### Installing Helm Releases on each Environment
+
+If you already have [pipelines that deploy Helm releases]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/), your columns are populated automatically with information.
+
+For each Helm release, you will get some basic details such as the chart version and the name of the release. You can expand a release by clicking on the arrow button to get additional information such as the docker images and the replicas of each pod that are contained in the release.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/promotion/expand.png"
+url="/images/deployments/helm/promotion/expand.png"
+alt="Helm release details"
+caption="Helm release details"
+max-width="50%"
+%}
+
+You can even install manually a Helm release from any external repository by clicking on the *PLUS* button at the header of each column. In that case you will see a list of possible Helm applications to choose from.
+
+You will be able to select the target cluster and namespace as well as the chart values [as any other Helm release]({{site.baseurl}}/docs/deployments/helm/helm-charts-and-repositories/#install-chart-from-your-helm-repository).
+
+
+## Moving Releases between Environments
+
+A Helm environment board can be used by different stakeholders in order to get the detailed status of all defined environments. In that aspect it can act as a read-only tool that simply shows the results of Codefresh pipelines that deploy Helm applications.
+
+### Promoting Helm Releases with the UI
+
+You can also use the board as an action tool in order to promote/demote a Helm release between individual environments. To move a Helm release between environments just drag-n-drop it to a different column.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/promotion/shift-right.png"
+url="/images/deployments/helm/promotion/shift-right.png"
+alt="Promoting a Helm release"
+caption="Promoting a Helm release"
+max-width="80%"
+%}
+
+Once you drop the release you will also see the promotion dialog.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/promotion/promote-settings.png"
+url="/images/deployments/helm/promotion/promote-settings.png"
+alt="Promotion Settings"
+caption="Promotion Settings"
+max-width="40%"
+%}
+
+All fields here will be auto-filled according to the Helm release that you dragged. You can also choose a custom pipeline (see below) for the promotion if you don't want to use the default one.
+
+By clicking the *Variables* button you can override the chart values, import a specific shared configuration or add new values.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/promotion/value-options.png"
+url="/images/deployments/helm/promotion/value-options.png"
+alt="Changing deployment values"
+caption="Changing deployment values"
+max-width="40%"
+%}
+
+By default Codefresh will use a built-in install/upgrade pipeline for performing the promotion. You can choose your own pipeline from the promotion dialog. That pipeline will be automatically provided with the following [environment variables]({{site.baseurl}}/docs/deployments/helm/helm-releases-management/#overriding-the-default-helm-actions):
+
+* `CF_HELM_RELEASE` - name of release
+* `CF_HELM_KUBE_CONTEXT` - `kubectl` context name of target cluster (cluster name from [dashboard]({{site.baseurl}}/docs/deploy-to-kubernetes/manage-kubernetes/#work-with-your-services))
+* `CF_HELM_NAMESPACE` - Tiller Namespace if you use Helm 2
+* `CF_HELM_INSTALLATION_NAMESPACE` - namespace where release is promoted to
+* `CF_HELM_CONTEXTS` - [shared configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration) Helm contexts
+* `CF_HELM_VALUES` - Helm chart values
+* `CF_HELM_SET` - Additional values there were overriden
+* `CF_HELM_CHART_JSON_GZIP` - Gzipped JSON of Helm chart (only for Helm 3)
+* `CF_HELM_CHART_JSON` - JSON of Helm chart (only for Helm 2)
+* `CF_HELM_BOARD` - Name of the board that is used for the drag-n-drop-action
+* `CF_HELM_TARGET_SECTION` - Name of the Source Environment that you are promoting from
+* `CF_HELM_SOURCE_SECTION` - Name of the Target Environment that you are promoting to
+
+
+Note that the variable `CF_HELM_CHART_JSON_GZIP` is both compressed and base64 encoded. To get the raw value you need a command like `echo $CF_HELM_CHART_JSON_GZIP | base64 -d | gunzip`
+
+>Overriding the default pipeline can only be done by [Codefresh admin users]({{site.baseurl}}/docs/administration/access-control/#users-and-administrators).
+
+Once you click the *update* button, a new build will run that will perform the deployment.
+
+Note that you can move releases to any column both on the right and on the left of the current column. This is helpful if for example you find a bug in your production environment and you want to bring it back to a staging environment for debugging.
+
+### Promoting Helm releases programmatically
+
+You can also promote Helm releases with the [Codefresh CLI](https://codefresh-io.github.io/cli/predefined-pipelines/promote-helm-release/){:target="\_blank"}.
+
+Once you have [installed the CLI](https://codefresh-io.github.io/cli/getting-started/){:target="\_blank"}, you can use it from an external script or terminal with the `helm-promotion` parameter:
+
+{% highlight shell %}
+{% raw %}
+codefresh helm-promotion --board MySampleBoard --source Staging --target Production --source-release my-app --set myenv=prod
+{% endraw %}
+{% endhighlight %}
+
+Here we promote the Helm release `my-app` to the *Production* column overriding also the `myenv` value.
+
+Remember that the Codefresh CLI can also run in a Codefresh pipeline with a [freestyle step]({{site.baseurl}}/docs/pipelines/steps/freestyle/).
+Here is an example of a Helm promotion from within a Codefresh pipeline.
+
+
+`codefresh.yml`
+{% highlight yaml %}
+{% raw %}
+version: '1.0'
+steps:
+ triggerstep:
+ title: trigger
+ image: codefresh/cli
+ commands:
+ - 'codefresh helm-promotion --board MySampleBoard --source Staging --target Production --source-release my-app --namespace my-namespace --set myenv=prod'
+{% endraw %}
+{% endhighlight %}
+
+## Viewing the promotion pipeline
+
+When you promote a Helm Release for a Board, you can view the pipeline for that release.
+
+1. Click on Boards under the Helm section on the left-hand side
+2. Select the board you want to view
+3. Select the Builds tab on the top
+4. Here, you can see the Promotion Pipelines / builds for promoting a Release
+
+## Editing your Helm Boards
+
+For any existing Helm board, you have the following options:
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/promotion/board-management.png"
+url="/images/deployments/helm/promotion/board-management.png"
+alt="Editing a Helm environment"
+caption="Editing a Helm environment"
+max-width="80%"
+%}
+
+
+1. The refresh button will update the board with the current state of the clusters
+1. The filtering menu can be used to further constrain the Helm releases shown in each column.
+1. The *edit properties* button allows you to change again the title of the board as well as a global filter for Helm releases
+1. The *remove board* completely deletes the present board from the Codefresh UI
+1. The environment details on the environment header are:
+* The edit button to change again the options for this column (shown on mouse hover)
+* The delete button to remove this column from the board (shown on mouse hover)
+* The plus button to install a new chart. If you selected one or more charts when you defined your environment, only the selected charts are displayed.
+* A numeric value that shows how many releases are contained on this environment
+1. The delete button allows you to uninstall a Helm release for an environment
+
+The filtering options allow you to further constrain the Helm release shown for the whole board.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/promotion/filter.png"
+url="/images/deployments/helm/promotion/filter.png"
+alt="Filtering options"
+caption="Filtering options"
+max-width="50%"
+%}
+
+The filters are especially helpful in Helm boards with large numbers of environments and/or releases.
+
+## Related articles
+[Using Helm in a Codefresh pipeline]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/)
+[Using external Helml repos in Codefresh pipelines]({{site.baseurl}}/docs/deployments/helm/helm-charts-and-repositories/#add-helm-repository)
+[Managing Helm releases]({{site.baseurl}}/docs/deployments/helm/helm-releases-management)
+[Environment Dashboard]({{site.baseurl}}/docs/deploy-to-kubernetes/environment-dashboard/)
diff --git a/_docs/deployments/helm/helm-releases-management.md b/_docs/deployments/helm/helm-releases-management.md
new file mode 100644
index 000000000..991701f71
--- /dev/null
+++ b/_docs/deployments/helm/helm-releases-management.md
@@ -0,0 +1,263 @@
+---
+title: "Managing Helm releases"
+description: "Manage Helm deployments from the Codefresh UI"
+group: deployments
+sub_group: helm
+redirect_from:
+ - /docs/helm-releases-management/
+ - /docs/deployments/helm/helm3/
+toc: true
+---
+Codefresh has built-in integration for Helm that provides a unique view into your production Kubernetes cluster.
+In Helm Releases, you can see the current status of your cluster, including the currently deployed releases, their previous revisions including change tracking, and even roll back to a previous release.
+
+Codefresh also offers [an environment view for Helm releases]({{site.baseurl}}/docs/deploy-to-kubernetes/environment-dashboard/) as well as [a promotion dashboard]({{site.baseurl}}/docs/deployments/helm/helm-environment-promotion).
+
+
+## View Helm releases and release information
+
+View all the Helm releases in your cluster, and drill down into a specific release to see its services, deployed versions, manifests and more.
+
+> Make sure you have [connected your Kubernetes cluster]({{site.baseurl}}/docs/integrations/kubernetes/adding-non-gke-kubernetes-cluster/) to Codefresh.
+
+1. In the Codefresh UI, from the DevOps Insights section in the sidebar, select [**Helm Releases**](https://g.codefresh.io/helm/releases/releasesNew/){:target="\_blank"}.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/dashboard/helm-release-dashboard.png"
+url="/images/deployments/helm/dashboard/helm-release-dashboard.png"
+alt="Helm Releases"
+caption="Helm Releases"
+max-width="90%"
+%}
+
+
+
+
+{:start="2"}
+1. To see details for a specific release, click the release name.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/dashboard/services.png"
+url="/images/deployments/helm/dashboard/services.png"
+alt="Kubernetes Services"
+caption="Kubernetes Services"
+max-width="70%"
+%}
+
+The History tab shows all previous releases.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/dashboard/history.png"
+url="/images/deployments/helm/dashboard/history.png"
+alt="Helm History"
+caption="Helm History"
+max-width="60%"
+%}
+
+You can further expand a release revision to see exactly what files were changed in this release.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/dashboard/diff.png"
+url="/images/deployments/helm/dashboard/diff.png"
+alt="Helm diff"
+caption="Helm diff"
+max-width="60%"
+%}
+
+There are other tabs that show you the chart used, the values as well as the final manifests that were actually deployed.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/dashboard/manifests.png"
+url="/images/deployments/helm/dashboard/manifests.png"
+alt="Final rendered manifests"
+caption="Final rendered manifests"
+max-width="50%"
+%}
+
+## Add labels to Kubernetes services
+
+For better visibility into services, add the [recommended labels](https://helm.sh/docs/topics/chart_best_practices/labels/){:target="\_blank"} to your Kubernetes service.
+
+{% highlight yaml %}
+{% raw %}
+ apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "fullname" . }}
+ labels:
+ app.kubernetes.io/name: "{{ template "name" . }}"
+ helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+ app.kubernetes.io/managed-by: "{{ .Release.Service }}"
+ app.kubernetes.io/instance: "{{ .Release.Name }}"
+{% endraw %}
+{% endhighlight %}
+
+To use the instance label for something different, you can also use a release label instead:
+
+{% highlight yaml %}
+{% raw %}
+release: {{ .Release.Name }}
+{% endraw %}
+{% endhighlight %}
+
+
+
+## Add an upgrade message
+
+Codefresh allows you to display a meaningful description for each release in the release history. This message
+can help show the main reason behind each release, or any other message that is convenient for you.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/dashboard/helm-commit-message.png"
+url="/images/deployments/helm/dashboard/helm-commit-message.png"
+alt="Helm release message"
+caption="Helm release message"
+max-width="70%"
+%}
+
+You can set this message for your Helm release in three ways:
+
+1. When you manually install a Helm release from the [Helm charts screen]({{site.baseurl}}/docs/deployments/helm/helm-charts-and-repositories/#install-chart-from-your-helm-repository), there is a field for this message.
+1. Set the property `commit_message` inside the [notes.txt](https://helm.sh/docs/chart_template_guide/notes_files/){:target="\_blank"} file of your chart.
+1. By providing an environment variable called `COMMIT_MESSAGE` within your [pipeline Helm step]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/).
+
+
+## Roll back a Helm release
+
+You can rollback to a previous revision of a release in the History tab.
+
+1. Click the Helm release for which to perform a rollback, and then click the **History** tab.
+1. To rollback to a specific release, click **Rollback** in the row.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/dashboard/rollback.png"
+url="/images/deployments/helm/dashboard/rollback.png"
+alt="Rolling back to a previous release"
+caption="Rolling back to a previous release"
+max-width="50%"
+%}
+
+>It takes time to complete rollback for a release, and the change in the cluster is not instantly updated in the Codefresh UI. If you also use a [custom rollback pipeline](#overriding-the-default-helm-actions), the delay between the cluster update and the UI refresh is even longer.
+
+## Helm UI actions
+
+From the main release screen, you have some additional actions.
+
+You can issue a [Helm test](https://github.com/kubernetes/helm/blob/master/docs/chart_tests.md) by clicking on the 'Run Test' button on the desired chart row.
+
+You can delete a release by clicking on the 'Delete' button on the desired chart row.
+For deletion options, see the [helm delete documentation](https://github.com/kubernetes/helm/blob/master/docs/helm/helm_delete.md){:target="\_blank"}, for example, *purge* will remove the revision from the release history.
+
+## Helm deployment badge
+
+Similar to a [build badge]({{site.baseurl}}/docs/pipelines/build-status/#using-the-build-badge), you can also get a deployment badge for a Helm release.
+
+1. In the Codefresh UI, from the DevOps Insights section in the sidebar, select [**Helm Releases**](https://g.codefresh.io/helm/releases/releasesNew/){:target="\_blank"}.
+1. In the row with the Helm release for which to add a deployment badge, click the **Settings** (gear) icon.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/dashboard/helm-badge.png"
+url="/images/deployments/helm/dashboard/helm-badge.png"
+alt="Helm Deployment badge"
+caption="Helm Deployment badge"
+max-width="60%"
+%}
+
+{:start="3"}
+1. To get deployment information, click **Badge**.
+ Codefresh provides the Markdown/HTML/Link segment that you can embed in README or other documents to show deployment information.
+
+## Overriding default Helm actions for releases
+
+By default, when you take an action in the UI, Codefresh executes the native Helm command corresponding to that action:
+
+* `helm test` for testing a chart
+* `helm rollback` for rollbacks
+* `helm delete` or `helm uninstall --keep-history` for delete
+* `helm delete --purge ` or `helm uninstall ` for purging a release
+
+You can override these actions for a specific Helm release by defining custom pipelines for each action. This way you can add your extra logic on top of these actions. For example your own Helm uninstall pipeline might also have a notification step that posts a message to a Slack channel after a release is removed.
+
+>Only [Codefresh admin users]({{site.baseurl}}/docs/administration/access-control/#users-and-administrators) can override the default pipelines defined for a Helm release.
+
+1. In the Codefresh UI, from the DevOps Insights section in the sidebar, select [**Helm Releases**](https://g.codefresh.io/helm/releases/releasesNew/){:target="\_blank"}.
+1. In the row with the Helm release for which to override default actions, click the **Settings** (gear) icon.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/dashboard/override-helm-actions.png"
+url="/images/deployments/helm/dashboard/override-helm-actions.png"
+alt="Changing default Helm actions"
+caption="Changing default Helm actions"
+max-width="50%"
+%}
+
+{:start="3"}
+1. Select the pipeline to use for the respective actions.
+
+### Environment variables for custom Helm commands
+If you do override any of these actions, the following [environment variables]({{site.baseurl}}/docs/codefresh-yaml/variables/) are available in the respective pipeline, so that you can use your own custom Helm command.
+
+**Helm Test pipeline**
+* `CF_HELM_RELEASE`: Name of release
+* `CF_HELM_KUBE_CONTEXT`: `kubectl` context name of target cluster (cluster name from [dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/#work-with-your-services))
+* `CF_HELM_NAMESPACE`: Namespace where release is stored
+* `CF_HELM_TIMEOUT`: Time in seconds to wait for any individual Kubernetes operation
+* `CF_HELM_CLEANUP`: Delete test pods upon completion
+
+
+
+**Helm Rollback pipeline**
+* `CF_HELM_VERSION`: Helm version, ex.: 3.0.1, 2.7.0
+* `CF_HELM_RELEASE`: Name of release on cluster
+* `CF_HELM_REVISION`: Revision to use for rollback
+* `CF_HELM_KUBE_CONTEXT`: `kubectl` context name of target cluster (cluster name from [dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/#work-with-your-services))
+* `CF_HELM_NAMESPACE`: Namespace where release is stored
+
+
+**Helm Delete pipeline**
+* `CF_HELM_PURGE`: Boolean, delete release from store
+* `CF_HELM_RELEASE`: Name of release
+* `CF_HELM_TIMEOUT`: Time in seconds to wait for any individual Kubernetes operation
+* `CF_HELM_HOOKS`: Prevent hooks from running during install
+* `CF_HELM_KUBE_CONTEXT`: `kubectl` context name of target cluster (cluster name from [dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/#work-with-your-services))
+* `CF_HELM_VERSION`: Helm version, ex.: 3.0.1, 2.7.0
+* `CF_HELM_NAMESPACE`: Namespace where release is stored
+
+
+## Related articles
+[Using Helm in a Codefresh pipeline]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/)
+[Helm charts and repositories]({{site.baseurl}}/docs/deployments/helm/helm-charts-and-repositories/)
+[Codefresh-managed Helm Repositories]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/)
+[Helm promotion boards]({{site.baseurl}}/docs/deployments/helm/helm-environment-promotion)
\ No newline at end of file
diff --git a/_docs/deployments/helm/managed-helm-repository.md b/_docs/deployments/helm/managed-helm-repository.md
new file mode 100644
index 000000000..5dcd43b5c
--- /dev/null
+++ b/_docs/deployments/helm/managed-helm-repository.md
@@ -0,0 +1,137 @@
+---
+title: "Using a managed Helm repository"
+description: "Use the Codefresh integrated Helm repository"
+group: deployments
+sub_group: helm
+toc: true
+---
+
+Codefresh provides fully managed, hosted Helm repositories for users.
+While we automatically create a default managed repo for every Codefresh account, you can also add [external Helm repositories]({{site.baseurl}}/docs/deployments/helm/helm-charts-and-repositories/).
+
+The built-in Helm repo that Codefresh creates, is private by default, allowing access only via Codefresh or via a Codefresh API token.
+
+> Tip:
+ You may be familiar with the popular open source Helm repository implementation called 'ChartMuseum', that Codefresh sponsors. Codefresh-managed repositories are based on, and therefore compatible with, ChartMuseum and its unique features. For details, see [ChartMuseum](https://github.com/kubernetes-helm/chartmuseum){:target="\_blank"}.
+
+## View Helm repository integrations
+
+The Codefresh-managed Helm repo is displayed with other Helm repositories you have added to Helm integrations.
+
+>You cannot delete the built-in Helm repo that Codefresh creates for you.
+
+1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select **Pipeline Integrations**.
+1. Scroll to **Helm Repositories**, and then click **Configure**.
+ All the Helm integrations you set up are displayed.
+
+{% include
+image.html
+lightbox="true"
+file="/images/deployments/helm/private-helm-repo/managed-helm-repo.png"
+url="/images/deployments/helm/private-helm-repo/managed-helm-repo.png"
+alt="Codefresh built-in Helm repository"
+caption="Codefresh built-in Helm repository"
+max-width="50%"
+%}
+
+
+## Get the chart repository URL
+Get the chart repository URL for any Helm integration.
+The URL is in the format: `cm://h.cfcr.io//`, where the default repo is `default`.
+
+* From the list of Helm integrations, select the integration and then click the **Edit** icon on the left.
+ The Helm Repository URL field displays the chart URL.
+
+## Codefresh Helm dashboards
+
+The Helm Charts and Helm Releases dashboards are automatically configured to work with your default managed repo to easily install charts and manage releases.
+For more information, see [install chart from a Helm repository]({{site.baseurl}}/docs/deployments/helm/helm-charts-and-repositories/#install-chart-from-your-helm-repository) and [Managing Helm releases]({{site.baseurl}}/docs/deployments/helm/helm-releases-management/).
+
+## Use Codefresh CLI for advanced Helm repo management
+
+The Codefresh CLI supports advanced management options for your managed repository, without having to log in to the Codefresh UI.
+For more information on CLI support for Helm repos, see the [CLI documentation on Helm Repos](https://codefresh-io.github.io/cli/helm-repos/){:target="\_blank"}.
+
+
+## Set access level for managed repo
+
+The managed Helm repository supports two modes of access:
+* Private
+* Public
+
+By default, the managed Helm repo is created with `Private` access, meaning that read/write access is protected by Codefresh authentication.
+
+You can switch the access level to `Public`, which will make the repository accessible to anonymous users only *for read operations*. Write operations, even in public access mode, always require authentication.
+Be very careful when you make your repo public, as the whole world will be able to access your charts. We recommend this setting only for quick demos and POCs.
+
+**How to**
+
+* Use the Codefresh CLI to toggle access level on a managed repo:
+
+{% highlight bash %}
+codefresh patch helm-repo mycfrepo -public
+{% endhighlight %}
+
+For more info, see the relevant section in the [Codefresh CLI documentation](https://codefresh-io.github.io/cli/helm-repos/update-helm-repo/){:target="\_blank"}.
+
+## Working with Helm CLI
+
+The private Helm repository offered by Codefresh is a standard Helm repo and will work with the vanilla Helm executable even outside of the Codefresh UI.
+We suggest using the private [Helm repo from Codefresh pipelines]({{site.baseurl}}/docs/example-catalog/cd-examples/helm/), but you can also use it from your workstation.
+
+### Add a Public repo to Helm
+
+If your repo is set to `public` access mode, you can use it just like any other HTTP Helm repository.
+You can:
+
+{% highlight bash %}
+helm repo add mycfrepo https://h.cfcr.io//
+{% endhighlight %}
+
+### Add a Private repo to Helm
+
+If your repo is set to `private` access mode, the default, then the Helm client needs to authenticate with Codefresh.
+To authenticate, you can use ChartMuseum's 'Helm Push' CLI plugin which adds support for authentication and chart manipulation on top of the basic Helm CLI functionality.
+
+We highly recommend that you familiarize yourself with the [Helm Push plugin](https://github.com/chartmuseum/helm-push){:target="\_blank"}.
+
+#### Install the Helm Push plugin
+
+{% highlight bash %}
+helm plugin install https://github.com/chartmuseum/helm-push
+{% endhighlight %}
+
+#### Configure the Helm Push plugin
+
+If you have the Codefresh CLI installed and configured, there's nothing you need to do. The Helm Push plugin picks up your settings automatically.
+To learn about getting started with Codefresh CLI, see [CLI getting started](https://codefresh-io.github.io/cli/getting-started/).
+To learn about manual authentication without depending on the Codefresh CLI, see [here](https://github.com/chartmuseum/helm-push#token).
+
+#### Add the private repo
+
+{% highlight bash %}
+helm repo add mycfrepo cm://h.cfcr.io/kostis-codefresh/default
+{% endhighlight %}
+
+Notice the protocol is `cm://` instead of `https://`. This indicates the custom authentication scheme supported by ChartMuseum Helm Push plugin.
+
+## Using in a Codefresh pipeline
+
+The Codefresh Helm plugin automatically handles authentication for managed repositories. You can use the plugin as you usually would. For more information, see the [Codefresh Helm plugin]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/).
+
+## Removing a Helm chart from a private Codefresh repository
+
+You can delete a Helm chart from your own Helm repository with the following HTTP call.
+
+{% highlight bash %}
+curl -X DELETE -v -H "Authorization: Bearer " https://h.cfcr.io/api///charts//
+{% endhighlight %}
+
+Replace values in `<>` with your own (also removing `<>` in the process).
+
+Generate an api key from [https://g.codefresh.io/user/settings](https://g.codefresh.io/user/settings) as explained in the [API page]({{site.baseurl}}/docs/integrations/codefresh-api/).
+
+## Related articles
+[Using Helm in a Codefresh pipeline]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/)
+[Helm integration]({{site.baseurl}}/docs/integrations/helm/)
+[Managing Helm releases]({{site.baseurl}}/docs/deployments/helm/helm-releases-management)
diff --git a/_docs/deployments/helm/using-helm-in-codefresh-pipeline.md b/_docs/deployments/helm/using-helm-in-codefresh-pipeline.md
new file mode 100644
index 000000000..f96ddd4f2
--- /dev/null
+++ b/_docs/deployments/helm/using-helm-in-codefresh-pipeline.md
@@ -0,0 +1,346 @@
+---
+title: "Using Helm in a Codefresh pipeline"
+description: "Deploy and push Helm charts with Codefresh"
+group: deployments
+sub_group: helm
+redirect_from:
+ - /docs/deployments/helm/create-helm-artifacts-using-codefresh-pipeline/
+ - /docs/install-helm-chart-using-codefresh-pipeline/
+toc: true
+---
+
+We created a [special Helm step](https://codefresh.io/steps/step/helm){:target="\_blank"} for easy integration of Helm in Codefresh pipelines. The Helm step facilitates authentication, configuration, and execution of Helm commands.
+
+> If you have a special use case that is not covered by the Codefresh Helm step, you can always use the regular `helm` cli in a freestyle step.
+ In this case, you can use the simpler container `codefresh/kube-helm` which includes only Kubectl and helm tools. `kube-helm` is available on DockerHub: [https://hub.docker.com/r/codefresh/kube-helm/](https://hub.docker.com/r/codefresh/kube-helm/){:target="\_blank"}.
+
+If you are just starting with Helm, refer to our [Helm quick start guide]({{site.baseurl}}/docs/getting-started/helm-quick-start-guide/). And, if you prefer to work directly with code, see our [full Helm example]({{site.baseurl}}/docs/example-catalog/cd-examples/helm/).
+
+## Helm setup
+
+
+
+To use Helm in your Codefresh pipeline you must do the following:
+
+1. Make sure that your application has a [Helm chart](https://helm.sh/docs/chart_template_guide/getting_started/)
+1. Create a Helm package for your application from the chart
+1. [Add a Kubernetes cluster]({{site.baseurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/) in Codefresh
+1. Define a Helm repository or use the [one offered by Codefresh to all accounts]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/)
+1. Import the Helm [configuration]({{site.baseurl}}/docs/pipelines/shared-configuration/) into your pipeline variables
+1. Use the Helm step in your [yml build definition]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/)
+
+Let's see these steps in order.
+
+### Step 1: Create a Helm chart for your application
+
+Helm applications are bundled in special archives called *Charts*. You can create a Helm
+chart for your application by following [the official documentation on charts](https://helm.sh/docs/chart_template_guide/getting_started/){:target="\_blank"}.
+
+The example Codefresh application includes a [sample chart](https://github.com/codefresh-contrib/python-flask-sample-app/tree/with-helm/charts/python){:target="\_blank"}, used in our Helm quick start guide, mentioned earlier in this article.
+
+You can create the chart manually or by using the [helm create](https://helm.sh/docs/helm/#helm-create){:target="\_blank"} command on your workstation. There are also several third-party tools that can create Helm packages for you such as [Draft](https://draft.sh/){:target="\_blank"}.
+
+Once your Helm chart is ready, commit it to a folder called `charts`, in the same Git repository that contains the source code of your application. Codefresh can also work with Helm charts that are in different Git repositories. We suggest however that you keep both the source code and the Helm chart of an application in the same Git repository to make chart management much easier.
+
+
+### Step 2: Select Kubernetes cluster for deployment
+
+The Helm pipeline step requires the configuration of a `kube_context` variable that determines the Kubernetes cluster used for the deployment.
+
+1. Connect your Kubernetes cluster with Codefresh, as described [here]({{site.baseurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/).
+
+1. Provide the cluster to the Helm step by adding the `KUBE_CONTEXT` variable, where the value is the connection *name* entered when you created the connection.
+> The connection name also appears as the title of the cluster in Kubernetes integration settings (Account Settings >Integrations > Kubernetes).
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/helm/k8s-name.png"
+url="/images/deployments/helm/k8s-name.png"
+alt="Name of Kubernetes cluster"
+caption="Name of Kubernetes cluster"
+max-width="70%"
+%}
+
+1. Verify that your cluster is set up for Helm, from the sidebar, below DevOps Insights, select **Helm Releases**.
+ The [Helm releases]({{site.baseurl}}/docs/deployments/helm/helm-releases-management/) in your cluster are displayed. If you have just started using Helm, the release page may be empty.
+
+### Step 3: Define a Helm repository
+
+To push your chart to a Helm repository, configure the target repository to work with.
+Always a good practice to save Helm charts in Helm repositories, Codefresh supports a variety of private, authenticated Helm repositories
+in addition to public HTTP repositories. Codefresh also provides a free, managed Helm repository for every account.
+
+* Either [connect your repository with Codefresh]({{site.baseurl}}/docs/deployments/helm/add-helm-repository/)
+OR
+* Obtain your [managed Helm repository URL]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/#chart-repository-url)
+
+
+### Step 4: (Optional) Import the Helm configuration into your pipeline definition
+
+Once you have a connected to a Helm repository, attach it to the pipeline.
+
+1. Frpm the Pipelines page, select the pipeline into which to import the Helm configuation.
+1. In the Workflows tab, do one of the following:
+ * Click **Variables** on the right, and then click the Settings (gear) icon in the variables section on the right.
+ * Click the context menu next to the settings icon.
+1. Click on **Import from/Add shared configuration**, and from the list, select `CF_HELM_DEFAULT`. See [shared configuration]({{site.baseurl}}/docs/pipelines/shared-configuration/).
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/helm/import-helm-configuration.png"
+url="/images/deployments/helm/import-helm-configuration.png"
+alt="Connecting a Helm repository in the pipeline"
+caption="Connecting a Helm repository in the pipeline"
+max-width="50%"
+%}
+
+
+### Step 5: Use the Helm freestyle step in the pipeline
+
+You can now use the Helm freestyle step in the `codefresh.yml` file. This step is only needed in pipelines that actually upload/fetch Helm charts to/from Helm repositories. If your pipeline directly installs a Helm chart from the Git filesystem, there is no need to import a Helm configuration.
+
+>Currently, you can use only one Helm configuration in the same pipeline. We are aware
+of this limitation and will soon improve the way Codefresh works with multiple Helm configurations.
+
+
+
+* Use the Helm typed step from the [Step Marketplace](https://codefresh.io/steps/step/helm){:target="\_blank"}.
+* Configure the Helm step using environment variables, as described [here]({{site.baseurl}}/docs/codefresh-yaml/variables/#user-provided-variables).
+
+The example below illustrates how to provide variables as part of the Helm step definition:
+
+```yaml
+deploy:
+ type: helm
+ arguments:
+ action: install
+ chart_name: test_chart
+ release_name: first
+ helm_version: 3.0.3
+ kube_context: my-kubernetes-context
+ custom_values:
+ - 'pat.arr="{one,two,three}"'
+ - 'STR_WITH_COMAS="one\,two\,three"'
+```
+
+
+
+#### Helm step action modes
+
+The Helm step can operate in one of three modes, as defined by the `action` field:
+
+1. `install`: Installs the chart into a Kubernetes cluster. This is the default mode if not explicitly set.
+2. `push`: Packages the chart and pushes it to the repository.
+3. `auth`: Authenticate only. Only sets up authentication and adds the repo to the Helm. This mode is useful to write your own Helm commands using the freestyle step's `commands` property, but still allow the step to handle authentication.
+
+
+#### Helm values
+
+* To supply a value file, add to the Helm step, `custom_values_file`, with the value pointing to an existing values file.
+* To override specific values, add to the Helm step, `custom_values` followed by the path to the value to set. For example, `myservice_imageTag`. Note that `.` (dot) should be replaced with `_` (underscore). The value of the variable is used to override or set the templated property.
+
+Examples:
+```yaml
+...
+ custom_values:
+ - 'myimage_pullPolicy=Always'
+...
+```
+results in:
+`--set myimage.pullPolicy=Always`
+
+```yaml
+...
+ custom_value_files:
+ - 'values-prod.yaml'
+...
+```
+results in:
+`--values values-prod.yaml`
+
+If a variable already contains a `_` (underscore) in its name, replace it with `__` (double underscore).
+
+## Helm usage examples
+
+The following sections illustrate all three modes of Helm usage.
+
+You can also look at the [GitHub repository](https://github.com/codefresh-contrib/helm-sample-app){:target="\_blank"} of [our Helm example]({{site.baseurl}}/docs/example-catalog/cd-examples/helm/) for full pipelines:
+
+* Pipeline YAML for [deploying a chart](https://github.com/codefresh-contrib/helm-sample-app/blob/master/codefresh-do-not-store.yml){:target="\_blank"}
+* Pipeline YAML for [both storing and deploying a chart](https://github.com/codefresh-contrib/helm-sample-app/blob/master/codefresh.yml){:target="\_blank"}
+
+### Helm usage example: Installing a Helm Chart
+
+The following example includes the minimum configuration to install a Helm chart from a repository. For more configuration options, see the [Arguments reference](https://codefresh.io/steps/step/helm){:target="\_blank"}.
+
+```yaml
+deploy:
+ type: helm
+ arguments:
+ action: install
+ chart_name: path/to/charts
+ release_name: first
+ helm_version: 3.0.3
+ kube_context: my-kubernetes-context
+```
+
+### Helm usage example: Pushing a Helm Chart
+
+The following example illustrates how to package and push a Helm chart into a repository.
+
+```yaml
+deploy:
+ type: helm
+ arguments:
+ action: push
+ chart_name: /codefresh/volume/repo/chart
+ chart_repo_url: 'cm://h.cfcr.io/useraccount/default'
+```
+
+> **Notes**:
+ - Assumes that a Git repository with the Helm chart files was cloned as a part of the pipeline.
+ - The Git repository contains the chart files in the `chart` directory.
+ - `chart_repo_url` is optional. If a [Helm repository configuration](#step-4-optional-import-the-helm-configuration-in-your-pipeline-definition) is attached to the pipeline, this setting is ignored.
+
+### Helm usage example: Authenticating only
+
+The following example illustrates the Helm mode for authentication only.
+
+```yaml
+deploy:
+ type: helm
+ arguments:
+ action: auth
+ kube_context: my-kubernetes-context
+ commands:
+ - helm list
+```
+
+### Helm usage example: Custom Helm commands
+
+The following example illustrates executing custom Helm commands.
+
+`codefresh.yml`
+{% highlight yaml %}
+{% raw %}
+my_custom_helm_command:
+ type: helm
+ arguments:
+ action: auth
+ kube_context: my-kubernetes-context
+ commands:
+ - source /opt/bin/release_chart
+ - helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
+ - helm repo add stable https://kubernetes-charts.storage.googleapis.com
+ - helm repo list
+ - helm repo update
+ - helm list
+{% endraw %}
+{% endhighlight %}
+
+> Notes:
+- The directory that contains a chart MUST have the same name as the chart. Thus, a chart named `my-chart` MUST be created in a directory called `my-chart/`. This is a requirement of the [Helm Chart format](https://helm.sh/docs/chart_template_guide/).
+
+## Helm configuration fields
+
+Name|Required|Description
+---|---|---
+action|Defaults to 'install'|Operation mode: `install`/`push`/`auth`
+chart_name|required for install/push|Chart reference to use, adhering to Helm's lookup rules (path to chart folder, or name of packaged chart). There's no need to prefix with `/reponame` if referencing a chart in a repository, this is handled automatically. a.k.a `CHART_NAME` but `CHART_NAME` shouldn't be used anymore.
+chart_repo_url|optional|Helm chart repository URL. If a [Helm repository configuration](#step-4-optional---import-the-helm-configuration-in-your-pipeline-definition) is attached to the pipeline, this setting is ignored.
+chart_version|optional|Override or set the chart version.
+cmd_ps|optional|When defined, Command Postscript is appended as is to the generated Helm command string. Can be used to set additional parameters supported by the command but not exposed as configuration options.|
+commands|optional|Commands to execute in plugin after `auth` action.
+custom_value_files|optional|Values file to provide to Helm as `--values` or `-f`.|
+custom_values|optional|Values to provide to Helm as `--set`
+helm_version|optional|Version of [cfstep-helm image](https://hub.docker.com/r/codefresh/cfstep-helm/tags){:target="\_blank"}
+kube_context|required for install|Kubernetes context to use. The name of the cluster as [configured in Codefresh]({{site.baseurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/).
+namespace|optional|Target Kubernetes namespace to deploy to.
+release_name|required for install|Helm release name. If the release exists, it is upgraded.
+repos|optional|Array of custom repositories.
+
+
+## Full Helm pipeline example
+
+The pipeline in this example builds a docker image, runs unit tests, stores the Helm chart in the Codefresh private Helm repository and finally deploys the Helm chart to a cluster.
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/helm/full-helm-pipeline.png"
+url="/images/deployments/helm/full-helm-pipeline.png"
+alt="Helm pipeline"
+caption="Helm pipeline"
+max-width="90%"
+%}
+
+This is the pipeline definition:
+
+`codefresh.yml`
+{% highlight yaml %}
+{% raw %}
+version: '1.0'
+stages:
+ - checkout
+ - build
+ - test
+steps:
+ clone:
+ title: Cloning main repository...
+ stage: checkout
+ type: git-clone
+ arguments:
+ repo: 'codefresh-contrib/python-flask-sample-app'
+ revision: with-helm
+ git: github
+ MyAppDockerImage:
+ title: Building Docker Image
+ stage: build
+ type: build
+ working_directory: '${{clone}}'
+ arguments:
+ image_name: kostis-codefresh/python-flask-sample-app
+ tag: 'master'
+ dockerfile: Dockerfile
+ MyUnitTests:
+ title: Running Unit tests
+ stage: test
+ type: freestyle
+ working_directory: '${{clone}}'
+ arguments:
+ image: ${{MyAppDockerImage}}
+ commands:
+ - python setup.py test
+ StoreChart:
+ title: Storing Helm Chart
+ type: helm
+ stage: store
+ working_directory: ./python-flask-sample-app
+ arguments:
+ action: push
+ chart_name: charts/python
+ kube_context: kostis-demo@FirstKubernetes
+ 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'
+ - 'image_tag=master'
+ - 'image_pullSecret=codefresh-generated-r.cfcr.io-cfcr-default'
+{% endraw %}
+{% endhighlight %}
+
+You can see the source code in our [example section]({{site.baseurl}}/docs/example-catalog/cd-examples/helm/).
+
+
+## Related articles
+[Helm Charts and repositories]({{site.baseurl}}/docs/deployments/helm/add-helm-repository/)
+[Using managed Helm repositories]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/)
+[Helm Promotion boards]({{site.baseurl}}/docs/deployments/helm/helm-environment-promotion)
diff --git a/_docs/deployments/kubernetes/custom-kubectl-commands.md b/_docs/deployments/kubernetes/custom-kubectl-commands.md
new file mode 100644
index 000000000..77bc7411d
--- /dev/null
+++ b/_docs/deployments/kubernetes/custom-kubectl-commands.md
@@ -0,0 +1,184 @@
+---
+title: "Custom kubectl commands"
+description: "Use kubectl in your Codefresh pipelines"
+group: deployments
+sub_group: kubernetes
+toc: true
+---
+
+As explained in [Kubernetes deployment options]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/), Codefresh has built-in functionality for deploying to Kubernetes clusters.
+
+For maximum flexibility with cluster deployments, you can run your own custom `kubectl` commands in a [freestyle step]({{site.baseurl}}/docs/pipelines/steps/freestyle/).
+[Kubectl](https://kubernetes.io/docs/reference/kubectl/overview/){:target="\_blank"} is the command line interface for managing kubernetes clusters.
+
+Codefresh automatically sets up your [config context](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/){:target="\_blank"} with your connected clusters.
+
+The config context is automatically placed for you at the path of the [variable]({{site.baseurl}}/docs/pipelines/variables/) `$CF_KUBECONFIG_PATH`.
+In the current Codefresh implementation, this expands to `/codefresh/volume/sensitive/.kube/config`, within the [shared step volume]({{site.baseurl}}/docs/pipelines/introduction-to-codefresh-pipelines/#sharing-the-workspace-between-build-steps).
+
+When you use custom `kubectl` commands, it is your responsibility to template your manifests using any of the available options. To employ Codefresh for templating, it is better to use the dedicated [cf-deploy-kubernetes step]({{site.baseurl}}/docs/deployments/ci-cd-guides/kubernetes-templating/), which provides simple templating capabilities.
+
+## Using the Codefresh kubectl image
+
+Codefresh already offers a public Docker image with `kubectl` at [https://hub.docker.com/r/codefresh/kubectl/tags](https://hub.docker.com/r/codefresh/kubectl/tags){:target="\_blank"}. You can choose a specific version of `kubectl` with the appropriate tag or just select `latest` for the most up-to-date version.
+
+`YAML`
+{% highlight yaml %}
+{% raw %}
+version: '1.0'
+steps:
+ MyCustomKubectlCommands:
+ title: Running Kubectl
+ image: codefresh/kubectl:1.13.3
+ commands:
+ - echo $CF_KUBECONFIG_PATH
+ - kubectl help
+{% endraw %}
+{% endhighlight %}
+
+If you run the pipeline, you can see the help options for `kubectl`.
+
+## Getting a config context
+
+The important thing to know when running custom `kubectl` commands is that Codefresh automatically sets up
+your [kubeconfig files](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/){:target="\_blank"} for you with the cluster information present in [integrations]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster).
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/kubernetes/kube-context.png"
+url="/images/deployments/kubernetes/kube-context.png"
+alt="Codefresh cluster names"
+caption="Codefresh cluster names"
+max-width="50%"
+%}
+
+If you run this pipeline, you will see the names of all your connected clusters:
+
+`YAML`
+{% highlight yaml %}
+{% raw %}
+version: '1.0'
+steps:
+ MyCustomKubectlCommands:
+ title: Running Kubectl
+ image: codefresh/kubectl
+ commands:
+ - kubectl config get-contexts
+{% endraw %}
+{% endhighlight %}
+
+With two sample clusters, the output of this pipeline is the following:
+
+```
+Running freestyle step: Running Kubectl
+Pulling image codefresh/kubectl:latest
+Status: Image is up to date for codefresh/kubectl:latest
+NAME CLUSTER AUTHINFO NAMESPACE
+gke-kostisdemo-codefresh-kostis gke-kostisdemo-codefresh-kostis gke-kostisdemo-codefresh-kostis default
+kostis-demo@FirstKubernetes kostis-demo@FirstKubernetes kostis-demo@FirstKubernetes default
+
+```
+
+You can modify the current config context and run any `kubectl` command you want applied to that context. The next pipeline will print all the nodes of the first cluster:
+
+`YAML`
+{% highlight yaml %}
+{% raw %}
+version: '1.0'
+steps:
+ MyCustomKubectlCommands:
+ title: Running Kubectl
+ image: codefresh/kubectl
+ commands:
+ - kubectl config get-contexts
+ - kubectl config use-context "gke-kostisdemo-codefresh-kostis"
+ - kubectl get nodes
+{% endraw %}
+{% endhighlight %}
+
+## Example of parallel deployment with kubectl
+
+Let's see a full example. In this pipeline, we will create two Docker images and deploy them on two separate clusters, using custom `kubectl` commands. We will also use the [parallel capability]({{site.baseurl}}/docs/pipelines/advanced-workflows/) of Codefresh pipelines.
+
+Here is the pipeline:
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/kubernetes/parallel-kubectl.png"
+url="/images/deployments/kubernetes/parallel-kubectl.png"
+alt="Parallel kubectl deployment"
+caption="Parallel kubectl deployment"
+max-width="100%"
+%}
+
+And here is the complete `codefresh.yml`:
+
+`YAML`
+{% highlight yaml %}
+{% raw %}
+version: '1.0'
+
+stages:
+- build
+- deploy
+
+steps:
+ BuildingApps:
+ type: parallel
+ stage: 'build'
+ steps:
+ BuildingApp1:
+ title: Building App 1
+ type: build
+ stage: build
+ image_name: nestjs-app
+ working_directory: ./my-nestjs-project/
+ dockerfile: Dockerfile
+ BuildingApp2:
+ title: Building App 2
+ type: build
+ stage: build
+ image_name: rails
+ working_directory: ./my-rails-project/
+ dockerfile: Dockerfile
+ DeployingApps:
+ type: parallel
+ stage: 'deploy'
+ steps:
+ DeployApp1:
+ title: Deploying App 1
+ stage: deploy
+ image: codefresh/kubectl
+ working_directory: ./my-nestjs-project/
+ commands:
+ - kubectl config get-contexts
+ - kubectl config use-context "gke-kostisdemo-codefresh-kostis"
+ - kubectl apply -f service.yml deployment.yml
+ DeployApp2:
+ title: Deploying App 2
+ stage: deploy
+ image: codefresh/kubectl
+ working_directory: ./my-rails-project/
+ commands:
+ - kubectl config get-contexts
+ - kubectl config use-context "kostis-demo@FirstKubernetes"
+ - kubectl apply -f service.yml deployment.yml configmap.yml
+{% endraw %}
+{% endhighlight %}
+
+In the example above, we select one of the clusters in each deployment step, and then apply several Kubernetes manifests that constitute an application.
+
+## Related articles
+[Managing your cluster]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
+[Accessing a Docker registry]({{site.baseurl}}/docs/ci-cd-guides/access-docker-registry-from-kubernetes/)
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/_docs/deployments/kubernetes/deployment-options-to-kubernetes.md b/_docs/deployments/kubernetes/deployment-options-to-kubernetes.md
new file mode 100644
index 000000000..ed56a0b11
--- /dev/null
+++ b/_docs/deployments/kubernetes/deployment-options-to-kubernetes.md
@@ -0,0 +1,141 @@
+---
+title: "Deployment options for Kubernetes"
+description: "Deploy to Kubernetes with the declarative deploy step"
+group: deployments
+sub_group: kubernetes
+redirect_from:
+ - /docs/deploy-to-kubernetes/
+ - /docs/deployment-to-kubernetes-quick-start-guide/
+ - /docs/deploy-to-kubernetes/deployment-to-kubernetes-quick-start-guide/
+ - /docs/deploy-to-kubernetes/get-ready-to-deploy/
+toc: true
+---
+
+Codefresh offers several options when it comes to Kubernetes deployments:
+
+1. Codefresh UI for on demand deployments
+ This is the easiest deployment option for Kubernetes. See our [Kubernetes quick start guide]({{site.baseurl}}/docs/getting-started/deployment-to-kubernetes-quick-start-guide/).
+1. Through a dedicated [deploy step]({{site.baseurl}}/docs/pipelines/steps/deploy/) in a pipeline
+ Described in this article.
+1. Through the [cf-deploy-kubernetes step]({{site.baseurl}}/docs/ci-cd-guides/kubernetes-templating/) in a pipeline
+ Use this to also perform simple templating on Kubernetes manifests.
+1. Through a [freestyle]({{site.baseurl}}/docs/pipelines/steps/freestyle/) step with [Kustomize](https://kustomize.io){:target="\_blank"}.
+ See [Deployment with Kustomize]({{site.baseurl}}/docs/example-catalog/cd-examples/deploy-with-kustomize).
+1. Using a [freestyle]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) step with your own `kubectl` commands
+ This deployment option gives you great flexibility, but assumes that you know how to work with `kubectl`. See [Custom kubectl commands]({{site.baseurl}}/docs/deployments/kubernetes/custom-kubectl-commands/).
+1. Using Helm as a package manager
+ See our [Helm quick start guide]({{site.baseurl}}/docs/getting-started/helm-quick-start-guide/).
+
+## Prerequisites
+
+* A K8s cluster in Codefresh (see [Connecting a Kubernetes cluster]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster/)
+* Familiarity with the [Codefresh YAML]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/), basic [pipeline steps ]({{site.baseurl}}/docs/pipelines/steps/), and how to describe them
+* [Integrate your Docker registry]({{site.baseurl}}/docs/integrations/docker-registries/) with Codefresh
+
+## Build and push your image
+Here is a basic Codefresh pipeline scenario to build and push your image to Dockerhub registry.
+
+ `YAML`
+{% highlight yaml %}
+{% raw %}
+version: '1.0'
+steps:
+ BuildImage:
+ type: build
+ image_name: '/' #specify your future image reference here
+ dockerfile: Dockerfile
+ tag: '${{CF_BRANCH_TAG_NORMALIZED}}'
+
+ PushToDockerRegistry:
+ type: push
+ candidate: '${{BuildImage}}'
+ tag: '${{CF_BRANCH_TAG_NORMALIZED}}'
+ registry: 'dockerhub' #the name of the registry you added to Codefresh
+{% endraw %}
+{% endhighlight %}
+
+Using this YAML example, we'll add an additional step to deploy the image in Dockerhub to Kubernetes.
+
+## Describe your deployment
+The following instructions describe how to create a new service in your Kubernetes cluster in order to deploy to it.
+>If you're deploying to an existing service in your Kubernetes cluster, please skip to the [next step]({{site.baseurl}}/docs/getting-started/deployment-to-kubernetes-quick-start-guide/#add-a-deployment-step).
+
+
+ 1. Go to the **`Kubernetes` → `Services page`**.
+ 1. Click the button **“Add Service”**.
+ 1. Select the **cluster**.
+ 1. Select the **namespace**.
+ 1. Type an arbitrary **service name**.
+ 1. Specify the **number of replicas**.
+ 1. Type the name of your **pushed image**.
+ 1. In the **“Internal Ports”** field specify the port which your application listens to.
+ 1. In the **“Expose port”** field specify the port to be exposed to the Internet and check the checkbox.
+ 1. Click the button **“Deploy”** to deploy the application.
+
+Wait until the deployment is completed, and you can open the deployed application in your browser by clicking on the "endpoint" link.
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/kubernetes/describe-k8s-deployment.png"
+url="/images/deployments/kubernetes/describe-k8s-deployment.png"
+alt="Describe Kubernetes deployment"
+caption="Describe Kubernetes deployment"
+max-width="60%"
+%}
+
+## Add a Deployment step
+So now you have deployed your image manually, which is great. But how to trigger the deployment within your pipeline? For that you will need to add a step of a “Deploy” type to the Codefresh YAML manifest file:
+
+ `YAML`
+{% highlight yaml %}
+{% raw %}
+RunningDeployScript:
+ title: Running Deploy Script
+ type: deploy
+ kind: kubernetes
+ cluster: '' #the name specified when you added the cluster
+ namespace: #the namespace you wish to deploy into
+ service: #the service you would like to update the deployment in
+ candidate:
+ image: '${{BuildImage}}'
+ registry: 'dockerhub'
+{% endraw %}
+{% endhighlight %}
+
+The full Codefresh YAML looks like this:
+
+ `YAML`
+{% highlight yaml %}
+{% raw %}
+version: '1.0'
+steps:
+ BuildImage:
+ type: build
+ image_name: '/'
+ dockerfile: Dockerfile
+ tag: '${{CF_BRANCH_TAG_NORMALIZED}}'
+
+ PushToDockerRegistry:
+ type: push
+ candidate: '${{BuildImage}}'
+ tag: '${{CF_BRANCH_TAG_NORMALIZED}}'
+ registry: 'dockerhub' #the name of the registry you added to Codefresh
+
+ RunningDeployScript:
+ title: Running Deploy Script
+ type: deploy
+ kind: kubernetes
+ cluster: '' #the name specified when you added the cluster
+ namespace: #the namespace you wish to deploy into
+ service: #the service you would like to update the deployment in
+ candidate:
+ image: '${{BuildImage}}'
+ registry: 'dockerhub'
+{% endraw %}
+{% endhighlight %}
+
+You can now run the whole pipeline that builds your application from source to a docker image, pushes it to a docker registry and deploys it to your Kubernetes cluster.
+
+## Related articles
+[Manage your Kubernetes cluster]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
+[Environment dashboard]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/)
diff --git a/_docs/deployments/kubernetes/manage-kubernetes.md b/_docs/deployments/kubernetes/manage-kubernetes.md
new file mode 100644
index 000000000..986fb08dc
--- /dev/null
+++ b/_docs/deployments/kubernetes/manage-kubernetes.md
@@ -0,0 +1,169 @@
+---
+title: "Managing Kubernetes clusters"
+description: "Use the graphical Kubernetes dashboard in Codefresh"
+group: deployments
+sub_group: kubernetes
+redirect_from:
+ - /docs/deploy-to-kubernetes/codefresh-kubernetes-integration-beta/
+ - /docs/codefresh-kubernetes-integration-beta/
+toc: true
+---
+
+Codefresh includes a built-in Kubernetes Dashboard that allows you to see the state of your clusters, and even make changes if you have the appropriate access privileges.
+
+## Accessing the Kubernetes Dashboard
+
+After [adding a cluster]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster), you will be able to manage your Kubernetes assets via the *Kubernetes tab* on the left pane. Clicking on the Kubernetes icon will take you to your services dashboard.
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/kubernetes/kubernetes-dashboard.png"
+url="/images/deployments/kubernetes/kubernetes-dashboard.png"
+alt="Codefresh Kubernetes Dashboard"
+caption="Codefresh Kubernetes Dashboard"
+max-width="80%"
+ %}
+
+With the graphical dashboard it is very easy to locate problematic services or deploy new ones quickly. If there are clusters that are not accessible to your user you can hide them by enabling the *Hide inaccessible clusters* option at the top right of the window in order to simplify the view.
+
+## Viewing your Kubernetes services
+
+If you have too many clusters you can choose the *add filter* button at the top of the window to hide specific clusters or namespaces.
+
+You will be able to see the following parameters for each service:
+* Name
+* Cluster
+* Namespace
+* Replica count
+* Docker image
+* Selector
+* A status check
+
+You can also switch to a Grid view if you prefer that over the default List view:
+
+
+{% include image.html
+lightbox="true"
+file="/images/kubernetes/dashboard/grid-view.png"
+url="/images/kubernetes/dashboard/grid-view.png"
+alt="Kubernetes Dashboard grid view"
+caption="Kubernetes Dashboard grid view"
+max-width="80%"
+ %}
+
+ If there are clusters that are not accessible to your user you can hide them by enabling the *Hide inaccessible clusters* option at the top right of the window in order to simplify the view.
+
+
+## Work with your services
+
+In this view, you will be able to perform the following actions:
+
+* Add new service
+* Edit/Update existing services
+* Remove service
+
+
+## Deploying a new service
+
+The Kubernetes dashboard provides a GUI dialog to quickly deploy new services in your cluster.
+
+### Choose a Docker image
+
+To add a service, click the "Add Service" button on the top or the "plus" button on a specific namespace. Then fill in the details for your new service.
+
+You can add images built in Codefresh which were pushed to Codefresh registry or provide a name for Docker image that will be pulled from an [external Docker registry]({{site.baseurl}}/docs/integrations/docker-registries/). Notice that images which are not from Dockerhub must be mentioned with their full domain name.
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/kubernetes/quick-ui-deploy.png"
+url="/images/deployments/kubernetes/quick-ui-deploy.png"
+alt="Deploying with the quick UI dialog"
+caption="Deploying with the quick UI dialog"
+max-width="60%"
+%}
+
+
+Use the following steps in order to add Image and pull secrets from the [connected Docker Registry]({{site.baseurl}}/docs/docker-registries/external-docker-registries/):
+* Specify the image name in the format `//:`
+* Provide and image pull secret - this will be done for each namespace
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/kubernetes/deploying-private-cf-registry.png"
+url="/images/deployments/kubernetes/deploying-private-cf-registry.png"
+alt="Deploying from the private Codefresh registry"
+caption="Deploying from the private Codefresh registry"
+max-width="60%"
+%}
+
+
+From this screen you can also [create Kubernetes image secrets]({{site.baseurl}}/docs/ci-cd-guides/access-docker-registry-from-kubernetes/) without actually deploying anything.
+
+
+### Set environment variables and resources
+
+You can add extra environment variables that will passed to the deployment image.
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/kubernetes/environment-variables-deployment.png"
+url="/images/deployments/kubernetes/environment-variables-deployment.png"
+alt="Environment variables for the deployment"
+caption="Environment variables for the deployment"
+max-width="60%"
+%}
+
+
+
+You can also define resource limits for your pods.
+It is a good practice to place maximum limits so that your services do not experience resource starvation.
+
+
+### Adding a service with a manifest file
+
+If you are an advanced Kubernetes user, toggle the Deployment option button to the `YAML` position on the top right corner of the screen.
+In this mode you can define exactly the contents for the service and deployment Kubernetes resources.
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/kubernetes/define-k8s-service-resource.png"
+url="/images/deployments/kubernetes/define-k8s-service-resource.png"
+alt="Define a Kubernetes Service Resource"
+caption="Define a Kubernetes Service Resource"
+max-width="60%"
+%}
+
+You can type directly in the browser window or paste content from a text editor.
+
+{% include image.html
+lightbox="true"
+file="/images/deployments/kubernetes/define-k8s-deployment-resource.png"
+url="/images/deployments/kubernetes/define-k8s-deployment-resource.png"
+alt="Define a Kubernetes Deployment Resource"
+caption="Define a Kubernetes Deployment Resource"
+max-width="60%"
+%}
+
+
+Congratulations! Your service is now deployed to your Kubernetes cluster.
+
+You can update an existing service in a similar manner from your Kubernetes services window - Just hit the "edit" icon and update your service using the same steps as in "Add new service" section.
+
+## Automate your deployment
+
+After your service is deployed to your Kubernetes cluster, you can automate image deployment using Codefresh pipelines.
+
+Some of the possible options are:
+
+1. The dedicated [deploy step]({{site.baseurl}}/docs/pipelines/steps/deploy/) in a pipeline.
+1. The [cf-deploy-kubernetes step]({{site.baseurl}}/docs/ci-cd-guides/kubernetes-templating/) in a pipeline. This can also perform simple templating on Kubernetes manifests.
+
+See more choices in the [Deployment options page]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/).
+
+## Related articles
+[Environment dashboard]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/)
+[Add Config Maps]({{site.baseurl}}/docs/ci-cd-guides/add-config-maps-to-your-namespaces/)
+[Kubernetes deployment quick start]({{site.baseurl}}/docs/getting-started/deployment-to-kubernetes-quick-start-guide/)
+
+
+
diff --git a/_docs/getting-started/cd-codefresh.md b/_docs/getting-started/cd-codefresh.md
deleted file mode 100644
index 2dc6a70fc..000000000
--- a/_docs/getting-started/cd-codefresh.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: "Codefresh for CD"
-description: "Continuous deployment (CD) with Codefresh pipelines"
-group: getting-started
-toc: true
----
-
-Work in progress TBD
-
-
-
-
-## Connecting to Kubernetes
-Continuous deployment starts with Kubernetes clusters, and Codefresh integrates with any known cluster provider for Kubernetes through a few simple steps. Connect your Google, Azure, Amazon Kubernetes cluster to Codefresh through simple integration steps.
-For those Kubernetes clusters that are not in our list of cluster providers, you can manually enter your cluster settings to add any generic Kubernetes cluster.
-
-See [Connecting a Kubernetes cluster]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster).
-
-## Deploying to Kubernetes
-Codefresh offers a variety of options for you to choose from when deploying to Kubernetes.
-Deploy to Kubernetes from the Codefresh UI, or programmatically through dedicated steps in pipelines, avoiding the need for `kubectl` commands.
-
-**On-demand deployment**
-For quick and easy deployment, deploy on-demand from the Codefresh UI.
-
-**Dedicated steps in pipelines**
-We have the `deploy` step, and the more advanced `cf-deploy-kubernetes`step that enables simple templating on Kubernetes manifests.
-
-Codefresh pipelines also support Kustomize and Helm for deployments through freestyle steps.
-
-Finally, if you are familiar with and want to work with `kubectl`, run your own custom `kubectl` commands in a freestyle step. Read more in [kubectl](#kubectl).
-
-See [Deployment options for Kubernetes]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/).
-
-## kubectl
-`kubectl` is the command line interface for managing kubernetes clusters. Running custom `kubectl` commands in a freestyle step gives your maximum flexibility with cluster deployments.
-Codefresh automatically sets up your config context with your connected clusters. The config context is the value of the `$CF_KUBECONFIG_PATH` variable, which expands to `/codefresh/volume/sensitive/.kube/config` within the shared step volume.
-
-Codefresh has a public Docker image for kubectl at [Docker Hub](https://hub.docker.com/r/codefresh/kubectl/tags){:target="\_blank"} that you can use.
-
-Because Codefresh automatically sets up your `kubeconfig` files with the information from your cluster integrations, you can modify the current config context and run any `kubectl` command you want applied to that context. For example, leverage the parallel capability of Codefresh pipelines to create two Docker images and deploy them to two different clusters with custom `kubectl` commands.
-
-See [Running custom kubectl commands]({{site.baseurl}}/docs/deployments/kubernetes/custom-kubectl-commands/).
-
-## Helm and Codefresh
-Codefresh supplies a built-in Helm repository with every Codefresh account. And supports, besides public HTTP repositories, several private, authenticated Helm repositories.
-
-**Connect to Helm repositories**
-In addition to the official Helm repositories which are displayed in the Helm charts, Codefresh allows you connect with any external Helm repository through simple integrations. You can then inject the Helm repository context into your pipelines by selecting the repository name.
-
-**Build Helm charts**
-Install Helm charts from Helm repositories, or build a new one.
-
-
-
-Deploy Helm charts
-Deploy the Helm chart to a Kubernetes cluster, Helm repo, or both.
-
-
-## Dashboards
-
-TBD
-
\ No newline at end of file
diff --git a/_docs/getting-started/ci-codefresh.md b/_docs/getting-started/ci-codefresh.md
deleted file mode 100644
index 6d0015b27..000000000
--- a/_docs/getting-started/ci-codefresh.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-title: "Codefresh for CI"
-description: "Continuous integration (CI) with Codefresh pipelines"
-group: getting-started
-toc: true
----
-
-
-
-Work in progress
-
-
-## Docker images
-WBuilding a Docker image from the source code is probably the most common and basic requirement for a CI pipeline. In Codefresh you can build, push, and promote Docker images, using declarative YAML and credentials that are defined once stored centrally.
-
-**Build and push image**
-Building a Dockerfile in a pipeline works in the same way as building the Dockerfile locally on your workstation. The `build` step in Codefresh enables you to build a Docker image in a completely declarative manner, and to automatically push it to your default Docker registry without any configuration.
-
-See:
-[Build and push Docker images]({{site.baseurl}}/docs/example-catalog/ci-examples/build-and-push-an-image/)
-
-
-**View image**
-The Images dashboard displays images from all registries connected to Codefresh. Every image is enriched with Git branch, Git hash and commit message, and any tags defined for the image.
-
-See:
-[Viewing Docker images]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/#viewing-docker-images)
-
-
-
-**Promote image**
-Promote an image by copying it from one registry to another. You can promote images either from the Codefresh UI, or automatically from pipelines by specifying an existing image in the pipeline step.
-
-See:
-[Promoting Docker images]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/#viewing-docker-images)
-
-
-## Code compilation
-TBD
-
-## Unit testing
-Codefresh supports all testing frameworks, including mocking frameworks, for all popular programming languages. Easily run unit tests on the source code of the application for every commit or pull request (PR) through our freestyle step in pipelines.
-
-Run any type of unit tests in Codefresh pipelines, from smoke tests in a dockerfile, to tests with external or application images for simple applications, and evenrun them on a special testing image for complex applications.
-You can create test reports and view them whenever you need.
-
-See:
-[Run unit tests example]({{site.baseurl}}/docs/example-catalog/ci-examples/run-unit-tests/)
-
-
-## Integration testing
-Compared to unit tests that run on the source code, integration tests run on the application itself. You need to either launch the application itself, or one or more external services such as a database.
-In Codefresh, you can launch these sidecar containers within the pipeline through compositions and service containers.
-
-
-See:
-[Run integration tests example]({{site.baseurl}}/docs/example-catalog/ci-examples/run-integrations-tests/)
-
-## Security scanning
-Security scans are critical to deploying quality code. With Codefresh, in addition you can control when to implement the security scan, and then view the scan results in the Codefresh UI, without having to go to the security platform.
-
-**Security scan platforms**
-Codefresh can integrate with any security scanning platform that scans source code or Docker images for vulnerabilities. We already have ready-to-use Docker images for several security platforms such as Anchore, Aqua Security, Clair, Twistlock and WhiteSource. For the full list, visit our [Plug-ins library](https://codefresh.io/steps/){:target="\_blank"}.
-
-**Scan timing in pipeline step**
-The security scan is implemented through a freestyle step, inserted anywhere in the pipeline. The fact that you can insert the step anywhere allows you to control when the scan is executed, for example, before the source code is packaged in a container, or before the container is stored in a registry or deployed to production, or any combination of these.
-
-**View scan results**
-As with any scan, the final step is viewing the scan results. Make the scan results available in Codefresh release dashboards (Test Report button) by attaching analysis reports to the pipeline build.
-
-**Security annotations**
-Correlate the Docker images in Codefresh with the results of the security scanning platform by adding annotations for custom metatdata. For example, you can add annotations such as the number of issues or the URL of the full report.
-
-See:
-[Security scanning tests]({{site.baseurl}}/docs/testing/security-scanning/)
-[Test reporting modes]({{site.baseurl}}/docs/testing/test-reports/)
-[Metadata in Docker images]({{site.baseurl}}/docs/pipelines//docker-image-metadata/)
-
-
-
-## Code quality coverage
-Good quality code is central to any CI platform or tool. Codefresh integrates with the top code quality platforms/tools in the market to track code coverage, inspect code quailty, and generate code-coverage analysis reports.
-
-Three steps to
-* Set up integrations with the platforms/tools (Coverall, SonarQube, Codecov, for example).
-* Copy and paste the ready-to-use step for your platform/tool into your pipeline from our [Plug-ins library](https://codefresh.io/steps/){:target="\_blank"}.
-* Reference them by name in the pipeline step, and view the updated reports in the respective UIs.
-
-See:
-[Code coverage examples]({{site.baseurl}}/docs/example-catalog/examples/#code-coverage-examples)
-
-
diff --git a/_docs/getting-started/concepts.md b/_docs/getting-started/concepts.md
deleted file mode 100644
index 66b1e573a..000000000
--- a/_docs/getting-started/concepts.md
+++ /dev/null
@@ -1,113 +0,0 @@
----
-title: "Concepts in Codefresh"
-description: "Understand terminology and nuances in Codefresh"
-group: getting-started
-toc: true
----
-Work in progress
-
-
-### Runtime
-A Runtime in Codefresh is a GitOps installation in your Codefresh account, in either a Hosted or Hybrid installation environment. Hosted Runtimes are installed on a Codefresh cluster and managed by Codefresh. Hybrid Runtimes are installed on customer clusters, and managed by the customers.
-You can install a single Hosted runtime, and multiple Hybrid Runtines in a Codefresh account.
-
-
-
-A single Runtime can connect to and manage multiple remote clusters.
-
-
-See:
-[GitOps runtime architecture]({{site.baseurl}}/docs/installation/runtime-architecture)
-[Hybrid GitOps Runtime installation]({{site.baseurl}}/docs/installation/hybrid-gitops)
-[Hosted GitOps Runtime installation]({{site.baseurl}}/docs/installation/hosted-runtime)
-
-
-
-### Runner
-The Runner is the hybrid installation option for CI/CD pipelines in your Codefresh account. The Runner is installed as a Kubernetes native application on any Kubernetes-compliant cluster. It allows you to run pipelines on your own Kubernetes cluster, including private clusters behind company firewalls.
-
-Codefresh Runner gives you:
-* Access to secure services (such as Git repositories or databases) that are behind the firewall and normally not accessible to the public cloud.
-* The ability to use special resources in your Codefresh pipeline that are unique to your application, GPU nodes or other special hardware only present in your data center.
-* Complete control over the build environment in addition to resources for pipelines.
-
-Every Runner installation creates a runtime enviroment in your account. Assign the Runner to any pipeline to automatically run the pipeline in your own cluster. External integrations (such as Docker registry or Helm repositories) are also available to the Runner making pipelines exactly the same regardless of their runtime environment.
-
-You can have multiple Runner installations in the same Codefresh account. A Runner can also manage multiple remote clusters in your account.
-
-See:
-[Codefresh Runner installation]({{site.baseurl}}/docs/installation/codefresh-runner)
-[Runner installation behind firewalls]({{site.baseurl}}/docs/reference/behind-the-firewall)
-
-
-### Project
-A project is a top-level entity in Codefresh for grouping related pipelines. Projects can group pipelines according to any criteria that is relevant to your enterprise. The criteria can be logical and based on teams, departments, or location for example, or funtional, and based microservices in applications.
-Projects centralize viewing and configuration settings for the pipelines that belong to them:
-* Selecting a pipeline shows the other pipelines in the same project.
-* Define access control and user-defined variables for the project, and they are inherited by all the pipelines assigned to the project
-
-There are no limits to the number of projects you can create in your account. You can also create standalone pipelines and assign them later to a project, or detach a pipeline assigned to a project.
-
-See:
-[Projects in pipelines]({{site.baseurl}}/docs/pipelines/pipelines/#pipeline-concepts)
-
-### Pipeline
-The pipeline is the central component in Codefresh that implements CI/CD processes. Everything for CI/CD in Codefresh starts and ends with pipelines. a pipeline can do only CI, only CD, both CI and CD, or run any custom action, such as unit and integration tests.
-
-A CI pipeline can compile and package code, build and push Docker images. A CD pipeline can deploy applications/artifacts to VMs, Kubernetes clusters, FTP sites, S3 buckets, and more. And a CI/CD pipeline can combine code compilation, integration, and deployment for full CI/CD.
-
-More to be added...
-
-
-
-
-### Applications
-An application is a deployment to a Kubernetes, or any Kubernetes-compatiale cluster or clusters.
-Codefresh supports two types of applications:
-* Containerized applications packaged as Docker images or
-* Argo CD applications
-
-**Containerized applications**
-Containerized applications are compiled, packaged, and deployed through Codefresh pipelines. Codefresh has native support for Docker artifacts, and also supports non-Dockerized applications that don’t use a Dockerfile for the actual build.
-
-Deploy an application directly to Kubernetes through the Codefresh UI, or use Helm as a package manager to deploy to Kubernetes, again from Codefresh.
-Codefresh offers several levels of visibility into your deployments :
-* The Kubernetes dashboard displays the status of pods and Docker images.
-* The Helm dashabord displays the applications deployed to the cluster through Helm packages.
-* The Environment dashbaord displays both Helm and Kubernetes releases, the status of the cluster, and most importantly that of the builds that affect it.
-
-See:
-
-
-**Agro CD applications**
-Argo CD applications conform to Argo CD's application definition CRD (Custom Resource Definition). Argo CD supports several types of Kubernetes manifests, including Jsonnet, Kustomize applications, Helm charts, and YAML/json files, and supports webhook notifications from Git.
-
-Create Argo CD applications that are fully GitOps-compliant from the Codefresh UI. Work in form mode or directly in YAML in the Create Application wizard. Built-in validation makes it easy to identify and fix errors before commit. The application manifest is generated, committed to Git, and synced to your cluster.
-After creation, you can edit and optimize the application,
-
-Just as with Dockerized applications, you get full visibily into the applications and their deployment thorugh the global Analytics, DORA metrics, and the Application dashboards. The Applications dashboard displays the individual deployments across your enterprise. Drill down shows the current state of all the resources in the application with actions and detilaed information for each resource.
-
-
-
-### Triggers
-TBD
-
-### Events
-TBD
-
diff --git a/_docs/getting-started/gitops-codefresh.md b/_docs/getting-started/gitops-codefresh.md
deleted file mode 100644
index 059a2136e..000000000
--- a/_docs/getting-started/gitops-codefresh.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: "Codefresh for GitOps"
-description: "Argo CD with Codefresh GitOps"
-group: getting-started
-toc: true
----
-
-Work in progress TBD
\ No newline at end of file
diff --git a/_docs/getting-started/intro-to-codefresh.md b/_docs/getting-started/intro-to-codefresh.md
deleted file mode 100644
index 850aad11c..000000000
--- a/_docs/getting-started/intro-to-codefresh.md
+++ /dev/null
@@ -1,113 +0,0 @@
----
-title: "Introduction to Codefresh"
-description: "What is Codefresh?"
-group: getting-started
-toc: true
----
-
-TBD
-
-
-
\ No newline at end of file
diff --git a/_docs/gitops-integrations/ci-integrations.md b/_docs/gitops-integrations/ci-integrations.md
deleted file mode 100644
index 84d54381f..000000000
--- a/_docs/gitops-integrations/ci-integrations.md
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: "CI integrations for GitOps"
-description: ""
-group: gitops-integrations
-toc: true
----
-
-Use Codefresh Hosted GitOps with any popular Continuous Integration (CI) solution, not just with Codefresh CI.
-
-You can connect a third-party CI solution to Codefresh, such as GitHub Actions for example, to take care of common CI tasks such as building/testing/scanning source code, and have Codefresh Hosted GitOps still responsible for the deployment, including image enrichment and reporting.
-The integration brings in all the CI information to your images which you can see in the Images dashboard.
-
-See [Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/).
-
-## Codefresh image reporting and enrichment action
-To support the integration between Codefresh and third-party CI platforms and tools, we have created dedicated actions for supported CI tools in the Codefresh Marketplace. These actions combine image enrichment and reporting through integrations with issue tracking and container registry tools.
-
->You can also configure the integration directly in the Codefresh UI, as described in [Connect a third-party CI platform/tool to Codefresh](#connect-a-third-party-ci-platformtool-to-codefresh).
-
-
-Use the action as follows:
-
-1. Create your pipeline with your CI platform/tool as you usually do.
-1. Use existing CI actions for compiling code, running unit tests, security scanning etc.
-1. Place the final action in the pipeline as the "report image" action provided by Codefresh.
- See:
- [GitHub Action Codefresh report image](https://github.com/marketplace/actions/codefresh-report-image){:target="\_blank"}
- [Codefresh Classic Codefresh report image](https://codefresh.io/steps/step/codefresh-report-image){:target="\_blank"}
-1. When the pipeline completes execution, Codefresh retrieves the information on the image that was built and its metadata through the integration names specified (essentially the same data that Codefresh CI would send automatically).
-1. View the image in Codefresh's [Images dashboard]({{site.baseurl}}/docs/deployment/images/), and in any [application]({{site.baseurl}}/docs/deployment/applications-dashboard/) in which it is used.
-
-## Connect a third-party CI platform/tool to GitOps
-Connecting the CI platform/tool to GitOps from the UI includes configuring the required arguments, and then generating and copying the YAML manifest for the report image to your pipeline.
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**GitOps Integrations**](https://g.codefresh.io/2.0/account-settings/integrations){:target="\_blank"}.
-1. Filter by **CI tools**, then select the CI tool and click **Add**.
-1. Define the arguments for the CI tool:
- [Codefresh Classic]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/codefresh-classic/)
- [GitHub Action]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/github-actions/)
- [Jenkins]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/jenkins/)
-
- For the complete list of arguments you can use, see [CI integration for GitOps argument reference](#ci-integration-argument-reference) in this article.
-
-1. To generate a YAML snippet with the arguments, on the top-right, click **Generate Manifest**.
- Codefresh validates the generated manifest, and alerts you to undefined arguments that are required, and other errors.
-
- {% include image.html
-lightbox="true"
-file="/images/integrations/generated-manifest-with-error.png"
-url="/images/integrations/generated-manifest-with-error.png"
-alt="Example of manifest generated for Codefresh Classic with validation errors"
-caption="Example of manifest generated for Codefresh Classic with validation errors"
-max-width="50%"
-%}
-
-{:start="5"}
-1. If required, click **Close**, update as needed and generate the manifest again.
-1. If there are no validation errors, click **Copy**.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/classic/classic-manifest.png"
-url="/images/integrationsclassic/classic-manifest.png"
-alt="Example of manifest generated for Codefresh Classic"
-caption="Example of manifest generated for Codefresh Classic"
-max-width="50%"
-%}
-
-{:start="6"}
-1. Paste the copied manifest as the last step in your CI pipeline.
-
-### CI integration argument reference
-The table describes _all_ the arguments required for CI integrations in general. The actual arguments required, differs according to the CI integration tool.
-
-{: .table .table-bordered .table-hover}
-| Argument | Description | Required/Optional/Default |
-| ---------- | -------- | ------------------------- |
-| `CF_HOST` | _Deprecated from v 0.0.460 and higher._ Recommend using `CF_RUNTIME_NAME` instead. {::nomarkdown} CF_HOST has been deprecated because the URL is not static, and any change can fail the enrichment.
The URL to the cluster with the Codefresh runtime to integrate with. If you have more than one runtime, select the runtime from the list. Codefresh displays the URL of the selected runtime cluster.{:/} | _Deprecated_ |
-| `CF_RUNTIME_NAME` | The runtime to use for the integration. If you have more than one runtime, select the runtime from the list. | Required |
-| `CF_PLATFORM_URL` | The root URL of the Codefresh application. The default value is `https://g.codefresh.io`. | Optional |
-| `CF_API_KEY` | The API key for authentication. Generate the key for the integration. | Required |
-| `CF_CONTAINER_REGISTRY_INTEGRATION` | The name of the container registry integration created in Codefresh where the image is stored. See [Container registry integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/). | Optional |
-| `CF_JIRA_INTEGRATION` | _Deprecated from version 0.0.565 and higher._ Replaced by `CF_ISSUE_TRACKING_INTEGRATION`. | _Deprecated_
-| `CF_ISSUE_TRACKING_INTEGRATION` | The name of the issue tracking integration created in Codefresh to use for image enrichment. Relevant only if Jira enrichment is required for the image. If you don't have a Jira integration, click **Create Atlassian Jira Integration** and configure settings. See [Jira integration]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/jira/). | Optional |
-| `CF_IMAGE` | The image to be enriched and reported in Codefresh. Pass the `[account-name]/[image-name]:[tag]` built in your CI. | Required |
-| `CF_WORKFLOW_NAME` | The name assigned to the workflow that builds the image. When defined, the name is displayed in the Codefresh platform. Example, `Staging step` | Optional |
-| `CF_GIT_BRANCH` | The Git branch with the commit and PR (pull request) data to add to the image. Pass the Branch from the event payload used to trigger your action. | Required |
-| `CF_GIT_REPO` | The Git repository with the configuration and code used to build the image. {::nomarkdown}
Optional for GitHub Actions.
Required for Classic and Jenkins.
{:/} | Required |
-| `CF_GIT_PROVIDER` | The Git provider for the integration, and can be either `github`, `gitlab`, or `bitbucket`. {::nomarkdown}
Optional when you don't define other related Git provider arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Git provider arguments. For example, when you define CF_GITLAB_TOKEN, then you must define all Git provider arguments, in this case, CF_GIT_PROVIDER as gitlab, and CF_GITLAB_HOST_URL.
{:/}| Optional |
-| `CF_GITLAB_TOKEN` | The token to authenticate the GitLab account. {::nomarkdown}
Optional when you don't define any GitLab-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the GitLab-specific arguments, such as CF_GIT_PROVIDER as gitlab, or CF_GITLAB_HOST_URL.
{:/} | Optional |
-| `CF_GITLAB_HOST_URL` | The URL address of your GitLab Cloud/Server instance. {::nomarkdown}
Optional when you don't define other related GitLab-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the GitLab-specific arguments, such as CF_GIT_PROVIDER as gitlab, or CF_GITLAB_TOKEN.
{:/} | Optional |
-| `CF_BITBUCKET_USERNAME` | The username for the Bitbucket or the Bitbucket Server (on-prem) account. {::nomarkdown}
Optional when you don't define other related Bitbucket-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Bitbucket-specific arguments, such as CF_GIT_PROVIDER as bitbucket, CF_BITBUCKET_PASSWORD or CF_BITBUCKET_HOST_URL.
{:/}| Optional |
-| `CF_BITBUCKET_PASSWORD` | The password for the Bitbucket or the BitBucket Server (on-prem) account. {::nomarkdown}
Optional when you don't define other related Bitbucket-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Bitbucket-specific arguments, such as CF_GIT_PROVIDER as bitbucket, CF_BITBUCKET_USERNAME, or CF_BITBUCKET_HOST_URL.
{:/}| Optional |
-| `CF_BITBUCKET_HOST_URL` | Relevant for Bitbucket Server accounts only. The URL address of your Bitbucket Server instance. Example, `https://bitbucket-server:7990`. {::nomarkdown}
Optional when you don't define other related Bitbucket Server-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Bitbucket Server-specific arguments, such as CF_GIT_PROVIDER as bitbucket, CF_BITBUCKET_USERNAME or CF_BITBUCKET_PASSWORD.
{:/} | Optional |
-|`CF_JIRA_PROJECT_PREFIX` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The Jira project prefix that identifies the ticket number to use.| Required|
-| `CF_JIRA_MESSAGE` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The Jira issue IDs matching the string to associate with the image. | Required |
-| `CF_JIRA_FAIL_ON_NOT_FOUND` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The report image action when the `CF_JIRA_MESSAGE` is not found. When set to `true`, the report image action is failed. | Required |
-
-## Related articles
-[Container registry GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/)
-[Issue tracking GitOps intergrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/)
-
-
-
-
-
-
diff --git a/_docs/gitops-integrations/ci-integrations/codefresh-classic.md b/_docs/gitops-integrations/ci-integrations/codefresh-classic.md
deleted file mode 100644
index 73ab5e94a..000000000
--- a/_docs/gitops-integrations/ci-integrations/codefresh-classic.md
+++ /dev/null
@@ -1,259 +0,0 @@
----
-title: "Codefresh CI pipeline GitOps integration"
-description: ""
-group: gitops-integrations
-sub_group: ci-integrations
-toc: true
----
-
-
- Use Hosted GitOps with any popular Continuous Integration (CI) solution, not just with Codefresh CI. If you have Hosted or Hybrid GitOps, you can connect your CI pipelines to Hosted GitOps for deployment with image enrichment and reporting.
-
-
- Connecting your CI pipeline, adds the CI information to images which are displayed in the Images dashboard, as in the example below.
-
- {% include
- image.html
- lightbox="true"
- file="/images/integrations/images-dashboard.png"
- url="/images/integrations/images-dashboard.png"
- alt="Images dashboard with enriched image information"
- caption="Images dashboard with enriched image information"
- max-width="70%"
- %}
-
-
-
-For information on how to use the image reporting action in your Codefresh pipeline and how to configure the integration, see [CI Integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/).
-
-
-## Example of Codefresh pipeline with report image step
-
-{% highlight yaml %}
-{% raw %}
-
-version: "1.0"
-stages:
- - "clone"
- - "build"
- - "report"
-
-steps:
- clone:
- title: "Cloning repository"
- type: "git-clone"
- repo: "${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}"
- revision: "${{CF_BRANCH}}"
- stage: "clone"
-
- build:
- title: "Building Docker image"
- type: "build"
- image_name: "${{CF_REPO_OWNER}}/color"
- working_directory: "${{clone}}"
- tag: "${{CF_SHORT_REVISION}}"
- dockerfile: "Dockerfile"
- registry: docker-lr
- stage: "build"
-
- ReportImageMetadataAll:
- title: Report image to Codefresh CD
- type: codefresh-report-image
- working_directory: /code
- stage: "report"
- arguments:
- CF_API_KEY: '${{CF_API_KEY}}'
- CF_IMAGE: 'docker.io/${{CF_REPO_OWNER}}/color:${{CF_SHORT_REVISION}}'
- CF_CONTAINER_REGISTRY_INTEGRATION: docker
- CF_RUNTIME_NAME: "codefresh-hosted"
- CF_GITHUB_TOKEN: '${{GITHUB_TOKEN}}'
- CF_GIT_PROVIDER: github
- CF_GIT_REPO: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}'
- CF_GIT_BRANCH: '${{CF_BRANCH}}'
- CF_ISSUE_TRACKING_INTEGRATION: jira
- CF_JIRA_MESSAGE: "${{CF_COMMIT_MESSAGE}}"
- CF_JIRA_PROJECT_PREFIX: CR
-
-{% endraw %}
-{% endhighlight yaml %}
-
-## CI pipeline-GitOps integration settings
-The table describes the arguments required to connect Codefresh Classic to Codefresh.
-
->Except for Git branch and Git repo which are required, you can omit other Git provider arguments. Codefresh retrieves the required values from the runtime context selected for the integration.
-
-For the complete argument reference, see [CI integration for GitOps argument reference]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/#ci-integration-argument-reference).
-
-
-{: .table .table-bordered .table-hover}
-| Argument | Description | Required/Optional/Default |
-| ---------- | -------- | ------------------------- |
-| `CF_RUNTIME_NAME` | The runtime to use for the integration. If you have more than one runtime, select the runtime from the list. | Required |
-| `CF_PLATFORM_URL` | The root URL of the Codefresh application. The default value is `https://g.codefresh.io`. | Optional |
-| `CF_API_KEY` | The API key to authenticate the Codefresh Classic user to Codefresh. Generate the key for the integration. | Required |
-| `CF_CONTAINER_REGISTRY_INTEGRATION` | The name of the container registry integration created in Codefresh where the image is stored. To create a container registry integration if you don't have one, click **Create Container Registry Integration**, and then configure the settings. See [Container registry integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/). | Optional |
-| `CF_JIRA_INTEGRATION` | Deprecated from version 0.0.565. Replaced by `CF_ISSUE_TRACKING_INTEGRATION`. | _Deprecated_
-| `CF_ISSUE_TRACKING_INTEGRATION` | The name of the issue tracking integration created in Codefresh to use to enrich the image. Relevant only if Jira enrichment is required for the image. If you don't have a Jira integration, click **Create Atlassian Jira Integration** and configure settings. See [Jira integration]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/jira/). | Optional |
-| `CF_IMAGE` | The image to be enriched and reported in Codefresh. Pass the `[account-name]/[image-name]:[tag]` built in your CI. | Required |
-| `CF_WORKFLOW_NAME` | The name assigned to the workflow that builds the image. When defined, the name is displayed in the Codefresh platform. Example, `Staging step` | Optional |
-| `CF_GIT_BRANCH` | The Git branch with the commit and PR (pull request) data to add to the image. Pass the Branch from the event payload used to trigger your action. | Required |
-| `CF_GIT_REPO` | The Git repository with the configuration and code used to build the image. | Required |
-| `CF_GIT_PROVIDER` | The Git provider for the integration, and can be either `github`, `gitlab`, or `bitbucket`. {::nomarkdown}
Optional when you don't define other related Git provider arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Git provider arguments. For example, when you define CF_GITLAB_TOKEN, then you must define all Git provider arguments, in this case, CF_GIT_PROVIDER as gitlab, and CF_GITLAB_HOST_URL.
{:/}| Optional |
-| `CF_GITLAB_TOKEN` | The token to authenticate the GitLab account. {::nomarkdown}
Optional when you don't define any GitLab-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the GitLab-specific arguments, such as CF_GIT_PROVIDER as gitlab, or CF_GITLAB_HOST_URL.
{:/} | Optional |
-| `CF_GITLAB_HOST_URL` | The URL address of your GitLab Cloud/Server instance. {::nomarkdown}
Optional when you don't define other related GitLab-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the GitLab-specific arguments, such as CF_GIT_PROVIDER as gitlab, or CF_GITLAB_TOKEN.
{:/} | Optional |
-| `CF_BITBUCKET_USERNAME` | The username for the Bitbucket or the Bitbucket Server (on-prem) account. {::nomarkdown}
Optional when you don't define other related Bitbucket-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Bitbucket-specific arguments, such as CF_GIT_PROVIDER as bitbucket, CF_BITBUCKET_PASSWORD or CF_BITBUCKET_HOST_URL.
{:/}| Optional |
-| `CF_BITBUCKET_PASSWORD` | The password for the Bitbucket or the Bitbucket Server (on-prem) account. {::nomarkdown}
Optional when you don't define other related Bitbucket-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Bitbucket-specific arguments, such as CF_GIT_PROVIDER as bitbucket, CF_BITBUCKET_USERNAME, or CF_BITBUCKET_HOST_URL.
{:/}| Optional |
-| `CF_BITBUCKET_HOST_URL` | Relevant for Bitbucket Server accounts only. The URL address of your Bitbucket Server instance. Example, `https://bitbucket-server:7990`. {::nomarkdown}
Optional when you don't define other related Bitbucket Server-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Bitbucket Server-specific arguments, such as CF_GIT_PROVIDER as bitbucket, CF_BITBUCKET_USERNAME or CF_BITBUCKET_PASSWORD.
{:/} | Optional |
-|`CF_JIRA_PROJECT_PREFIX` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The Jira project prefix that identifies the ticket number to use.| Required|
-| `CF_JIRA_MESSAGE` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The Jira issue IDs matching the string to associate with the image. | Required |
-| `CF_JIRA_FAIL_ON_NOT_FOUND` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The report image action when the `CF_JIRA_MESSAGE` is not found. When set to `true`, the report image action is failed. | Required |
-
-For how-to instructions, see [Connect a third-party CI platform/tool to Codefresh GitOps]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/#connect-a-third-party-ci-platformtool-to-codefresh/).
-
-## Templatization examples for CF arguments
-
-Arguments such as `CF_IMAGE`, `CF_GIT_BRANCH`, and `CF_JIRA_MESSAGE` are populated dynamically when the Codefresh integration pipeline is triggered. You can templatize the values of these arguments to ensure that the required information is included in the reported image.
-
-Codefresh pipelines have [system variables]({{site.baseurl}}/docs/pipelines/variables/#system-provided-variables) you can use to templatize argument values.
-
-{::nomarkdown}
-
-{:/}
-
-### CF_IMAGE examples
-**Example: Report full repo and branch information**
-This example illustrates how to define the value for `CF_IMAGE` to report the repo owner, name, and branch, with the Git hash.
-
- Value:
- {% raw %}`${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}:${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}}`{% endraw %}
-
- where:
- * {% raw %}`${{CF_REPO_OWNER}}`{% endraw %} reports the owner of the repository. For example, `nr-codefresh`.
- * {% raw %}`${{CF_REPO_NAME}}`{% endraw %} reports the name of the repository. For example, `codefresh-production`.
- * {% raw %}`${{CF_BRANCH_TAG_NORMALIZED}}`{% endraw %} reports the normalized version of the branch name, without invalid characters in case the branch name is the Docker image tag name. For example, `pr-2345`, `new-auth-strategy` (branch names without normalization required), and `gcr.io/codefresh-inc/codefresh-io/argo-platform-audit.1.1909.0` (normalized version of original branch name `gcr.io/codefresh-inc/codefresh-io/argo-platform-audit:1.1909.0`).
- * {% raw %}`${{CF_SHORT_REVISION}}`{% endraw %} reports the abbreviated 7-character revision hash, as used in Git. For example, `40659e7`.
-
-**Example: Report a specific image tag**
-This example illustrates how to define the value for `CF_IMAGE` value when you know the specific image version you want to report.
-
- Value:
- {% raw %}`{{CF_REPO_OWNER}}/${{CF_REPO_NAME}}:` {% endraw %}
-
- where:
- * {% raw %}`${{CF_REPO_OWNER}}`{% endraw %} and {% raw %}`${{CF_REPO_NAME}}`{% endraw %} report the names of the repository owner and the repository, respectively. For example, `nr-codefresh` and `codefresh-production`, respectively.
- * {% raw %}``{% endraw %} reports the hard-coded tag `v1.0`.
-
-**Example: Report the latest Git tag available on repository**
-This example illustrates how to define the value for `CF_IMAGE` value to report the latest Git tag on the repository.
-
-Value:
-{% raw %}`codefresh/${{CF_REPO_NAME}}:latest`{% endraw %}
-
-where:
-* {% raw %}`codefresh`{% endraw %} is the hard-coded owner of the image.
-* {% raw %}`${{CF_REPO_NAME}}`{% endraw %} reports the name of the repository that triggered the pipeline. For example, `codefresh-production`.
-* {% raw %}`latest`{% endraw %} reports the latest Git tag available for the repository defined by {% raw %}`${{CF_REPO_NAME}}`{% endraw %}. For example, `v1.0.4-14-g2414721`.
-
-{::nomarkdown}
-
-{:/}
-
-### CF_GIT_BRANCH examples
-
-**Example: Report Git branch or tag with committer and commit message**
-
-This example illustrates how to report the name or tag of the Git branch with committer and commit message.
-
- Value:
- {% raw %}`${{CF_REPO_NAME}}/${{CF_BRANCH}}:${{CF_COMMIT_AUTHOR}}/${{CF_COMMIT_MESSAGE}}`{% endraw %}
-
- where:
- * {% raw %}`${{CF_REPO_NAME}}`{% endraw %} reports the name of the repository. For example, `codefresh-production`.
- * {% raw %}`${{CF_BRANCH}}`{% endraw %} reports the branch name or tag based on the JSON payload of the Git repository that triggered the pipeline. For example, `new-auth-strategy`.
- * {% raw %}`${{CF_COMMIT_AUTHOR}}`{% endraw %} reports the name of the user who made the commit. For example, `cf-support`.
- * {% raw %}`${{CF_COMMIT_MESSAGE}}`{% endraw %} reports the commit message of the repository. For example, `support oauth authentication for ci integrations`.
-
-
-**Example: Report normalized Git branch or tag with committer and commit message**
-
-This example illustrates how to report the normalized name or tag of the Git branch with committer and commit message.
-Normalizing the branch name removes any invalid characters in the name if the branch name is also used as the Docker image tag name.
-
- Value:
-
- {% raw %}`${{CF_REPO_NAME}}/${{CF_BRANCH_TAG_NORMALIZED}}:${{CF_COMMIT_AUTHOR}}/${{CF_COMMIT_MESSAGE}}`{% endraw %}
-
- where:
- * {% raw %}`${{CF_REPO_NAME}}`{% endraw %} reports the name of the repository. For example, `codefresh-production`.
- * {% raw %}`${{CF_BRANCH_TAG_NORMALIZED}}`{% endraw %} reports the normalized version of the branch name or tag based on the JSON payload of the Git repository that triggered the pipeline.
- * {% raw %}`${{CF_COMMIT_AUTHOR}}`{% endraw %} reports the name of the user who made the commit. For example, `nr-codefresh`.
- * {% raw %}`${{CF_COMMIT_MESSAGE}}`{% endraw %}reports the commit message of the repository. For example, `support oauth authentication for ci integrations`.
-
-**Example: Report normalized Git branch or tag in lowercase with PR information**
-
-This example illustrates how to report the normalized name or tag of the Git branch in lowercase, with PR (pull request) information.
-Normalizing the branch name removes any invalid characters in the name if the branch name is also used as the Docker image tag name.
-
-Value:
- {% raw %}`${{CF_REPO_NAME}}/${{CF_BRANCH_TAG_NORMALIZED}}:${{CF_PULL_REQUEST_TARGET}}/${{CF_PULL_REQUEST_NUMBER}}`{% endraw %}
-
- where:
- * {% raw %}`${{CF_REPO_NAME}}`{% endraw %} reports the name of the repository. For example, `production`.
- * {% raw %}`${{CF_BRANCH_TAG_NORMALIZED}}`{% endraw %} reports the normalized version of the branch name or tag based on the JSON payload of the Git repository that triggered the pipeline. For example, `pr-2345`, `new-auth-strategy` (branch names without normalization required), and `gcr.io/codefresh-inc/codefresh-io/argo-platform-audit.1.1909.0` (normalized version of original branch name `gcr.io/codefresh-inc/codefresh-io/argo-platform-audit:1.1909.0`).
- * {% raw %}`${{CF_PULL_REQUEST_TARGET}}`{% endraw %} reports the target branch of the PR. For example, `new-auth-strategy`.
- * {% raw %}`${{CF_PULL_REQUEST_NUMBER}}`{% endraw %} reports the number of the PR. For example, `#323`.
-
-{::nomarkdown}
-
-{:/}
-
-### CF_JIRA_MESSAGE examples
-The Jira message represents an existing Jira issue, and must be a literal string.
-
- Value:
- `CR-1246`
-
-## Codefresh pipeline integration logs
-View and analyze logs for Codefresh pipelines through the Logs tab. When a Codefresh pipeline is run, it is added to the Logs tab.
-You can:
-* Filter by status or by date range to view a subset of actions
-* Navigate to the build file in Codefresh Classic, and view the Codefresh report image step
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/classic/classic-logs-tab.png"
-url="/images/integrations/classic/classic-logs-tab.png"
-alt="Codefresh Classic: Logs tab"
-caption="Codefresh Classic: Logs tab"
-max-width="50%"
-%}
-
-**Build in Codefresh**
-
-The Run column includes the link to the pipeline in Codefresh Classic.
-
-Here is an example of the pipeline build in Codefresh Classic with the Enrich image for CSDP step (top) and the log (down).
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/classic/classic-pipeline-enrich-step.png"
-url="/images/integrations/classic/classic-pipeline-enrich-step.png"
-alt="Codefresh Classic pipeline with Codefresh enrich image step"
-caption="Codefresh Classic pipeline with Codefresh enrich image step"
-max-width="50%"
-%}
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/classic/classic-logs.png"
-url="/images/integrations/classic/classic-logs.png"
-alt="Logs for Codefresh report image step in Codefresh Classic build"
-caption="Logs for Codefresh report image step in Codefresh Classic build"
-max-width="50%"
-%}
-
-## Related articles
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/)
-[Container registry GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/)
-[Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/)
\ No newline at end of file
diff --git a/_docs/gitops-integrations/ci-integrations/github-actions.md b/_docs/gitops-integrations/ci-integrations/github-actions.md
deleted file mode 100644
index 2d6246cae..000000000
--- a/_docs/gitops-integrations/ci-integrations/github-actions.md
+++ /dev/null
@@ -1,259 +0,0 @@
----
-title: "GitHub Actions"
-description: ""
-group: gitops-integrations
-sub_group: ci-integrations
-toc: true
----
-
-Use Hosted GitOps with any popular Continuous Integration (CI) solution, not just with Codefresh CI.
-GitHub Actions is one of the third-party CI solutions that you can connect to Hosted GitOps for deployment with image reporting and enrichment.
-
- Connecting a GitHub Action, adds the CI information to images which are displayed in the Images dashboard, as in the example below.
-
- {% include
- image.html
- lightbox="true"
- file="/images/integrations/images-dashboard.png"
- url="/images/integrations/images-dashboard.png"
- alt="Images dashboard with enriched image information"
- caption="Images dashboard with enriched image information"
- max-width="70%"
- %}
-
-For information on how to use the image reporting action in your GitHub Action pipeline and how to configure the integration, see [CI Integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/).
-
-
-## Example of GitHub Actions pipeline with Codefresh report image action
-
-
-Here is an example pipeline that uses GitHub Actions to build a container image, and the Codefresh action to enrich and report the resulting image to Codefresh.
-
-Because a Jira integration account is configured in Codefresh, the step needs only the name for `CF_JIRA_INTEGRATION`, instead of explicit credentials `CF_JIRA_API_TOKEN`, `CF_JIRA_HOST_URL`, and `CF_JIRA_EMAIL`.
-
-
-{% highlight yaml %}
-{% raw %}
-
-name: Docker Image CI
-
-on:
- push:
- branches: [ main ]
- pull_request:
- branches: [ main ]
-jobs:
- build:
- environment:
- name: test
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: Login to DockerHub
- uses: docker/login-action@v2
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_TOKEN }}
- - name: Build & push the Docker image
- env:
- CF_IMAGE: ${{ secrets.DOCKERHUB_USERNAME }}/build-by-github-action:0.0.1
- run: |
- docker build . --file Dockerfile --tag $CF_IMAGE && docker push $CF_IMAGE
- echo "Image should be accessible to your local machine (after docker login) by:"
- echo "docker pull $CF_IMAGE"
- docker pull $CF_IMAGE
- echo "On the next step, the report image would use the integration to pull information on the reported image, using the specified enrichers."
- - name: report image by action
- with:
- # Name of runtime to implement the enrichment
- CF_RUNTIME_NAME: 'codefresh-hosted'
-
- # Codefresh API key !! Committing a plain text token is a security risk. We highly recommend using encrypted secrets. !!
- # Documentation - https://docs.github.com/en/actions/security-guides/encrypted-secrets
- CF_API_KEY: ${{ secrets.USER_TOKEN }}
-
- # Name of Container registry integration
- CF_CONTAINER_REGISTRY_INTEGRATION: 'docker'
-
- # The git branch which is related for the commit
- CF_GIT_BRANCH: 'main'
-
- # Image path to enrich
- CF_IMAGE: ${{ secrets.DOCKERHUB_USERNAME }}/build-by-github-action:0.0.1
-
- # GitHub Access token !! Committing a plain text token is a security risk. We highly recommend using encrypted secrets. !!
- # Documentation - https://docs.github.com/en/actions/security-guides/encrypted-secrets
- CF_GITHUB_TOKEN: ${{ secrets.CF_GITHUB_TOKEN }}
-
- # Name of Jira integration
- CF_ISSUE_TRACKING_INTEGRATION: 'jira'
-
- # String starting with the issue ID to associate with image
- CF_JIRA_MESSAGE: 'CR-11027'
-
- # Jira project filter
- CF_JIRA_PROJECT_PREFIX: "CR"
- uses: codefresh-io/codefresh-report-image@latest
-
-
-{% endraw %}
-{% endhighlight yaml %}
-
-## GitHub Action-GitOps integration settings
-The table describes the arguments required to connect a GitHub Action to Codefresh.
-
-
- {: .table .table-bordered .table-hover}
-| Argument | Description | Required/Optional/Default |
-| ---------- | -------- | ------------------------- |
-| `CF_HOST` | _Deprecated from v 0.0.460 and higher._ Recommend using `CF_RUNTIME_NAME` instead. {::nomarkdown} CF_HOST has been deprecated because the URL is not static, and any change can fail the enrichment.
The URL to the cluster with the Codefresh runtime to integrate with. If you have more than one runtime, select the runtime from the list. Codefresh displays the URL of the selected runtime cluster.{:/} | Required |
-| `CF_RUNTIME_NAME` | The runtime to use for the integration. If you have more than one runtime, select the runtime from the list. | Required |
-| `CF_PLATFORM_URL` | The root URL of the Codefresh application. The default value is `https://g.codefresh.io`. | Optional |
-| `CF_API_KEY` | The API key to authenticate the GitHub Actions user to Codefresh. Generate the key for the GitHub Action. {::nomarkdown} Enter this token in GitHub Actions as a secret with the name CF_API_KEY. You can then reference it in all GitHub pipelines as you would any other secret.{:/}| Required |
-| `CF_CONTAINER_REGISTRY_INTEGRATION` | The name of the container registry integration created in Codefresh where the image is stored. {::nomarkdown}
For a GitHub Container registry, select GHCR_GITHUB_TOKEN_AUTHENTICATION even if you have not created an integration in Codefresh. Codefresh retrieves and provides the explicit credentials for the container registry on generating the integration manifest.
To create a container registry integration if you don't have one, click Create Container Registry Integration, and then configure the settings. See Container registry integrations.
{:/} | Optional |
-| `CF_GIT_REPO` | The Git repository with the configuration and code used to build the image. If not defined, Codefresh retrieves it from the repo defined for the GitHub Action. | Required |
-| `CF_JIRA_INTEGRATION` | Deprecated from version 0.0.565. Replaced by `CF_ISSUE_TRACKING_INTEGRATION`. | _Deprecated_
-| `CF_ISSUE_TRACKING_INTEGRATION` | The name of the issue tracking integration created in Codefresh to use to enrich the image. Relevant only if Jira enrichment is required for the image. If you don't have a Jira integration, click **Create Atlassian Jira Integration** and configure settings. See [Jira integration]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/jira/). | Optional |
-| `CF_IMAGE` | The image to be enriched and reported in Codefresh. Pass the `[account-name]/[image-name]:[tag]` built in your CI. | Required |
-| `CF_WORKFLOW_NAME` | The name assigned to the workflow that builds the image. When defined, the name is displayed in the Codefresh platform. Example, `Staging step` | Optional |
-| `CF_GIT_BRANCH` | The Git branch with the commit and PR (pull request) data to add to the image. Pass the Branch from the event payload used to trigger your action. | Required |
-| `CF_GITHUB_TOKEN` | The GitHub authentication token. See [Git tokens]({{site.baseurl}}/docs/reference/git-tokens/#git-personal-tokens). | Required |
-|`CF_JIRA_PROJECT_PREFIX` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The Jira project prefix that identifies the ticket number to use.| Required|
-| `CF_JIRA_MESSAGE` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The Jira issue IDs matching the string to associate with the image. | Required |
-| `CF_JIRA_FAIL_ON_NOT_FOUND` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The report image action when the `CF_JIRA_MESSAGE` is not found. When set to `true`, the report image action is failed. | Required |
-
-
-For how-to instructions, see [Connect a third-party CI platform/tool to Codefresh]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/#connect-a-third-party-ci-platformtool-to-codefresh).
-
-## Templatization examples for CF arguments
-
-Arguments such as `CF_IMAGE`, `CF_GIT_BRANCH`, and `CF_JIRA_MESSAGE` are populated dynamically when the GitHub Actions pipeline is triggered. You can templatize the values of these arguments to ensure that the required information is included in the reported image.
-
-See GitHub Actions [environment variables](https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables) you can use to templatize argument values.
-
-{::nomarkdown}
-
-{:/}
-
-### CF_IMAGE
-
-**Example: Report full repo and branch information**
-This example illustrates how to define the value for `CF_IMAGE` to report the repo owner, name, and short branch, with the Git hash.
-
- Value:
- {% raw %}`${{ github.repository }}/${{ github.ref_name }}/${{ github.sha }}`{% endraw %}
-
- where:
- * {% raw %}`${{ github.repository }}`{% endraw %} reports the owner of the repository and the name of the repository. For example, `nr-codefresh/codefresh-production`.
- * {% raw %}`${{ github.ref_name }}`{% endraw %} reports the short reference to the branch that triggered the workflow. For example, `auth-feature-branch`.
- * {% raw %}`${{ github.sha }}`{% endraw %} reports the complete commit SHA that triggered the workflow. For example, `fa53bfa91df14c4c9f46e628a65ee21dd574490a`.
-
-
-
-**Example: Report a specific image tag**
-This example illustrates how to define the value for `CF_IMAGE` when you know the specific image version you want to report.
-
-Value:
-{% raw %}`${{ github.repository }}:`{% endraw %}
-
-where:
-* {% raw %}`${{ github.repository }}`{% endraw %} reports the owner of the repository and the name of the repository. For example, `nr-codefresh/codefresh-production`.
-* `` reports the hard-coded tag `v1.0`.
-
-
-**Example: Report the latest Git tag available on repository**
-This example illustrates how to define the value for `CF_IMAGE` to report the latest Git tag on the repository.
-
-Value:
-{% raw %}`codefresh/${{ github.repository }}/latest`{% endraw %}
-
-where:
-* {% raw %}`codefresh`{% endraw %} is the hard-coded owner of the image.
-* {% raw %}`${{ github.repository }}`{% endraw %} reports the owner of the repository and the name of the repository. For example, `nr-codefresh/codefresh-production`.
-* {% raw %}`latest`{% endraw %} reports the latest Git tag available for the repository defined by {% raw %}`${{ github.repository }}`{% endraw %}. For example, `v1.0.4-14-g2414721`.
-
-{::nomarkdown}
-
-{:/}
-
-### CF_GIT_BRANCH
-
-**Example: Report fully-formed reference of the branch or tag**
-This example illustrates how to define the value for `CF_GIT_BRANCH` to report the fully-formed reference of the branch or tag that triggered the workflow run.
-For workflows triggered by push events, this is the branch or tag ref that was pushed.
-For workflows triggered by pull_requests, this is the pull request merge branch.
-
-Value:
-{% raw %}`${{ github.ref }}`{% endraw %}
-
-where:
-* {% raw %}`${{ github.ref }}`{% endraw %} is the reference to the branch or tag. For example, `refs/heads/auth-feature-branch` (branch), and `refs/pull/#843/merge` (pull request).
-
-**Example: Report short reference name of the branch or tag**
-This example illustrates how to define the value for `CF_GIT_BRANCH` to report only the name of the branch or tag that triggered the workflow run.
-
-
-Value:
-{% raw %}`${{ github.ref-name }}`{% endraw %}
-
-where:
-* {% raw %}`${{ github.ref-name }}`{% endraw %} is the name of the target branch or tag. For example, `auth-feature-branch`.
-
-{::nomarkdown}
-
-{:/}
-
-### CF_JIRA_MESSAGE
-The Jira message represents an existing Jira issue, and must be a literal string.
-
- Value:
- `CR-1246`
-
-## GitHub Action logs
-View and analyze logs for GitHub Action workflows through the Logs tab. When a GitHub Action is run, it is added to the Logs tab.
-You can:
-* Filter by status or by date range to view a subset of actions
-* Navigate to the build file in GitHub Actions, and view the Codefresh report image step
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/github-actions/github-actions-logs.png"
-url="/images/integrations/github-actions/github-actions-logs.png"
-alt="GitHub Action: Logs tab"
-caption="GitHub Action: Logs tab"
-max-width="50%"
-%}
-
-**Build YAML in GitHub Action**
-
-The Run column includes the link to the build files for the actions.
-
-Here are examples of the build file for the GitHub Action (top) and of the Codefresh report image step in the action (down).
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/github-actions/action-build-yaml.png"
-url="/images/integrations/github-actions/action-build-yaml.png"
-alt="Build file in GitHub Action"
-caption="Build file in GitHub Action"
-max-width="50%"
-%}
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/github-actions/actiosn-cf-report-image-step.png"
-url="/images/integrations/github-actions/actiosn-cf-report-image-step.png"
-alt="Codefresh report image step in GitHub Action build file"
-caption="Codefresh report image step in GitHub Action build file"
-max-width="50%"
-%}
-
-
-## Related articles
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/)
-[Container registry GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/)
-[Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/)
-
-
diff --git a/_docs/gitops-integrations/ci-integrations/jenkins.md b/_docs/gitops-integrations/ci-integrations/jenkins.md
deleted file mode 100644
index 842a47a17..000000000
--- a/_docs/gitops-integrations/ci-integrations/jenkins.md
+++ /dev/null
@@ -1,250 +0,0 @@
----
-title: "Jenkins GitOps integration"
-description: ""
-group: gitops-integrations
-sub_group: ci-integrations
-toc: true
----
-
- Use Hosted GitOps with any popular Continuous Integration (CI) solution, not just with Codefresh CI. Jenkins is one of the third-party CI platform/tools that you can connect to Codefresh for deployment with image enrichment and reporting.
-
- Connecting a Jenkins pipeline, adds the CI information to images which are displayed in the Images dashboard, as in the example below.
-
- {% include
- image.html
- lightbox="true"
- file="/images/integrations/images-dashboard.png"
- url="/images/integrations/images-dashboard.png"
- alt="Images dashboard with enriched image information"
- caption="Images dashboard with enriched image information"
- max-width="70%"
- %}
-
-
-For information on how to use the image reporting action in your Jenkins pipeline and how to configure the integration, see [CI Integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/).
-
-## Example of Jenkins pipeline with report image step
-
-{% highlight yaml %}
-{% raw %}
-
-pipeline {
-
- agent any
- stages {
- stage('Clone repository') {
- steps {
- checkout scm
- }
- }
- stage ('Build & Push ') {
- environment {
- CF_IMAGE= credentials('CF_IMAGE')
- }
- steps {
- sh 'echo "Building $CF_IMAGE"'
- script {
- def app
- app = docker.build("${env.CF_IMAGE}")
- // require credentials to be stored under DOCKERHUB
- docker.withRegistry('https://registry.hub.docker.com', 'DOCKERHUB') {
- app.push("latest")
- }
- }
- sh '''
- # test we have image in repository.
- docker pull $CF_IMAGE
- '''
- }
- }
-
- stage('report image') {
- environment {
- // Name of runtime to implement the enrichment
- CF_RUNTIME_NAME= 'codefresh-hosted'
-
- // Image path to enrich
- CF_IMAGE= credentials('CF_IMAGE')
-
- // Codefresh API key !! Committing a plain text token is a security risk. We highly recommend using encrypted secrets. !!
- // Documentation - https://www.jenkins.io/doc/book/using/using-credentials
- CF_API_KEY= credentials('CF_API_KEY')
-
- // Name of Container registry integration
- CF_CONTAINER_REGISTRY_INTEGRATION= 'docker'
-
- // Name of Jira integration
- CF_ISSUE_TRACKING_INTEGRATION= 'jira'
-
- // String starting with the issue ID to associate with image
- CF_JIRA_MESSAGE= 'CR-11027'
-
- // Jira project filter
- CF_JIRA_PROJECT_PREFIX= 'CR'
-
- // GitHub Access token !! Committing a plain text token is a security risk. We highly recommend using encrypted secrets. !!
- // Documentation - https://www.jenkins.io/doc/book/using/using-credentials
- CF_GITHUB_TOKEN= credentials('CF_GITHUB_TOKEN')
- }
- steps {
- sh '''
- export CF_CI_TYPE="jenkins"
- # add workflow details
- export CF_WORKFLOW_NAME="${CF_WORKFLOW_NAME:-$JOB_NAME}"
- export CF_WORKFLOW_URL="${CF_WORKFLOW_URL:-$BUILD_URL}"
- # add git branch
- export CF_GIT_PROVIDER="${CF_GIT_PROVIDER:-github}"
- WITHOUT_POSTFIX="${GIT_URL%.*}"
- export CF_GIT_REPO="${CF_GIT_REPO:-${WITHOUT_POSTFIX#*//*/}}"
- # slice branch name from repo/branch
- export CF_GIT_BRANCH="${CF_GIT_BRANCH:-${GIT_BRANCH#*/}}"
- env | cut -f 1 -d "=" | grep -E "^CF_" > cf_env
- docker run --env-file=cf_env "quay.io/codefresh/codefresh-report-image:latest"
- '''
- }
- }
-
- }
-}
-
-{% endraw %}
-{% endhighlight yaml %}
-
-## Jenkins-GitOps integration settings
-The table describes the arguments to connect Codefresh Classic to Codefresh.
-
-{: .table .table-bordered .table-hover}
-| Argument | Description | Required/Optional/Default |
-| ---------- | -------- | ------------------------- |
-| `CF_RUNTIME_NAME` | The runtime to use for the integration. If you have more than one runtime, select the runtime from the list. | Required |
-| `CF_PLATFORM_URL` | The root URL of the Codefresh application. The default value is `https://g.codefresh.io`. | Optional |
-| `CF_API_KEY` | The API key to authenticate the Codefresh Classic user to Codefresh. Generate the key for the integration. | Required |
-| `CF_CONTAINER_REGISTRY_INTEGRATION` | The name of the container registry integration created in Codefresh where the image is stored. To create a container registry integration if you don't have one, click **Create Container Registry Integration**, and then configure the settings. See [Container registry integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/). | Optional |
-| `CF_JIRA_INTEGRATION` | Deprecated from version 0.0.565. Replaced by `CF_ISSUE_TRACKING_INTEGRATION`. | _Deprecated_
-| `CF_ISSUE_TRACKING_INTEGRATION` | The name of the issue tracking integration created in Codefresh to use to enrich the image. Relevant only if Jira enrichment is required for the image. If you don't have a Jira integration, click **Create Atlassian Jira Integration** and configure settings. See [Jira integration]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/jira/). | Optional |
-| `CF_IMAGE` | The image to be enriched and reported in Codefresh. Pass the `[account-name]/[image-name]:[tag]` built in your CI. | Required |
-| `CF_GIT_BRANCH` | The Git branch with the commit and PR (pull request) data to add to the image. Pass the Branch from the event payload used to trigger your action. | Required |
-| `CF_GIT_REPO` | The Git repository with the configuration and code used to build the image. | Required |
-| `CF_GIT_PROVIDER` | The Git provider for the integration, and can be either `github`, `gitlab`, or `bitbucket`. {::nomarkdown}
Optional when you don't define other related Git provider arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Git provider arguments. For example, when you define CF_GITLAB_TOKEN, then you _must_ define all Git provider arguments, in this case, CF_GIT_PROVIDER as gitlab, and CF_GITLAB_HOST_URL.
{:/}| Optional |
-| `CF_GITLAB_TOKEN` | The token to authenticate the GitLab account. {::nomarkdown}
Optional when you don't define any GitLab-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the GitLab-specific arguments, such as CF_GIT_PROVIDER as gitlab, or CF_GITLAB_HOST_URL.
{:/} | Optional |
-| `CF_GITLAB_HOST_URL` | The URL address of your GitLab Cloud/Server instance. {::nomarkdown}
Optional when you don't define other related GitLab-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required if you define at least one of the GitLab-specific arguments, such as CF_GIT_PROVIDER as gitlab, or CF_GITLAB_TOKEN.
{:/} | Optional |
-| `CF_BITBUCKET_USERNAME` | The username for the Bitbucket or the Bitbucket Server (on-prem) account. {::nomarkdown}
Optional when you don't define other related Bitbucket-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Bitbucket-specific arguments, such as CF_GIT_PROVIDER as bitbucket, CF_BITBUCKET_PASSWORD or CF_BITBUCKET_HOST_URL.
{:/}| Optional |
-| `CF_BITBUCKET_PASSWORD` | The password for the Bitbucket or the Bitbucket Server (on-prem) account. {::nomarkdown}
Optional when you don't define other related Bitbucket-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Bitbucket-specific arguments, such as CF_GIT_PROVIDER as bitbucket, CF_BITBUCKET_USERNAME, or CF_BITBUCKET_HOST_URL.
{:/}| Optional |
-| `CF_BITBUCKET_HOST_URL` | Relevant for Bitbucket Server accounts only. The URL address of your Bitbucket Server instance. Example, `https://bitbucket-server:7990`. {::nomarkdown}
Optional when you don't define other related Bitbucket Server-specific arguments. When not defined, Codefresh retrieves the required information from the runtime selected for the integration.
Required when you define at least one of the Bitbucket Server-specific arguments, such as CF_GIT_PROVIDER as bitbucket, CF_BITBUCKET_USERNAME or CF_BITBUCKET_PASSWORD.
{:/} | Optional |
-|`CF_JIRA_PROJECT_PREFIX` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The Jira project prefix that identifies the ticket number to use.| Required|
-| `CF_JIRA_MESSAGE` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The Jira issue IDs matching the string to associate with the image. | Required |
-| `CF_JIRA_FAIL_ON_NOT_FOUND` | Relevant only when `CF_ISSUE_TRACKING_INTEGRATION` is defined. The report image action when the `CF_JIRA_MESSAGE` is not found. When set to `true`, the report image action is failed. | Required |
-
-
-For how-to instructions, see [Connect a third-party CI platform/tool to Codefresh]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/#connect-a-third-party-ci-platform-tool-to-codefresh).
-
-## Templatization examples for CF arguments
-
-Arguments such as `CF_IMAGE`, `CF_GIT_BRANCH`, and `CF_JIRA_MESSAGE` are populated dynamically when the Jenkins pipeline is triggered. You can templatize the values of these arguments in the pipeline to ensure that the required information is included in the reported image.
-
-Jenkins offers a Git plugin with [environment variables](https://plugins.jenkins.io/git/#plugin-content-environment-variables){:target="\_blank"} you can use to templatize argument values.
-
-{::nomarkdown}
-
-{:/}
-
-### CF_IMAGE
-**Example: Report repo, branch with Git hash**
-This example illustrates how to define the value for `CF_IMAGE` to report Git repo, branch, committer, and Git hash information.
-
- Value:
- {% raw %}`${env.GIT_COMMITTER_NAME}/${env.GIT_URL}/${env.GIT_BRANCH}/${env.GIT_REVISION}`{% endraw %}
-
- where:
- * {% raw %}`${env.GIT_COMMITTER_NAME}`{% endraw %} reports the name of the user who made the commit. For example, `nr-codefresh`.
- * {% raw %}`${env.GIT_URL}`{% endraw %} reports the name of the Git repository. For example, `codefresh-production`.
- * {% raw %}`${env.GIT_BRANCH}`{% endraw %} reports the name of the Git branch. For example, `pr-2345`, `new-auth-strategy`.
- * {% raw %}`${env.GIT_REVISION}`{% endraw %} reports the Git SHA1 commit ID pointing to the commit that was built. For example, `fa53bfa91df14c4c9f46e628a65ee21dd574490a`.
-
-
-**Example: Report a specific image tag**
-This example illustrates how to define the value for `CF_IMAGE` when you know the specific image version you want to report.
-
- Value:
- {% raw %}`${env.GIT_COMMITTER_NAME}/${env.GIT_URL}/`{% endraw %}
-
- where:
- * {% raw %}`${env.GIT_COMMITTER_NAME}`{% endraw %} and {% raw %}`${env.GIT_URL}`{% endraw %} report the names of the user hwo made the commit and the repository, respectively. For example, `nr-codefresh` and `codefresh-production`, respectively.
- * {% raw %}``{% endraw %} reports the hard-coded tag `v1.0`.
-
-
-**Example: Report the latest Git tag available on repository**
-This example illustrates how to define the value for `CF_IMAGE` value to report the latest Git tag on the repository.
-
- Value:
- {% raw %}`codefresh/${env.GIT_URL}/latest`{% endraw %}
-
- where:
- * {% raw %}`codefresh`{% endraw %} is the hard-coded re
- * {% raw %}`${env.GIT_URL}`{% endraw %} reports the name of the repository that triggered the integration.
- * {% raw %}`latest`{% endraw %} reports the latest Git tag available for the repository defined by {% raw %}`${env.GIT_URL}`{% endraw %}. For example, `v1.0.4-14-g2414721`.
-
-{::nomarkdown}
-
-{:/}
-
-### CF_GIT_BRANCH
-
-**Example: Report the fully-formed Git branch**
-This example illustrates how to define the value for `CF_GIT_BRANCH` value to report the fully-formed Git branch.
-
- Value:
- {% raw %}`${env.GIT_URL}/${env.GIT_BRANCH}`{% endraw %}
-
- where:
- * {% raw %}`${env.GIT_URL}`{% endraw %} is the name of the repository that triggered the pipeline. For example, `codefresh-production`.
- * {% raw %}`${env.GIT_BRANCH}`{% endraw %} is the fully-formed name of the Git branch. For example, `origin/auth-feature-branch`.
-
-
-**Example: Report the local Git branch**
-This example illustrates how to define the value for `CF_GIT_BRANCH` value to report only the branch in the repository that triggerred the pipeline.
-
- Value:
- {% raw %}`${env.GIT_URL}/${env.GIT_LOCAL_BRANCH}`{% endraw %}
-
- where:
- * {% raw %}`${env.GIT_URL}`{% endraw %} is the name of the repository that triggered the piepline.
- * {% raw %}`${env.GIT_LOCAL_BRANCH}`{% endraw %} is the name of the Git branch. For example, `auth-feature-branch`.
-
-{::nomarkdown}
-
-{:/}
-
-### CF_JIRA_MESSAGE
-The Jira message represents an existing Jira issue, and must be a literal string.
-
- Value:
- `CR-1246`
-
-## Jenkins integration logs
-View and analyze logs for Jenkins through the Logs tab. When a Jenkins pipeline is run, it is added to the Logs tab.
-You can:
-* Filter by status or by date range to view a subset of actions
-* Navigate to the build file in Jenkins, and view the Codefresh report image step.
-
-
-**Build in Jenkins**
-
-The Run column includes the link to the pipeline in Jenkins.
-
-Here is an example of the Jenkins log for the pipeline with the report image step.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/jenkins-integration-log.png"
-url="/images/integrations/jenkins/jenkins-integration-log.png"
-alt="Logs for Codefresh report image step in Jenkins build"
-caption="Logs for Codefresh report image step in Jenkins build"
-max-width="50%"
-%}
-
-## Related articles
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/)
-[Container registry GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/)
-[Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/)
diff --git a/_docs/gitops-integrations/container-registries.md b/_docs/gitops-integrations/container-registries.md
deleted file mode 100644
index 3e32c0bde..000000000
--- a/_docs/gitops-integrations/container-registries.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: "Container registry GitOps integrations"
-description: ""
-group: gitops-integrations
-toc: true
----
-
-Codefresh can integrate with popular container registries such as Docker Hub, JFrog Artifactory, and more.
-
-Adding a container registry integration in Codefresh allows you to reference the integration in third-party CI platforms/tools such as GitHub Actions and Codefresh Classic by the name of the registry integration, instead of explicit credentials. See [Image enrichment with integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/) and [CI integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/).
-
-You add a container registry integration in Codefresh by:
-* Defining the integration name
-* Selecting the runtime or runtimes it is shared with
-* Defining the arguments
-* Testing the connection
-* Committing the changes
-
-You can add more than one integration for the same registry. Once added, Codefresh displays the list of existing integrations with their sync status. You can edit or delete any registry integration.
-
-
-
-
-## Configure container registry integrations for GitOps in Codefresh
-Configure the settings for a GitOps container registry integration in Codefresh.
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**GitOps Integrations**](https://g.codefresh.io/2.0/account-settings/integrations){:target="\_blank"}.
-1. Filter by **Container Registry**, select the container registry, and click **Configure**.
-1. If you already have integrations, click **Add**.
-1. Define the arguments for the container registry:
- [Amazon ECR]({{site.baseurl}}/docs/gitops-integrations/container-registries/amazon-ecr/)
- [Docker Hub]({{site.baseurl}}/docs/gitops-integrations/container-registries/dockerhub/)
- [GitHub Container Registry]({{site.baseurl}}/docs/gitops-integrations/container-registries/github-cr/)
- [JFrog Artifactory]({{site.baseurl}}/docs/gitops-integrations/container-registries/jfrog/)
- [Quay]({{site.baseurl}}/docs/gitops-integrations/container-registries/quay/)
-1. To test the connection to the container registry before committing the changes, click **Test Connection**.
-1. To confirm, click **Commit**.
- It may take a few moments for the new integration to be synced to the cluster before it appears in the list.
-
-## Integration resource in shared configuration repo
-The integration resource for the container registry is created in the Git repository with the shared configuration, within `resources`.
-The exact location depends on whether the integration is shared with all or specific runtimes:
-* All runtimes: Created in `resources/all-runtimes-all-clusters/`
-* Selected runtimes: Created in `resources/runtimes//`
-
-## View container registry integrations for GitOps
-Selecting a container registry integration displays the existing integrations for that registry in Codefresh.
-The example below shows integrations for JFrog Artifactory.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jfrog/jfrog-int-list.png"
-url="/images/integrations/jfrog/jfrog-int-list.png"
-alt="JFrog integrations in Codefresh"
-caption="JFrog integrations in Codefresh"
-max-width="70%"
-%}
-
-Every container registry integration displays the following information:
-* Name of the integration
-* Runtime or runtimes it is shared with
-* Sync status
-
-### Edit/delete container registry integrations for GitOps
-If you have existing integrations, you can change the connection details, or delete an integration.
->Deleting an integration deletes the integration resource from the shared configuration Git repo, its secrets, the CI workflows that
-use it.
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**GitOps Integrations**](https://g.codefresh.io/2.0/account-settings/integrations){:target="\_blank"}.
-1. Filter by **Container Registry**, and select the specific container registry integration.
-1. In the row with the integration to edit or delete, click the three dots and select **Edit** or **Delete**.
-1. To edit, update the **Username** and **Password** fields, and click **Test Connection** to verify the account credentials.
-1. To delete, type **DELETE** in the text box as instructed.
-
- {% include
- image.html
- lightbox="true"
- file="/images/integrations/jfrog/delete-jfrog.png"
- url="/images/integrations/jfrog/delete-jfrog.png"
- alt="Delete container registry integration"
- caption="Delete container registry integration"
- max-width="50%"
- %}
-
-### Related articles
-[CI GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/)
-[Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/)
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[Images]({{site.baseurl}}/docs/deployment/images/)
-[Monitoring applications]({{site.baseurl}}/docs/deployment/applications-dashboard/)
-[Add Git sources to runtimes]({{site.baseurl}}/docs/runtime/git-sources/)
diff --git a/_docs/gitops-integrations/container-registries/amazon-ecr.md b/_docs/gitops-integrations/container-registries/amazon-ecr.md
deleted file mode 100644
index 37d4baba2..000000000
--- a/_docs/gitops-integrations/container-registries/amazon-ecr.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: "Amazon ECR GitOps integration"
-description: ""
-group: gitops-integrations
-sub_group: container-registries
-toc: true
----
-
-Codefresh has native support for interacting with Amazon ECR (Elastic Container Registry), to push, pull, and deploy images.
-For information on adding an Amazon ECR integration for GitOps in Codefresh, see [Container registry integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/).
-
->Amazon ECR integration is supported only for Hybrid GitOps.
-
-## Prerequisites
-Before you configure settings in Codefresh to integrate Amazon ECR:
-* [Create an IAM (Identity and Access Management) role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html){:target="\_blank"}
-
-Define the role in trusted relationships with `Effect: Allow` and `Action: sts:AssumeRole` on the EKS cluster.
-For example:
-```yaml
-{
- "Effect": "Allow",
- "Principal": {
- "AWS": "arn:aws:iam::XXXXX:role/eksctl-awscluster-ServiceRole-XXXXXX"
- },
- "Action": "sts:AssumeRole",
- "Condition": {}
- },
-```
-For detailed information, see [How Amazon Elastic Container Registry Works with IAM](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security_iam_service-with-iam.html){:target="\_blank"} and the [AWS security blog](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/){:target="\_blank"}.
-
-## Amazon ECR-GitOps integration settings in Codefresh
-The table describes the arguments required for GitOps integrations with Amazon ECR in Codefresh.
-
-{: .table .table-bordered .table-hover}
-| Setting | Description |
-| ---------- | -------- |
-| **Integration name** | A friendly name for the integration. This is the name you will reference in the third-party CI platform/tool. |
-| **All Runtimes/Selected Runtimes** | {::nomarkdown} The runtimes in the account with which to share the integration resource. The integration resource is created in the Git repository with the shared configuration, within resources. The exact location depends on whether the integration is shared with all or specific runtimes:
All runtimes: Created in resources/all-runtimes-all-clusters/
Selected runtimes: Created in resources/runtimes//
You can reference the Docker Hub integration in the CI tool. {:/}|
-| **IAM Role** | The name of the IAM role you defined with the specific permissions for authentication to the ECR. |
-| **Region** | The geographic region hosting the container registry. Define the region nearest to you.|
-| **Test connection** | Click to verify that you can connect to the specified instance before you commit changes. |
-
-
- {% include
- image.html
- lightbox="true"
- file="/images/integrations/aws/aws-int-settings.png"
- url="/images/integrations/aws/aws-int-settings.png"
- alt="Amazon ECR for image enrichment"
- caption="Amazon ECR for image enrichment"
- max-width="50%"
- %}
-
-For how-to instructions, see [Configure container registry integrations for GitOps in Codefresh]({{site.baseurl}}/docs/gitops-integrations/container-registries/#configure-container-registry-integrations-in-codefresh) and [Edit/delete container registry integrations for GitOps in Codefresh]({{site.baseurl}}/docs/gitops-integrations/container-registries/#editdelete-container-registry-integrations).
-
-
-## Related articles
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/)
-[CI GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/)
-[Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/)
\ No newline at end of file
diff --git a/_docs/gitops-integrations/container-registries/dockerhub.md b/_docs/gitops-integrations/container-registries/dockerhub.md
deleted file mode 100644
index e6ee7a7eb..000000000
--- a/_docs/gitops-integrations/container-registries/dockerhub.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: "Docker Hub GitOps integration"
-description: ""
-group: gitops-integrations
-sub_group: container-registries
-toc: true
----
-
-Codefresh has native support for interacting with Docker Hub registries, to push, pull, and deploy images.
-For information on adding a Docker Hub integration in Codefresh, see [Container registry integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/).
-
-## Prerequisites
-Before you configure settings in Codefresh to integrate Docker Hub registry, do the following:
-
-* [Create an account or sign in to your account at Docker Hub](https://hub.docker.com/signup){:target="\_blank"}
-* (Optional) [Enable 2FA (Two-Factor Authentication)](https://docs.docker.com/docker-hub/2fa/){:target="\_blank"}
-* [Create a personal account token](https://docs.docker.com/docker-hub/access-tokens/){:target="\_blank"}
-
-## Docker Hub-GitOps integration settings in Codefresh
-The table describes the arguments required for Docker Hub GitOps integration in Codefresh.
-
-{: .table .table-bordered .table-hover}
-| Setting | Description |
-| ---------- | -------- |
-| **Integration name** | A friendly name for the integration. This is the name you will reference in the third-party CI platform/tool. |
-| **All Runtimes/Selected Runtimes** | {::nomarkdown} The runtimes in the account with which to share the integration resource. The integration resource is created in the Git repository with the shared configuration, within resources. The exact location depends on whether the integration is shared with all or specific runtimes:
All runtimes: Created in resources/all-runtimes-all-clusters/
Selected runtimes: Created in resources/runtimes//
You can reference the Docker Hub integration in the CI tool. {:/}|
-| **Username** | The Docker Hub username.|
-| **Password** | If you enabled two-factor authentication, enter the personal access token for your Docker Hub account for Codefresh to push images. Personal access tokens are more secure and can be revoked when needed. Codefresh can then push your images. If two-factor authentication is not enabled, enter the password of your Docker Hub account (not recommended).|
-| **Test connection** | Click to verify that you can connect to the specified instance before you commit changes. |
-
-
- {% include
- image.html
- lightbox="true"
- file="/images/integrations/docker-registries/docker-hub.png"
- url="/images/integrations/docker-registries/docker-hub.png"
- alt="Docker Hub integration for image enrichment"
- caption="Docker Hub integration for image enrichment"
- max-width="50%"
- %}
-
-For how-to instructions, see [Configure container registry integrations for GitOps in Codefresh]({{site.baseurl}}/docs/gitops-integrations/container-registries/#configure-container-registry-integrations-in-codefresh) and [Edit/delete container registry integrations for GitOps in Codefresh]({{site.baseurl}}/docs/gitops-integrations/container-registries/#editdelete-container-registry-integrations).
-
-## Related articles
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/)
-[CI GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/)
-[Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/)
-
diff --git a/_docs/gitops-integrations/container-registries/github-cr.md b/_docs/gitops-integrations/container-registries/github-cr.md
deleted file mode 100644
index 48baa862c..000000000
--- a/_docs/gitops-integrations/container-registries/github-cr.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: "GitHub Container Registry (GHCR) GitOps integration"
-description: ""
-group: gitops-integrations
-sub_group: container-registries
-toc: true
----
-
-The GitHub Container registry allows you to host and manage your Docker container images in your personal or organisation account on GitHub. One of the benefits is that permissions can be defined for the Docker image independent from any repository. Thus, your repository could be private and your Docker image public.
-For information on adding a GitHub Container registry integration in Codefresh, see [Container registry GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/).
-
-## Prerequisites
-Before you configure settings in Codefresh to integrate GitHub container registry:
-* Make sure you have a personal access token with the correct scopes or create one.
- You need at least the following scopes:
- * `write:packages`
- * `read:packages`
- * `delete:packages`
- * `repo` (if your repository is private; do not select if it is public)
-
- For detailed information, see the [Authenticating to the Container registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry){:target="\_blank"}.
-
-
-### GitHub Container registry (GHCR)-GitOps integration settings in Codefresh
-
-{: .table .table-bordered .table-hover}
-| Setting | Description |
-| ---------- | -------- |
-| **Integration name** | A friendly name for the integration. This is the name you will reference in the third-party CI platform/tool. |
-| **All Runtimes/Selected Runtimes** | {::nomarkdown} The runtimes in the account with which to share the integration resource. The integration resource is created in the Git repository with the shared configuration, within resources. The exact location depends on whether the integration is shared with all or specific runtimes:
All runtimes: Created in resources/all-runtimes-all-clusters/
Selected runtimes: Created in resources/runtimes//
{:/}|
-| **Domain** | The GitHub registry domain and is set to `ghcr.io`.|
-| **Username** | Your GitHub username.|
-| **GitHub Token** | Your GitHub PAT (personal access token).|
-|**Test Connection** | Click to verify that you can connect to the specified instance before you commit changes. |
-
-
- {% include
- image.html
- lightbox="true"
- file="/images/integrations/githubcr/githubcr-int-settings.png"
- url="/images/integrations/githubcr/githubcr-int-settings.png"
- alt="GitHub Container registry integration"
- caption="GitHub Container registry integration"
- max-width="50%"
- %}
-
-For how-to instructions, see [Configure container registry integrations for GitOps in Codefresh]({{site.baseurl}}/docs/gitops-integrations/container-registries/#configure-container-registry-integrations-in-codefresh) and [Edit/delete container registry integrations for GitOps in Codefresh]({{site.baseurl}}/docs/gitops-integrations/container-registries/#editdelete-container-registry-integrations).
-
-## Related articles
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/)
-[CI GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/)
-[Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/)
diff --git a/_docs/gitops-integrations/container-registries/jfrog.md b/_docs/gitops-integrations/container-registries/jfrog.md
deleted file mode 100644
index 3aa108e7f..000000000
--- a/_docs/gitops-integrations/container-registries/jfrog.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: "JFrog Artifactory GitOps integration"
-description: ""
-group: gitops-integrations
-sub_group: container-registries
-toc: true
----
-
-Codefresh has native support for interacting with JFrog Artifactory.
-For information on adding a JFrog Artifactory integration in Codefresh, see [Container registry integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/).
-
-
-
-## JFrog Artifactory-GitOps integration settings in Codefresh
-
-{: .table .table-bordered .table-hover}
-| Setting | Description |
-| ---------- | -------- |
-| **Integration name** | A friendly name for the integration. This is the name you will reference in the third-party CI platform/tool. |
-| **All Runtimes/Selected Runtimes** | {::nomarkdown} The runtimes in the account with which to share the integration resource. The integration resource is created in the Git repository with the shared configuration, within resources. The exact location depends on whether the integration is shared with all or specific runtimes:
All runtimes: Created in resources/all-runtimes-all-clusters/
Selected runtimes: Created in resources/runtimes//
{:/}|
-| **Server Name** | The URL of the JFrog Artifactory server instance.|
-| **Username** | The JFrog Artifactory username.|
-| **Password** | The JFrog Artifactory password.|
-|**Test Connection** | Click to verify that you can connect to the specified instance before you commit changes. |
-
-
- {% include
- image.html
- lightbox="true"
- file="/images/integrations/jfrog/jfrog-int-settings.png"
- url="/images/integrations/jfrog/jfrog-int-settings.png"
- alt="JFrog Artifactory container registry integration"
- caption="JFrog Artifactory container registry integration"
- max-width="50%"
- %}
-
-For how-to instructions, see [Configure container registry integrations for GitOps in Codefresh]({{site.baseurl}}/docs/gitops-integrations/container-registries/#configure-container-registry-integrations-in-codefresh) and [Edit/delete container registry integrations for GitOps in Codefresh]({{site.baseurl}}/docs/gitops-integrations/container-registries/#editdelete-container-registry-integrations).
-
-## Related articles
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/)
-[CI GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/)
-[Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/)
diff --git a/_docs/gitops-integrations/container-registries/quay.md b/_docs/gitops-integrations/container-registries/quay.md
deleted file mode 100644
index 80d50d5f0..000000000
--- a/_docs/gitops-integrations/container-registries/quay.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: "Quay GitOps integration"
-description: ""
-group: gitops-integrations
-sub_group: container-registries
-toc: true
----
-
-Codefresh has native support for interacting with Quay registries, from where you can push, pull, and deploy images.
-Adding a Quay integration allows you to reference the integration in external CI tools such as GitHub Actions by the name of the integration account, instead of adding explicit credentials. See [Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/) and [CI integrations for GitOps]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/).
-
-
-## Prerequisites
-
-1. [Create a Redhat/Quay account at Quay](https://quay.io/){:target="\_blank"}.
-1. Optional. For Codefresh integration, [create a robot account](https://docs.quay.io/glossary/robot-accounts.html){:target="\_blank"}.
-
-## Quay-GitOps integration settings in Codefresh
-
-
-{: .table .table-bordered .table-hover}
-| Setting | Description |
-| ---------- | -------- |
-| **Integration name** | A friendly name for the integration. This is the name you will reference in the third-party CI platform/tool. |
-| **All Runtimes/Selected Runtimes** | {::nomarkdown} The runtimes in the account with which to share the integration resource. The integration resource is created in the Git repository with the shared configuration, within resources. The exact location depends on whether the integration is shared with all or specific runtimes:
All runtimes: Created in resources/all-runtimes-all-clusters/
Selected runtimes: Created in resources/runtimes//
You can reference the Docker Hub integration in the CI tool. {:/}|
-|**Domain**| Set to `quay.io`.|
-|**Username**| The Quay.io username.|
-|**Password**| The Quay.io encrypted password, or robot account if you created one.|
-
- {% include image.html
- lightbox="true"
- file="/images/integrations/quay/quay-int-settings.png"
- url="/images/integrations/quay/quay-int-settings.png"
- alt="Quay Docker Registry integration settings in Codefresh"
- caption="Quay Docker Registry integration settings in Codefresh"
- max-width="50%"
- %}
-
-For how-to instructions, see [Configure container registry integrations for GitOps in Codefresh]({{site.baseurl}}/docs/gitops-integrations/container-registries/#configure-container-registry-integrations-in-codefresh) and [Edit/delete container registry integrations for GitOps in Codefresh]({{site.baseurl}}/docs/gitops-integrations/container-registries/#editdelete-container-registry-integrations).
-
-Make sure you have the:
-* Quay domain username
-* Quay domain-encrypted password or that of the robot account
-
-
-## Related articles
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/)
-[CI GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/)
-[Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/)
diff --git a/_docs/gitops-integrations/image-enrichment-overview.md b/_docs/gitops-integrations/image-enrichment-overview.md
deleted file mode 100644
index a8d770742..000000000
--- a/_docs/gitops-integrations/image-enrichment-overview.md
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: "Image enrichment with integrations"
-description: ""
-group: integration
-toc: true
----
-
-
-
-
-Image enrichment is a crucial part of the CI/CD process, adding to the quality of deployments. Image enrichment exposes metadata such as feature requests, pull requests, and logs as part of the application's deployment, for visibility into all aspects of the deployment, making it easier to track actions and identify root cause of failures.
-
-If you have your CI tools and our Hosted GitOps, you can still enrich and report images to the Codefresh platform with no disruptions to existing CI processes and flows.
-
-Codefresh has new report images templates, optimized to work with third-party CI tools/plaforms for creating pipelines and workflows. Add integration accounts in Codefresh to tools such as Jira, Docker Hub and Quay, and then connect your CI tool with Codefresh for image enrichment and reporting.
-
-
-
-## CI integration flow for image enrichment
-
-Integrate Codefresh with your CI platform/tool account with a unique name per integration account.
-
-### 1. Add/configure integration
-
-Add/configure the integration account for the third-party tools. You can set up multiple integration accounts for the same tool.
-When you add an integration, Codefresh creates a Sealed Secret with the integration credentials, and a ConfigMap that references the secret.
-
-See:
-* Issue tracking
- [JIRA]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/jira/)
-
-* Container registries
- [Amazon ECR]({{site.baseurl}}/docs/gitops-integrations/container-registries/amazon-ecr/)
- [DockerHub]({{site.baseurl}}/docs/gitops-integrations/container-registries/dockerhub/)
- [JFrog Artifactory]({{site.baseurl}}/docs/gitops-integrations/container-registries/jfrog/)
- [Quay]({{site.baseurl}}/docs/gitops-integrations/container-registries/quay/)
-
-We are working on supporting integrations for more tools. Stay tuned for the release announcements.
-For image enrichment with a tool that is as yet unsupported, you must define the explicit credentials.
-
-### 2. Connect CI platform/tool to GitOps
-
-Connect a CI platform/tool to Codefresh GitOps with an API token for the runtime cluster, the integration accounts, and image information for enrichment and reporting.
-
-[Codefresh Classic]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/codefresh-classic/)
-[GitHub Actions]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/github-actions/)
-[Jenkins]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/jenkins/)
-
-
-### 3. Add the enrichment step for the CI platform/tool to your GitHub Actions pipeline
-
-Finally, add the enrichment step to your CI pipeline with the API token and integration information. Codefresh uses the integration name to get the corresponding Sealed Secret to securely access and retrieve the information for image enrichment.
-
- [GitHub Action Codefresh report image](https://github.com/marketplace/actions/codefresh-report-image){:target="\_blank"}.
- [Codefresh Classic Codefresh report image](https://codefresh.io/steps/step/codefresh-report-image){:target="\_blank"}.
-
-
-### 4. View enriched image information
-Once deployed, view enriched information in the Codefresh UI:
-* Go to [Images](https://g.codefresh.io/2.0/images){:target="\_blank"}
-* Go to the [Applications dashboard](https://g.codefresh.io/2.0/applications-dashboard){:target="\_blank"}
-
-
-View:
-
-* Commit information as well as committer
-* Links to build and deployment pipelines
-* PRs included in the deployment
-* Jira issues, status and details for each deployment
-
-
-## Related articles
-[Images]({{site.baseurl}}/docs/deployment/images/)
-[Applications dashboard]({{site.baseurl}}/docs/gitops-deployment/applications-dashboard/)
-
diff --git a/_docs/gitops-integrations/issue-tracking.md b/_docs/gitops-integrations/issue-tracking.md
deleted file mode 100644
index bd68a8d7a..000000000
--- a/_docs/gitops-integrations/issue-tracking.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: "GitOps issue tracking integrations"
-description: ""
-group: integrations
-toc: true
----
-
-One of the major highlights of the Codefresh platform is the ability to automatically correlate
-software features with their deployment (where and when). While the software version of a component is easily identifiable, what is likely more interesting and important is to know which features are included in a release.
-
-Adding an issue-tracking integration in Codefresh allows you to reference the integration in third-party CI platforms/tools such as GitHub Actions and Codefresh Classic by the name of the integration, instead of explicit credentials. See [Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/) and [CI integrations for GitOps]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/).
-
-You add an issue-tracking integration in Codefresh by:
-* Defining the integration name
-* Selecting the runtime or runtimes it is shared with
-* Defining the arguments
-* Committing the changes
-
-Once added, Codefresh displays the list of existing integrations with their sync status. You can edit or delete any integration.
-
-## Configure issue tracking integrations for GitOps in Codefresh
-Configure the settings for an issue tracking integration for GitOps in Codefresh.
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**GitOps Integrations**](https://g.codefresh.io/2.0/account-settings/integrations){:target="\_blank"}.
-1. Filter by **Issue Tracking**, select the issue tracking tool to integrate, and click **Configure**.
-1. Jira integrations only: For a new Jira integration, from the **Add Integration** dropdown, select the type of integration, as either **Deployment reporting** or **Image enrichment**.
-1. If you already have integrations, click **Add**.
-1. Define the arguments for the issue tracking tool:
- [Jira]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/jira/)
-1. To confirm, click **Commit**.
- It may take a few moments for the new integration to be synced to the cluster before it appears in the list.
-
-### Integration resource in shared configuration repo
-The resource for the issue-tracking integration is created in the Git repository with the shared configuration, within `resources`.
-The exact location depends on whether the integration is shared with all or specific runtimes:
-* All runtimes: Created in `resources/all-runtimes-all-clusters/`
-* Selected runtimes: Created in `resources/runtimes//`
-
-### View issue-tracking integrations for GitOps
-Selecting an issue tracking tool displays the existing integrations in Codefresh.
-
-
-Every issue tracking integration displays the following information:
-* Name of the integration
-* Runtime or runtimes it is shared with
-* Sync status
-
-### Edit/delete issue-tracking integrations for GitOps in Codefresh
-If you have existing integrations, you can change the credentials, or delete an integration.
->Deleting an integration deletes the integration resource from the shared configuration Git repo, its secrets, the CI workflows that
-use it.
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**GitOps Integrations**](https://g.codefresh.io/2.0/account-settings/integrations){:target="\_blank"}.
-1. Filter by **Issue Tracking**, and select the specific integration.
-1. In the row with the integration to edit or delete, click the three dots and select **Edit** or **Delete**.
-1. To edit, update the **Username** and **Password** fields, and click **Test Connection** to verify the account credentials.
-1. To delete, type **DELETE** in the text box as instructed.
-
- {% include
- image.html
- lightbox="true"
- file="/images/integrations/jira/jira-delete.png"
- url="/images/integrations/jira/jira-delete.png"
- alt="Delete issue-tracking integration"
- caption="Delete issue-tracking integration"
- max-width="50%"
- %}
-
-### Related articles
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[CI GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/)
-[Container registry GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/)
-
diff --git a/_docs/gitops-integrations/issue-tracking/jira.md b/_docs/gitops-integrations/issue-tracking/jira.md
deleted file mode 100644
index 08475c334..000000000
--- a/_docs/gitops-integrations/issue-tracking/jira.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-title: "Jira"
-description: " "
-group: gitops-integrations
-sub_group: issue-tracking
-toc: true
----
-
-
-Codefresh has native integration for Atlassian Jira, to enrich images with information from Jira. Codefresh can monitor a feature all the way from the ticket creation phase, up to when it is implemented and deployed to an environment.
-
-For information on adding a Jira integration in Codefresh, see [Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/).
-
-
-## Prerequisites
-
-1. Get your Jira instance credentials by following the [Atlassian documentation](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/){:target="\_blank"}.
-1. Note down the following as you will need them to complete the integration with Codefresh:
- * Jira URL
- * Jira username/email to be used for the integration
- * Jira password/token created for this user
-
-
-## Jira-GitOps integration settings in Codefresh
-
-
-{: .table .table-bordered .table-hover}
-| Setting | Description |
-| ---------- | -------- |
-| **Integration name** | A friendly name for the integration. This is the name you will reference in the third-party CI platform/tool. |
-| **All Runtimes/Selected Runtimes** | {::nomarkdown} The runtimes in the account with which to share the integration resource. The integration resource is created in the Git repository with the shared configuration, within resources. The exact location depends on whether the integration is shared with all or specific runtimes:
All runtimes: Created in resources/all-runtimes-all-clusters/
Selected runtimes: Created in resources/runtimes//
You can reference the Docker Hub integration in the CI tool. {:/}|
-|**Jira Host**| The URL of your Jira instance. For example, `https://.atlassian.net`|
-|**API Token**| The Jira password/token you noted down when you created the Jira instance.|
-|**API Email**| The email for the API token.|
-
-
- {% include
- image.html
- lightbox="true"
- file="/images/integrations/jira/jira-int-settings.png"
- url="/images/integrations/jira/jira-int-settings.png"
- alt="JIRA integration in Codefresh"
- caption="JIRA integration in Codefresh"
- max-width="60%"
-%}
-
-For information on adding a Jira integration in Codefresh, see [Issue-tracking GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/issue-tracking/).
-
-## Using Jira integration in pipelines
-For pipelines based on GitHub Actions, configure the Jira integration in Codefresh, and then connect your GitHub Action to Codefresh, referencing the Jira integration by name.
-Codefresh uses the Secret Key stored in the runtime cluster to securely access Jira and retrieve the information.
-
-## Related articles
-[Shared configuration repo]({{site.baseurl}}/docs/reference/shared-configuration/)
-[Image enrichment with GitOps integrations]({{site.baseurl}}/docs/gitops-integrations/image-enrichment-overview/)
-[CI integrations]({{site.baseurl}}/docs/gitops-integrations/ci-integrations/)
-[Container registry integrations]({{site.baseurl}}/docs/gitops-integrations/container-registries/)
diff --git a/_docs/integrations/amazon-web-services.md b/_docs/integrations/amazon-web-services.md
deleted file mode 100644
index 28494a1f2..000000000
--- a/_docs/integrations/amazon-web-services.md
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: "Amazon Web Services (AWS) pipeline integration"
-description: "How to use Codefresh with AWS"
-group: integrations
-toc: true
----
-
-Codefresh has native support for AWS in the following areas:
-
-- [Connecting to Amazon registries]({{site.baseurl}}/docs/integrations/docker-registries/amazon-ec2-container-registry/)
-- [Deploying to Amazon EKS]({{site.baseurl}}/docs/integrations/kubernetes/#adding-eks-cluster)
-- [Using Amazon S3 for Test reports]({{site.baseurl}}/docs/testing/test-reports/#connecting-an-s3-bucket)
-- [Using Amazon S3 for Helm charts]({{site.baseurl}}/docs/deployments/helm/add-helm-repository/#private-repository---s3)
-
-
-## Using Amazon ECR
-
-Amazon Container Registries are fully compliant with the Docker registry API that Codefresh follows. Follow the instruction under [Amazon EC2 Container Registry]({{site.baseurl}}/docs/integrations/docker-registries/amazon-ec2-container-registry/) to connect.
-
-Once the registry is added, you can use the [standard push step]({{site.baseurl}}/docs/pipelines/steps/push/) in your pipelines. See [working with Docker registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/) for more information.
-
-## Deploying to Amazon Kubernetes
-
-Codefresh has native support for connecting an EKS cluster in the [cluster configuration screen]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster).
-
-{%
- include image.html
- lightbox="true"
-file="/images/integrations/aws/aws-integration.png"
-url="/images/integrations/aws/aws-integration.png"
-alt="Connecting an Amazon cluster"
-caption="Connecting a Amazon cluster"
-max-width="40%"
-%}
-
-Once the cluster is connected, you can use any of the [available deployment options]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/) for Kubernetes clusters. You also get access to all other Kubernetes dashboards such as the [cluster dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/) and the [environment dashboard]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/).
-
-## Storing test reports in Amazon S3 bucket
-
-Codefresh has native support for test reports. You can store the reports on Amazon S3.
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/aws/amazon-storage.png"
-url="/images/integrations/aws/amazon-storage.png"
-alt="Amazon cloud storage"
-caption="Amazon cloud storage"
-max-width="60%"
-%}
-
-See the full documentation for [test reports]({{site.baseurl}}/docs/testing/test-reports/).
-
-## Using Amazon S3 for storing Helm charts
-
-You can connect an Amazon S3 bucket as a Helm repository in the [integrations screen]({{site.baseurl}}/docs/deployments/helm/add-helm-repository/).
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/aws/amazon-s3-helm-repo.png"
-url="/images/integrations/aws/amazon-s3-helm-repo.png"
-alt="Using Amazon for Helm charts"
-caption="Using Amazon for Helm charts"
-max-width="80%"
-%}
-
-Once you connect your Helm repository you can use it any [Codefresh pipeline with the Helm step]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/).
-
-
-## Traditional Amazon deployments
-
-For any other Amazon deployment you can use the [Amazon CLI from a Docker image](https://hub.docker.com/r/amazon/aws-cli){:target="\_blank"} in a [freestyle step]({{site.baseurl}}/docs/pipelines/steps/freestyle/)
-
-`YAML`
-{% highlight yaml %}
-{% raw %}
- create_a_vm:
- title: "Creating a Virtual machine"
- type: "freestyle"
- arguments:
- image: "amazon/aws-cli"
- commands:
- - aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f829e
-{% endraw %}
-{% endhighlight %}
-
-
-## Related articles
-[Add your cluster]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster)
-[Manage your Kubernetes cluster]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
-[Cloning Git repositories]({{site.baseurl}}/docs/example-catalog/ci-examples/git-checkout/)
-
diff --git a/_docs/integrations/argocd.md b/_docs/integrations/argocd.md
deleted file mode 100644
index 2889c926e..000000000
--- a/_docs/integrations/argocd.md
+++ /dev/null
@@ -1,177 +0,0 @@
----
-title: "ArgoCD integration for CI pipelines"
-description: "Connect Codefresh to your ArgoCD endpoint"
-group: integrations
-toc: true
----
-
-
-Before you can use Codefresh and ArgoCD together, you need to connect your ArgoCD installation in your Codefresh account. This way Codefresh will send and receive information from your ArgoCD instance.
-
-{% include image.html
- lightbox="true"
- file="/images/guides/gitops/gitops-environment.png"
- url="/images/guides/gitops/gitops-environment.png"
- alt="GitOps deployments with Codefresh"
- caption="GitOps deployments with Codefresh"
- max-width="100%"
- %}
-
->Important:
- Codefresh has a -->
-
-## Set up ArgoCD integration in Codefresh
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **GitOps** and then click **Configure**.
-1. From the **Add GitOps Provider** dropdown, select **ArgoCD**.
-1. Follow the on-screen instructions to complete the integration.
-
-### Codefresh CLI
-To connect to an existing ArgoCD installation:
-1. Install the [Codefresh CLI](https://codefresh-io.github.io/cli/){:target="\_blank"} by following the [documentation](https://codefresh-io.github.io/cli/installation/){:target="\_blank"}.
- The Codefresh CLI installs an agent in your cluster, in the same namespace that ArgoCD runs in. The agent handles all communication between ArgoCD and Codefresh.
-1. Authenticate the CLI with your Codefresh account [by creating an API token]({{site.baseurl}}/docs/integrations/codefresh-api/#authentication-instructions). Make sure that you choose all scopes if this is the first time you are authenticating your CLI with Codefresh.
-1. From a workstation that has a `kubeconfig` context pointing to the ArgoCD cluster, run the installation command:
-
-```
-codefresh install gitops argocd-agent
-```
-
->You can also run it from your cloud console if you install codefresh CLI there.
-
-1. Answer the questions asked by the wizard. These include:
-
- * The name of the integration (user-defined)
- * Your ArgoCD URL, username and password (you can also use [an auth token](https://argoproj.github.io/argo-cd/operator-manual/user-management/){:target="\_blank"} instead of password)
- * The context and namespace in the cluster where ArgoCD is installed
- * If you want to automatically import your ArgoCD applications to Codefresh
-
-```
-codefresh install gitops argocd-agent
-This installer will guide you through the Codefresh ArgoCD installation agent to integrate your ArgoCD with Codefresh
-? Select Kubernetes context mydemoAkscluster
-? Codefresh integration name argocd
-? Choose an authentication method Username and password
-? Argo username admin
-? Argo password *****************************
-
-Testing requirements
---------------------
-√ checking argocd credentials...
-√ checking argocd projects accessibility...
-√ checking argocd applications accessibility...
---------------------
-
-? Select Git/GithubApp context (Please create a dedicated context for the agent to avoid hitting the Github rate limits or use github app integration) github-1
-? Select argocd sync behavior please Import all existing Argo applications to Codefresh
-? Enable auto-sync of applications, this will import all existing applications and update Codefresh in the future Yes
-
-Installation options summary:
- 1. Kubernetes Context:
- 2. Kubernetes Namespace: argocd
- 3. Git Integration: github-1
- 4. Codefresh Host: https://g.codefresh.io
- 5. ArgoCD Host: https://52.154.209.119
- 6. ArgoCD Username: admin
- 7. ArgoCD Password: ******
- 8. Enable auto-sync of applications: Yes
- 9. HTTP proxy: none
- 10. HTTPS proxy: none
-
-Argo agent installation finished successfully to namespace "argocd"
-Gitops view: "https://g.codefresh.io/gitops"
-Documentation: "https://codefresh.io/docs/docs/ci-cd-guides/gitops-deployments/"
-```
-
-Once the installation is complete, you should see the agent's health status:
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/argocd/argocd-agent-health.png"
- url="/images/integrations/argocd/argocd-agent-health.png"
- alt="ArgoCD agent health"
- caption="ArgoCD agent health"
- max-width="100%"
- %}
-
-
-This concludes the basic integration. You can repeat the procedure for different ArgoCD installations by choosing a different
-name for the integration.
-
-## Creating ArgoCD applications
-
-In addition to the existing [Kubernetes/Helm environments]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/), you can now create ArgoCD applications via the Codefresh UI.
-
-Visit your GitOps dashboard by clicking on *GitOps* from the left sidebar. The click the *Add Application* button at the top right.
-
-If you already have an application set up in ArgoCD, you can enter its project and name and Codefresh will automatically retrieve all information from the ArgoCD instance.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/argocd/argocd-existing-app.png"
- url="/images/integrations/argocd/argocd-existing-app.png"
- alt="Using an existing ArgoCD application in a Codefresh environment"
- caption="Using an existing ArgoCD application in a Codefresh environment"
- max-width="60%"
- %}
-
-You can also create a brand-new application with the *provision* option. In this dialog you can enter the exact same details that [ArgoCD asks when creating a new application](https://argoproj.github.io/argo-cd/getting_started/#6-create-an-application-from-a-git-repository).
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/argocd/argocd-provision-app.png"
- url="/images/integrations/argocd/argocd-provision-app.png"
- alt="Creating a new ArgoCD application in a Codefresh environment"
- caption="Creating a new ArgoCD application in a Codefresh environment"
- max-width="60%"
- %}
-
-The options are:
-
-* Name - User defined name of the Codefresh environment dashboard
-* Project - A way to [group/secure applications](https://argoproj.github.io/argo-cd/user-guide/projects/). Choose default if you have only one project in ArgoCD.
-* Application - name of application
-* Manual/automatic sync - If automatic when a git commit happens, a deployment will automatically take place.
-* Use schema - Kubernetes manifests will be checked for correctness before deployed to the cluster
-* source repository - Git repository that holds your Kubernetes manifests
-* revision - Revision to be checked out when a deployment happens
-* path - folder inside the Git repository that should be searched for manifests (if your Git repo has multiple applications). Use `./` if all your manifests are in the root folder.
-* cluster - Kubernetes cluster when deployment will take place
-* namespace - Kubernetes namespace where the application will be deployed to
-* directory recurse - whether to check all folders in the Git repository for manifests in a recursive way.
-
-For a sample application you can use the [https://github.com/codefresh-contrib/gitops-kubernetes-configuration](https://github.com/codefresh-contrib/gitops-kubernetes-configuration) repository (or even fork it on your own GitHub account first).
-
-Codefresh will communicate with ArgoCD via its API and pass all the relevant details.
-
-The end result is a new entry for your ArgoCD application will now appear in the dashboard along with the sync status.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/argocd/argocd-environment.png"
- url="/images/integrations/argocd/argocd-environment.png"
- alt="ArgoCD environment status"
- caption="ArgoCD environment status"
- max-width="80%"
- %}
-
-To learn about the full GitOps support in Codefresh, see our [GitOps deployment guide]({{site.baseurl}}/docs/ci-cd-guides/gitops-deployments/).
-
-## Uninstall the gitops agent
-
-You can uninstall the gitops agent with :
-
-```
-codefresh uninstall gitops argocd-agent
-```
-
-Note this will only uninstall the Codefresh agent. Your Argo CD installation
-will remain unaffected.
-
-## Related articles
-[Environment Dashboard]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/)
-[Kubernetes integration]({{site.baseurl}}/docs/integrations/kubernetes/)
-
-
-
diff --git a/_docs/integrations/codecov-integration.md b/_docs/integrations/codecov-integration.md
deleted file mode 100644
index 4f7b2f303..000000000
--- a/_docs/integrations/codecov-integration.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-title: "Codecov integration for CI pipelines"
-description: "Create Code Coverage Reports with Codefresh and Codecov"
-group: integrations
-toc: true
----
-
-Codefresh has native integration for [Codecov analysis](https://about.codecov.io/){:target="\_blank"}.
-You need to first set up a new project in Codecov.
-
-## Set up a new project in Codecov
-
-* Sign up for a free account with Codecov.
-* Add a new project.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/codecov-integration/codecovtoken.png"
-url="/images/integrations/codecov-integration/codecovtoken.png"
-max-width="70%"
-caption="Getting a Token from Codecov"
-alt="Getting a Token from Codecov"
-%}
-
-* Note down the Token as you will need it to set up the Codecov integration in Codefresh.
-
-## Set up Codecov integration in Codefresh
-
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Codecov** and then click **Configure**.
-1. Click **Add Codecov**.
-1. Define the following:
- * **Integration Name**: Enter a name for the integration which is used to reference it in `codefresh.yaml`.
- * **Token**: Paste the token that you copied when you created the new Codecov project for this integration.
- * **Url**: The base URL for this integration. Do not add the trailing slash to the URL definition. For more information, see the [official Codecov documentation](https://docs.codecov.com/docs/configuration#codecov-url){:target="\_blank"}.
-
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/codecov-integration/codecovintegration.png"
-url="/images/integrations/codecov-integration/codecovintegration.png"
-max-width="70%"
-caption="Enter Token"
-alt="Enter Token"
-%}
-
-
-
-## Using Codecov in a CI pipeline
-
-With the integration in place, you can reference it by name in any Codefresh pipeline by using the [Codecov reporter step](https://codefresh.io/steps/step/codecov-reporter){:target="\_blank"}.
-
-`codefresh.yml`
-```yaml
- codecov-report:
- stage: "prepare"
- title: Codecov report
- type: codecov-reporter
- arguments:
- codecov_integration: my-codecov-integration
-```
-
-For more details see our [Codecov example](https://codefresh.io/docs/docs/example-catalog/ci-examples/codecov-testing/).
-
-## Related articles
-[Integration Tests]({{site.baseurl}}/docs/testing/integration-tests/)
-[Service Containers]({{site.baseurl}}/docs/pipelines/service-containers/)
-[Coveralls Example]({{site.baseurl}}/docs/example-catalog/ci-examples/coveralls-testing/)
-[Codacy Example]({{site.baseurl}}/docs/example-catalog/ci-examples/codacy-testing/)
-[Test Reports]({{site.baseurl}}/docs/testing/test-reports/)
\ No newline at end of file
diff --git a/_docs/integrations/codefresh-api.md b/_docs/integrations/codefresh-api.md
deleted file mode 100644
index 1ec768888..000000000
--- a/_docs/integrations/codefresh-api.md
+++ /dev/null
@@ -1,527 +0,0 @@
----
-title: "Codefresh API pipeline integration"
-description: "Integrate Codefresh CI pipelines with other systems"
-group: integrations
-redirect_from:
- - /docs/codefresh-api/
-toc: true
-old_url: /docs/codefresh-api
----
-
-Codefresh offers a comprehensive API that you can use to integrate with any other application or solution you already have.
-
-The full details of the API are documented at [https://g.codefresh.io/api/](https://g.codefresh.io/api/){:target="\_blank"}.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/api/overview.png"
-url="/images/integrations/api/overview.png"
-alt="Using the Codefresh API"
-max-width="70%"
-%}
-
-You can use the API in various ways:
-
-* From your local workstation, with any tool that speaks HTTP (such as [postman](https://github.com/postmanlabs){:target="\_blank"}, [httpie](https://httpie.org/){:target="\_blank"}, [curl](https://curl.haxx.se/){:target="\_blank"} etc.).
-* From another HTTP-enabled tool such as Jenkins. For example, you can trigger [Codefresh pipelines from Jenkins jobs]({{site.baseurl}}/docs/integrations/jenkins-integration/#calling-codefresh-pipelines-from-jenkins-jobs).
-* Using the [Codefresh command line interface](https://codefresh-io.github.io/cli/){:target="\_blank"} which itself uses the API.
-* Calling it programmatically from any other system. You can use your favorite programming language to make HTTP calls to Codefresh.
-
-
-The Codefresh API is updated when new features are added in the Codefresh platform so you can expect any new functionality
-to appear in the API as well.
-
-## Ways to use the Codefresh API
-
-There are several ways to use the API. Some of the most popular ones are:
-
-
-1. Triggering builds from another system. You can start a Codefresh pipeline from any other internal system that you already have in your organization.
-1. Getting the status of builds in another system.
-1. Creating pipelines externally. You don't have to use the Codefresh UI to create pipelines. You can create them programmatically using your favorite template mechanism. You can reuse pipelines using your own custom implementation if you have special needs in your organization.
-
-You can browse the current API at [https://g.codefresh.io/api/](https://g.codefresh.io/api/){:target="\_blank"}.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/api/codefresh-api-example.png"
-url="/images/integrations/api/codefresh-api-example.png"
-alt="Browsing the Codefresh API"
-caption="Browsing the Codefresh API"
-max-width="70%"
-%}
-
-For each call you will also see an example with `curl`.
-
-## Authentication instructions
-
-
-1. Log in to your Codefresh account, and from your avatar dropdown, select [**User Settings**](https://g.codefresh.io/user/settings){:target="\_blank"}.
-1. Scroll down to **API Keys**.
-1. To create a new API key, click **Generate**, and do the following:
- * **Key Name**: Enter the name of the key, preferable one that will help you remember its purpose. The token is tied to your Codefresh account and should be considered sensitive information.
- * **Scopes**: Select the required [access scopes](#access-scopes).
-1. Copy the token to your clipboard.
-1. Click **Create**.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/api/generate-token.png"
-url="/images/integrations/api/generate-token.png"
-alt="Generating a key for the API"
-caption="Generating a key for the API"
-max-width="70%"
-%}
-
-
-From the same screen you can also revoke keys if you don't need them anymore.
-
-### Access scopes
-
-The following resources can be targeted with the API:
-
-* *Agent* - Used for [Codefresh Runner installation]({{site.baseurl}}/docs/reference/behind-the-firewall/)
-* *Audit* - Read [Audit logs]({{site.baseurl}}/docs/administration/audit-logs/)
-* *Build* - Get/change [build status]({{site.baseurl}}/docs/pipelines/monitoring-pipelines/)
-* *Cluster* - [Access control]({{site.baseurl}}/docs/administration/access-control/) for [Kubernetes clusters]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
-* *Environments-v2* - Read/Write [Environment Dashboard]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/) information
-* *GitHub Actions* - Run [GitHub Actions inside Codefresh pipelines]({{site.baseurl}}/docs/integrations/github-actions/)
-* *Pipeline* - [Access control]({{site.baseurl}}/docs/administration/access-control/) for [pipelines]({{site.baseurl}}/docs/pipelines/introduction-to-codefresh-pipelines/)
-* *Repos* - Refers to [Git repositories]({{site.baseurl}}/docs/integrations/git-providers/)
-* *Step Type* - Refers to [custom pipeline steps]({{site.baseurl}}/docs/pipelines/steps/#creating-a-typed-codefresh-plugin)
-
-
-The scopes available for each resource differ according to the type of resource.
-
-
-## Using the API Key with the Codefresh CLI
-
-Once you have the key, use it in the Codefresh CLI:
-
-{% highlight bash %}
-codefresh auth create-context --api-key
-{% endhighlight %}
-
-Now the Codefresh CLI is fully authenticated. The key is stored in `~/.cfconfig` so you only need to run this command once. The CLI
-can also work with [multiple authentication contexts](https://codefresh-io.github.io/cli/authentication/){:target="\_blank"} so you can manage multiple Codefresh accounts at the same time.
-
-## Example: Triggering pipelines
-
-You can trigger any pipeline in Codefresh and even pass extra environment variables (even if they are not
-declared in the UI).
-
-Triggering a pipeline via the Codefresh CLI:
-
-{% highlight bash %}
-codefresh run kostis-codefresh/nestjs-example/ci-build -b master -t nestjs-example-trigger-name
-{% endhighlight %}
-
-You can pass extra environment variables as well:
-{% highlight bash %}
-codefresh run kostis-codefresh/nestjs-example/ci-build -b master -t nestjs-example-trigger-name -v sample-var1=sample1 -v SAMPLE_VAR2=SAMPLE2
-{% endhighlight %}
-
-For the API, you can trigger a pipeline by finding its `serviceId` from the UI
-
-{% highlight bash %}
-curl 'https://g.codefresh.io/api/builds/5b1a78d1bdbf074c8a9b3458' --compressed -H 'content-type:application/json; charset=utf-8' -H 'Authorization: ' --data-binary '{"serviceId":"5b1a78d1bdbf074c8a9b3458","type":"build","repoOwner":"kostis-codefresh","branch":"master","repoName":"nestjs-example"}'
-{% endhighlight %}
-
-You can also pass extra environment variables using an array
-
-{% highlight bash %}
-curl 'https://g.codefresh.io/api/builds/5b1a78d1bdbf074c8a9b3458' --compressed -H 'content-type:application/json; charset=utf-8' -H 'Authorization: ' --data-binary '{"serviceId":"5b1a78d1bdbf074c8a9b3458","type":"build","repoOwner":"kostis-codefresh","branch":"master","repoName":"nestjs-example","variables":{"sample-var1":"sample1","SAMPLE_VAR2":"SAMPLE2"}}'
-{% endhighlight %}
-
-## Example: Getting status from builds
-
-You can get the status of a build from the CLI by using the build ID:
-
-{% highlight bash %}
-codefresh get builds 5b4f927dc70d080001536fe3
-{% endhighlight %}
-
-Same thing with the API:
-
-{% highlight bash %}
-curl -X GET --header "Accept: application/json" --header "Authorization: " "https://g.codefresh.io/api/builds/5b4f927dc70d080001536fe3"
-{% endhighlight %}
-
-## Example: Creating Codefresh pipelines externally
-
-Codefresh has a great UI for creating pipelines for each of your projects. If you wish, you can also create pipelines
-programmatically in an external manner. This allows you to use your own templating solution for re-using pipelines
-and creating them from an external system.
-
-First you need a YAML file that defines the pipeline. This is a pipeline [specification](#full-pipeline-specification).
-
->It is also very easy to create a a dummy pipeline in the Codefresh UI and then get its specification by running `codefresh get pipeline my-project/my-pipeline -o yaml > my-pipeline-spec.yml`
-
-Here is an example
-
-`Pipeline Spec`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-kind: pipeline
-metadata:
- name: my-project/my-basic-pipeline
- description: my description
- labels:
- key1: value1
- key2: value2
- deprecate:
- applicationPort: '8080'
- project: my-project
-spec:
- triggers:
- - type: git
- provider: github
- name: my-trigger
- repo: kostis-codefresh/nestjs-example
- events:
- - push
- branchRegex: /./
- contexts: []
- variables:
- - key: PORT
- value: 5000
- encrypted: false
- - key: SECRET
- value: "secret-value"
- encrypted: true
- steps:
- main_clone:
- title: Cloning main repository...
- type: git-clone
- repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}'
- revision: '${{CF_REVISION}}'
- git: github-1
- PrintFileList:
- title: Listing files
- image: 'alpine:latest'
- commands:
- - ls -l
- stages: []
-{% endraw %}
-{% endhighlight %}
-
-Save this spec into a file with an arbitrary name like `my-pipeline-spec.yml`. First create the new project (if it doesn't exist already):
-
-{% highlight bash %}
-codefresh create project my-project
-{% endhighlight %}
-
-Then you can create the pipeline with the cli
-
-{% highlight bash %}
-codefresh create pipeline -f my-pipeline-spec.yml
-{% endhighlight %}
-
-And your pipeline will be available in the GUI
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/api/creation-of-pipeline.png"
-url="/images/integrations/api/creation-of-pipeline.png"
-alt="Created Pipeline"
-caption="New pipeline created"
-max-width="70%"
-%}
-
-Notice that you must prefix the name of the pipeline with your username and repository so that it becomes
-visible in the GUI under the correct project.
-
-## Full pipeline specification
-
-If you don't want to create a pipeline from an existing one, you can also create your own YAML from scratch.
-The following sections contain an explanation of the fields.
-> Codefresh automatically generates additional fields, usually fields with dates and internal ID numbers. While you cannot edit these fields, you can view them by exporting the pipeline.
-
-### Top level fields
-
-{: .table .table-bordered .table-hover}
-| Field name | Parent field | Type | Value |
-| -------------- | ---------------------------- |-------------------------| -------------------------|
-| `version` | | string | Always `'1.0'` |
-| `kind` | | string | Always `pipeline` |
-| `metadata` | | object | Holds various meta-information |
-| `spec` | | object | Holds the pipeline definition and other related information |
-
-
-### Metadata fields
-
-{: .table .table-bordered .table-hover}
-| Field name | Parent field | Type | Value |
-| -------------- | ---------------------------- |-------------------------| -------------------------|
-| `name` | `metadata` | string | the full pipeline name should be formatted `project_name/pipeline_name` |
-| `project` | `metadata` | string | the project that contains this pipeline |
-| `originalYamlString` | `metadata` | string | the full contents of the pipeline editor. Only kept for archival purposes |
-| `labels` | `metadata` | object | Holds the `tags` array |
-| `tags` | `labels` | array | A list of [access control tags]({{site.baseurl}}/docs/administration/access-control/#marking-pipelines-with-policy-attributes) for this pipeline |
-| `description` | `metadata` | string | Human readable description of the pipeline |
-| `isPublic ` | `metadata` | boolean | If true the pipeline logs [will be public]({{site.baseurl}}/docs/configure-ci-cd-pipeline/build-status/) even for non-authenticated users |
-| `template ` | `metadata` | boolean | If true, this pipeline will be listed as a template when creating a new pipeline |
-
-Example of metadata:
-
-`Pipeline Spec`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-kind: pipeline
-metadata:
- name: project_name/pipeline_name
- project: project_name
- labels:
- tags:
- - tag1
- - tag2
- description: pipeline description here
- isPublic: false
- template:
- isTemplate: false
-{% endraw %}
-{% endhighlight %}
-
-### Spec fields
-
-{: .table .table-bordered .table-hover}
-| Field name | Parent field | Type | Value |
-| -------------- | ---------------------------- |-------------------------| -------------------------|
-| `steps` | `spec` | object | The [pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) to be executed |
-| `stages` | `spec` | array | The [pipeline stages]({{site.baseurl}}/docs/codefresh-yaml/stages/) for a better visual overview |
-| `variables` | `spec` | array | List of variables defined in the pipeline itself |
-| `contexts` | `spec` | array | Variable sets imported from [shared configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/) |
-| `runtimeEnvironment` | `spec` | array | where to execute this pipeline |
-| `terminationPolicy ` | `spec` | array | Termination settings of this pipeline |
-| `concurrency ` | `spec` | number | How many instances of this pipeline [can run at the same time]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/#policies) |
-| `triggerConcurrency ` | `spec` | number | How many instances of this pipeline can run at the same time per trigger |
-| `branchConcurrency ` | `spec` | number | How many instances of this pipeline can run at the same time per branch |
-| `externalResources ` | `spec` | array | Optional external files available to this pipeline |
-| `triggers` | `spec` | array | a list of [Git triggers]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/git-triggers/) that affect this pipeline |
-| `options` | `spec` | object | Extra options for the pipeline |
-| `enableNotifications` | `options` | boolean | if false the pipeline will not send notifications to [Slack]({{site.baseurl}}/docs/integrations/notifications/slack-integration/) and status updates back to the Git provider |
-
-### Pipeline variables
-
-The `variables` array has entries with the following fields:
-
-{: .table .table-bordered .table-hover}
-| Field name | Parent field | Type | Value |
-| -------------- | ---------------------------- |-------------------------| -------------------------|
-| `key` | `variables` | string | Name of the variable |
-| `value` | `variables` | string | Raw value |
-| `encrypted` | `variables` | boolean | if true the value is stored encrypted |
-
-Example of variables:
-
-`Pipeline Spec`
-{% highlight yaml %}
-{% raw %}
- variables:
- - key: my-key
- value: my-value
- encrypted: false
- - key: my-second-variable
- value: '*****'
- encrypted: true
-{% endraw %}
-{% endhighlight %}
-
-Encrypted variables cannot be read back by exporting the pipeline.
-
-### Runtime environment
-
-The `runtimeEnvironment` selects the cluster that will execute the pipeline (mostly useful for organizations using the [Codefresh Runner]({{site.baseurl}}/docs/installation/codefresh-runner/))
-
-{: .table .table-bordered .table-hover}
-| Field name | Parent field | Type | Value |
-| -------------- | ---------------------------- |-------------------------| -------------------------|
-| `name` | `runtimeEnvironment` | string | Name the environment as connected by the runner |
-| `cpu` | `runtimeEnvironment` | string | CPU share using Kubernetes notation |
-| `memory` | `runtimeEnvironment` | string | memory share using Kubernetes notation |
-| `dindStorage` | `runtimeEnvironment` | string | storage size using Kubernetes notation |
-
-
-Example of metadata:
-
-`Pipeline Spec`
-{% highlight yaml %}
-{% raw %}
-runtimeEnvironment:
- name: my-aws-runner/cf
- cpu: 2000m
- memory: 800Mi
- dindStorage: nullGi
-{% endraw %}
-{% endhighlight %}
-
-
-
-### External resources
-
-The `externalResources` field is an array of objects that hold [external resource information]({{site.baseurl}}/docs/pipelines/pipelines/#external-resources).
-
-{: .table .table-bordered .table-hover}
-| Field name | Parent field | Type | Value |
-| -------------- | ---------------------------- |-------------------------| -------------------------|
-| `type` | `externalResources` | string | Only `git` is supported |
-| `source` | `externalResources` | string | Source folder or file path in Git repo |
-| `context` | `externalResources` | string | Name of Git provider to be used |
-| `destination` | `externalResources` | string | Target folder or file path to be copied to |
-| `isFolder` | `externalResources` | boolean | if true path is a folder, else it is a single file |
-| `repo` | `externalResources` | string | git repository name for the trigger. should be in format of `git_repo_owner/git_repo_name` |
-| `revision` | `externalResources` | string | branch name or git hash to checkout |
-
-
-`Pipeline Spec`
-{% highlight yaml %}
-{% raw %}
-externalResources:
- - type: git
- source: /src/sample/venonalog.json
- context: my-github-integration
- destination: codefresh/volume/helm-sample-app/
- isFolder: false
- repo: codefresh-contrib/helm-sample-app
- revision: master
-{% endraw %}
-{% endhighlight %}
-
-### Git triggers
-
-The `triggers` field is an array of objects that hold [Git trigger information]({{site.baseurl}}/docs/pipelines/triggers/git-triggers/) with the following fields.
-
-{: .table .table-bordered .table-hover}
-| Field name | Parent field | Type | Value |
-| -------------- | ---------------------------- |-------------------------| -------------------------|
-| `name` | `triggers` | string | user defined trigger name |
-| `type` | `triggers` | string | Always `git` |
-| `repo` | `triggers` | string | git repository name for the trigger. should be in format of `git_repo_owner/git_repo_name` |
-| `events` | `triggers` | array | All possible values are documented later. The possible values depend on Git provider |
-| `pullRequestAllowForkEvents` | `triggers` | boolean | If this trigger is also applicable to Git forks |
-| `commentRegex` | `triggers` | string | Only activate trigger if regex expression matches PR comment |
-| `branchRegex ` | `triggers` | string | Only activate trigger if regex expression/string matches branch |
-| `branchRegexInput ` | `triggers` | string | Defines what type of content is in `branchRegex`. Possible values are `regex`, `multiselect`, `multiselect-exclude` |
-| `provider ` | `triggers` | string | Name of provider as found in Git integrations |
-| `modifiedFilesGlob ` | `triggers` | string | Only activate trigger if changed files match glob expression |
-| `disabled ` | `triggers` | boolean | if true, trigger will never be activated |
-| `options ` | `triggers` | array | Choosing [caching behavior]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipeline-caching/) of this pipeline |
-| `noCache ` | `options` | boolean | if true, docker layer cache is disabled |
-| `noCfCache ` | `options` | boolean | if true, extra Codefresh caching is disabled |
-| `resetVolume ` | `options` | boolean | if true, all files on volume will be deleted before each execution |
-| `context ` | `triggers` | string | Name of git context to use |
-| `contexts` | `spec` | array | Variable sets imported from [shared configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/) |
-| `variables` | `triggers` | array | Override variables that were defined in the pipeline level |
-| `runtimeEnvironment` | `triggers` | array | Override the runtime environment that was defined in the pipeline level |
-
-The possible values for the `events` array are the following (only those supported by the Git provider can be actually used)
-
- * `push.heads` - for push commit
- * `push.tags` - for push tag event
- * `pullrequest` - any pull request event
- * `pullrequest.opened` - pull request opened
- * `pullrequest.closed` - pull request closed
- * `pullrequest.merged` - pull request merged
- * `pullrequest.unmerged-closed` - pull request closed (not merged)
- * `pullrequest.reopened` - pull request reopened
- * `pullrequest.edited` - pull request edited
- * `pullrequest.assigned` - pull request assigned
- * `pullrequest.unassigned` - pull request unassigned
- * `pullrequest.reviewRequested` - pull request review requested
- * `pullrequest.reviewRequestRemoved` - pull request review request removed
- * `pullrequest.labeled` - pull request labeled
- * `pullrequest.unlabeled` - pull request unlabeled
- * `pullrequest.synchronize` - pull request synchronized
- * `pullrequest.commentAdded` - pull request comment added
- * `release` - Git release event
-
-The `variables` and `runtimeEnvironment` fields have exactly the same format as in the parent pipeline fields but values defined in the trigger will take higher priority.
-
-Full example:
-
-`Pipeline Spec`
-{% highlight yaml %}
-{% raw %}
-triggers:
- - name: guysalton-codefresh/helm-sample-app
- type: git
- repo: guysalton-codefresh/helm-sample-app
- events:
- - push.heads
- - pullrequest.commentAdded
- pullRequestAllowForkEvents: true
- commentRegex: /.*/gi
- branchRegex: /^((master|develop)$).*/gi
- branchRegexInput: regex
- modifiedFilesGlob: /project1/**
- provider: github
- disabled: false
- options:
- noCache: false
- noCfCache: false
- resetVolume: false
- verified: true
- context: guyGithub
- contexts:
- - artifactory
- variables:
- - key: key
- value: '*****'
- encrypted: true
- runtimeEnvironment:
- name: docker-desktop/cf
- cpu: 400m
- memory: 800Mi
- dindStorage: nullGi
-{% endraw %}
-{% endhighlight %}
-
-
-## Using Codefresh from within Codefresh
-
-The Codefresh CLI is also packaged as a [Docker image on its own](https://hub.docker.com/r/codefresh/cli/){:target="\_blank"}. This makes it
-very easy to use it from within Codefresh in a [freestyle step]({{site.baseurl}}/docs/pipelines/steps/freestyle/).
-
-For example, you can easily call pipeline B from pipeline A
-with the following step:
-
-`codefresh.yml` of pipeline A
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- myTriggerStep:
- title: triggering another pipeline
- image: codefresh/cli
- commands:
- - 'codefresh run -b=${{CF_BRANCH}}' -t
- when:
- condition:
- all:
- validateTargetBranch: '"${{CF_PULL_REQUEST_TARGET}}" == "production"'
- validatePRAction: '''${{CF_PULL_REQUEST_ACTION}}'' == ''opened'''
-{% endraw %}
-{% endhighlight %}
-
-This step only calls pipeline B when a pull request is opened for the branch named `production`.
-
-Note that when you use the Codefresh CLI in a pipeline step, it is already configured, authenticated, and ready for use.
-No additional authentication is required.
-
-## Related articles
-[Codefresh API documentation](https://g.codefresh.io/api/){:target="\_blank"}
-[Codefresh CLI documentation](https://codefresh-io.github.io/cli/){:target="\_blank"}
-
-
diff --git a/_docs/integrations/codefresh-hosted-gitops.md b/_docs/integrations/codefresh-hosted-gitops.md
deleted file mode 100644
index 14cbf9e2e..000000000
--- a/_docs/integrations/codefresh-hosted-gitops.md
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: "Hosted GitOps integration"
-description: "Connect with our Hosted GitOps to leverage Managed Argo CD"
-group: integrations
-toc: true
----
-
-Integrate Codefresh Classic with Codefresh's Hosted GitOps for deployments powered by managed Argo CD.
-Use Codefresh Classic for pipelines, and Codefresh Hosted GitOps for deployments.
-
-Codefresh Hosted GitOps includes a dedicated report image step that both reports and enriches deployed images. Add the report image step in your Codefresh Classic pipeline and reference integrations with issue-tracking and container registry tools for Codefresh to retrieve and enrich image information.
-
-For a brief overview of what you get with Codefresh Hosted GitOps, read the next section.
-
-For information on how to connect Codefresh Classic to Codefresh Hosted GitOps, see [CI integration with Codefresh Classic](https://codefresh.io/docs/gitops-integrations/ci-integrations/codefresh-classic/){:target="\_blank"}.
-
-## Codefresh Hosted GitOps features
-
-### Hosted and hybrid runtimes
-Codefresh Hosted GitOps is based on a hosted environemt, with the runtime hosted and managed by Codefresh.
-
-After the three-step process of provisioning your hosted runtime, Codefresh handles administration and maintenance of the hosted runtime, including version and security updates.
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/codefresh-hosted-gitops/hosted-runtime.png"
-url="/images/integrations/codefresh-hosted-gitops/hosted-runtime.png"
-caption="Provisioning a Hosted GitOps runtime"
-alt="Provisioning a Hosted GitOps runtime"
-max-width="70%"
-%}
-
-### Dashboards for visibility and traceability
-
-A set of dashboards provides visibility into all aspects of deployment:
-
-* The Home dashboard presents enterprise-wide deployment highlights across runtimes and clusters.
- Get insights into important KPIs and deployments, all in the same location. View status of runtimes and managed clusters, deployments, failed deployments with rollbacks, most active applications. Use filters to narrow the scope to focus on anything specific.
-
- {% include
-image.html
-lightbox="true"
-file="/images/integrations/codefresh-hosted-gitops/hosted-home-dashboard.png"
-url="/images/integrations/codefresh-hosted-gitops/hosted-home-dashboard.png"
-caption="Home dashboard in Hosted GitOps"
-alt="Home dashboard in Hosted GitOps"
-max-width="70%"
-%}
-
-* The Applications dashboard displays applications, also across runtimes and clusters, from which you can select individual applications for further analysis.
- Individual application information is grouped by current and historical deployments, enriched with Argo, Jira, and Git details, including rollout visualizations for ongoing deployments, and an interactive tree view of application resources.
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/codefresh-hosted-gitops/hosted-app-dashboard.png"
-url="/images/integrations/codefresh-hosted-gitops/hosted-app-dashboard.png"
-caption="Applications dashboard in Hosted GitOps"
-alt="Applications dashboard in Hosted GitOps"
-max-width="70%"
-%}
-
-
-* The DORA metrics dashboard in Codefresh helps quantify DevOps performance. Apart from the metrics themselves, the DORA dashboard in Codefresh has several unique features to pinpoint just which applications or runtimes are contributing to problematic metrics.
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/codefresh-hosted-gitops/hosted-dora-metrics.png"
-url="/images/integrations/codefresh-hosted-gitops/hosted-dora-metrics.png"
-caption="DORA metrics in Hosted GitOps"
-alt="DORA metrics in Hosted GitOps"
-max-width="60%"
-%}
-
-### Application management
-
-Manage the application lifecycle in the Codefresh UI, from creating, editing, and deleting applications, to quick manual sync when needed.
-
-
-### Third-party integrations for image enrichment
-Add integrations to issue-tracking tools such as Jira, and container-registries such as Docker Hub, JFrog and more, to enrich images.
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/codefresh-hosted-gitops/hosted-int-tools.png"
-url="/images/integrations/codefresh-hosted-gitops/hosted-int-tools.png"
-caption="Integrations in Hosted GitOps"
-alt="Integrations in Hosted GitOps"
-max-width="60%"
-%}
-
-## Related articles
-[CI integrations with GitOps]({{site.baseurl}}/docs/gitops-integrations/ci-integrations)
diff --git a/_docs/integrations/datadog.md b/_docs/integrations/datadog.md
deleted file mode 100644
index 609752af2..000000000
--- a/_docs/integrations/datadog.md
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: "Datadog integration"
-description: "Integrate Codefresh pipelines with Datadog for monitoring and analysis"
-group: integrations
-toc: true
----
-
-Datadog is a SaaS-based monitoring and analytics platform for large-scale applications and infrastructure. Integrating Datadog with Codefresh allows you to leverage Codefresh to create your pipelines, and Datadog to monitor and analyze them.
-
-When a pipeline completes execution in Codefresh, Codefresh reports pipeline-execution data to Datadog for viewing in Datadog's Continuous Integration (CI) Visibility interface.
-
-For Datadog and Codefresh integration, you need:
-* An API token from your Datadog account
-* To define the settings in Codefresh
-
-> Note: Please reach out to Support if you’re interested in enabling Datadog for your account.
-
-## Get API token from Datadog account
-If you already have a Datadog account, you can copy the API key if you have one, or generate a new API key.
-
-1. Log in to your Datadog account.
-1. Go to **Organization Settings**, and select **API Keys**.
-
- {% include image.html
-lightbox="true"
-file="/images/integrations/datadog/datadog-api-key.png"
-url="/images/integrations/datadog/datadog-api-key.png"
-max-width="30%"
-caption="Getting an API Key from your Datadog account"
-alt="Getting an API Key from your Datadog account"
-%}
-
-{:start="3"}
-1. Copy the API key to use with your Codefresh integration.
-
-## Set up Datadog integration in Codefresh
-
-Configure the integration settings for Datadog within Codefresh.
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Datadog**, and then **Configure**.
-1. Click **Add Integration**.
-
- {% include image.html
-lightbox="true"
-file="/images/integrations/datadog/datadog-config-settings.png"
-url="/images/integrations/datadog/datadog-config-settings.png"
-max-width="30%"
-caption="Datadog configuration settings"
-alt="Datadog configuration settings"
-%}
-
-{:start="4"}
-1. Define the following:
- * **Datadog site**: Select the site with your data. If you are not sure which Datadog site to select, select the _View documentation_ link below the field, and read Datadog's official documentation.
- * **Token**: The API token you copied from your Datadog account.
-1. To verify the connection details, click **Test Connection**.
-1. To apply the changes, click **Save**.
-
-
-## Pipeline data from Codefresh in Datadog
-See pipeline data in Datadog's CI Visibility interface.
-
-We have highlighted the main features in Datadog for Codefresh pipelines. For detailed descriptions and options, see [Datadog documentation on Exploring Pipelines](https://docs.datadoghq.com/continuous_integration/explore_pipelines/){:target="\_blank"}.
-
-
-### Pipelines page in Datadog
-
-The Pipelines page shows aggregated data for each pipeline, for the selected time range. You can see the failure rate and average build duration against the total number of executions of a pipeline, alongside the metrics from the most recent build of the same pipeline.
-
-Below is an example of the Pipelines page with Codefresh pipelines, prefixed by the Codefresh logo.
-
- {% include image.html
-lightbox="true"
-file="/images/integrations/datadog/datadog-pipelines-page.png"
-url="/images/integrations/datadog/datadog-pipelines-page.png"
-max-width="30%"
-caption="Pipelines page in Datadog with Codefresh pipelines"
-alt="Pipelines page in Datadog with Codefresh pipelines"
-%}
-
-### Pipeline Details page in Datadog
-
-Selecting a pipeline takes you to the Pipeline Details page in Datadog which provides in-depth data for the pipeline.
-Here you can see the failure rate and average build duration for the selected pipeline, and data on its branches, and jobs (referred to as steps in Codefresh).
-You also have the option of viewing executions in the dedicated Pipeline Executions page.
-
-Below is an example of the Pipeline Details page for the selected Codefresh pipeline.
-
-
- {% include image.html
-lightbox="true"
-file="/images/integrations/datadog/datadog-pipeline-drilldown.png"
-url="/images/integrations/datadog/datadog-pipeline-drilldown.png"
-max-width="30%"
-caption="Drilldown view for selected pipeline in Datadog Pipeline Details page"
-alt="Drilldown view for selected pipeline in Datadog Pipeline Details page"
-%}
-
-### Pipeline Executions page in Datadog
-
-The Pipeline Executions page shows day-by-day execution data for the selected pipeline or pipelines.
-
-Below is an example of the Pipeline Executions page with execution data for Codefresh pipelines.
-
-
- {% include image.html
-lightbox="true"
-file="/images/integrations/datadog/datadog-pipeline-executions.png"
-url="/images/integrations/datadog/datadog-pipeline-executions.png"
-max-width="30%"
-caption="Execution timeline view in Datadog Pipeline Executions page"
-alt="Execution timeline view in Datadog Pipeline Executions page"
-%}
-
-### Pipeline Dashboards page in Datadog
-
-Pipeline Dashboards is your go-to location for a quick look at performance and step metrics across pipelines. You can customize the widgets in the dashboard to display the data that is of interest to you.
-
-Below is an example of the Pipeline Dashboards page.
-
-
- {% include image.html
-lightbox="true"
-file="/images/integrations/datadog/datadog-pipeline-dashboard.png"
-url="/images/integrations/datadog/datadog-pipeline-dashboard.png"
-max-width="30%"
-caption="Pipelines Dashboards page in Datadog"
-alt="Pipelines Dashboards in Datadog"
-%}
-
-## Related articles
-[Integration Tests]({{site.baseurl}}/docs/testing/integration-tests/)
\ No newline at end of file
diff --git a/_docs/integrations/docker-registries.md b/_docs/integrations/docker-registries.md
deleted file mode 100644
index 32439fe3b..000000000
--- a/_docs/integrations/docker-registries.md
+++ /dev/null
@@ -1,141 +0,0 @@
----
-title: "Docker Registries for pipeline integrations"
-description: "Connect your Docker Registry to Codefresh CI pipelines"
-group: integrations
-redirect_from:
- - /docs/docker-registry/
- - /docs/docker-registries/external-docker-registries/
- - /docs/docker-registries/
- - /docs/codefresh-registry/
- - /docs/docker-registries/codefresh-registry/
-toc: true
----
-Codefresh enables you to integrate with several Docker container registries, including (but not limited to):
-
-* [Docker Hub](docker-hub)
-* [Azure Container Registry](azure-docker-registry)
-* [Google Container Registry](google-container-registry)
-* [Google Artifact Registry](google-artifact-registry)
-* [Amazon EC2 Container Registry](amazon-ec2-container-registry)
-* [Bintray.io/Artifactory](bintray-io)
-* [Quay.io](quay-io)
-* [Github Container Registry](github-container-registry)
-
-For a different registry choose to configure using the [Other](other-registries) option.
-
-The registries can either be public or private.
-
-## General Configuration
-
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Docker Registries** and then click **Configure**.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/codefresh-integrations.png"
- url="/images/integrations/codefresh-integrations.png"
- alt="Codefresh Account Integration"
- max-width="80%" %}
-
-{:start="4"}
-1. From the **Add Registry Provider** drop-down, select the regsitry type to add.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/add-docker-registry.png"
- url="/images/integrations/docker-registries/add-docker-registry.png"
- alt="Add Docker Registry"
- max-width="45%" %}
-
-{:start="5"}
-1. Each configuration must be given a unique name, which you can later reference in a codefresh.yml file.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/registry-name.png"
- url="/images/integrations/docker-registries/registry-name.png"
- alt="Specify Docker registry name"
- max-width="40%" %}
-
-## Define fallback registry
-
-Codefresh has a feature that allows users to designate a fallback registry for Docker integrations. If a Codefresh pipeline attempts to pull an image and that image fails for any reason (authorization issue, the registry server is down, etc.), a retry mechanism will attempt to pull it successfully. If this mechanism fails, the fallback registry feature provides the opportunity to pull the image from a different registry you have specified.
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Docker Registries** and then click **Configure**.
-1. In the list of registries, select the registry to configure as the fallback registry, and click **Edit**.
-1. Expand **Advanced Options**, and select the registry from the **Fallback Registry** list.
- You can also specify a fallback registry when creating a new integration as long as another integration exists.
-
-## Using an optional repository prefix
-
-For each supported Registry, define a prefix string for your Docker images to be used globally.
-
-This is handy for registries that require a prefix (usually the name of an organization or repository) as you can set it once, instead of having each pipeline using the prefix by itself.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/repository-prefix.png"
- url="/images/integrations/docker-registries/repository-prefix.png"
- alt="Setting a Registry prefix"
- caption="Setting a Registry prefix"
- max-width="60%"
- %}
-
-See more details at [pushing Docker images]({{site.baseurl}}/docs/#pushing-docker-images).
-
-## Pushing an image
-
-Once your registry configuration is all set up you can start pushing your images to it.
-
-Within a [push step]({{site.baseurl}}/docs/pipelines/steps/push/), add your registry configuration name in the `registry` field
-
- `codefresh.yml`
-{% highlight yaml %}
-push_step:
- type: push
- description: Free text description
- candidate: {% raw %}${{build_step}}{% endraw %}
- tag: {% raw %}${{CF_BRANCH}}{% endraw %}
- registry: your-registry-configuration-name
-{% endhighlight %}
-
-For more details, see the [example for image push]({{site.baseurl}}/docs/example-catalog/ci-examples/build-and-push-an-image/).
-
-## Internal caching registry
-
-You can also select a single registry that will serve as your [caching registry]({{site.baseurl}}/docs/pipelines/pipeline-caching/#docker-registry-caching).
-
-> You cannot select Dockerhub as a caching registry, because it has very strict requirements for naming images, and our caching mechanism needs capabilities which are not possible with Dockerhub.
-
-Codefresh uses that registry efficiently to perform advanced caching logic for your builds by automatically:
-
-* Checking the stored metadata to decide which past image is most relevant for caching purposes
-* Pulling images from this registry for caching purposes
-* Using that registry for distributed Docker layer caching to make your Docker builds faster
-
-We give you the ability to define a separate registry for caching purposes for the following scenarios:
-
-1. You don't want extra traffic to be sent to your main deployment registry. Maybe you want to avoid bandwidth/storage limits in your production registry
-1. You have lots of build steps in pipelines with intermediate docker images that you are certain you don't need outside of the pipeline itself. In that case you can use the `disable_push` property in those pipelines.
-1. You have speed concerns regarding image pulling/pushing. For example your development team is in Europe, but your production servers are in the USA. You would probably choose a caching registry in a European region (so that developers get the best experience), where your main registry is in the USA (close to your production servers)
-
-Therefore, in most cases you should make your main registry your caching registry as well. For extra control, you can either define a different caching registry or disable selectively automatic pushes with the `disable_push` property.
-
->Notice that the dynamic image feature of Codefresh (creating docker images on demand in the same pipeline that is using them) will always work regardless of a caching registry.
-
-## Default registry
-
-If you define more than one registry, you can select a registry as the default one. Codefresh uses the default registry in both [build]({{site.baseurl}}/docs/pipelines/steps/build/) and [push]({{site.baseurl}}/docs/pipelines/steps/push/) steps if they don't already include a `registry` property.
-
-> Successful build steps always push to the default Codefresh registry, unless you also define the `disable_push` property.
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Docker Registries** and then click **Configure**.
-1. From the context menu of the Docker registry integration to be used as the default registry, select **Set as default**.
-
-
-
-## Related articles
-[Examples of pushing Docker images]({{site.baseurl}}/docs/example-catalog/ci-examples/build-and-push-an-image/)
diff --git a/_docs/integrations/docker-registries/amazon-ec2-container-registry.md b/_docs/integrations/docker-registries/amazon-ec2-container-registry.md
deleted file mode 100644
index 8e534868a..000000000
--- a/_docs/integrations/docker-registries/amazon-ec2-container-registry.md
+++ /dev/null
@@ -1,179 +0,0 @@
----
-title: "Amazon EC2 Container Registry"
-description: "Use the Amazon Docker Registry for pipeline integrations"
-group: integrations
-sub_group: docker-registries
-redirect_from:
- - /docs/aws/
- - /docs/docker-registries/external-docker-registries/amazon-ec2-container-registry/
-toc: true
----
-
-## Set up ECR integration for IAM user
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Docker Registries** and then click **Configure**.
-1. From the **Add Registry Provider** dropdown, select **Amazon ECR**.
-1. Define the following:
- * **Registry name**: A unique name for this configuration.
- * **Region**: AWS region.
- * **Access Key ID**: Your AWS accessKeyId.
- * **Secret Access Key**: Your AWS accessKeyId.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/add-amazon-ecr-registry.png"
- url="/images/integrations/docker-registries/add-amazon-ecr-registry.png"
- alt="Amazon EC2 Container Registry settings"
- caption="Amazon EC2 Container Registry settings"
- max-width="60%" %}
-
-{:start="5"}
-1. To verify the connection details, click **Test Connection**.
-1. To apply the changes, click **Save**.
-
-Codefresh makes sure to automatically refresh the AWS token for you.
-
-For more information on how to obtain the needed tokens, read the [AWS documentation](http://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys){:target="_blank"}.
-
-> Note:
- You must have an active registry set up in AWS.
- Amazon ECR push/pull operations are supported with two permission options: user-based and resource-based.
-
-
- * User-based permissions: User account must apply `AmazonEC2ContainerRegistryPowerUser` policy (or custom based on that policy).
- For more information and examples, click [here](http://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr_managed_policies.html){:target="_blank"}.
- * Resource-based permissions: Users with resource-based permissions must be allowed to call `ecr:GetAuthorizationToken` before they can authenticate to a registry, and push or pull any images from any Amazon ECR repository, than you need provide push/pull permissions to specific registry.
- For more information and examples, click [here](http://docs.aws.amazon.com/AmazonECR/latest/userguide/RepositoryPolicies.html){:target="_blank"}.
-
-
-## Set up ECR integration for service account
-
-Setting up ECR integration for a service account applies to accounts with the Codefresh Runner installation.
-
-### Kubernetes service account setup
-To use an IAM role, you must set up a Kubernetes service account, as described in the [AWS Documentation](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html){:target="\_blank"}.
-You can define the service account at four different levels, based on the required priority. The levels are listed below in ascending order of priority:
-
-* Runtime
- The runtime level has the lowest priority. Define it in the Runtime Specification under `runtimeScheduler > Cluster` (same level as `namespace`), and specify the service account. The key is `serviceAccount`. Use the default, and make sure you have the correct annotation added to the service account. Another option is to create a new service account with the proper permissions and annotations.
-
-```yaml
-runtimeScheduler:
- cluster:
- namespace: codefresh
- clusterProvider:
- accountId: 5c1658d1736122ee1114c842
- selector: docker-desktop
- serviceAccount: codefresh-engine
-
-```
-
-* Account
- The Account-level service account has higher priority than the runtime-level service account. To define the service account at the account level, turn on the setting as part of the integration as described below.
-
-* Pipeline
- The Pipeline-level service account has higher priority than the account-level service account. Define the service account as part of the pipeline's runtime settings (Pipeline > Settings > Runtime).
-
-* Trigger
- The Trigger-level service account has the highest priority. Define the service account as part of the trigger settings for the specific pipeline (Workflow > Triggers (modify or add) > Advanced Options).
-
-
-### How to
-
-**Before you begin**
-* Define a Kubernetes service account for the runtime, account, pipeline, or pipeline-trigger
-
-**How to**
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Docker Registries** and then click **Configure**.
-1. From the **Add Registry Provider** dropdown, select **Amazon ECR**.
-1. Do the following:
- * **Registry name**: Enter a unique name for this configuration.
- * **Region**: Select the AWS region.
- * Select **Resolve credentials from servce account**.
-
- The Access Key ID and Secret Access Key fields are disabled.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/add-amazon-ecr-registry.png"
- url="/images/integrations/docker-registries/add-amazon-ecr-registry.png"
- alt="Amazon EC2 Container Registry settings"
- caption="Amazon EC2 Container Registry settings"
- max-width="60%" %}
-
-{:start="5"}
-1. To verify the connection details, click **Test Connection**.
-1. To apply the changes, click **Save**.
-
-
-
-## Pushing Docker images to Amazon ECR
-
-There are two ways to push images:
-
-1. (Recommended) Using the YAML [push step]({{site.baseurl}}/docs/pipelines/steps/push/).
-1. Manually promoting manually an image (described below)
-
-For more details on how to push a Docker image in a pipeline see the [build and push example]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image/).
-
-
-
-### Manually promoting an image
-
-
-
-The **Images** view has an option to manually push images to a registry.
-You need to specify the repository name as the name of your repository as set in ECR, as in the example below.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/docker-registries/ecr/ecr-manual-promote-repo-name.png"
-url="/images/integrations/docker-registries/ecr/ecr-manual-promote-repo-name.png"
-alt="Repository name in ECR"
-caption ="Repository name in ECR"
-max-width="40%"
-%}
-
-1. In the Codefresh UI, from Artifacts in the sidebar, select [**Images**](https://g.codefresh.io/2.0/images){:target="\_blank"}.
-1. Click **Promote**.
-
- {% include image.html
-lightbox="true"
-file="/images/integrations/docker-registries/ecr/ecr-manual-promote-button.png"
-url="/images/integrations/docker-registries/ecr/ecr-manual-promote-button.png"
-alt="Promote image icon"
-caption="Promote image icon"
-max-width="40%"
-%}
-
-{:start="3"}
-1. Do the following:
- * Enter the **Repository Name**.
- * Enter the **Tag**. Copy and paste the text after the `:` in the Repository Name. For example, `repository-name:tag`.
- * From the **Registry** dropdown, select your ECR configuration.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/docker-registries/ecr/ecr-manual-promote-settings.png"
-url="/images/f2b0ec5-ecr3.png"
-alt="Image promotion settings"
-caption="Image promotion settings"
-max-width="40%"
-%}
-
-{:start="3"}
-3. Click **Promote**.
-
-
->It is possible to change the image name if you want, but make sure that the new name exists as a repository in ECR.
-
-
-## Related articles
-[Docker registries for pipeline integrations]({{site.baseurl}}/docs/integrations/docker-registries)
-[Working with Docker Registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/)
-[Push step]({{site.baseurl}}/docs/pipelines/steps/push/)
-[Building and pushing an image]({{site.baseurl}}/docs/example-catalog/ci-examples/build-and-push-an-image/)
-
diff --git a/_docs/integrations/docker-registries/azure-docker-registry.md b/_docs/integrations/docker-registries/azure-docker-registry.md
deleted file mode 100644
index e19f41f81..000000000
--- a/_docs/integrations/docker-registries/azure-docker-registry.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: "Azure Docker registry"
-description: "Use the Azure Docker Registry for pipeline integrations"
-group: integrations
-sub_group: docker-registries
-redirect_from:
- - /docs/docker-registries/external-docker-registries/azure-docker-registry/
-toc: true
----
-Configure [Azure Docker registry](https://docs.microsoft.com/en-us/azure/container-registry/){:target=\_blank"} for pipeline integrations.
-
-## Configure Azure portal
-
-1. Log in to the Azure Portal.
-1. Click **Settings** and from the sidebar, select **Access Keys**.
-
- {% include
-image.html
-lightbox="true"
-file="/images/integrations/docker-registries/azure-registry-admin.png"
-url="/images/integrations/docker-registries/azure-registry-admin.png"
-alt="Docker credentials for the Azure registry"
-caption="Docker credentials for the Azure registry"
-max-width="80%"
-%}
-
-1. For **Admin user**, click **Enable**.
-1. Change the username (optional), and make sure that you note down one of the passwords shown on the screen.
-
-## Configure Azure Docker registry settings in Codefresh
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Docker Registries** and then click **Configure**.
-1. From the **Add Registry Provider** dropdown, select **Other Registries**.
-1. Define the following:
- * **Registry Name**: Unique name for this configuration.
- * **Username**: Your Azure Registry username.
- * **Password**: Your Azure Registry password.
- * **Domain**: `.azurecr.io`.
-
-{% include image.html
- lightbox="true"
-file="/images/integrations/docker-registries/add-azure-registry.png"
-url="/images/integrations/docker-registries/add-azure-registry.png"
-alt="Adding the Azure Docker registry"
-caption="Adding the Azure Docker registry"
-max-width="60%" %}
-
-{:start="5}
-1. To verify the connection details, click **Test connection**.
-1. To apply the changes, click **Save**.
-
-## Using the Azure Registry
-
-You can now use the Azure Registry in your CI pipelines, either via the UI or through the YAML [push step]({{site.baseurl}}/docs/pipelines/steps/push/) (recommended).
-
-It is also possible to use the registry from the command line with:
-
-```
-docker login .azurecr.io -u -p
-```
-
-You can also inspect the pushed images either using Azure portal or with [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest){:target="\_blank"}
-
-```
-az acr repository list --name --output table
-```
-
-
-## Related articles
-[Docker registries for pipeline integrations]({{site.baseurl}}/docs/integrations/docker-registries)
-[Working with Docker Registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/)
-[Building and pushing an image]({{site.baseurl}}/docs/example-catalog/ci-examples/build-and-push-an-image/)
\ No newline at end of file
diff --git a/_docs/integrations/docker-registries/bintray-io.md b/_docs/integrations/docker-registries/bintray-io.md
deleted file mode 100644
index 7b158628e..000000000
--- a/_docs/integrations/docker-registries/bintray-io.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: "Bintray.io/Artifactory"
-description: "Use JFrog Bintray/Artifactory with pipeline integrations "
-group: integrations
-sub_group: docker-registries
-redirect_from:
- - /docs/bitrayio/
- - /docs/docker-registries/external-docker-registries/bintray-io/
-toc: true
----
-
-Configure JFrog Bintray/Artifactory as your Docker registry provider.
-You need to get the API key for your profile, and the correct registry domain.
-
->Passing Codefresh metadata to Bintray is supported through Grafeas. More info is available [in this blogpost](https://codefresh.io/blog/write-this-down-grafeas/){:target="_blank"}.
-
-## Set up Bintray integration
-
-**Before you begin**
-* [Get your API key](#find-your-api-key)
-* [Get your regsitry domain](#find-your-registry-domain)
-
-**How to**
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Docker Registries** and then click **Configure**.
-1. From the **Add Registry Provider** dropdown, select **JFrog Bintray**.
-1. Define the following:
- * **Registry name**: A unique name for this configuration.
- * **Username**: Your Bintray.io/Artifactory username.
- * **API key**: The Bintray.io/Artifactory API key you retrieved from your profile.
- * **Domain**: Your Bintray.io registry address, for example, `docker-new-repository.bintray.io`, or Artifactory registry address, for example `my-company-docker-snapshot.jfrog.io`.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/add-bintray-registry.png"
- url="/images/integrations/docker-registries/add-bintray-registry.png"
- alt="JFrog Bintray registry settings"
- caption="JFrog Bintray registry settings"
- max-width="70%" %}
-
-{:start="5"}
-1. To verify the connection details, click **Test Connection**.
-1. To apply the changes, click **Save**.
-
-
-## Getting Bintray.io settings
-
-To obtain Bintray.io information, follow the steps.
-
-### Find your API key
-
-1. Go to your Bitray.io profile.
-1. Select **API Key** from the side menu.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/docker-registries/bintray/bintray-api-key.png"
-url="/images/integrations/docker-registries/bintray/bintray-api-key.png"
-alt="Bintray.io API key"
-caption="Bintray.io API key"
-max-width="60%" %}
-
-### Find your registry domain
-
-1. Navigate to your bintray.com repository, or add a new one.
-1. Click **SET ME UP!**.
-{% include image.html lightbox="true" file="/images/integrations/docker-registries/bintray/bintray-set-me-up.png" url="/images/integrations/docker-registries/bintray/bintray-set-me-up.png" alt="Bintray.io SET ME UP" caption="Bintray.io SET ME UP" max-width="45%" %}
-
-{:start="3"}
-1. Copy the registry address.
-{% include image.html lightbox="true" file="/images/integrations/docker-registries/bintray/bintray-domain.png" url="/images/integrations/docker-registries/bintray/bintray-domain.png" alt="Bintray.io registry address" caption="Bintray.io registry address" max-width="45%" %}
-
-### Basic metadata upload
-
-Codefresh automatically sets some version attributes in Bintray every time you upload a Docker image.
-
-{%
- include image.html lightbox="true"
- file="/images/integrations/docker-registries/bintray/bintray-metadata.png"
- url="/images/integrations/docker-registries/bintray/bintray-metadata.png"
- alt="Basic Bintray metadata"
- caption="Basic Bintray metadata"
- max-width="50%"
- %}
-
-## Related articles
-[Docker registries for pipeline integrations]({{site.baseurl}}/docs/integrations/docker-registries)
-[Working with Docker Registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/)
-[Push step]({{site.baseurl}}/docs/pipelines/steps/push/)
-[Building and pushing an image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image/)
\ No newline at end of file
diff --git a/_docs/integrations/docker-registries/digital-ocean-container-registry.md b/_docs/integrations/docker-registries/digital-ocean-container-registry.md
deleted file mode 100644
index b36283a48..000000000
--- a/_docs/integrations/docker-registries/digital-ocean-container-registry.md
+++ /dev/null
@@ -1,148 +0,0 @@
----
-title: "DigitalOcean Container Registry"
-description: "Push Docker images to your DigitalOcean Container Registry with pipeline integration"
-group: integrations
-sub_group: docker-registries
-toc: true
----
-
-You can configure [DigitalOcean Container Registry](https://www.digitalocean.com/products/container-registry/){:target="\_blank"} as your Docker Registry, and use it in your Codefresh pipeline.
-
-
-The DigitalOcean Container Registry is directly integrated into your DigitalOcean Dashboard. While it is optional to use the DigitalOcean Container registry with your DigitalOcean Kubernetes cluster, it allows for easier integration between resources.
-
-The next sections will look at:
-1. Creating the DigitalOcean Container Registry
-2. Generating a DigitalOcean Access token
-3. Adding the DigitalOcean Container Registry to our Docker Registry in Codefresh
-4. Modifying the Build step in our Codefresh pipeline
-5. Viewing the built image in the DigitalOcean Container Registry
-
-## Building and pushing a container image with DigitalOcean and Codefresh
-
-Building and pushing a container image with DigitalOcean and Codefresh, requires:
-* A DigitalOcean account (your GitHub username)
-* A DigitalOcean access token
-* An application with a Dockerfile to build images
-
-### Creating the DigitalOcean Container Registry
-
-Once you are logged into your DigitalOcean Account, open the `Container Registry` tap and provide the name of your registry. Note that the name has to be unique.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/digital-ocean/create-registry.png"
- url="/images/integrations/docker-registries/digital-ocean/create-registry.png"
- alt="Create Container Registry in DigitalOcean"
- caption="Create Container Registry in DigitalOcean"
- max-width="100%"
-%}
-
-### Creating an access token
-
-Now that we are already in DigitalOcean, we have to create an [access token](https://www.digitalocean.com/docs/apis-clis/api/create-personal-access-token/){:target="\_blank"}. Note that it requires read and write access.
-Select **API** at the bottom right of your left-side menu under **Tokens/Keys**.
-Copy and paste the token somewhere secure and where you will find it again.
-
-## Set up DigitalOcean Container Registry integration
-
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-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**: The DigitalOcean access token you created.
- * **Password**: The DigitalOcean access token you created.
- * **Domain**: `registry.digitalocean.com`.
-
- Optional, you can add your registry name to the advanced settings section. For instance, if you named it in Digital Ocean "anais-codefresh", you can ensure that every time the registry is used, it is automatically referenced in the build step of your pipeline.
-
-
-
-{:start="5"}
-1. To verify the connection details, click **Test Connection**.
-1. To apply the changes, click **Save**.
-
-
-
-### Modify your build step
-
-Within your Codefresh YAML file, modify the build step to push to the DigitalOcean Container Registry. If you set the DigitalOcean Container Registry as default registry, note that you do not have to specify the Registry.
-
-Add the following line to your build step:
-`registry: "digital-ocean"`
-
-This is an example of the complete build step:
-
-{% highlight yaml %}
-{% raw %}
-version: "1.0"
-stages:
- - "clone"
- - "build"
-
-steps:
- clone:
- title: "Cloning repository"
- type: "git-clone"
- repo: "anais-codefresh/react-article-display"
- # CF_BRANCH value is auto set when pipeline is triggered
- # Learn more at codefresh.io/docs/docs/codefresh-yaml/variables/
- revision: "${{CF_BRANCH}}"
- git: "github"
- stage: "clone"
-
- build:
- title: "Building Docker image"
- type: "build"
- image_name: "anais-codefresh/react-article-display-do-registry"
- tags:
- - "1.0.0"
- working_directory: "${{clone}}"
- dockerfile: "Dockerfile"
- stage: "build"
- registry: "digital-ocean"
-{% endraw %}
-{% endhighlight %}
-
-Note that Codefresh builds AND pushes images both in the same step.
-
-### Running the pipeline and viewing the image in the DigitalOcean Container Registry
-
-Once you have modified the step, save and run your pipeline. Below is an example of the pipeline in it's simplest form.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/digital-ocean/codefresh-pipeline.png"
- url="/images/integrations/docker-registries/digital-ocean/codefresh-pipeline.png"
- alt="Codefresh Pipeline"
- caption="Codefresh Pipeline"
- max-width="100%"
-%}
-
-You can then view the image in the DigitalOcean Container Registry:
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/digital-ocean/container-registry-do.png"
- url="/images/integrations/docker-registries/digital-ocean/container-registry-do.png"
- alt="DigitalOcean Container Registry"
- caption="DigitalOcean Container Registry"
- max-width="100%"
-%}
-
-## Related articles
-[Docker registries for pipeline integrations]({{site.baseurl}}/docs/integrations/docker-registries)
-[Working with Docker Registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/)
-[Building Docker images]({{site.baseurl}}/docs/ci-cd-guides/building-docker-images/)
-[Push step]({{site.baseurl}}/docs/pipelines/steps/push/)
-[Building and pushing an image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image/)
-
diff --git a/_docs/integrations/docker-registries/docker-hub.md b/_docs/integrations/docker-registries/docker-hub.md
deleted file mode 100644
index 46a71832f..000000000
--- a/_docs/integrations/docker-registries/docker-hub.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-title: "Docker Hub"
-description: "Use DockerHub for pipeline integration"
-group: integrations
-sub_group: docker-registries
-redirect_from:
- - /docs/dockerhub/
- - /docs/docker-registries/external-docker-registries/docker-hub/
-toc: true
----
-Configure Docker Hub as a Docker registry for CI pipelines to push images to it.
-
-1.[ Select **Docker Hub** as the registry provider]({{site.baseurl}}/docs/integrations/docker-registries/#general-configuration).
-1. Define the following:
- * Registry Name: A unique name for this configuration.
- * Username: Docker Hub username.
- * Password: Docker Hub [personal account token](https://docs.docker.com/docker-hub/access-tokens/){:target="\_blank"}, or Dockerhub account password (not recommended).
- >If you have enabled [two-factor-authentication in Docker Hub](https://docs.docker.com/docker-hub/2fa/){:target="\_blank"}, then in the Password field, paste a Docker personal access token (instead of your Docker Hub master password). Otherwise, Codefresh will not be able to push your image.
- If you don't have 2FA enabled in Dockerhub, then you can also use your Dockerhub account password. But in all cases we suggest you create a personal access token for Codefresh (personal access tokens are more secure as you can revoke them on demand and see when they were last used).
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/dockerhub/add-dockerhub-registry.png"
- url="/images/integrations/docker-registries/dockerhub/add-dockerhub-registry.png"
- alt="Add Docker Hub registry"
- caption="Add Docker Hub registry"
- max-width="50%"
-%}
-
-
->Docker.io only allows you to push images that are tagged with your username. If you have a choice, 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 every [push step]({{site.baseurl}}/docs/pipelines/steps/push/#examples).
-
-
-## Adding more Docker Hub integrations
-
-You can add additional Docker Hub accounts using the same process.
-
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/dockerhub/two-dockerhub-integrations.png"
- url="/images/integrations/docker-registries/dockerhub/two-dockerhub-integrations.png"
- alt="Additional Docker Hub integrations"
- caption="Additional Docker Hub integrations"
- max-width="80%"
-%}
-
-
-You can specify which registry will be used as primary/default for the `docker.io` domain.
-Use the appropriate `registry name` value in your pipelines in order to decide which Dockerhub account will be used.
-
-Here is a pipeline that pushes to two different Docker Hub accounts:
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/dockerhub/pushing-two-dockerhub-accounts.png"
- url="/images/integrations/docker-registries/dockerhub/pushing-two-dockerhub-accounts.png"
- alt="Pushing to multiple Dockerhub accounts"
- caption="Pushing to multiple Dockerhub accounts"
- max-width="90%"
-%}
-
-This is the [definition]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/) for the pipeline:
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: "1.0"
-stages:
- - "clone"
- - "build"
- - "push"
-
-steps:
- clone:
- title: "Cloning repository"
- type: "git-clone"
- repo: "kostis-codefresh/trivial-go-web"
- revision: "master"
- stage: "clone"
- build:
- title: "Building Docker image"
- type: "build"
- image_name: "trivial-go-web"
- working_directory: "${{clone}}"
- tag: "latest"
- dockerfile: "Dockerfile.multistage"
- stage: "build"
- disable_push: true
- push1:
- title: "Pushing 1st Docker image"
- type: push
- image_name: "kostiscodefresh/trivial-go-web"
- tag: "latest"
- stage: "push"
- registry: dockerhub
- candidate: ${{build}}
- push2:
- title: "Pushing 2nd Docker image"
- type: push
- image_name: "kkapelon/trivial-go-web"
- tag: "latest"
- stage: "push"
- registry: second-dockerhub
- candidate: ${{build}}
-{% endraw %}
-{% endhighlight %}
-
-The two Dockerhub accounts are `kkapelon` and `kostiscodefresh`, and Codefresh automatically uses the correct integration by looking at the `image_name` property of the push step.
-
-
-## Related articles
-[Docker registries for pipeline integrations]({{site.baseurl}}/docs/integrations/docker-registries)
-[Working with Docker Registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/)
-[Push step]({{site.baseurl}}/docs/pipelines/steps/push/)
-[Building and pushing an image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image/)
-
-
-
-
-
diff --git a/_docs/integrations/docker-registries/github-container-registry.md b/_docs/integrations/docker-registries/github-container-registry.md
deleted file mode 100644
index 7d2ff3dd4..000000000
--- a/_docs/integrations/docker-registries/github-container-registry.md
+++ /dev/null
@@ -1,186 +0,0 @@
----
-title: "GitHub Container Registry"
-description: "Push Docker images to GitHub Container Registry with pipeline integrations"
-group: integrations
-sub_group: docker-registries
-redirect_from:
- - /docs/integrations/docker-registries/github-packages/
-toc: true
----
-
-Configure [GitHub Container Registry](https://docs.github.com/en/free-pro-team@latest/packages/getting-started-with-github-container-registry){:target="\_blank"} as your Docker Registry, and use it in your Codefresh pipeline.
-
-
-The GitHub Container Registry allows you to host and manage Docker container images in your personal or organisation account on GitHub. One of the benefits is that permissions can be defined for the Docker image, independent of any repository. Thus, your repository could be private and your Docker image public.
-See GitHub documentation for more [information on permissions](https://docs.github.com/en/free-pro-team@latest/packages/managing-container-images-with-github-container-registry/configuring-access-control-and-visibility-for-container-images){:target="\_blank"}.
-
-You can use the GitHub Container Registry manually or automate the process by connecting the registry to your Codefresh pipeline.
-
-
-## Using the GitHub Container Registry
-
-You will need the following
-* A GitHub account with your GitHub username
-* A personal access token
-* The Docker image you want to push or use in your Codefresh pipeline
-
-### Create a personal token
-
-The username to the registry is the same as your GitHub username.
-For the password you need to [create a GitHub personal token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token){:target="\_blank"}.
-
-When creating the personal token, you need to select at least the following scopes:
-
-* `write:packages`
-* `read:packages`
-* `delete:packages`
-* `repo` if your repository is private; if public, do not select
-
-Once you create the token, note it down.
-
-You can make sure that your token is valid by using it as a password on your local workstation with the Docker command:
-
-```
-docker login ghcr.io --username github-account
-[Paste your GitHub token on this prompt]
-```
-
-**Important** Make sure that the URL is correct, otherwise, you will receive login errors later on. The github-account is your GitHub username.
-
-### Tag and push your Docker image
-
-After you are logged in, you can now tag and push your Docker image to the GitHub Container Registry. The first method is the manual setup with the Docker CLI, and the second one uses Codefresh to automate the process.
-
-Use the following command to tag your Docker image:
-
-```
-docker tag image-id ghcr.io/github-account/image-name:image-version
-```
-
-For example:
-
-```
-docker tag 5e369524eecb ghcr.io/anais-codefresh/react-example:1.0
-```
-
-You can find your image-id by running:
-
-```
-docker images
-```
-
-Once pushed, you will see the Docker image in the packages section of your repository.
-If you want, you can connect the Docker image to a repository [using the GitHub interface](https://docs.github.com/en/free-pro-team@latest/packages/managing-container-images-with-github-container-registry/connecting-a-repository-to-a-container-image) or by adding a label to your Dockerfile.
-
-```
-LABEL org.opencontainers.image.source https://github.com/OWNER/REPO
-```
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/github/manual-docker-push.png"
- url="/images/integrations/docker-registries/github/manual-docker-push.png"
- alt="Pushing a Docker image manually to GitHub packages"
- caption="Pushing a Docker image manually to GitHub packages"
- max-width="100%"
-%}
-
-Now that you have verified your token, we can connect the registry to Codefresh.
-
-## Set up GitHub Container Registry integration
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-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**.
-
-
-
-## Pushing Docker image to registry
-
-With the registry integration in place, you can now push a Docker image in any Codefresh pipeline, simply by mentioning the registry by name (`github-container-registry` in the example).
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/github/github-registry-pipeline.png"
- url="/images/integrations/docker-registries/github/github-registry-pipeline.png"
- alt="Codefresh pipeline for GitHub packages"
- caption="Codefresh pipeline for GitHub packages"
- max-width="100%"
-%}
-
-Here is the definition of the Codefresh pipeline.
-
- `codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-stages:
- - "clone"
- - "build"
-
-steps:
- clone:
- title: "Cloning repository"
- type: "git-clone"
- repo: "anais-codefresh/react-article-display"
- revision: "${{CF_BRANCH}}"
- git: "github"
- stage: "clone"
-
- build:
- title: "Building Docker image"
- type: "build"
- image_name: "react-article-display"
- working_directory: "${{clone}}"
- tags:
- - "${{CF_BRANCH_TAG_NORMALIZED}}"
- - "2.0.0"
- dockerfile: "Dockerfile"
- stage: "build"
- registry: "github-container-registry"
-{% endraw %}
-{% endhighlight %}
-
-Notice:
-
-* The `registry: github-container-registry` property in the `build` step, which is the name of the registry that you set-up in the previous step
-* The fact that we push multiple Docker tags in a single step; you can define all tags in the `build` step.
-
-After the pipeline has finished the Docker tags can also be seen in the GitHub packages section of the repository.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/github/multiple-docker-tags.png"
- url="/images/integrations/docker-registries/github/multiple-docker-tags.png"
- alt="Pushing different Docker tags"
- caption="Pushing different Docker tags"
- max-width="100%"
-%}
-
-You can now treat this registry like any other Codefresh registry.
-
-
-## Related articles
-[Docker registries for pipeline integrations]({{site.baseurl}}/docs/integrations/docker-registries)
-[Working with Docker Registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/)
-[Push step]({{site.baseurl}}/docs/pipelines/steps/push/)
-[Building and pushing an image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image/)
diff --git a/_docs/integrations/docker-registries/google-artifact-registry.md b/_docs/integrations/docker-registries/google-artifact-registry.md
deleted file mode 100644
index fd9e36620..000000000
--- a/_docs/integrations/docker-registries/google-artifact-registry.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: "Google Artifact Registry (GCAR)"
-description: "Use Google Artifact Registry with pipeline integrations"
-group: integrations
-sub_group: docker-registries
-toc: true
----
-
-Configure GCAR (Google Artifact Registry) as your Docker registry provider.
-
-## Set up GCAR integration
-
-**Before you begin**
-* [Generate a JSON key file](#generate-a-json-key-file)
-
-**How to**
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Docker Registries** and then click **Configure**.
-1. From the **Add Registry Provider** dropdown, select **Google Artifact Registry**.
-1. Define the following:
- * **Registry name**: A unique name for this configuration.
- * **Location**: Select the location.
- * **JSON Keyfile**: The content of the generated JSON key file.
-
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/google-artifact-registry-settings.png"
- url="/images/integrations/docker-registries/google-artifact-registry-settings.png"
- alt="Google Artifact Registry (GCAR) settings"
- caption="Google Artifact Registry (GCAR) settings"
- max-width="60%" %}
-
-{:start="5"}
-1. To verify the connection details, click **Test Connection**.
-1. To apply the changes, click **Save**.
-
-
-## Generate a JSON key file
-The JSON key file holds your credentials for a given [service account](https://cloud.google.com/compute/docs/access/service-accounts){:target="\_blank"}.
-To generate your key file follow these instructions:
-
-1. Go to your [Cloud Platform Console Credentials page](https://console.cloud.google.com/apis/credentials){:target="\_blank"}.
-1. Select the project that you're creating credentials for.
-1. To set up a new service account, click **Create credentials**, and then select Service account key.
-1. Choose the service account to use for the key.
-1. Choose to download the service account's public/private key as a JSON file.
-
-You can find the complete guide [here](https://support.google.com/cloud/answer/6158849#serviceaccounts){:target="\_blank"}.
-
-## Working with multiple projects
-
-If you have more than one repository/project in Google cloud, you can connect multiple GCR registries and define one as the "primary" for the `gcr.io` domain.
-
-This means that every time Codefresh needs to pull an image it will use that integration. If you wish to use another project for pulling images,
-you can use the `registry_context` property as described in [working with multiple registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/#working-with-multiple-registries-with-the-same-domain).
-
-
-## Related articles
-[Docker registries for pipeline integrations]({{site.baseurl}}/docs/integrations/docker-registries)
-[Working with Docker Registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/)
-[Push step]({{site.baseurl}}/docs/pipelines/steps/push/)
-[Building and pushing an image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image/)
\ No newline at end of file
diff --git a/_docs/integrations/docker-registries/google-container-registry.md b/_docs/integrations/docker-registries/google-container-registry.md
deleted file mode 100644
index e87548886..000000000
--- a/_docs/integrations/docker-registries/google-container-registry.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: "Google Container Registry (GCR)"
-description: "Use GCR with pipeline integrations"
-group: integrations
-sub_group: docker-registries
-redirect_from:
- - /docs/google-cloud-registry/
- - /docs/docker-registries/external-docker-registries/google-container-registry/
-toc: true
----
-Configure GCR (Google Container Registry) as your Docker registry provider.
-
-## Set up GCR integration
-
-**Before you begin**
-* [Generate a JSON key file](#generate-a-json-key-file)
-
-**How to**
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Docker Registries** and then click **Configure**.
-1. From the **Add Registry Provider** dropdown, select **Google Container Registry**.
-1. Define the following:
- * **Registry name**: A unique name for this configuration.
- * **Domain**: Select the domain.
- * **JSON Keyfile**: The content of the generated JSON key file.
-
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/google-gcr-registry-settings.png"
- url="/images/integrations/docker-registries/google-gcr-registry-settings.png"
- alt="Google Container Registry (GCR) settings"
- caption="Google Container Registry (GCR) settings"
- max-width="60%" %}`
-
-{:start="5"}
-1. To verify the connection details, click **Test Connection**.
-1. To apply the changes, click **Save**.
-
-
-## Generate a JSON key file
-The JSON key file holds your credentials for a given [service account](https://cloud.google.com/compute/docs/access/service-accounts){:target="\_blank"}.
-To generate your key file follow these instructions:
-
-1. Go to your [Cloud Platform Console Credentials page](https://console.cloud.google.com/apis/credentials){:target="\_blank"}.
-1. Select the project that you're creating credentials for.
-1. To set up a new service account, click **Create credentials**, and then select Service account key.
-1. Choose the service account to use for the key.
-1. Choose to download the service account's public/private key as a JSON file.
-
-You can find the complete guide [here](https://support.google.com/cloud/answer/6158849#serviceaccounts){:target="\_blank"}.
-
-## Working with multiple projects
-
-If you have more than one repository/project in Google cloud, you can connect multiple GCR registries and define one as the "primary" for the `gcr.io` domain.
-
-This means that every time Codefresh needs to pull an image it will use that integration. If you wish to use another project for pulling images,
-you can use the `registry_context` property as described in [working with multiple registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/#working-with-multiple-registries-with-the-same-domain).
-
-
-## Related articles
-[Docker registries for pipeline integrations]({{site.baseurl}}/docs/integrations/docker-registries)
-[Working with Docker Registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/)
-[Push step]({{site.baseurl}}/docs/pipelines/steps/push/)
-[Building and pushing an image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image/)
\ No newline at end of file
diff --git a/_docs/integrations/docker-registries/other-registries.md b/_docs/integrations/docker-registries/other-registries.md
deleted file mode 100644
index 785cba530..000000000
--- a/_docs/integrations/docker-registries/other-registries.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: "Other Registries"
-description: "Connect any Docker registry for pipeline integration"
-group: integrations
-sub_group: docker-registries
-redirect_from:
- - /docs/other-registries/
- - /docs/docker-registries/external-docker-registries/other-registries/
-toc: true
----
-Codefresh provides an option to configure a Docker Registry not in the list of Docker registry providers.
-Use this option for any cloud or hosted registry that follows the V2 Docker registry protocol.
-
-Some examples of self-hosted registries are:
-* The [official registry](https://github.com/docker/distribution){:target="\_blank"} by Docker
-* [Nexus](https://www.sonatype.com/nexus-repository-sonatype){:target="\_blank"} by Sonatype
-* [Harbor](https://goharbor.io/){:target="\_blank"} by VMware
-* [Portus](http://port.us.org/){:target="\_blank"} by Suse
-* [Container Registry](https://www.alibabacloud.com/product/container-registry){:target="\_blank"} by Alibaba
-* [Openshift registry](https://www.openshift.com/){:target="\_blank"} by Redhat
-* [Kraken](https://github.com/uber/kraken){:target="\_blank"} by Uber
-* [Proget](https://inedo.com/proget){:target="\_blank"} by Inedo
-
-## Set up Other Registry integration
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-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 registry username..
- * **Password**: Your registry encrypted password.
- * **Domain**: Your registry address, `mydomain.com`.
-
-{% include
- image.html
- lightbox="true"
- file="/images/integrations/docker-registries/add-other-docker-registry.png"
- url="/images/integrations/docker-registries/add-other-docker-registry.png"
- alt="Other Registry settings"
- caption="Other Registry settings"
- max-width="60%" %}
-
-{:start="5"}
-1. To verify the connection details, click **Test Connection**.
-1. To apply the changes, click **Save**.
-
-
-## Heroku Registries
-
-To authenticate to the Heroku registry, instead of using your password, you will need to use the authorization token. You can find that by running:
-
-{% highlight bash %}
-heroku auth:token
-{% endhighlight %}
-
-## Related articles
-[Docker registries for pipeline integrations]({{site.baseurl}}/docs/integrations/docker-registries)
-[Working with Docker Registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/)
-[Push step]({{site.baseurl}}/docs/pipelines/steps/push/)
-[Building and pushing an image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image/)
diff --git a/_docs/integrations/docker-registries/quay-io.md b/_docs/integrations/docker-registries/quay-io.md
deleted file mode 100644
index fb2912951..000000000
--- a/_docs/integrations/docker-registries/quay-io.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: "Quay.io"
-description: "Use Quay registries with pipeline integration"
-group: integrations
-sub_group: docker-registries
-redirect_from:
- - /docs/quayio/
- - /docs/docker-registries/external-docker-registries/quay-io/
-toc: true
----
-
-Configure Quay as your Docker registry provider.
-
-## Set up Quay integration
-
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-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 `Quay.io` username.
- * **Password**: Your `Quay.io` encrypted password.
- * **Domain**: `quay.io`.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/add-quay-registry.png"
- url="/images/integrations/docker-registries/add-quay-registry.png"
- alt="Quay Docker registry settings"
- caption="Quay Docker registry settings"
- max-width="60%" %}`
-
-{:start="5"}
-1. To verify the connection details, click **Test Connection**.
-1. To apply the changes, click **Save**.
-
-
-## Related articles
-[Docker registries for pipeline integrations]({{site.baseurl}}/docs/integrations/docker-registries)
-[Working with Docker Registries]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/)
-[Push step]({{site.baseurl}}/docs/pipelines/steps/push/)
-[Building and pushing an image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image/)
\ No newline at end of file
diff --git a/_docs/integrations/gcloud-builder.md b/_docs/integrations/gcloud-builder.md
deleted file mode 100644
index 06064a175..000000000
--- a/_docs/integrations/gcloud-builder.md
+++ /dev/null
@@ -1,312 +0,0 @@
----
-title: "Google Cloud Builder"
-description: "Use the Google Cloud builder to create Docker images in Codefresh pipelines"
-group: integrations
-
-toc: true
----
-
-Google Cloud builder is an online service that allows you to build Docker images using the Google infrastructure and also push them to the Google Cloud registry.
-
-You can also use Cloud builder in a Codefresh pipeline in place of the [normal build step]({{site.baseurl}}/docs/pipelines/steps/build/). This way you can take advantage of the Cloud builder in your Codefresh pipelines, but still push to other registries that are connected to Codefresh (and not just GCR).
-
-
-## Prerequisites
-
-To use the Cloud builder service in your Codefresh pipeline you need:
-
-1. A free Docker Hub account and [Docker Hub connected to Codefresh]({{site.baseurl}}/docs/integrations/docker-registries/docker-hub/).
-1. A Google Cloud subscription and a [service account for the Cloud builder service](https://cloud.google.com/cloud-build/docs/securing-builds/set-service-account-permissions){:target="\_blank"}.
-
-Save your service account as a JSON file, and make sure you select at least the [following roles](https://cloud.google.com/container-registry/docs/access-control){:target="\_blank"}:
-
-* Cloud storage Admin
-* Storage Admin
-* Storage Object Viewer
-* Storage Object Creator
-
-You will use this JSON file either by integrating a [Google Docker registry]({{site.baseurl}}/docs/integrations/docker-registries/google-container-registry/) in Codefresh, or directly in a pipeline as we will see later.
-
-## How it works
-
-The Google Cloud builder integration/authentication can be used in the following ways:
-
-1. Authentication is retrieved from the GCR integration in your Codefresh account, and the resulting Docker image:
- * Is also be pushed to GCR.
- * Is pushed to any other [external registry connected to Codefresh]({{site.baseurl}}/docs/integrations/docker-registries/).
-1. Authentication is defined in the pipeline itself, and the resulting image can be pushed to any registry connected to Codefresh
-
-In the first case, you will define the service account file centrally in the GCR integration screen, and then any pipeline can authenticate to Google Cloud builder without any further configuration.
-
-{%
- include image.html
- lightbox="true"
- file="/images/integrations/docker-registries/add-gcr-registry.png"
- url="/images/integrations/docker-registries/add-gcr-registry.png"
- alt="Using the JSON service account in Codefresh"
- caption="Using the JSON service account in Codefresh"
- max-width="50%"
-%}
-
-
-
-## Using Google Cloud builder in a Codefresh pipeline
-
-In the most straightforward scenario, you want to create a Docker image with Google Cloud builder and also push to GCR.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/gcloud-builder/build-push-gcr.png"
-url="/images/integrations/gcloud-builder/build-push-gcr.png"
-max-width="90%"
-caption="Using Google cloud builder in Codefresh"
-alt="Using Google cloud builder in Codefresh"
-%}
-
-Here is the full pipeline:
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- main_clone:
- title: Cloning main repository...
- type: git-clone
- repo: 'codefresh-contrib/golang-sample-app'
- revision: master
- git: github
- MyAppDockerImage:
- title: Building Docker Image
- type: build
- image_name: my-golang-image
- working_directory: ./
- tag: slim
- registry: gcr
- dockerfile: Dockerfile.multistage
- provider:
- type: gcb
- arguments:
- cache:
- repo: "my-kaniko-cache"
- ttl: "10h"
-{% endraw %}
-{% endhighlight %}
-
-
-The `build` step of the pipeline has an extra property, `provider`, that specifies we want to use Cloud builder instead of the Codefresh native build step.
-
-The only required argument is the repository to be used for [Kaniko caching](https://cloud.google.com/cloud-build/docs/kaniko-cache){:target="\_blank"} and speed up subsequent builds.
-
->Note that the Kaniko repo should NOT be the same as the repository used for the image itself.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/gcloud-builder/image-dashboard.png"
-url="/images/integrations/gcloud-builder/image-dashboard.png"
-max-width="70%"
-caption="Inspecting an image from Google Cloud build"
-alt="Inspecting an image from Google Cloud build"
-%}
-
-After runing the pipeline, you will see your Docker image in the [Image dashboard]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/).
-
-The Docker image is also visible in the Google Cloud Console view of your registry.
-
-### Pushing to a different registry
-
-Even though the Cloud builder pipeline step authentication is fetched from the GCR configuration, you don't have to push to GCR.
-To push the Docker image to another connected registry, simply change the `registry` property in the build step:
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- main_clone:
- title: Cloning main repository...
- type: git-clone
- repo: 'codefresh-contrib/golang-sample-app'
- revision: master
- git: github
- MyAppDockerImage:
- title: Building Docker Image
- type: build
- image_name: my-golang-image
- working_directory: ./
- tag: slim
- registry: azure
- dockerfile: Dockerfile.multistage
- provider:
- type: gcb
- arguments:
- cache:
- repo: "my-kaniko-cache"
- ttl: "10h"
-{% endraw %}
-{% endhighlight %}
-
-This pipeline pushes the Docker image created to another registry that is identified by [azure]({{site.baseurl}}/docs/integrations/docker-registries/azure-docker-registry/).
-
-### Authenticating to Cloud Builder in the pipeline
-
-If you don't want to reuse the Registry integration provided by Codefresh for easy authentication to Google Cloud builder, you can also use your service account JSON file directly in the pipeline.
-
-You can pass the contents of the JSON file as a variable in the pipeline and the build step will use it to authenticate.
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- main_clone:
- title: Cloning main repository...
- type: git-clone
- repo: 'codefresh-contrib/golang-sample-app'
- revision: master
- git: github
- MyAppDockerImage:
- title: Building Docker Image
- type: build
- image_name: my-golang-image
- working_directory: ./
- tag: slim
- registry: azure
- dockerfile: Dockerfile.multistage
- provider:
- type: gcb
- arguments:
- google_app_creds: '${{G_CREDS_B64}}'
- cache:
- repo: "my-kaniko-cache"
- ttl: "10h"
-{% endraw %}
-{% endhighlight %}
-
-Here the pipeline will try to authenticate to Google Cloud builder using the contents of the `google_app_creds` property.
-
-The value of this property can be a pipeline variable, or project variable or any other standard Codefresh method such as [shared configuration]({{site.baseurl}}/docs/pipelines/shared-configuration/).
-
-You need to escape the contents of the service account before you use in the pipeline with either of these commands on your local workstation:
-
-* `cat _json_key_file | base64 | tr -d ‘\n’`
-* `cat _json_key_file | base64 -w 0`
-
-### Using extra properties for Google Cloud builder
-
-The build step has several other properties can be used to fine-tune the Google Cloud builder behavior.
-
-Here is the full syntax:
-
-
-{% highlight yaml %}
-{% raw %}
-
-step_name:
- type: build
- title: Step Title
- description: Free text description
- working_directory: ${{clone_step_name}}
- dockerfile: path/to/Dockerfile
- image_name: owner/new-image-name
- tag: develop
- build_arguments:
- - key=value
- target: stage1
- no_cache: false
- no_cf_cache: false
- fail_fast: false
- registry: my-registry
- provider:
- type: gcb
- arguments:
- google_app_creds: '${{G_CREDS_B64}}'
- cache:
- repo: "repositoryname/kaniko-cache"
- ttl: "10h"
- timeout: "600s"
- machineType: 'N1_HIGHCPU_8'
- logsBucket: "gs://your-project_cloudbuild/logs"
- diskSizeGb: 10
-
-{% endraw %}
-{% endhighlight %}
-
-The extra fields are:
-
-{: .table .table-bordered .table-hover}
-| Field | Description | Required/Optional/Default |
-| ------------------------------------------ | ------------------------------------------------------ | ------------------------- |
-| `type` | Defines which provider to use (currently `gcb` and `cf` types are available). It uses `cf` provider by default and the whole provider section can be omitted for a regular build step. | Required |
-| `arguments` | Parameters for Google Cloud builder | Required |
-| `google_app_creds` | base64 encoded string of the [Google app credentials JSON](https://cloud.google.com/docs/authentication/production){:target="\_blank"}. By default, taken from the existing GCR integration. | Optional |
-| `cache` | The list of Kaniko cache parameters | Required |
-| `repo` | Docker repository path for the Kaniko cache | Required |
-| `ttl` | Kaniko cache retention. Default value is `336h` | Optional |
-| `timeout` | This field is directly translated into the corresponding field of the [GCB manifest file](https://cloud.google.com/cloud-build/docs/build-config#structure_of_a_build_config_file){:target="\_blank"}. Default is `10m` | Optional |
-| `machineType` | This field is directly translated into the corresponding field of the [GCB manifest file](https://cloud.google.com/cloud-build/docs/build-config#structure_of_a_build_config_file){:target="\_blank"} | Optional |
-| `diskSizeGb` | This field is directly translated into the corresponding field of the [GCB manifest file](https://cloud.google.com/cloud-build/docs/build-config#structure_of_a_build_config_file) {:target="\_blank"} | Optional |
-| `logsBucket` | This field is directly translated into the corresponding field of the [GCB manifest file](https://cloud.google.com/cloud-build/docs/build-config#structure_of_a_build_config_file){:target="\_blank"} | Optional |
-
-
-
-
-The step also accepts all the field of the [standard build step]({{site.baseurl}}/docs/pipelines/steps/build/) but notice that the following fields are not supported in the current implementation and simply ignored by the GCB step logic:
-
-* `no_cache`
-* All the [buildkit]({{site.baseurl}}/docs/pipelines/steps/build/#buildkit-support) related fields
-
-Here is an example that uses all possible fields:
-
- `YAML`
-{% highlight yaml %}
-{% raw %}
-GCBuild:
- type: build
- image_name: '${{IMAGE_NAME}}'
- working_directory: ${{CloneStep}}
- tag: your-tag1
- tags:
- - your-tag2
- - your-tag3
- target: 'test'
- no_cf_cache: false
- metadata:
- set:
- - qa: pending
- build_arguments:
- - WORD=Hello
- registry: 'reg-integration-name'
- dockerfile:
- content: |-
- FROM alpine as test
- RUN apk add skopeo
- ARG WORD
- RUN echo $WORD
- provider:
- type: gcb
- arguments:
- google_app_creds: '${{G_CREDS_B64}}'
- cache:
- repo: "repositoryname/kaniko-cache"
- ttl: "10h"
- timeout: "600s"
- machineType: 'N1_HIGHCPU_8'
- logsBucket: "gs://your-project_cloudbuild/logs"
- diskSizeGb: 10
-{% endraw %}
-{% endhighlight %}
-
-
-
-
-
-
-## Related articles
-[Creating pipelines]({{site.baseurl}}/docs/pipelines/pipelines/)
-[Pipeline steps]({{site.baseurl}}/docs/pipelines/steps/)
-[Google Registry integration]({{site.baseurl}}/docs/integrations/docker-registries/google-container-registry/)
-[Build and push an image]({{site.baseurl}}/docs/example-catalog/ci-examples/build-and-push-an-image/)
-
-
-
diff --git a/_docs/integrations/git-providers.md b/_docs/integrations/git-providers.md
deleted file mode 100644
index 496a7d631..000000000
--- a/_docs/integrations/git-providers.md
+++ /dev/null
@@ -1,400 +0,0 @@
----
-title: "Git Providers"
-description: "Easily check out code in Codefresh CI pipelines"
-group: integrations
-redirect_from:
- - /docs/git-provider/
- - /docs/integrations/
- - /docs/integrations/git-provider/
- - /docs/integrations/git-providers/integrating-codefresh-with-multiple-git-providers/
- - /docs/integrations/git-providers/configure-a-bitbucket-server-webhook/
-toc: true
----
-Creating an account with Codefresh using one of the supported Git providers (GitHub, GitLab, Bitbucket) gives you immediate access to the repositories of the linked provider.
-
-You can add repositories from the other Git providers regardless of the one that you used for sign-up. For example, you can use GitLab to sign up with Codefresh, but still build repositories that exist in Bitbucket.
-
-You can even add multiple accounts from each Git provider (if you have more than one) allowing you to use Codefresh as a central CI/CD solution that can access all your Git repositories regardless of the backing Git provider.
-
-Currently Codefresh supports:
-
-* GitHub Cloud
-* GitHub On-premises
-* Bitbucket
-* GitLab Cloud
-* GitLab On-premises
-* Azure DevOps Git
-* Atlassian Stash (old version of Bibucket Server)
-* Bitbucket Server (new version of Stash)
-
-Atlassian Stash/Bitbucket server as well as the on-premises version of GitLab and GitHub are only available to Codefresh enterprise customers.
-
-## Adding more Git providers to your Codefresh Account
-
-By default, you have direct access to Git repositories that exist in the Git provider that you used while signing up for Codefresh. You can easily create Codefresh projects that checkout code from that Git provider without any extra configurations.
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Git** and then click **Configure**.
-1. From the **Add Git Provider** drop-down, select the Git provider to add.
-1. Define the settings as required.
-
-
-{% include image.html lightbox="true" file="/images/integrations/codefresh-integrations.png" url="/images/integrations/codefresh-integrations.png" alt="Codefresh Account Integration" max-width="80%" %}
-
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/git/git-provider-menu.png"
-url="/images/integrations/git/git-provider-menu.png"
-max-width="60%"
-caption="Add Git provider"
-alt="Add Git provider"
-%}
-
-For each Git provider you need to set up authentication, for Codefresh to get access to the public and private repositories of the respective provider.
-
-The easiest way to set up authentication is with OAuth2 if supported by the Git provider. You only need to name your integration
-and Codefresh will automatically set it up once you accept the permissions required. If you have problems with OAuth2
-or the provider does not support it, you need to manually create credentials by yourself in your git account and then enter them into Codefresh.
-
-In the case of an on-premises Git provider you also need to fill in the URL where the provider is installed.
-
-## SSH Keys
-
-> Please contact support to enable this feature.
-
-You have the ability to specify whether you want to clone via HTTPS or SSH.
-
-1. Select the required Git integration, and click **Edit**.
-1. Expand **Advanced Options** and toggle to **HTTPS** or **SSH**.
-1. For SSH, paste your **raw**, private key into the SSH Key text box and click **Save**.
-
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/git/github-ssh.png"
-url="/images/integrations/git/github-ssh.png"
-max-width="40%"
-caption="Git clone via SSH"
-alt="Git clone via SSH"
-%}
-
-
-For more information on generating SSH keys and adding your public key to your VCS provider, see its official documentation:
-
-* [GitHub documentation](https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent){:target="\_blank"}
-* [GitLab documentation](https://docs.gitlab.com/ee/ssh/#generating-a-new-ssh-key-pair){:target="\_blank"}
-* [Bitbucket documentation](https://confluence.atlassian.com/bitbucket/set-up-an-ssh-key-728138079.html){:target="\_blank"}
-* [Azure documentation](https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops&tabs=current-page){:target="\_blank"}
-
-## GitHub
-
-For the **OAuth2 method** you only need to decide on public/private repository access, enter a name for your connection and click *Save*. Then accept the permissions dialog. This is the easiest and recommended way to integrate GitHub. Notice that if
-you used GitHub when you [created your Codefresh account]({{site.baseurl}}/docs/administration/create-a-codefresh-account/), this integration is already setup for you.
-
-For the **Access Token** method you need
-
-* A friendly name for the Git context (it can be anything you want)
-* An access token
-
->Note that the access token for an organization should be created by somebody who has **Owner** role and not just **Member** role.
-
-To create an [access token](https://github.com/settings/tokens){:target="\_blank"}, go to your GitHub *settings* and select the *Developer settings* option from the left
-sidebar. Then select *Personal access tokens* from the left menu.
-For more information see the [GitHub Documentation page](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/){:target="_blank"}.
-
-The "token description" you enter in your GitHub account in order to create the token is completely arbitrary (use "Codefresh" for an example). Once you have the token, paste it in the Codefresh UI and click *Test connection*. If everything is OK, you can
-now save the Git integration.
-
-The minimum permissions for the token are:
-
-* `repo.*`
-* `admin:repo_hook.*`
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/git/github-required-scopes.png"
-url="/images/integrations/git/github-required-scopes.png"
-max-width="40%"
-caption="GitHub permissions"
-alt="GitHub permissions"
-%}
-
-For GitHub on-premises you also need to provide the URL of the GitHub server in your organization. If enabled in your account you can setup [Pipeline definition restrictions]({{site.baseurl}}/docs/administration/access-control/#pipeline-definition-restrictions) by expanding the *YAML Options* segment.
-
-### Using External Secrets for GitHub Token
-
-If your GitHub installation is behind your firewall, you can also
-use any [external secrets that you have defined]({{site.baseurl}}/docs/integrations/secret-storage/) (such as Kubernetes secrets) as values by entering a secrets value
-with the same syntax [shown in pipelines]({{site.baseurl}}/docs/pipelines/secrets-store/).
-
-For example if you already have a `token` on a resource call `git-credentials` you can put in the token field the expression {% raw %}`${{secrets.git-credentials.token}}`{% endraw %}.
-
-### Level of access
-
-When the admin clicks off "Allow access to all users" another toggle appears; “Allow these credentials to be shared within a pipeline for cloning a repository“
-
-1. When its turned on, the user that runs a pipeline will be able to clone the repo.
-2. When its turned off, the user that runs a pipeline cannot use this integration.
-In both cases, the user cannot decrypt the token used in Git integration with CLI or API.
-
->Important note: The credentials will be shared only to clone repos using an official git-clone step.
-
-## GitHub-App
-
-An alternative way to authenticate with Github is via the App mechanism.
-
-### Codefresh Github App
-
-> Note: The Codefresh App has READ permissions to issues, metadata, and pull requests, and READ and WRITE permissions to code, commit statuses, and repository hooks. If you need additional permission for your integration, use the Manual Creation steps.
-
-1. In the Codefresh UI, follow the steps to [add a new Git provider](#adding-more-git-providers-to-your-codefresh-account).
-1. From the list of Git providers, select **Codefresh Github App**.
-1. Select Setup GitHub App integration via [**GitHub Marketplace**](https://github.com/apps/codefresh-githubapp){:target=\_blank"}.
-1. Follow the instructions on GitHub to install the application.
- Once completed, the fields are automatically populated with the information.
-1. To verify your integration, click **Test connection**.
-1. To apply your changes, click **Save**.
-
-### Manual creation
-
-**Step 1** - Log in your GitHub account and visit [https://github.com/settings/apps](https://github.com/settings/apps){:target="\_blank"}. Click the *New GitHub App* button.
-
-**Step 2** - On the New app screen
-
-1. Give an arbitrary name to your app (e.g. codefresh-integration)
-1. Fill *Homepage URL* with `http://www.codefresh.io`
-1. Uncheck the *Active* checkbox under the Webhook section
-1. In the *Repository permissions* section give the minimum of
- * **Contents** - read
- * **Issues** - read
- * **Metadata** - read
- * **Pull requests** - read
- * **Webhooks** - read, write
- * **Commit statuses** - read, write
- * **Email addresses** - read
-1. Click the *Create GitHub app* button.
-
-**Step 3** - In the next screen
-
-1. Note down the *App ID* number under the *About* section
-1. Click the *Generate a private key* button and save the file locally
-
-**Step 4** - Click the *Install App* item from the left sidebar menu and then click the *Install* button next to your codefresh app
-
-**Step 5** - Accept the permissions and in the next screen define the repositories that you need Codefresh to access
-
-Also from the URL of the browser note the ending number (this is your installation id). For example if the URL is `https://github.com/settings/installations/10042353` then your installation number is 10042353
-
-**Step 6** - Visit [https://g.codefresh.io/account-admin/account-conf/integration/git](https://g.codefresh.io/account-admin/account-conf/integration/git) in Codefresh, add a new Git provider and choose *Github App* from the drop-down menu
-
-For the required fields use:
-
-* **Installation id** - found in step 5
-* **App ID** - found in step 3
-* **Private key** - the contents of the file your created in step 3 (but convert it to base64 first)
-
-Click *Test connection* to verify your integration and apply your changes with the *Save* button. If enabled in your account you can setup [Pipeline definition restrictions]({{site.baseurl}}/docs/administration/access-control/#pipeline-definition-restrictions) by expanding the *YAML Options* segment.
-
-## GitLab
-
-For the **OAuth2 method** you only need to enable private repository access, enter a name for your connection and click *Save*. Then accept the permissions dialog. This is the easiest and recommended way to integrate GitLab. Notice that if
-you used GitLab when you [created your Codefresh account]({{site.baseurl}}/docs/administration/create-a-codefresh-account/), this integration is already setup for you.
-
-For the **Access Key** method you need:
-
-* A friendly name for the Git context (it can be anything you want.)
-* An access token/key
-
-To create an access token, go to your GitLab *settings* and select the *Access tokens* options.
-For more information see the [GitLab Documentation page](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html){:target="_blank"}
-
-The name you enter in order to create the token in the GitLab UI is completely arbitrary (use "Codefresh" for an example)
-
-Once you have the token, paste it in the Codefresh UI and click *Test connection*. If everything is OK can
-now save the Git integration.
-
-For GitLab on-premises you also need to provide the URL of the GitLab server in your organization. If enabled in your account you can setup [Pipeline definition restrictions]({{site.baseurl}}/docs/administration/access-control/#pipeline-definition-restrictions) by expanding the *YAML Options* segment.
-
-### Using External Secrets for GitLab Token
-
-If your GitLab installation is behind your firewall, you can also
-use any [external secrets that you have defined]({{site.baseurl}}/docs/integrations/secret-storage/) (such as Kubernetes secrets) as values by entering a secrets value
-with the same syntax [shown in pipelines]({{site.baseurl}}/docs/pipelines/secrets-store/).
-
-For example if you already have a `token` on a resource call `git-credentials` you can put in the token field the expression {% raw %}`${{secrets.git-credentials@token}}`{% endraw %}.
-
-## Bitbucket
-
-For the **OAuth2 method** you only need to enter a name for your connection and click *Save*. Then accept the permissions dialog. This is the easiest and recommended way to integrate Bitbucket. Notice that if
-you used Bitbucket when you [created your Codefresh account]({{site.baseurl}}/docs/administration/create-a-codefresh-account/), this integration is already setup for you.
-
-For the **Application Password** method you need:
-
-* A friendly name for the Git context (It can be anything you want.)
-* The name of your Bitbucket account/email address
-* A Bitbucket application password
-
-To create an application password, go to your *Bitbucket settings* and select *App passwords* from the sidebar.
-Click the button to create one. For more information see the [Bitbucket Documentation page](https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html){:target="_blank"}.
-
-The minimum permissions needed by Codefresh are shown below.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/git/bitbucket-permissions.png"
-url="/images/integrations/git/bitbucket-permissions.png"
-max-width="40%"
-caption="Bitbucket permissions"
-alt="Bitbucket permissions"
-%}
-
-The "label" you enter in your Bitbucket account in order to create the application password is completely arbitrary (use "Codefresh" for an example). Once you have the token, paste it in the Codefresh UI and click *Test connection*. If everything is OK you can
-now save the Git integration.
-
- If enabled in your account you can setup [Pipeline definition restrictions]({{site.baseurl}}/docs/administration/access-control/#pipeline-definition-restrictions) by expanding the *YAML Options* segment.
-
-## Azure DevOps
-
-For Azure you need to create a [personal access token](https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/pats?view=azure-devops){:target="\_blank"}. Sign in your Azure DevOps account and click on your profile icon on the top right corner. Then select *Security*:
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/git/azure-devops-security.png"
-url="/images/integrations/git/azure-devops-security.png"
-max-width="60%"
-caption="Azure DevOps Security"
-alt="Azure DevOps Security"
-%}
-
-On the screen that will appear click the *New token* Button. Enter an arbitrary name for the token and select the correct
-**Organization** from the drop-down menu. Remember your organization name as you will use it later in the Codefresh side.
-Select an expiration date for your token
-
-> At the time of writing Azure DevOps does not have the option to create a token that is valid for ever. Choose a large
-time period and make sure that you have a policy in place for renewing your tokens so that Codefresh can continue to read your Git repo.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/git/azure-devops-token.png"
-url="/images/integrations/git/azure-devops-token.png"
-max-width="60%"
-caption="Azure DevOps Token"
-alt="Azure DevOps Token"
-%}
-
-From the *Scope* section choose the option *Show all scopes* and choose the following:
-
-* Code - read
-* Code - status
-* Graph - read
-* Project and Team - read
-* User profile - read
-
-Finally click the *Create* button and copy your token (it will never be shown again).
-
-Then at the Codefresh configuration enter your organization name and your token.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/git/azure-devops-verify.png"
-url="/images/integrations/git/azure-devops-verify.png"
-max-width="40%"
-caption="Codefresh integration with Azure Devops"
-alt="Codefresh integration with Azure Devops"
-%}
-
-Click on *Test connection* to verify your settings and finally click save. Now you can [create pipelines]({{site.baseurl}}/docs/pipeline /pipelines/)
-that use Azure DevOps Git repos.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/git/azure-devops-connected.png"
-url="/images/integrations/git/azure-devops-connected.png"
-max-width="40%"
-caption="Codefresh integration with Azure Devops"
-alt="Codefresh integration with Azure Devops"
-%}
-
-Your Azure DevOps repositories will be available when [creating a new project in Codefresh]({{site.baseurl}}/docs/getting-started/create-a-basic-pipeline/).
-
- If enabled in your account you can setup [Pipeline definition restrictions]({{site.baseurl}}/docs/administration/access-control/#pipeline-definition-restrictions) by expanding the *YAML Options* segment.
-
-## Atlassian Stash
-
-Atlassian stash is only available for an on-premises connection. Follow the same instructions as Bitbucket.
-You also need to provide the URL of the Stash server in your organization.
-
-This option is only for Atlassian stash until version 3.10 which is the old version. It was then renamed
-to Bitbucket server.
-
-## Bitbucket Server
-
-Bitbucket server is the new and current name of Atlassian Stash. Again, it is only available for an on-premises
-installation.
-
-Codefresh supports Bitbucket server versions 5.4.0+ since those expose the API used by the integration.
-
-### Using External Secrets for BitBucket Token
-
-If your Bitbucket Server installation is behind your firewall, you can also
-use any [external secrets that you have defined]({{site.baseurl}}/docs/integrations/secret-storage/) (such as Kubernetes secrets) as values by entering a secrets value
-with the same syntax [shown in pipelines]({{site.baseurl}}/docs/pipelines/secrets-store/).
-
-For example if you already have a `token` on a resource call `git-credentials` you can put in the token field the expression {% raw %}`${{secrets.git-credentials@token}}`{% endraw %}.
-
-## Using your Git provider
-
-Once your provider is active, you can add a new project into Codefresh and then during the [repository selection screen]({{site.baseurl}}/docs/getting-started/create-a-basic-pipeline/) you will have access to the additional Git providers.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/git/select-git.png"
-url="/images/integrations/git/select-git.png"
-max-width="60%"
-caption="Select Git provider"
-alt="Select Git provider"
-%}
-
->Notice that for all supported Git providers Codefresh will automatically create all the webhooks needed for
-triggering pipelines when a commit (or another event) happens.
-
-After adding the repository Codefresh will behave exactly the same, regardless of the selected Git provider.
-You will be able to [create pipelines]({{site.baseurl}}/docs/pipelines/pipelines/) for different Git providers in exactly the same manner.
-
-## ABAC for Git Contexts
-
-**Account Level:** Pro and above
-
-> At this time, you will need to reach out to support to enable ABAC for Git Context and [Pipeline Execution Context]({{site.baseurl}}/docs/administration/pipeline-execution-context/).
-
-ABAC for Git Context gives the ability to restrict using and handling of Git Contexts. We use tags on the git context to limit Teams and Execution Contexts for access control. There are four actions controlled by ABAC: Creating, Updating, Deleting, and Using Git Contexts.
-
-The Using means the following use cases:
-
-* Creating trigger
-* Getting YAML from a repository
-* Using the Git Context in a pipeline (git clone step etc.) via Execution Context.
-
-You will get an error of Permission Denied or Forbidden to a Git Context that you do not have the correct permissions for that action.
-
-### Tagging the Git Context
-
-1. Navigate to Account Settings > Integrations > Configure for Git.
-1. Hovering over the integration name (Git Context), you will see "Edit Tags" just before the edit symbol.
-1. Select "Edit Tags," and you can add and remove tags.
-1. Click Save when done.
-
-### Setting the Permissions
-
-1. Navigate to Account Settings > Permissions > Teams or Execution Context.
-1. Scroll to Git Contexts.
-1. Here, you can set [permissions]({{site.baseurl}}/docs/administration/access-control/#creating-a-security-policy) similar to other ABAC rules for Teams or Execution Context to Create or Use, Update, and Delete actions.
-1. Click Add Rule when done.
-
-## Related articles
-[Creating pipelines]({{site.baseurl}}/docs/pipelines/pipelines/)
-[Git triggers]({{site.baseurl}}/docs/pipelines/triggers/git-triggers/)
-[Git clone step]({{site.baseurl}}/docs/pipelines/steps/git-clone/)
-[Checking out source code]({{site.baseurl}}/docs/example-catalog/ci-examples/git-checkout/)
-
diff --git a/_docs/integrations/github-actions.md b/_docs/integrations/github-actions.md
deleted file mode 100644
index fce8587be..000000000
--- a/_docs/integrations/github-actions.md
+++ /dev/null
@@ -1,161 +0,0 @@
----
-title: "GitHub Actions pipeline integration"
-description: "Using the GitHub action converter in Codefresh pipelines"
-group: integrations
-
-toc: true
----
-
-[GitHub Actions](https://github.com/features/actions){:target="\_blank"} are a set of reusable workflows that can be composed to create automation sequences for GitHub projects. GitHub Actions are supported natively with GitHub, but you can also use them in Codefresh pipelines by automatically converting them to [Codefresh pipeline steps]({{site.baseurl}}/docs/pipelines/steps/).
-
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/github-actions/github-actions-marketplace.png"
-url="/images/integrations/github-actions/github-actions-marketplace.png"
-max-width="60%"
-caption="GitHub Actions Marketplace"
-alt="GitHub Actions Marketplace"
-%}
-
-By using GitHub Actions in your marketplace, you have the following benefits:
-* Access to a vast catalog of reusable pipeline components
-* Ability to use GitHub Actions with any provider, as Codefresh supports [Bitbucket, GitLab, Azure Git etc.]({{site.baseurl}}/docs/integrations/git-providers/)
-
-
-## Prerequisites
-
-To use a GitHub Action in Codefresh you need to make sure that the following apply:
-
-1. The [GitHub action](https://github.com/marketplace?type=actions){:target="\_blank"} you have selected is Docker-based and has a self-contained and valid Dockerfile
-1. You have read the documentation of the GitHub Action and know what arguments/input it requires
-
-
->Tip:
- Since GitHub Actions are created by the community, it is your responsibility to filter and curate any GitHub Action you wish to use in Codefresh pipelines. If for example you use a GitHub Action that is then removed by its owner, the Codefresh pipeline that uses it will break as well.
- We suggest you first use a GitHub Action in a GitHub workflow in order to understand its requirements, before you use it in a Codefresh pipeline.
-
-## How it works
-
-Codefresh offers a `github-action-to-codefresh` step converter.
-This converter has two functions:
-
-1. When you create your pipeline it will analyze the GitHub Action and find what arguments it requires.
- You must then define the values needed by yourself.
-1. When the pipeline runs, it automatically finds the Dockerfile of the GitHub Action, builds it, and makes available the Docker image in any subsequent step in the same pipeline.
-
-All this process is automatic. You just need to make sure that all arguments/inputs of the GitHub Action are provided using [pipeline variables]({{site.baseurl}}/docs/pipelines/pipelines/#creating-new-pipelines), [shared configuration]({{site.baseurl}}/docs/pipeplines/pipeline/shared-configuration/), or any other standard mechanism you already use in Codefresh.
-
-## Inserting a GitHub Action in Codefresh pipeline
-
-1. [Create a Codefresh pipeline]({{site.baseurl}}/docs/pipelines/pipelines/#creating-new-pipelines) by visiting the pipeline editor.
-1. In the **Steps** tab on the right-hand side, search for `actions` and select **GitHub Actions**.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/github-actions/github-action-step-browser.png"
-url="/images/integrations/github-actions/github-action-step-browser.png"
-max-width="50%"
-caption="Step browser"
-alt="Step browser"
-%}
-
-{:start="3"}
-1. Scroll down to find the GitHub Action that you want to use or enter a keyword to filter the list.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/github-actions/select-github-action.png"
-url="/images/integrations/github-actions/select-github-action.png"
-max-width="70%"
-caption="Select GitHub action"
-alt="Select GitHub action"
-%}
-
-{:start="4"}
-1. Click on the GitHub Action you want to use in your pipeline.
- Codefresh displays the [YAML]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/) for the action on the right. This is the step that you need to insert in your pipeline.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/github-actions/snyk-action-arguments.png"
-url="/images/integrations/github-actions/snyk-action-arguments.png"
-max-width="70%"
-caption="Using the Snyk GitHub action"
-alt="Using the Snyk GitHub action"
-%}
-
- The YAML snippet is a template, and you need to fill the `env` block below the `arguments` block.
- The required environment variables are specific to each GitHub Action, so check the documentation of the action itself.
-
-
- In the example above, we use the Snyk GitHub Action. By visiting the [documentation page](https://github.com/marketplace/actions/snyk-cli-action){:target="\_blank"}, we find that this action expects a `SNYK_TOKEN` as input.
-
- We therefore add the token as a pipeline variable:
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/github-actions/environment-variables.png"
-url="/images/integrations/github-actions/environment-variables.png"
-max-width="60%"
-caption="Pipeline variables"
-alt="Pipeline variables"
-%}
-
-Here is the final pipeline:
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- snyk-cli-action:
- title: snyk
- description: snyk
- type: github-action-executor
- arguments:
- url: 'https://github.com/marketplace/actions/snyk-cli-action'
- envs:
- - SNYK_TOKEN: '${{SNYK_TOKEN}}'
- cmd: test alpine@latest
-{% endraw %}
-{% endhighlight %}
-
-The `cmd` property is specific to each GitHub action and in the case of Snyk we say we want to scan an alpine image for security issues.
-
-
-
-## Running a Codefresh pipeline with GitHub Actions
-
-
-You can run the pipeline as any other Codefresh pipeline.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/github-actions/github-action-pipeline.png"
-url="/images/integrations/github-actions/github-action-pipeline.png"
-max-width="80%"
-caption="Using GitHub Actions in a Codefresh pipeline"
-alt="Using GitHub Actions in a Codefresh pipeline"
-%}
-
-
-Once the pipeline reaches the GitHub Action step, the converter automatically does the following:
-
-1. Finds the Dockerfile of the GitHub Action
-1. Builds the Dockerfile
-1. Takes the resulting image and inserts it as Codefresh step
-1. Passes the environment variables as arguments to the GitHub Action
-1. Runs the `cmd` command
-
-If you have issues, please contact us or open a support ticket, and let us know which GitHub Action you are trying to use and the URL of the Codefresh build that fails.
-
-
-## Related articles
-[Pipeline steps]({{site.baseurl}}/docs/pipelines/steps/)
-[Plugin marketplace](https://codefresh.io/steps/){:target="\_blank"}
-
-
-
-
-
diff --git a/_docs/integrations/google-cloud.md b/_docs/integrations/google-cloud.md
deleted file mode 100644
index 89b673ea9..000000000
--- a/_docs/integrations/google-cloud.md
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: "Google Cloud pipeline integration"
-description: "Use Google Cloud with Codefresh pipelines"
-group: integrations
-redirect_from:
- - /docs/deploy-your-containers/kubernetes/
-toc: true
----
-
-Codefresh has native support for Google Cloud in the following areas:
-
-- [Connecting to Google registries]({{site.baseurl}}/docs/docker-registries/google-container-registry/)
-- [Deploying to GKE]({{site.baseurl}}/docs/integrations/kubernetes/#adding-gke-cluster)
-- [Using Google Storage for Test reports]({{site.baseurl}}/docs/testing/test-reports/#connecting-a-google-bucket)
-- [Using Google Storage for Helm charts]({{site.baseurl}}/docs/deployments/helm/add-helm-repository/#private-repository---gcs)
-- [Using Cloud Build]({{site.baseurl}}/docs/integrations/gcloud-builder/)
-- [Installing the Runner via the Marketplace]({{site.baseurl}}/docs/integrations/google-marketplace/)
-
-
-## Using Google Container Registries
-
-Google Container registries are fully compliant with the Docker registry API that Codefresh follows. You can connect GCR like any [other Docker registry]({{site.baseurl}}/docs/docker-registries/google-container-registry/).
-
-{%
- include image.html
- lightbox="true"
-file="/images/integrations/docker-registries/add-gcr-registry.png"
-url="/images/integrations/docker-registries/add-gcr-registry.png"
-alt="Connecting to GCR"
-caption="Connecting to GCR"
-max-width="70%"
-%}
-
-Once the registry is added, you can the [standard push step]({{site.baseurl}}/docs/pipelines/steps/push/) in pipelines. See also the documentation page for [working with Docker registries]({{site.baseurl}}/docs/integrations/docker-registries/).
-
-## Deploying to Google Kubernetes Engine
-
-Codefresh has native support for connecting a GKE cluster in the [cluster configuration screen]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster).
-
-{%
- include image.html
- lightbox="true"
-file="/images/integrations/google-cloud/gke-integration.png"
-url="/images/integrations/google-cloud/gke-integration.png"
-alt="Connecting a GKE cluster"
-caption="Connecting a GKE cluster"
-max-width="40%"
-%}
-
-Once the cluster is connected, you can use any of the [available deployment options]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/) for Kubernetes clusters.
-You also get access to all other Kubernetes dashboards such as the [cluster dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/) or the [environment dashboard]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/).
-
-## Storing test reports in Google Cloud storage
-
-Codefresh has native support for test reports. You can store the reports on Google Cloud storage.
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/google-cloud/google-cloud-storage.png"
-url="/images/integrations/google-cloud/google-cloud-storage.png"
-alt="Google cloud storage"
-caption="Google cloud storage"
-max-width="50%"
-%}
-
-See the full documentation for [test reports]({{site.baseurl}}/docs/testing/test-reports/).
-
-## Using Google Storage for storing Helm charts
-
-You can connect Google storage as a Helm repository by setting up a [Helm integration]({{site.baseurl}}/docs/integrations/helm/#$add-helm-repository/) in Codefresh.
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/google-cloud/google-storage-helm-repo.png"
-url="/images/integrations/google-cloud/google-storage-helm-repo.png"
-alt="Using Google Cloud for Helm charts"
-caption="Using Google Cloud for Helm charts"
-max-width="60%"
-%}
-
-Once you connect your Helm repository you can use it any [Codefresh pipeline with the Helm step]({{site.baseurl}}/docs/new-helm/using-helm-in-codefresh-pipeline/).
-
-## Using Google Cloud build
-
-Codefresh has a [native Docker build step]({{site.baseurl}}/docs/pipelines/steps/build/) for creating Docker images. As an alternative method of building Docker images, you can also use [Google Cloud Build]({{site.baseurl}}/docs/integrations/gcloud-builder/) in a Codefresh pipeline.
-
-## Installing the Codefresh runner from the Google Marketplace
-
-The [Codefresh runner]({{site.baseurl}}/docs/installation/codefresh-runner/) is a Kubernetes native application that allows you to run pipelines on your own Kubernetes cluster (even behind the firewall). Specifically for Google Cloud, the runner is also available via the [marketplace]({{site.baseurl}}/docs/integrations/google-marketplace/){:target="\_blank"}.
-
-
-## Traditional Google Cloud deployments
-
-For any other Google Cloud deployment you can use the [Google Cloud CLI from a Docker image](https://hub.docker.com/r/google/cloud-sdk/){:target="\_blank"} in a [freestyle step]({{site.baseurl}}/docs/pipelines/steps/freestyle/).
-
-`YAML`
-{% highlight yaml %}
-{% raw %}
- create_a_vm:
- title: "Creating a Virtual machine"
- type: "freestyle"
- arguments:
- image: "google/cloud-sdk:slim"
- commands:
- - echo $KEY_FILE | base64 --decode > key_file.json
- - gcloud compute instances create demo-codefresh --image codefresh-simple-ubuntu-vm --zone europe-west1-b --metadata-from-file startup-script=startup.sh --tags http-server --preemptible --quiet
-{% endraw %}
-{% endhighlight %}
-
-See the example of [uploading to a Google Bucket]({{site.baseurl}}/docs/example-catalog/ci-examples/uploading-or-downloading-from-gs/) or [creating a VM]({{site.baseurl}}/docs/example-catalog/ci-examples/packer-gcloud/) for more details.
-
-
-
-
-
-## Related articles
-[Add your cluster]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster)
-[Manage your Kubernetes cluster]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
-[Cloning Git repositories]({{site.baseurl}}/docs/example-catalog/ci-examples/git-checkout/)
-
diff --git a/_docs/integrations/google-marketplace.md b/_docs/integrations/google-marketplace.md
deleted file mode 100644
index e02b36aa1..000000000
--- a/_docs/integrations/google-marketplace.md
+++ /dev/null
@@ -1,249 +0,0 @@
----
-title: "Google Marketplace integration"
-description: "Learn how to run Codefresh pipelines inside your GKE cluster"
-group: integrations
-toc: true
----
-
-Codefresh has partnered with [Google Cloud](https://cloud.google.com/){:target="\_blank"} and allows you to install a Codefresh pipeline builder within your own Kubernetes cluster.
-The integration is available in the Google Marketplace for Kubernetes apps at [https://console.cloud.google.com/marketplace/details/codefresh-gke/codefresh](https://console.cloud.google.com/marketplace/details/codefresh-gke/codefresh){:target="\_blank"}.
-
-Once you configure Codefresh to use your own Kubernetes cluster for builds, you can enjoy all benefits of a **hybrid** installation as the Codefresh UI and management dashboards will still run in a SAAS manner, while the actual builds and pipelines will execute in your own cluster.
-
-The major benefits are the following:
-
- * You define exactly what resources are used for your builds instead of relying on Codefresh infrastructure.
- * The management UI still runs in the Codefresh premises and is managed by the Codefresh team allowing you to focus on your builds.
- * The Codefresh builder has access to all private resources that run in your cluster so it is very easy to use resources that should not be exposed to the Internet for any reason.
- * Unified billing. You pay a single bill to Google that includes the price for your Kubernetes cluster as well as the Codefresh pipelines.
-
-
-To start the integration, you need the following:
-
-1. A [Google Cloud account](https://cloud.google.com/){:target="\_blank"} with billing enabled
-1. A [GKE cluster](https://cloud.google.com/kubernetes-engine/docs/quickstart){:target="\_blank"} that will run all builds and pipelines
-1. A [Codefresh account]({{site.baseurl}}/docs/administration/create-a-codefresh-account/) (creating an account is free, you pay only for builds)
-
-Then visit the Codefresh GKE page at [https://console.cloud.google.com/marketplace/details/codefresh-gke/codefresh](https://console.cloud.google.com/marketplace/details/codefresh-gke/codefresh){:target="\_blank"}.
-
-## Using Codefresh from the Google Marketplace
-
-When you configure Codefresh integration from the Google Marketplace, a special Codefresh runner [is installed](https://github.com/codefresh-io/google-marketplace-integration){:target="\_blank"} in your own cluster.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/google-marketplace/architecture.png"
-url="/images/integrations/google-marketplace/architecture.png"
-max-width="80%"
-caption="Google Marketplace integration"
-alt="Google Marketplace integration"
-%}
-
-The Codefresh UI is still hosted by Codefresh in a SAAS manner. The builds themselves however
-run inside your own cluster.
-
-The builder is responsible for executing all your builds and notifying the Codefresh UI of their status. You can also access internal cluster resources that are normally not accessible to the SAAS hosted Codefresh builders.
-
-You can still run builds in the Codefresh SAAS infrastructure if you wish, and therefore both approaches are valid at the same time.
-
-## Usage and billing
-
-To start using the service, you need to [enable billing](https://cloud.google.com/billing/docs/how-to/modify-project){:target="\_blank"} in your Google Cloud account. Once that is done, Codefresh billing is integrated into your Google invoices.
-
-You will pay for the cluster resources to Google, plus the Codefresh builds. Codefresh does not collect any payment from you directly. Google Cloud will invoice you for both the cluster infrastructure and the cluster usage.
-
-Current pricing for Codefresh builds is always shown in the [marketplace page](https://console.cloud.google.com/marketplace/details/codefresh-gke/codefresh){:target="\_blank"}.
-
-## Install the Google Marketplace
-
-### Step 1: Create a Codefresh API key
-
-1. Log in to your Codefresh account, and from your avatar dropdown, select [**User Settings**](https://g.codefresh.io/user/settings){:target="\_blank"}.
-1. Scroll down to **API Keys**.
-1. To create a new API key, click **Generate**, and do the following:
- * **Key Name**: Enter the name of the key, preferable one that will help you remember its purpose. The token is tied to your Codefresh account and should be considered sensitive information.
- * **Scopes**: Select _all_ the scopes.
-1. Copy the token to your clipboard.
-1. Click **Create**.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/google-marketplace/generate-token.png"
-url="/images/integrations/google-marketplace/generate-token.png"
-max-width="40%"
-caption="Generating a Codefresh API token"
-alt="Generating a Codefresh API token"
-%}
-
-
-With the token at hand, we can go to the Google marketplace.
-
-### Step 2: Install the Codefresh application in your Google Cloud cluster
-
-1. Navigate to [https://console.cloud.google.com/marketplace/details/codefresh-gke/codefresh](https://console.cloud.google.com/marketplace/details/codefresh-gke/codefresh){:target="\_blank"}.
-1. From the dropdown menu at the top of the page, select a Google project that has billing enabled.
-1. Click **Configure**.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/google-marketplace/configure-plan.png"
-url="/images/integrations/google-marketplace/configure-plan.png"
-max-width="50%"
-caption="Installing the Codefresh application"
-alt="Installing the Codefresh application"
-%}
-
-{:start="4"}
-1. Define the general settings for the installation.
- These include:
- * The cluster that will be used for installation
- * An existing or new namespace where the Codefresh builder will reside
- * A name for your installation (arbitrary choice)
- * Your Codefresh API token that you created in the previous section
- * The selection of the account that will be used for the cluster management.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/google-marketplace/settings.png"
-url="/images/integrations/google-marketplace/settings.png"
-max-width="50%"
-caption="Codefresh installation settings"
-alt="Codefresh installation settings"
-%}
-
-{:start="5"}
-1. Note down the namespace you used, as it becomes important later on inside the Codefresh UI.
-1. After defining all the settings, to install, click **Deploy**. Wait for a few minutes for the installation complete.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/google-marketplace/deploying.png"
-url="/images/integrations/google-marketplace/deploying.png"
-max-width="50%"
-caption="Deploying the Codefresh application"
-alt="Deploying the Codefresh application"
-%}
-
-The Codefresh application is now installed on your cluster.
-
-### Step 3: Set up communication with Codefresh SaaS
-
-To finish the installation, we need to make Codefresh SaaS aware of the new builder.
-
-1. On the right hand-side, copy the full command to complete the installation.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/google-marketplace/run-command.png"
-url="/images/integrations/google-marketplace/run-command.png"
-max-width="60%"
-caption="Endpoint command"
-alt="Endpoint command"
-%}
-
-This command must be executed from a shell that has `kubectl` installed with the correct configuration for the cluster that was used for the installation. If you already have a local shell that points to your cluster, feel free to paste the command there and run it.
-
-The easiest way to run it in any other case is via the [Google shell](https://cloud.google.com/shell/docs/){:target="\_blank"}. Click the *Activate Google shell* icon from the top right and wait a bit until the shell appears at the bottom part of the window.
-
-First you need to set up `kubectl` access. Run:
-
-`Google shell`
-{% highlight shell %}
-{% raw %}
-gcloud container clusters list
-{% endraw %}
-{% endhighlight %}
-
-This will show you a list of your clusters. Find the one that has the Codefresh application and run:
-
-`Google shell`
-{% highlight shell %}
-{% raw %}
-gcloud container clusters get-credentials [my-cluster-name] --zone=[my-cluster-zone]
-{% endraw %}
-{% endhighlight %}
-
-This will set up `kubectl` access. You can try running some command such as `kubectl get nodes` and `kubectl cluster-info` to verify that cluster communication is setup correctly.
-
-Then run the full command. Here is an example:
-
-`Google shell`
-{% highlight shell %}
-{% raw %}
-$ APP="codefresh-kostis" NS="kostisdemo" ENDPOINT="$(kubectl cluster-info | head -1 | cut -d' ' -f6 | sed 's/\x1b[[0-9;]*m//g' | tr -d '\n' | base64)" && kubectl -n $NS get s
-ecret $APP-secret -o yaml | sed -r "s/(kubeEndpoint: ).*$/\1$ENDPOINT/" | kubectl apply -f - && kubectl -n $NS delete pod -l app.kubernetes.io/name=$APP
-
-secret "codefresh-kostis-secret" configured
-pod "codefresh-kostis-kube-agent-86dbcc67c4-9gqqb" deleted
-{% endraw %}
-{% endhighlight %}
-
-
-Once the command is run, you can visit the [Codefresh Kubernetes dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/) and you will see your Google Cloud cluster already configured.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/google-marketplace/cluster-details.png"
-url="/images/integrations/google-marketplace/cluster-details.png"
-max-width="60%"
-caption="Codefresh Kubernetes dashboard"
-alt="Codefresh Kubernetes dashboard"
-%}
-
-The full integration is now ready, and you can start running Codefresh pipelines in your own cluster.
-
-### Step 4: Start running pipelines
-
-Now whenever you set up a [Codefresh pipeline]({{site.baseurl}}/docs/pipelines/pipelines/), you can choose its execution environment and point it to your own cluster with the Codefresh builder.
-
->At this point if you have a Codefresh browser window open, make sure that you log out and then log in again so that the new UI options regarding your cluster become available.
-
-Open any Codefresh pipeline and toggle the *Run on Environment* switch. Select the cluster and the namespace that you used for the installation in step 2.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/google-marketplace/run-in-environment.png"
-url="/images/integrations/google-marketplace/run-in-environment.png"
-max-width="60%"
-caption="Running Pipelines in your cluster"
-alt="Running Pipelines in your cluster"
-%}
-
-
-You can still use the Codefresh SAAS if you don't enable this switch. You can choose which pipelines
-run in Codefresh SAAS and which use your cluster depending on your needs.
-
-
-## Alternative installation from the command line
-
-Instead of installing via the Google Cloud console, you can also install the Codefresh application using command line procedures.
-
-For this installation mode, see the [manual installation guide](https://github.com/codefresh-io/google-marketplace-integration/blob/master/README.md){:target="\_blank"}.
-
-## Removing the installation
-
-If you want to remove the Codefresh builder from your cluster, navigate to the "Applications" page in the Google Cloud console and click the Delete button.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/google-marketplace/remove.png"
-url="/images/integrations/google-marketplace/remove.png"
-max-width="60%"
-caption="Removing the Codefresh application"
-alt="Removing the Codefresh application"
-%}
-
-You can install the Codefresh builder again from the [marketplace](https://console.cloud.google.com/marketplace/details/codefresh-gke/codefresh){:target="\_blank"}.
-
-## Related articles
-[Manage your cluster]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
-[Creating pipelines]({{site.baseurl}}/docs/pipelines/pipelines/)
-[Codefresh YAML]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/)
-
-
-
-
-
-
-
-
diff --git a/_docs/integrations/hashicorp-vault.md b/_docs/integrations/hashicorp-vault.md
deleted file mode 100644
index 24301ecd6..000000000
--- a/_docs/integrations/hashicorp-vault.md
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: "HashiCorp Vault"
-description: "Use secrets from Vault in Codefresh pipelines"
-group: integrations
-toc: true
----
-
-Codefresh can use secrets from your HashiCorp Vault installation. This way you have full control over secret storage and rotation.
-
->This feature is for Enterprise accounts only.
-
-## Prerequisites
-
-* Up and running Vault instance
- Codefresh supports HashiCorp Cloud Platform (HCP) Vault and self-managed Vault instances that run on the cloud, as well as behind the firewall (albeit with some differences in the authentication methods).
-
-* [Authentication method](https://www.vaultproject.io/docs/auth){:target="\_blank"} to use.
- Codefresh supports the following methods:
-
-{: .table .table-bordered .table-hover}
-| Method | Notes |
-|---|--- |
-| [Username/Password](https://www.vaultproject.io/docs/auth/userpass){:target="\_blank"}|Available for SaaS and Hybrid versions |
-| [Access Token](https://www.vaultproject.io/docs/auth/token){:target="\_blank"}|Available for SaaS and Hybrid versions |
-| [Kubernetes](https://www.vaultproject.io/docs/auth/kubernetes){:target="\_blank"}|Only available with [Codefresh Runner installation]({{site.baseurl}}/docs/reference/behind-the-firewall/) |
-| [Google Cloud Engine](https://www.vaultproject.io/docs/auth/gcp){:target="\_blank"}|Only available with [Codefresh Runner installation]({{site.baseurl}}/docs/reference/behind-the-firewall/) |
-| [App Role](https://www.vaultproject.io/docs/auth/approle){:target="\_blank"}|Available for SaaS and Hybrid versions |
-
-## Set up HashiCorp Vault integration in the Codefresh UI
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Secret Store** and then click **Configure**.
-1. From the **Add Provider** dropdown, select **Hashicorp vault**.
-1. Do the following:
- * **Name**: A unique name for the integration which is referenced in `codefresh.yaml`.
- * If your Vault instance is behind a firewall, toggle **Vault is behind a firewall** to ON.
- * To allow only Codefresh admins to change the Vault configuration, toggle **Allow access to all users** to OFF.
- > The other settings are specific to your [Vault authentication](https://www.vaultproject.io/docs/auth){:target="\_blank"} method. Refer to the Vault documentation on how to get the required values.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/hashicorp-vault/hashicorp-vault.png"
-url="/images/integrations/hashicorp-vault/hashicorp-vault.png"
-alt="HashiCorp-vault Secret"
-caption="HashiCorp-vault Secret"
-max-width="80%"
- %}
-
-{:start="5"}
-1. To apply the changes, click **Save**.
-
-
-### Set up HashiCorp Vault integration via Codefresh CLI
-
-You can also create Vault integrations with the [CLI](https://codefresh-io.github.io/cli/){:target="\_blank"}.
-
-Use the [create context command](https://codefresh-io.github.io/cli/contexts/create-context/create-secret-store-context/hashicorp-vault/){:target="\_blank"}.
-
-The options available are identical to the UI settings.
-For example, to create an integration with user/password authentication, you would run this command:
-
-`codefresh create context secret-store hashicorp-vault --sharing-policy AccountAdmins -app-url --username --password `
-
-
-
-### Using the HashiCorp Vault secret
-
-To use the Vault secrets in pipelines, see our [secrets guide]({{site.baseurl}}/docs/pipelines/secrets-store/).
-Because a secret in Vault can contain multiple key-value pairs, you will need to put in the key name as well, according to the syntax `{secrets.vault-store-name.path/to/secret@key}`.
-
-## Related articles
-[Shared Configuration]({{site.baseurl}}/docs/pipelines/shared-configuration/)
-[Git integration for pipelines]({{site.baseurl}}/docs/integrations/git-providers/)
-[Kubernetes integration for pipelines]({{site.baseurl}}/docs/integrations/kubernetes/)
-[Container registry integration for pipelines]({{site.baseurl}}/docs/integrations/docker-registries/)
diff --git a/_docs/integrations/helm.md b/_docs/integrations/helm.md
deleted file mode 100644
index eac4a8230..000000000
--- a/_docs/integrations/helm.md
+++ /dev/null
@@ -1,189 +0,0 @@
----
-title: "Helm Integration"
-description: "Manage Helm releases and repositories with Codefresh pipelines"
-group: integrations
-toc: true
----
-
-Codefresh is one of the few DevOps platforms with native support for Helm releases and deployments.
-In addition to the [built-in Helm repository]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/) available to all Codefresh accounts,you can add any external Helm repository to Codefresh through integrations.
-
-Native support for Helm in Codefresh includes:
- * A pipeline [step for deploying Helm applications]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/)
- * A dashboard for your [Helm charts]({{site.baseurl}}/docs/deployments/helm/add-helm-repository/)
- * A dashboard for your [Helm releases]({{site.baseurl}}/docs/deployments/helm/helm-releases-management/)
- * A dashboard for [promoting Helm releases]({{site.baseurl}}/docs/deployments/helm/helm-environment-promotion/) between different environments
- * A dashboard for [Helm environments]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/)
-
-The built-in Helm repository is production ready. You can start using Helm right away with your Codefresh account,
-even if you don't have an external Helm repository. See our [quick start guide for Helm]({{site.baseurl}}/docs/getting-started/helm-quick-start-guide/) or the [complete Helm example]({{site.baseurl}}/docs/example-catalog/cd-examples/helm/).
-
-For each Helm integration, you can toggle the level of access by [non-admin users]({{site.baseurl}}/docs/administration/access-control/#users-and-administrators).
-
-## Set up external Helm integration
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Helm** and then click **Configure**.
-1. From the **Add Helm Repository** dropdown, select the type of external Helm repository:
- * [Azure Registry](#azure-registry-helm-repository-settings)
- * [Azure Regsitry MI](#azure-registry-with-managed-identity-mi-helm-repository-settings)
- * [Azure Registry SP](#azure-registry-with-service-principal-sp-helm-repository-settings)
- * [Codefresh](#helm-repository-from-another-codefresh-account)
- * [Google Cloud Storage](#google-cloud-storage-gcs-helm-repository-settings)
- * [HTTP Basic Authentication](#http-basic-authentication-settings)
- * [Amazon AWS S3](#amazon-aws-s3-helm-repository-settings)
-
-
-1. To restrict access to only Codefresh admins, toggle **Allow access to all users** to OFF.
- >When access is restricted, users **cannot** use the [CLI](https://codefresh-io.github.io/cli/){:target="\_blank"} or [API]({{site.baseurl}}/docs/integrations/codefresh-api/) to [programmatically access this Helm repository](https://codefresh-io.github.io/cli/contexts/){:target="\_blank"}.
- Otherwise, all users from all your Codefresh teams will be able to access this Helm repository with CLI commands or API calls.
-
-
-
-### HTTP Basic Authentication settings
-
-You can connect to your external repository with HTTP Basic authentication.
-The table below describes the settings.
-
-Setting|Description
----|---
-**Helm Repository Name**|The unique name of integration which is used to reference the integration in `codefresh.yaml`
-**Repository URL**|The URL to the Helm repository with `http://` protocol prefix.
-**Helm Repo Username**|The username to authenticate with.
-**Helm Repo Password**|The password for the username provided.
-
-### Amazon AWS S3 Helm repository settings
-
-You can connect to Amazon AWS S3 Helm repository. Supply the AWS authentication credentials as you would for the AWS CLI, or the S3 plugin for Helm. For details, see [Configuring the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html){:target="\_blank"}.
-
-The table below describes the settings.
-
-Setting|Description
----|---
-**Helm Repository Name**|The unique name of integration which is used to reference the integration in `codefresh.yaml`
-**Helm Repository URL**|The URL to the Helm repository in the format `s3://bucketname`.
-**AWS Access Key ID**|The ID of the key with permissions to the S3 bucket.
-**AWS Secret Access Key**|The Secret of the key with permissions to the S3 bucket.
-**AWS Default Region**|The region where the S3 bucket is located.
-
-
-### Google Cloud Storage (GCS) Helm repository settings
-
-You can connect to a Google Cloud Storage (GCS) Helm repository. Supply the GCS authentication credentials as you would for the GCloud CLI, or the GCS plugin for Helm. For details, see [Creating Service Account](https://cloud.google.com/docs/authentication/getting-started){:target="\_blank"}{:target="\_blank"}.
-
-The table below describes the settings.
-
-Setting|Description
----|---
-**Helm Repository Name**|The unique name for the Helm repository integration which is used to reference the integration in `codefresh.yaml`
-**Helm Repository URL**|The URL to the Helm repository in the format `gs://bucketname`.
-**Google Application Credentials JSON**|The JSON content with the credentials of the service account.
-
-
-
-### Azure Registry Helm repository settings
-
-**Prerequsities**
-1. [Create the Helm repository](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-helm-repos){:target="\_blank"} in Azure.
-1. Click **Authenticate**.
-1. In the permissions dialog, to allow Codefresh to access the Azure services, click **Accept**.
-
->Make sure that you are using an organizational/company Azure account, and not a personal one. We are currently working with Microsoft to improve this integration.
-
-**Settings**
-
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/helm/select-azure-helm-repository.png"
-url="/images/integrations/helm/select-azure-helm-repository.png"
-alt="Selecting an Azure Helm repository"
-caption="Selecting an Azure Helm repository"
-max-width="70%"
-%}
-
-Setting|Description
----|---
-**Subscriptions**|Select your Azure subscription.
-**Registry**|The Helm repository to connect to.
-
->If you are already authenticated to Azure, and cannot find your Helm repository in the list, try revoking access, and authenticating again.
-
-
-### Azure Registry with Service Principal (SP) Helm repository settings
-
-An alternative method of adding an Azure Helm repository is by using a service principal.
-
-**Prerequsities**
-* [Create a service principal in the Azure portal](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal){:target="\_blank"}.
-
-
-
-**Settings**
-1. Click **Authenticate**.
-1. Enter the following:
- * **Client ID**
- * **Tenant**
- * **Client secret**
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/helm/add-azure-helm-spn.png"
-url="/images/integrations/helm/add-azure-helm-spn.png"
-alt="Azure Service Service Principal details"
-caption="Azure Service Principal details"
-max-width="60%"
- %}
-
-1.Click **Authenticate**. Assuming that the authentication is successful, you can view your available Azure registries that can be used as a Helm repository.
-
-
-
-
-
-### Helm repository from another Codefresh account
-
-You also add the private Helm repository of another Codefresh user as your integration.
-
->We **don't** recommend sharing the Codefresh Helm repository between accounts. The built-in Helm repository of each account is best used as a private Helm repository of that account. See more details on [how to make your private Helm public]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/#repo-access-level).
-
-The table below describes the settings.
-
-Setting|Description
----|---
-**Helm Repository Name**|The unique name for the Helm repository integration which is used to reference the integration in `codefresh.yaml`
-**Helm Repository URL**|The URL to the Helm repository in the format `cm://repository-name`.
-**CF API Key**|A token [to access the other Codefresh account]({{site.baseurl}}/docs/integrations/codefresh-api/#authentication-instructions).
-
-
-## Related articles
-[Private external Helm repositories]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/)
-[How to use Helm in a Codefresh pipeline]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/)
-[Managing Helm releases]({{site.baseurl}}/docs/deployments/helm/helm-releases-management/)
-[Helm best practices]({{site.baseurl}}/docs/deployments/helm/helm-best-practices/)
-
diff --git a/_docs/integrations/jenkins-integration.md b/_docs/integrations/jenkins-integration.md
deleted file mode 100644
index 157806ac8..000000000
--- a/_docs/integrations/jenkins-integration.md
+++ /dev/null
@@ -1,907 +0,0 @@
----
-title: "Jenkins integration/migration"
-description: "Migration from Jenkins to Codefresh pipelines"
-group: integrations
-redirect_from:
- - /docs/jenkins-integration/
-toc: true
----
-
-Codefresh offers a superset of the capabilities offered by Jenkins, and therefore you can fully replace a Jenkins solution using only Codefresh on its own.
-
-During the migration period, it is very easy to make both solutions work together. This allows you to move gradually new CI/CD tasks to Codefresh and still keep the existing functionality in Jenkins jobs.
-
-## Calling Codefresh pipelines from Jenkins Jobs
-
-This is the most common scenario during the migration period. The CI part (code packaging) is still in Jenkins, while the CD part (actual deployments) happen with Codefresh.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/calling-codefresh-from-jenkins.png"
-url="/images/integrations/jenkins/calling-codefresh-from-jenkins.png"
-alt="Calling a Codefresh pipeline from a Jenkins Job"
-caption="Calling a Codefresh pipeline from a Jenkins Job"
-max-width="100%"
-%}
-
-1. For Jenkins to connect to your Codefresh account, create [a Codefresh API token]({{site.baseurl}}/docs/integrations/codefresh-api/#authentication-instructions).
-1. Enter the token in Jenkins [as a global Credential](https://jenkins.io/doc/book/using/using-credentials/){:target="\_blank"}.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/jenkins-credentials.png"
-url="/images/integrations/jenkins/jenkins-credentials.png"
-alt="Storing the Codefresh API token in Jenkins"
-caption="Storing the Codefresh API token in Jenkins"
-max-width="60%"
-%}
-
-Now you can create any declarative or scripted Jenkins pipeline that uses the token and the [Codefresh CLI](https://codefresh-io.github.io/cli/){:target="\_blank"} to call Codefresh pipelines from Jenkins.
-
-Here is a very simple example:
-
- `Jenkinsfile`
-{% highlight groovy %}
-{% raw %}
-pipeline {
- agent {
- docker {
- image 'codefresh/cli:latest'
- args '--entrypoint=""'
- }
- }
- environment {
- CODEFRESH_API_TOKEN= credentials('codefresh-token')
- }
- stages {
- stage('Calling Codefresh pipeline') {
- steps {
- sh 'codefresh auth create-context --api-key $CODEFRESH_API_TOKEN'
- sh 'codefresh run my-first-project/basic-build -t my-trigger -b master'
- }
- }
- }
-}
-{% endraw %}
-{% endhighlight %}
-
-Run the Jenkins job, and it also triggers a Codefresh pipeline:
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/call-a-codefresh-pipeline.png"
-url="/images/integrations/jenkins/call-a-codefresh-pipeline.png"
-alt="Calling a Codefresh pipeline in a Jenkins step"
-caption="Calling a Codefresh pipeline in a Jenkins step"
-max-width="30%"
-%}
-
-In the logs of the Jenkins job, you will see the Codefresh logs (the Codefresh CLI automatically shows logs in standard output).
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/codefresh-logs-from-jenkins.png"
-url="/images/integrations/jenkins/codefresh-logs-from-jenkins.png"
-alt="Viewing Codefresh logs from Jenkins"
-caption="Viewing Codefresh logs from Jenkins"
-max-width="60%"
-%}
-
-Of course, if you visit the Codefresh UI you will also see the [running pipeline]({{site.baseurl}}/docs/pipelines/monitoring-pipelines/).
-With this kind of integration, it is very easy to create Jenkins Jobs that compile/package code and add a step in the jobs
-that calls Codefresh for deployment.
-
-
-## Calling Jenkins jobs from Codefresh pipelines
-
-This is the opposite scenario. As you move more functionality into Codefresh, it might make sense to have a Codefresh pipeline that actually calls Jenkins jobs for tasks that are not migrated yet.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/calling-jenkins-from-codefresh.png"
-url="/images/integrations/jenkins/calling-jenkins-from-codefresh.png"
-alt="Calling a Jenkins Job from a Codefresh pipeline"
-caption="Calling a Jenkins Job from a Codefresh pipeline"
-max-width="100%"
-%}
-
-* For Codefresh to authenticate to your Jenkins instance, from **User Settings** in the Jenkins UI, create a [Jenkins API token](https://jenkins.io/blog/2018/07/02/new-api-token-system/){:target="\_blank"}.
- Give your token any name that reminds you of its purpose. The name itself is arbitrary.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/jenkins-api-token.png"
-url="/images/integrations/jenkins/jenkins-api-token.png"
-alt="Jenkins API token"
-caption="Jenkins API token"
-max-width="60%"
-%}
-
-Once you have the token, you can use the [Codefresh plugin for triggering Jenkins Jobs](https://github.com/codefresh-io/plugins/blob/new-pipeline/plugins/run-jenkins-job/README.md){:target="\_blank"} in any pipeline
-like this:
-
- `codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- RunJenkins:
- title: Triggering Jenkins Job
- image: codefresh/cf-run-jenkins-job
- environment:
- - JENKINS_URL=${{JENKINS_URL}}
- - JENKINS_USER=${{JENKINS_USERNAME}}
- - JENKINS_TOKEN=${{JENKINS_TOKEN}}
- - JENKINS_JOB=${{JENKINS_JOB}}
-{% endraw %}
-{% endhighlight %}
-
-The value of the variables can be stored either in your [Codefresh shared configuration]({{site.baseurl}}/docs/pipelines/shared-configuration/) or directly [in the pipeline]({{site.baseurl}}/docs/pipelines/pipelines/#creating-new-pipelines):
-
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/jenkins-variables.png"
-url="/images/integrations/jenkins/jenkins-variables.png"
-alt="Jenkins Job variables"
-caption="Jenkins Jobs variables"
-max-width="40%"
-%}
-
-Launching the Codefresh pipeline also triggers the remote Jenkins Job.
-
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/trigger-remote-jenkins-job.png"
-url="/images/integrations/jenkins/trigger-remote-jenkins-job.png"
-alt="Trigger remote Jenkins Job"
-caption="Trigger remote Jenkins Job"
-max-width="60%"
-%}
-
-It is possible to mix both scenarios at the same time (Codefresh pipelines that call Jenkins Jobs and vice-versa).
-
-## Migrating from Jenkins to Codefresh
-
-Now that you know how to mix pipelines from both platforms, it is helpful to understand how you can migrate all your Jenkins Jobs to Codefresh. In most cases, several actions that require custom scripts in Jenkins (or plugins/shared libraries) are already integrated into the core Codefresh platform. Here are some high-level differences between the two platforms:
-
-{: .table .table-bordered .table-hover}
-| Feature | Jenkins | Codefresh |
-| -------------- | ---------------------------- |-------------------------|
-| Architecture | VM based | [container-based]({{site.baseurl}}/docs/pipelines/introduction-to-codefresh-pipelines/)|
-| Pipeline definition | Groovy | [YAML]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/) |
-| Tool installation | Installed on build node | dynamically launched |
-| Plugin mechanism | Java/Groovy using Jenkins API | [Docker image](https://codefresh.io/steps/){:target="\_blank"} (any programming language)|
-| Plugin installation | Central (requires admin access) | Per pipeline (no admin access needed) |
-| Docker agent builds | Extra plugin | Built-in |
-| Kubernetes agent builds | Extra plugin | Built-in |
-| Docker commands | Manually run in pipelines | Built-in pipeline steps |
-| Access to Kubectl | External plugin | Built-in |
-| Kubernetes deployments | External plugin | Built-in |
-
-It is important to understand that when you are switching to Codefresh you get a set of higher level abstraction for your builds:
-
-* Unlike Jenkins, Codefresh automatically has a distributed fleet of build nodes and manages all builds on its own.
-* With Codefresh you don't need to install anything on the build nodes (in fact you don't even have SSH access on them). All build tools are automatically launched in pipelines as Docker images.
-* In Codefresh, you can use the same tools with different versions in the same pipeline, without any special configuration (for example, use Java 5 and Java 8 in the same pipeline).
-* Codefresh plugins are used per pipeline by simply defining them. There is nothing to install centrally (such as Jenkins plugins or shared libraries). Different teams can use different tools on their pipeline without affecting each other.
-* Codefresh plugins are just Docker images with predefined inputs/outputs. They can be programmed in any programming language (not just Java/Groovy) and are not tied to Codefresh in any way (i.e. there is no need to know the Codefresh API for writing a Codefresh plugin).
-* Jenkins pipelines can be free-style (VM based), scripted (VM/container-based) or declarative (VM/container based) meaning that there are at least 5 ways on how you can write your pipeline. In Codefresh there is only way (declarative/container-based).
-* Jenkins pipelines are connected to a single git repository. Codefresh pipelines can be connected to multiple [git triggers]({{site.baseurl}}/docs/pipelines/triggers/git-triggers/) which
-themselves are connected to git repositories. Therefore a Codefresh pipeline can be reused for multiple projects.
-* Specifically for building Docker images, Codefresh can automatically connect to any [external Docker registry]({{site.baseurl}}/docs/docker-registries/external-docker-registries/).
-* Specifically for Kubernetes deployments, Codefresh automatically sets up `kubectl` access in pipelines [from connected clusters]({{site.baseurl}}/docs/integrations/kubernetes/#add-kubernetes-cluster/). There is no configuration needed to achieve this behavior. Codefresh also has several [built-in ways for Kubernetes deployments]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/) and a [dedicated UI dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/) to see what your cluster is doing.
-* Specifically for Helm deployments, Codefresh includes a private Helm repository and several [Helm dashboards]({{site.baseurl}}/docs/example-catalog/cd-examples/helm/).
-
-
-### Migrating Jenkins freestyle jobs
-
-If you have freestyle Jenkins Jobs (or are still using Jenkins 1.x), it is very easy to migrate your builds to Codefresh.
-In Jenkins, you are accustomed to:
-
-1. Installing a programming tool on the Jenkins node.
-1. Calling it directly in a build step.
-
-In Codefresh, a similar process would be the following:
-
-1. Find a Docker image in Docker Hub or create one by yourself that has the tools that you need.
-1. Use [a freestyle step]({{site.baseurl}}/docs/pipelines/steps/freestyle/), and run the exact same command in a Codefresh pipeline.
-
-For example this Jenkins job...
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/jenkins-freestyle-job.png"
-url="/images/integrations/jenkins/jenkins-freestyle-job.png"
-alt="Jenkins freestyle job"
-caption="Jenkins freestyle job"
-max-width="60%"
-%}
-
-
-...can be easily converted to a Codefresh pipeline like this:
-
-`codefresh.yml`
-{% highlight yaml %}
-version: '1.0'
-steps:
- my_jar_compilation:
- title: Compile/Unit test
- image: maven:3.5.2-jdk-8-alpine
- commands:
- - mvn package
- my_node_app:
- title: Running unit tests
- image: node:11
- commands:
- - npm run test
-{% endhighlight %}
-
-Unlike Jenkins, Codefresh does **not** need any global installation of tools beforehand.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/jenkins-tool-installation.png"
-url="/images/integrations/jenkins/jenkins-tool-installation.png"
-alt="Jenkins Tool installation - not needed with Codefresh"
-caption="Jenkins Tool installation - not needed with Codefresh"
-max-width="40%"
-%}
-
-In Codefresh, you can just use one or more Docker images in your pipeline. The tool versions will be launched only while the pipeline is active. Once the pipeline is finished, all Docker images that took part in it are discarded. The Codefresh build node has only Docker installed and nothing else.
-This means that you can easily mix and match tool versions.
-
-Here is a Codefresh pipeline that uses multiple versions of Java and Node.
-
-`codefresh.yml`
-{% highlight yaml %}
-version: '1.0'
-steps:
- PackageMyNode1App:
- title: Packaging Node application 1
- stage: packaging
- image: node:11.1
- working_directory: ./dashboard
- commands:
- - echo "My Node version is"
- - node --version
- - npm install
- PackageMyNode2App:
- title: Packaging Node application 2
- stage: packaging
- image: node:9.3.0-slim
- working_directory: ./website
- commands:
- - echo "My Node version is"
- - node --version
- - npm install
- RunUnitTests:
- title: Running Unit tests
- image: maven:3.6.1-jdk-11
- working_directory: ./backend
- commands:
- - java -version
- - mvn test
- PackageBackend:
- title: Compile/Unit test
- image: maven:3.5.2-jdk-8-alpine
- working_directory: ./backend
- commands:
- - java -version
- - mvn package -Dmaven.test.skip
-{% endhighlight %}
-
-Meanwhile, another team might have a different pipeline using different versions of Maven and/or Java. Each team can decide on the exact version needed just by changing the [Codefresh YAML]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/).
-
-It should be easy to see now that by migrating from Jenkins to Codefresh, several problems in Jenkins are simply eliminated:
-
-* You do not need to be an admin to install programming tools anymore,
-* Tools are defined per pipeline instead of being preloaded centrally,
-* Multiple versions of the same tool can be used on the same pipeline (or different pipelines),
-* Upgrading a tool to a new version is trivial (just change the docker tag in the freestyle step),
-* You don't need to label build nodes anymore with specific labels that show which tools they contain,
-* All public Dockerhub images can be used *with zero changes* in a Codefresh step.
-
-Notice that for several popular tools, Dockerhub already contains several images.
-
-* [Maven](https://hub.docker.com/_/maven){:target="\_blank"}
-* [Gradle](https://hub.docker.com/_/gradle/){:target="\_blank"}
-* [Node](https://hub.docker.com/_/node/){:target="\_blank"}
-* [Python](https://hub.docker.com/_/python/){:target="\_blank"}
-* [Terraform](https://hub.docker.com/r/hashicorp/terraform/){:target="\_blank"}
-* [Packer](https://hub.docker.com/r/hashicorp/packer/){:target="\_blank"}
-* [Sonar](https://hub.docker.com/r/skilldlabs/sonar-scanner/){:target="\_blank"}
-* [Nexus](https://hub.docker.com/r/sjeandeaux/nexus-cli/){:target="\_blank"}
-* [Helm](https://hub.docker.com/r/codefresh/kube-helm/tags){:target="\_blank"}
-* [Kubectl](https://hub.docker.com/r/codefresh/kubectl/){:target="\_blank"}
-* [gcloud](https://hub.docker.com/r/google/cloud-sdk/){:target="\_blank"}
-* [Ansible](https://hub.docker.com/u/ansible){:target="\_blank"}
-* [Azure CLI](https://hub.docker.com/r/microsoft/azure-cli/){:target="\_blank"}
-* [AWS CLI](https://hub.docker.com/r/mesosphere/aws-cli/){:target="\_blank"}
-
-Of course, you can create your own Docker image with the exact tools that you want and then use it from the [any Docker registry]({{site.baseurl}}/docs/docker-registries/external-docker-registries/) or any other registry in your pipeline.
-
-### Migrating Jenkins pipelines
-
-In the case of Jenkins pipelines, things are a bit more complicated because there is not a single way anymore on how to structure your pipelines.
-First of all, the best-case scenario is when you have *declarative* Jenkins pipelines that already use Docker images for stage execution.
-
-
- `Jenkinsfile`
-{% highlight groovy %}
-{% raw %}
-pipeline {
- agent none
- stages {
- stage('Example Build') {
- agent { docker 'maven:3-alpine' }
- steps {
- echo 'Hello, Maven'
- sh 'mvn --version'
- }
- }
- stage('Example Test') {
- agent { docker 'openjdk:8-jre' }
- steps {
- echo 'Hello, JDK'
- sh 'java -version'
- }
- }
- }
-}
-{% endraw %}
-{% endhighlight %}
-
-In this case, there is a 1-1 mapping between Jenkins stages and Codefresh steps as you can simply convert each stage into a Codefresh step using the respective Docker image.
-
-The Jenkins pipeline above can be converted to a Codefresh pipeline with a series of freestyle steps:
-
-`codefresh.yml`
-{% highlight yaml %}
-version: '1.0'
-steps:
- my_first_step:
- title: Example Build
- image: maven:3-alpine
- commands:
- - echo 'Hello, Maven'
- - mvn --version
- my_second_step:
- title: Example Test
- image: openjdk:8-jre
- commands:
- - echo 'Hello, JDK'
- - java -version
-{% endhighlight %}
-
-The final Codefresh pipeline will even look like the original Jenkins one.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/migrate-jenkins-pipeline.png"
-url="/images/integrations/jenkins/migrate-jenkins-pipeline.png"
-alt="Direct migration from Jenkins to Codefresh"
-caption="Direct migration from Jenkins to Codefresh"
-max-width="80%"
-%}
-
-If you don't use Docker containers in your Jenkins pipeline, then you need to follow the same advice as the previous section (i.e. find a Docker image that has the tools you need and create your own freestyle step in Codefresh).
-
-### Checking out source code
-
-In Jenkins 1.x pipelines, code is automatically checked out by Jenkins when the pipeline starts. In Jenkins 2.x pipelines you are free to insert your own git steps inside a Job:
-
-
- `Jenkinsfile`
-{% highlight groovy %}
-{% raw %}
-node {
- stage('First Project') {
- git 'https://github.com/nodegui/react-nodegui.git'
- }
- stage('Second Project') {
- git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
- branch: 'master'
- }
-}
-{% endraw %}
-{% endhighlight %}
-
-Codefresh has a dedicated [git clone step]({{site.baseurl}}/docs/pipelines/steps/git-clone/) that can be used in a similar manner.
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- first_project:
- type: 'git-clone'
- description: 'Cloning first project...'
- repo: 'nodegui/react-nodegui'
- revision: '${{CF_BRANCH}}'
- git: github
- second_project:
- type: 'git-clone'
- description: 'Cloning second...'
- repo: 'jglick/simple-maven-project-with-tests'
- revision: 'master'
- git: github
-{% endraw %}
-{% endhighlight %}
-
-You don't need to define any credentials or tokens, as they are already defined centrally in the [git configuration screen]({{site.baseurl}}/docs/integrations/git-providers/). The `CF_BRANCH` variable is one of the [built-in Codefresh variables]({{site.baseurl}}/docs/pipelines/variables/) that shows the branch that was used by the git commit as it came from the [trigger]({{site.baseurl}}/docs/pipelines/triggers/git-triggers/) attached to the pipeline.
-
-You can also [manually run Git commands]({{site.baseurl}}/docs/yaml-examples/examples/git-checkout-custom/) in Codefresh pipelines.
-
-### Step conditions
-
-In several cases you want to add conditionals on steps such as the branch that is being compiled:
-
-
- `Jenkinsfile`
-{% highlight groovy %}
-{% raw %}
-pipeline {
- agent any
- stages {
- stage('Example Build') {
- steps {
- echo 'Hello World'
- }
- }
- stage('Example Deploy') {
- when {
- branch 'master'
- }
- steps {
- echo 'Deploying'
- }
- }
- }
-}
-{% endraw %}
-{% endhighlight %}
-
-This can be also configured in Codefresh using [step conditionals]({{site.baseurl}}/docs/pipelines/conditional-execution-of-steps/):
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- my_first_step:
- title: Example Build
- image: alpine:latest
- commands:
- - echo 'Hello World'
- my_second_step:
- title: Example Deploy
- image: alpine:latest
- commands:
- - echo 'Deploying'
- when:
- branch:
- only:
- - master
-{% endraw %}
-{% endhighlight %}
-
-You can define much more complex conditions using the [Codefresh expression language]({{site.baseurl}}/docs/pipelines/conditional-execution-of-steps/#condition-expression-syntax).
-
-
-### Migrating Jenkins credentials
-
-Codefresh contains a central repository for user variables and secrets in the form of [shared configuration]({{site.baseurl}}/docs/pipelines/shared-configuration/). You can also
-inject variables on a specific project or a specific pipeline.
-
-All injected variables *are automatically available to all Codefresh freestyle steps*. You don't need a special syntax or directive to enable this behavior (unlike Jenkins where you have to use a `withCredentials` block or something similar).
-
-In Jenkins you have to explicitly ask for a secret:
-
- `Jenkinsfile`
-{% highlight groovy %}
-{% raw %}
-pipeline {
- agent any
- stages {
- stage('Example') {
- environment {
- AWS_ACCESS_KEY_ID = credentials('jenkins-aws-secret-key-id')
- AWS_SECRET_ACCESS_KEY = credentials('jenkins-aws-secret-access-key')
- }
- steps {
- sh 'printenv'
- }
- }
- }
-}
-{% endraw %}
-{% endhighlight %}
-
-In Codefresh if you setup your variables in the pipeline settings, then the pipeline itself needs nothing special.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jenkins/pipeline-variables.png"
-url="/images/integrations/jenkins/pipeline-variables.png"
-alt="Pipeline variables"
-caption="Pipeline variables"
-max-width="80%"
-%}
-
-You can simply run the pipeline on its own:
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- my_first_step:
- title: Example1
- image: alpine:latest
- commands:
- - printenv # Injected variables are always available
- my_second_step:
- title: Example2
- image: alpine:latest
- commands:
- - echo $AWS_ACCESS_KEY_ID
- - echo $AWS_SECRET_ACCESS_KEY
-{% endraw %}
-{% endhighlight %}
-
-If you want to use a different name for each variable/secret then you can simply assign them to your desired names:
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- my_first_step:
- title: Example
- image: alpine:latest
- environment:
- - MY_KEY=${{AWS_ACCESS_KEY_ID}}
- - MY_ACCESS_KEY=${{AWS_SECRET_ACCESS_KEY}}
- commands:
- - echo $MY_KEY
- - echo $MY_ACCESS_KEY
-{% endraw %}
-{% endhighlight %}
-
-In the example above, even though the secrets are already available as environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`, we instead pass them to the pipeline step as `MY_KEY` and `MY_ACCESS_KEY`.
-
-
-### Migrating Jenkins shared libraries
-
-Creating a Jenkins shared library has a lot of challenges:
-
-* The library must be written in Groovy/Java,
-* The library must use the Jenkins API,
-* It is very hard to write unit tests for it,
-* Installing it requires admin access in the Jenkins master.
-
-Codefresh plugins, on the other hand, are just Docker images written in any programming language.
-
-First of all, look at [Docker Hub](https://hub.docker.com/){:target="\_blank"} and see if there is already a utility or CLI that has the same functionality with your
-shared library. Codefresh also has a [free marketplace](https://codefresh.io/steps/){:target="\_blank"} for pipeline steps (which are Docker images essentially).
-
-As a last resort, you need to rewrite your shared library and convert it to a Docker image. The process is the following:
-
-1. Start from a base image that contains Groovy and any other tool you need.
-1. Convert your shared library to a single Groovy executable that reads input from environment variables and/or files and writes output data to files.
-1. Remove all Jenkins specific APIs.
-1. Package the image with a simple Dockerfile that just compiles your executable.
-
-Note that there is nothing Codefresh specific to the end-result. You should end up with a standard Docker image that would be usable in any environment that has Docker installed.
-
-Once you have that image you can use it like any other Codefresh freestyle step as described in the previous section.
-
-### Migration of Jenkins pipelines that create Docker images
-
-Codefresh has native support for:
-
-1. Building Docker images
-1. Running commands inside Docker images
-1. Pushing Docker images to different registries
-
-If you are using Docker commands directly in your Jenkins file, or prefer to take advantage of the scripted
-variant of Docker image management then you can easily convert both approaches to Codefresh YAML like below:
-
-#### Building Docker images
-
-The most basic Docker operation is building an image. You will need a Dockerfile and a directory to use as build context (usually the same folder that contains the Dockerfile).
-
-`docker command`
-```
-docker build . -t my-app-image:1.0.1
-```
-
-Or if you use Jenkins scripted pipelines...
-
- `Jenkinsfile`
-{% highlight groovy %}
-{% raw %}
-node {
- docker.build("my-app-image:1.0.1")
- docker.build("test-image", "./tests")
-}
-{% endraw %}
-{% endhighlight %}
-
-...they will become in Codefresh the following [build steps]({{site.baseurl}}/docs/pipelines/steps/build/):
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- my_first_step:
- title: Building My App image
- type: build
- image: my-app-image
- tag: 1.0.1
- my_second_step:
- title: Building My Test image
- type: build
- image: test-image
- working_directory: "./tests"
-{% endraw %}
-{% endhighlight %}
-
-#### Running commands in created containers
-
-Sometimes you want to run commands inside a Docker image. Either to have access to specialized tools or to run tests.
-
-`docker command`
-```
-docker build . -t my-app-image:1.0.1
-docker run my-app-image:1.0.1 npm install
-```
-
-Or, if you use Jenkins scripted pipelines...
-
- `Jenkinsfile`
-{% highlight groovy %}
-{% raw %}
-node {
- def customImage = docker.build("my-app-image:1.0.1")
-
- customImage.inside {
- sh 'npm install'
- }
-}
-{% endraw %}
-{% endhighlight %}
-
-... they will become in Codefresh the following [freestyle steps]({{site.baseurl}}/docs/pipelines/steps/freestyle/).
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- my_first_step:
- title: Building My App image
- type: build
- image: my-app-image
- tag: 1.0.1
- my_second_step:
- title: Install Node dependencies
- image: ${{my_first_step}}
- commands:
- - npm install
-{% endraw %}
-{% endhighlight %}
-
-Notice that the second pipeline step actually mentions the first one by name as a running context.
-
-#### Pushing Docker images
-
-Notice that in Codefresh [all connected registries]({{site.baseurl}}/docs/docker-registries/external-docker-registries/) are automatically available to all pipelines.
-You don't need special directives such as `withRegistry`. All registries can be mentioned
-by their name in any push step (and will be used automatically for pulls when an image uses their domain).
-
-`docker command`
-```
-docker build . -t my-app-image:1.0.1
-docker tag my-app-image:1.0.1 registry.example.com/my-app-image:1.0.1
-docker push registry.example.com/my-app-image:1.0.1
-```
-
-Or, if you use Jenkins scripted pipelines...
-
- `Jenkinsfile`
-{% highlight groovy %}
-{% raw %}
-node {
- def customImage = docker.build("my-app-image:1.0.1")
-
- docker.withRegistry('https://registry.example.com', 'example-registry-credentials') {
- customImage.push("1.0.1")
- customImage.push("latest")
- }
-}
-{% endraw %}
-{% endhighlight %}
-
-...they will become in Codefresh the following [push steps]({{site.baseurl}}/docs/pipelines/steps/push/).
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- my_first_step:
- title: Building My App image
- type: build
- image: my-app-image
- tag: 1.0.1
- my_second_step:
- title: Pushing image
- type: push
- candidate: ${{my_first_step}}
- tags:
- - 1.0.1
- - latest
- registry: example-registry
-{% endraw %}
-{% endhighlight %}
-
-Notice again that the second step pushes the image created by the first one.
-
-##### Complete Docker pipeline
-
-Here is a full example with a pipeline that builds an image, runs tests, and pushes it to Dockerhub.
-
- `Jenkinsfile`
-{% highlight groovy %}
-{% raw %}
-node {
- def app
-
- stage('Clone repository') {
- checkout scm
- }
-
- stage('Build image') {
- app = docker.build("my-app-image:1.0.1")
- }
-
- stage('Test image') {
- app.inside {
- sh 'npm run test'
- }
- }
-
- stage('Push image') {
- docker.withRegistry('https://registry.hub.docker.com', 'docker-hub-credentials') {
- app.push("1.0.1")
- app.push("latest")
- }
- }
-}
-{% endraw %}
-{% endhighlight %}
-
-Here is the same pipeline in Codefresh:
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- main_clone:
- type: "git-clone"
- description: "Clone repository"
- repo: "my-account/my-git-repo"
- revision: "${{CF_BRANCH}}"
- git: github
- my_first_step:
- title: Build image
- type: build
- image: my-app-image
- tag: 1.0.1
- my_second_step:
- title: Test image
- image: ${{my_first_step}}
- commands:
- - npm run test
- my_third_step:
- title: Push image
- type: push
- candidate: ${{my_first_step}}
- tags:
- - 1.0.1
- - latest
- registry: dockerhub
-{% endraw %}
-{% endhighlight %}
-
-Notice that Codefresh has much more context regarding Docker registries and credentials. The same approach
-is followed with Kubernetes deployments as we will see in the next section.
-
-
-### Migration of Jenkins pipelines that deploy to Kubernetes
-
-Codefresh has first-class support for Kubernetes deployments. Codefresh can deploy on its own [using different options]({{site.baseurl}}/docs/deploy-to-kubernetes/deployment-options-to-kubernetes/) and no external tools (i.e. Ansible or `kubectl`) are needed.
-
-Specifically for [Kubernetes]({{site.baseurl}}/docs/deploy-to-kubernetes/deployment-options-to-kubernetes/) and [Helm]({{site.baseurl}}/docs/new-helm/using-helm-in-codefresh-pipeline/), Codefresh has declarative pipeline steps:
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- RunningDeploy:
- title: Kubernetes Deployment
- type: deploy
- kind: kubernetes
- cluster: myDemoGKEcluster
- namespace: production
- service: my-service
- candidate:
- image: 'my-app-image:1.0.1'
- registry: 'dockerhub'
- DeployMyChart:
- image: 'codefresh/cfstep-helm:2.9.1'
- environment:
- - CHART_REF=charts/python
- - RELEASE_NAME=mypython-chart-prod
- - KUBE_CONTEXT=myDemoAKSCluster
-{% endraw %}
-{% endhighlight %}
-
-As with Docker registries (described in the previous section), Codefresh makes all [added Kubernetes clusters]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster) available to all pipelines. You don't need any special plugin or directive (such as `withKubeConfig`) to work with Kubernetes clusters in Codefresh. You can see that the Codefresh pipeline simply mentions Kubernetes clusters and registries without any credential information.
-
-Of course, it is also very easy to convert any existing Jenkins pipeline by just using any image that contains the `kubectl` executable.
-
- `Jenkinsfile`
-{% highlight groovy %}
-{% raw %}
-node {
- stage('Apply Kubernetes files') {
- withKubeConfig([credentialsId: 'user1', serverUrl: 'https://api.k8s.my-company.com']) {
- sh 'kubectl apply -f my-kubernetes-directory'
- }
- }
-}
-{% endraw %}
-{% endhighlight %}
-
-Codefresh will automatically setup Kube config access to the pipeline behind the scenes. Zero configuration is needed for this behavior.
-
-
-`codefresh.yml`
-{% highlight yaml %}
-{% raw %}
-version: '1.0'
-steps:
- MyCustomKubectlCommands:
- title: Running Kubectl
- image: codefresh/kubectl
- commands:
- - kubectl config use-context "my-k8s-my-company"
- - kubectl apply -f my-kubernetes-directory
-{% endraw %}
-{% endhighlight %}
-
-Once you use Codefresh for your deployments you also get access to:
-
-* The [Kubernetes Dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
-* A free [built-in Helm repository]({{site.baseurl}}/docs/deployments/helm/managed-helm-repository/) with each Codefresh account
-* The [Helm chart dashboard]({{site.baseurl}}/docs/deployments/helm/add-helm-repository/)
-* The [Helm Release dashboard]({{site.baseurl}}/docs/deployments/helm/helm-releases-management/)
-* The [Helm environment dashboard]({{site.baseurl}}/docs/deployments/helm/helm-environment-promotion/)
-
-For some easy templating see also the [cf-deploy]({{site.baseurl}}/docs/deployments/ci-cd-guides/kubernetes-templating/) plugin.
-
-## Related articles
-[Codefresh API]({{site.baseurl}}/docs/integrations/codefresh-api/)
-[Codefresh CLI](https://codefresh-io.github.io/cli/){:target="\_blank"}
-[Creating Codefresh pipelines]({{site.baseurl}}/docs/pipelines/pipelines/)
-
-
-
-
diff --git a/_docs/integrations/jira.md b/_docs/integrations/jira.md
deleted file mode 100644
index 34bb27b66..000000000
--- a/_docs/integrations/jira.md
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: "Jira pipeline integration"
-description: ""
-group: integrations
-redirect_from:
- - /docs/jira-integration-1/
- - /docs/integrations/jira-integration-1/
-toc: true
----
-Codefresh integrates with Jira in several ways. This article describes how to integrate with Jira in Codefresh for the highest visibility into your GitOps deployments.
-Alternatively, you can connect to Jira:
-* Through a [custom step]({{site.baseurl}}/docs/integrations/notifications/jira-integration/#use-jira-within-your-codefresh-pipeline) from our step marketplace so that you can connect your pipelines with Jira
-* By using your own [jira-cli]({{site.baseurl}}/docs/integrations/notifications/jira-integration/#using-your-own-jira-cli)
-
-## Prerequisites
-* [Codefresh Account]({{site.baseurl}}/docs/administration/create-a-codefresh-account/)
-* [Jira Account](https://www.atlassian.com/software/jira){:target="\_blank"}
-
-## Set up Jira integration in Codefresh
-
-
-When you add a new Jira integration in Codefresh, you can authenticate either using the:
-* [Codefresh Marketplace App]({{site.baseurl}}/docs/integrations/notifications/jira-integration/#authenticate-with-the-jira-client-key)
- We recommended setting up your Jira integration through our Marketplace App.
- > Note that Codefresh currently has to provide you with access to use the Jira Marketplace App. Please get in touch for more information.
-
-* [Jira Account Details]({{site.baseurl}}/docs/integrations/notifications/jira-integration/#provide-account-details)
-
-
-
-**Before you begin**
-
-* To authenticate through the Marketplace App:
- * Get the [Organization URL and the Client Key for the Codfresh App from Jira](#jira-integration-with-marketplace-app)
-
-**How to**
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Atlassian Jira** and then click **Configure**.
-1. Click **Add Jira**.
-1. In the **Integration Name** field, enter a name for the integration which is used to reference it in `codefresh.yaml`.
-1. To restrict access to only Codefresh admins, toggle **Allow access to all users** to OFF.
-
-1. To integrate with the Codefresh Marketplace App, click **Jira Marketplace App**:
- * Paste the **Organization URL** and the **Client Key** you generated for the Codefresh App in Jira.
-1. To integrate with your Jira account details, select **User/Pass**, and define the following:
- * **Jira URL**: The URL of your organization, for example, `https://company-name.atlassian.net’.
- * **Username**: Your Jira username, usually the e-mail with which you are logged in to Jira.
- * **Password**: Your Jira password, or alternatively, the Jira Client Key.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/jira/add-jira-password.png"
-url="/images/integrations/jira/add-jira-password.png"
-alt="Account Information"
-max-width="90%"
-%}
-
-{:start="7"}
-1. For integration with Jira Marketplace App, to verify the connection details, click **Test Connection**.
-1. To apply the changes, click **Save**.
-
-
-
-
-## Jira integration with Marketplace App
-You need to generate the Organization URL and Client Key for the Codefresh application in Atlassian Jira.
-
-
-1. In the Atlassian Marketplace, go to the [Codefresh Application](https://marketplace.atlassian.com/apps/1224560/codefresh){:target="\_blank"}.
- {% include image.html
- lightbox="true"
- file="/images/integrations/jira/add-app.png"
- url="/images/integrations/jira/add-app.png"
- alt="Add Codefresh from Jira App Marketplace"
- caption="Add Codefresh from Jira App Marketplace"
- max-width="90%"
- %}
-
-{:start="2"}
-1. To install the application, click **Get it now**. When prompted, confirm the installation.
- {% include image.html
- lightbox="true"
- file="/images/integrations/jira/confirm.png"
- url="/images/integrations/jira/confirm.png"
- alt="Confirm installation"
- caption="Confirm installation"
- max-width="90%"
- %}
-
-{:start="3"}
-1. When the installation has completed, in your Jira account, go to the **Apps** menu.
-1. Click **Manage your apps**.
-
- {% include image.html
- lightbox="true"
- file="/images/integrations/jira/manage-apps.png"
- url="/images/integrations/jira/manage-apps.png"
- alt="Select Manage Apps within Your Jira Account"
- caption="Select Manage Apps within Your Jira Account"
- max-width="90%"
- %}
-
-{:start="5"}
-1. In **User-installed apps**, locate the Codefresh CI/CD platform integration.
-1. Click **Configure**.
- This will provide you with your Organization URL and the Client Key.
-
- {% include image.html
- lightbox="true"
- file="/images/integrations/jira/configure.png"
- url="/images/integrations/jira/configure.png"
- alt="Account information"
- caption="Account information"
- max-width="90%"
- %}
-
-
-{:start="7"}
-1. Copy **Organization URL** and the **Client Key**. You will need these to set up Jira integration with the Codefresh Marketplace App.
-
-
-
-
-## Using the Jira Integration
-
-Once Jira is connected to your Codefresh account, you can use both platforms in combination and integrate Jira into your [GitOps workflow]({{site.baseurl}}/docs/ci-cd-guides/gitops-deployments/).
-
-## Related articles
-[Example for sending notifications to Jira]({{site.baseurl}}/docs/example-catalog/ci-examples/sending-the-notification-to-jira/)
-[Examples for Codefresh pipelines]({{site.baseurl}}/docs/example-catalog/examples/)
-[Create a pipeline]({{site.baseurl}}/docs/pipelines/pipelines/)
\ No newline at end of file
diff --git a/_docs/integrations/kubernetes.md b/_docs/integrations/kubernetes.md
deleted file mode 100644
index aae836db4..000000000
--- a/_docs/integrations/kubernetes.md
+++ /dev/null
@@ -1,744 +0,0 @@
----
-title: "Kubernetes pipeline integration"
-description: "How Codefresh supports Kubernetes clusters"
-group: integrations
-toc: true
----
-
-Codefresh is one of the few CI/CD solutions that has native support for Kubernetes clusters, not only for deploying applications to Kubernetes, but also for running pipelines on Kubernetes.
-
-Codefresh has native support for Kubernetes in the following areas:
-
-- [Connecting a cluster globally](#connect-a-kubernetes-cluster)
-- [Viewing the cluster status]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
-- [Viewing the environment dashboard]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/)
-- [Deploying to a cluster with the GUI]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/#deploying-a-new-service)
-- [Deploying to a cluster with a pipeline]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/)
-- [Running pipelines on a cluster]({{site.baseurl}}/docs/installation/codefresh-runner/)
-
-
-
-
-Codefresh offers its own Kubernetes dashboard that allows you to inspect the services and namespaces
-in your cluster. To activate this dashboard, you need to connect your cluster to your Codefresh account first.
-
-## Connect a Kubernetes cluster
-
-### Prerequisites
-
-Codefresh SaaS needs network connectivity to connect to your cluster.
-If your cluster is behind a firewall, make sure that you allow access to the [required IPs]({{site.baseurl}}/docs/administration/platform-ip-addresses/).
-
-
-For On-premises and [Hybrid installations]({{site.baseurl}}/docs/administration/behind-the-firewall/), there is no need to tamper with your firewall.
-
-### Set up Kubernetes integration
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Kubernetes** and then click **Configure**.
-1. From the **Add Provider** list, select the Kubernetes provider.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/codefresh-integrations.png"
- url="/images/integrations/codefresh-integrations.png"
- alt="Codefresh integrations"
- caption="Codefresh integrations"
- max-width="70%"
- %}
-
-
-
-#### Adding a GKE Cluster
-Adding a cluster in GKE can be done by clicking the **Add cluster** button under **Google Cloud Provider** and selecting the desired project and cluster.
-
-If this is your first time, you'll be prompted to authenticate using your Google credentials, make sure you're doing so with a user that have access to your GKE projects.
-
-For GKE cluster versions >=1.19 basic authentication is deprecated. You can add the GKE cluster manually by [using the custom Kubernetes integration option]({{site.baseurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/#adding-any-other-cluster-type-not-dependent-on-any-provider) instead.
-
-{{site.data.callout.callout_info}}
-
-If you are a new customer of Google Cloud, you are also eligible to receive a Codefresh offer to get up to $500 in Google credits. As soon at the GKE integration is complete within Codefresh, you will get an email with extra details on how to claim your credits.
-
-Follow the link in the email to fill in an application for the free credits. Once Google approves the application (usually within 1-2 days) your credits will be available to your account. Make sure to check your spam folder for that email.
-
-{{site.data.callout.end}}
-
-{:.text-secondary}
-
-#### Adding an AKS cluster
-
-To add an Azure cluster, select *Azure AKS* from the drop-down menu instead of *Azure AKS SP*. Click the *Authenticate button* and enter your Azure credentials. You will see a description of all permissions that Codefresh needs
-in order to access your cluster. Accept them and Codefresh will connect to Azure to get the cluster information.
-
->If you experience difficulties at this point try logging into Azure first in your browser *before* clicking
-the authenticate button. Also make sure that you are using an organizational/company Azure account and not a personal one. We are currently working with Microsoft to improve this integration.
-
-If everything is ready you will see a dialog that allows you to select your Azure subscription and the
-cluster name that you wish to use.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/kubernetes/add-cluster/select-aks-cluster.png"
-url="/images//integrations/kubernetes/add-cluster/select-aks-cluster.png"
-alt="Selecting the Azure cluster"
-caption="Selecting the Azure cluster"
-max-width="60%"
- %}
-
-Codefresh will query the cluster and show its nodes. You are now ready to [deploy to Azure kubernetes]({{site.baseurl}}/docs/getting-started/deployment-to-kubernetes-quick-start-guide/).
-
->If you wish for any reason to revoke the granted access from the Azure side, visit [https://account.activedirectory.windowsazure.com/r#/applications](https://account.activedirectory.windowsazure.com/r#/applications) and remove "Codefresh" from the list.
-
-#### Adding an AKS cluster with a service principal
-
-An alternative method of adding an Azure cluster is by using a service principal (*Azure AKS SP*).
-
-
-**Before you begin**
-* Follow the [instructions for creating a service principal in the Azure portal](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal){:target="\_blank"}.
-
-**How to**
-
-1. From the **Add Provider** list, select the **Azure AKS SP**.
-1. Click the arrow on the right, and then click **Add Cluster**.
-1. Enter the following:
- * `Client ID`
- * `Tenant`
- * `Client secret`
-
-1. Click **Authenticate**.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/kubernetes/add-cluster/connect-azure-spn.png"
-url="/images/integrations/kubernetes/add-cluster/connect-azure-spn.png"
-alt="Azure Service principal details"
-caption="Azure Service principal details"
-max-width="60%"
- %}
-
-
-
-Codefresh will query the cluster and show its nodes. You are now ready to [deploy to Azure kubernetes]({{site.baseurl}}/docs/getting-started/deployment-to-kubernetes-quick-start-guide/).
-
-
-#### Adding EKS Cluster
-
-To add an Amazon EKS cluster, you must first obtain `kubectl` access to it. Follow the instructions for using the
-[AWS CLI](https://aws.amazon.com/premiumsupport/knowledge-center/eks-cluster-connection/){:target="\_blank"} in order to obtain your kubeconfig locally.
-
-```
-aws eks --region region update-kubeconfig --name cluster_name
-```
-
-Once you have access via `kubectl` then follow the [instructions](#get-cluster-configuration-manually) to obtain all the cluster details.
-To add the Amazon cluster, select *Amazon AWS* from the *ADD PROVIDER* drop-down menu and enter all details in the respective field in the Codefresh UI.
-
-#### Adding a DigitalOcean cluster
-
-DigitalOcean also offers a hosted solution for Kubernetes.
-
-To add a DO cluster select *DigitalOcean* from the *Add provider* menu in your [integration settings](https://g.codefresh.io/account-admin/account-conf/integration/kubernetes). Click the authenticate button and enter your DO account credentials:
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/kubernetes/add-cluster/authorize-do.png"
-url="/images/integrations/kubernetes/add-cluster/authorize-do.png"
-alt="Authorizing DigitalOcean Integration"
-caption="Authorizing DigitalOcean Integration"
-max-width="35%"
- %}
-
-Click on the checkbox next to your account name and select the *Authorize application* button. Codefresh has now access to your DigitalOcean cluster. You need to authenticate only once.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/kubernetes/add-cluster/do-authorized.png"
-url="/images/integrations/kubernetes/add-cluster/do-authorized.png"
-alt="DigitalOcean is now authorized"
-caption="DigitalOcean is now authorized"
-max-width="70%"
- %}
-
-Next, expand the DigitalOcean row from the triangle icon on the right and click on the *Add cluster* button. The drop-down menu should contain all your DigitalOcean Kubernetes clusters. Select the one that you want to connect into Codefresh and click the *Add* button.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/kubernetes/add-cluster/add-do-cluster.png"
-url="/images/integrations/kubernetes/add-cluster/add-do-cluster.png"
-alt="Selecing the DigitalOcean cluster"
-caption="Selecing the DigitalOcean cluster"
-max-width="40%"
- %}
-
-Your cluster is now connected. You should be able to see it your [Kubernetes dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/) and start [deploying]({{site.baseurl}}/docs/getting-started/deployment-to-kubernetes-quick-start-guide/) on it.
-
-Note that you can als add a DigitalOcean cluster as a generic cluster as well (explained below).
-
-
-#### Adding any other cluster type (not dependent on any provider)
-
-
-
-1. To add any other type of cluster, outside of GKE, from the **Add Provider** list, select the **Custom Providers**.
-
-
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/kubernetes/add-cluster/add-cluster-button.png"
-url="/images/integrations/kubernetes/add-cluster/add-cluster-button.png"
-alt="Adding a custom K8s cluster in Codefresh"
-caption="Adding a custom K8s cluster in Codefresh"
-max-width="60%"
- %}
-
-The integration between Codefresh and your Kubernetes cluster is API based, and relies on a Kubernetes service account of your choosing that will be used to manage the integration.
-
-The configurations you'll be required to add are:
-
-
-1. Name: Any name of your choosing, that will represent your cluster context in Codefresh. Do not use spaces, dots or other strange characters in the name.
-1. Host: The full URL of the Kubernetes API endpoints including protocol and port.
-1. Certificate: The Kubernetes service account certificate used for the integration with Codefresh (base64 encoded).
-1. Token: The Kubernetes service account token used for the integration with Codefresh (base64 encoded)
-1. (Optional) Namespace: Restrict Codefresh [access to a specific namespace](#restrict-codefresh-access-to-a-specific-namespace)
-
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/kubernetes/add-cluster/add-cluster-fields.png"
- url="/images/integrations/kubernetes/add-cluster/add-cluster-fields.png"
- alt="Adding a custom cluster in Codefresh"
- caption="Adding a custom cluster in Codefresh"
- max-width="80%"
- %}
-
-There is also a toggle for [private clusters behind a firewall]({{site.baseurl}}/docs/reference/behind-the-firewall/).
-
- In the section below, we'll provide you with easy instructions how to get all your cluster configurations in order to add it to Codefresh.
-
-### Get cluster configuration manually
-
-Codefresh accesses any custom cluster using a [service account](https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/){:target="\_blank"}. You can define the privileges Codefresh has on your cluster
-using the standard authorization methods (i.e. [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/){:target="\_blank"}) supported by your Kubernetes infrastructure.
-
-You need a terminal with `kubectl` access on your cluster. You can even use the "cloud shell" of your
-cloud provider for this purpose.
-
-#### The easy and insecure way
-
-If you are evaluating Codefresh and want to connect your cluster as fast as possible with no issues
-follow these steps:
-
->Note that this method is only suggested for non-production clusters, and quick demos. See the next section for the proper way to use Codefresh in production environments.
-
-First make sure that you are giving commands to the appropriate cluster if you have more than one:
-
-`Choose cluster`
-{% highlight shell %}
-{% raw %}
-kubectl config use-context
-{% endraw %}
-{% endhighlight %}
-
-Then give full admin privileges to the default account.
-
-`Make default account cluster administrator`
-{% highlight shell %}
-{% raw %}
-kubectl create clusterrolebinding default-admin --clusterrole cluster-admin --serviceaccount=default:default -n default
-{% endraw %}
-{% endhighlight %}
-
-Finally run the following commands and copy-paste the result to each Codefresh field in the UI:
-
-`Host IP`
-{% highlight shell %}
-{% raw %}
-export CURRENT_CONTEXT=$(kubectl config current-context) && export CURRENT_CLUSTER=$(kubectl config view -o go-template="{{\$curr_context := \"$CURRENT_CONTEXT\" }}{{range .contexts}}{{if eq .name \$curr_context}}{{.context.cluster}}{{end}}{{end}}") && echo $(kubectl config view -o go-template="{{\$cluster_context := \"$CURRENT_CLUSTER\"}}{{range .clusters}}{{if eq .name \$cluster_context}}{{.cluster.server}}{{end}}{{end}}")
-{% endraw %}
-{% endhighlight %}
-
-`Certificate`
-{% highlight shell %}
-{% raw %}
-echo $(kubectl get secret -o go-template='{{index .data "ca.crt" }}' $(kubectl get sa default -o go-template="{{range .secrets}}{{.name}}{{end}}"))
-{% endraw %}
-{% endhighlight %}
-
-`Token`
-{% highlight shell %}
-{% raw %}
-echo $(kubectl get secret -o go-template='{{index .data "token" }}' $(kubectl get sa default -o go-template="{{range .secrets}}{{.name}}{{end}}"))
-{% endraw %}
-{% endhighlight %}
-
-Once the cluster been added successfully you can go to the `Kubernetes` tab to start working with the services of your cluster.
-
-#### Kubernetes <=1.23: The proper/secure way
-
-For production environments, create a service account and/or role for Codefresh access.
-The minimum permissions Codefresh needs to work with the cluster are the following:
-
-`codefresh-role.yml`
-{% highlight yaml %}
-{% raw %}
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
- name: codefresh-role
-rules:
- - apiGroups: [""]
- resources: ["*"]
- verbs: ["list", "watch", "get"]
-{% endraw %}
-{% endhighlight %}
-
->These permissions only allow Codefresh to read the cluster resources and populate the respective dashboards. For actual deployments, you need to give more privileges. For more information see the [Kubernetes RBAC documentation page](https://kubernetes.io/docs/reference/access-authn-authz/rbac/){:target="\_blank"}.
-
-Here is an example with role + service account + binding.
-
-`codefresh-role-sa-bind.yml`
-{% highlight yaml %}
-{% raw %}
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
- name: codefresh-role
-rules:
- - apiGroups: [ "*"]
- resources: ["*"]
- verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: codefresh-user
- namespace: kube-system
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: codefresh-user
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: codefresh-role
-subjects:
-- kind: ServiceAccount
- name: codefresh-user
- namespace: kube-system
-{% endraw %}
-{% endhighlight %}
-
-
-
-**How to**
-
-1. Select the appropriate cluster if you have more than one:
-`Choose cluster`
-{% highlight shell %}
-{% raw %}
-kubectl config use-context
-{% endraw %}
-{% endhighlight %}
-{:start="2"}
-1. Create the Codefresh user/role:
-`Apply Codefresh access rules`
-{% highlight shell %}
-{% raw %}
-kubectl apply -f codefresh-role-sa-bind.yml
-{% endraw %}
-{% endhighlight %}
-{:start="3"}
-1. Finally run the following commands and copy-paste the result to each Codefresh field in the UI:
-`Host IP`
-{% highlight shell %}
-{% raw %}
-export CURRENT_CONTEXT=$(kubectl config current-context) && export CURRENT_CLUSTER=$(kubectl config view -o go-template="{{\$curr_context := \"$CURRENT_CONTEXT\" }}{{range .contexts}}{{if eq .name \$curr_context}}{{.context.cluster}}{{end}}{{end}}") && echo $(kubectl config view -o go-template="{{\$cluster_context := \"$CURRENT_CLUSTER\"}}{{range .clusters}}{{if eq .name \$cluster_context}}{{.cluster.server}}{{end}}{{end}}")
-{% endraw %}
-{% endhighlight %}
-
-`Certificate`
-{% highlight shell %}
-{% raw %}
-echo $(kubectl get secret -n kube-system -o go-template='{{index .data "ca.crt" }}' $(kubectl get sa codefresh-user -n kube-system -o go-template="{{range .secrets}}{{.name}}{{end}}"))
-{% endraw %}
-{% endhighlight %}
-
-`Token`
-{% highlight shell %}
-{% raw %}
-echo $(kubectl get secret -n kube-system -o go-template='{{index .data "token" }}' $(kubectl get sa codefresh-user -n kube-system -o go-template="{{range .secrets}}{{.name}}{{end}}"))
-{% endraw %}
-{% endhighlight %}
-
-
-
-#### Kubernetes >=1.24: The proper/secure way
-
-For production environments, create a service account and/or role for Codefresh access.
-
-Codefresh needs these minimum permissions to work with the cluster:
-
-`codefresh-role.yml`
-{% highlight yaml %}
-{% raw %}
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
- name: codefresh-role
-rules:
- - apiGroups: [“”]
- resources: [“*”]
- verbs: [“list”, “watch”, “get”]
-{% endraw %}
-{% endhighlight %}
-
->These permissions only allow Codefresh to read the cluster resources and populate the respective dashboards. For actual deployments, you need to give more privileges. For more information see the [Kubernetes RBAC documentation page](https://kubernetes.io/docs/reference/access-authn-authz/rbac/){:target="\_blank"}.
-
-Here is an example with role + service account + binding.
-
-`codefresh-role-sa-bind.yml`
-{% highlight yaml %}
-{% raw %}
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
- name: codefresh-role
-rules:
- - apiGroups: [ “*”]
- resources: [“*”]
- verbs: [“get”, “list”, “watch”, “create”, “update”, “patch”, “delete”]
-—
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: codefresh-user
- namespace: kube-system
-—
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: codefresh-user
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: codefresh-role
-subjects:
-- kind: ServiceAccount
- name: codefresh-user
- namespace: kube-system
-—
-apiVersion: v1
-kind: Secret
-type: kubernetes.io/service-account-token
-metadata:
- name: codefresh-user-token
- namespace: kube-system
- annotations:
- kubernetes.io/service-account.name: “codefresh-user”
-
-{% endraw %}
-{% endhighlight %}
-
-
-
-**How to**
-
-1. If you have more than one cluster, select the appropriate cluster:
-`Choose cluster`
-{% highlight shell %}
-{% raw %}
-kubectl config use-context
-{% endraw %}
-{% endhighlight %}
-{:start="2"}
-1. Create the Codefresh user/role:
-`Apply Codefresh access rules`
-{% highlight shell %}
-{% raw %}
-kubectl apply -f codefresh-role-sa-bind.yml
-{% endraw %}
-{% endhighlight %}
-{:start="3"}
-1. Finally run the following commands, and copy-paste the results to the respective Codefresh field in the UI:
-`Host IP`
-{% highlight shell %}
-{% raw %}
-export CURRENT_CONTEXT=$(kubectl config current-context) && export CURRENT_CLUSTER=$(kubectl config view -o go-template=“{{\$curr_context := \”$CURRENT_CONTEXT\” }}{{range .contexts}}{{if eq .name \$curr_context}}{{.context.cluster}}{{end}}{{end}}”) && echo $(kubectl config view -o go-template=“{{\$cluster_context := \”$CURRENT_CLUSTER\”}}{{range .clusters}}{{if eq .name \$cluster_context}}{{.cluster.server}}{{end}}{{end}}”)
-{% endraw %}
-{% endhighlight %}
-
-`Certificate`
-{% highlight shell %}
-{% raw %}
-echo $(kubectl get secret -n kube-system -o go-template=‘{{index .data “ca.crt” }}’ codefresh-user-token)
-{% endraw %}
-{% endhighlight %}
-
-`Token`
-{% highlight shell %}
-{% raw %}
-echo $(kubectl get secret -n kube-system -o go-template=‘{{index .data “token” }}’ codefresh-user-token)
-{% endraw %}
-{% endhighlight %}
-
-#### Restrict Codefresh access to a specific namespace
-
-In most cases, you want to allow Codefresh to access all namespaces inside the cluster. This is the most convenient option as it will make
-the [services dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/) (and other GUI dashboards) the central way to manage your clusters.
-
-You can also restrict Codefresh only to an specific namespace of your choosing. To achieve this, use the details of service account in the previous section that has access only to that specific namespace, and also fill the *namespace* field in the cluster details form.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/kubernetes/add-cluster/restrict-namespace.png"
- url="/images/integrations/kubernetes/add-cluster/restrict-namespace.png"
- alt="Allows Codefresh access to a single namespace only"
- caption="Allows Codefresh access to a single namespace only"
- max-width="80%"
- %}
-
-Notice that if you follow this approach several built-in Codefresh capabilities will be disabled (e.g. creating new namespaces from the GUI).
-
-
-
-### Adding a Rancher cluster
-
-Rancher clusters are currently supported as generic clusters. Rancher clusters have a specific authentication configuration (the details are here: [https://rancher.com/kubernetes-authentication-in-rancher-and-rbac](https://rancher.com/kubernetes-authentication-in-rancher-and-rbac){:target="\_blank"} for Rancher 1.x and at [https://rancher.com/blog/2018/2018-05-04-authentication-authorization-rancher2/](https://rancher.com/blog/2018/2018-05-04-authentication-authorization-rancher2/){:target="\_blank"} for Rancher 2.x).
-
-Authentication using a token of a Kubernetes Service Account, which is usually used by Codefresh, doesn't work with Rancher clusters. Also, Rancher doesn't do proper TLS termination out-of-the-box for Kubernetes clusters hosted on it, so one needs to configure a load balancer for that purpose.
-
-In summary, the following conditions should be met in order to add the cluster, hosted on Rancher to Codefresh:
-
-#### For Rancher version 1.x
-
-1. The token should be taken from the kubeconfig provided by Rancher and it has to be encoded with base64 before putting it into Codefresh. Be careful with the '\n' characters when encoding. The command for Linux is: `echo | tr -d '\n' | base64 | tr -d '\n'`.
-1. The CA certificate should be the CA of the Load Balancer standing in front of Rancher.
-1. The hostname and port should be corresponding to your Load Balancer.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/kubernetes/add-cluster/rancher-token.png"
- url="/images/integrations/kubernetes/add-cluster/rancher-token.png"
- alt="Getting the Rancher token"
- caption="Getting the Rancher token"
- max-width="40%"
- %}
-
-#### For Rancher version 2.x
-
-1. Kubernetes HOST is in the kubeconfig provided by Rancher for the Kubernetes cluster based on the domain name of Rancher + the Kubernetes cluster endpoint exposed through Rancher in cluster -> server. Example: `https://rancher.localhost/k8s/clusters/c-npft4`.
-1. The token should be taken from the kubeconfig provided by Rancher under user -> token section of YAML and it has to be encoded with base64 before putting it into Codefresh. Be careful with the '\n' characters when encoding, do not wrap token in quotes when running echo command. The command for Linux is: `echo | tr -d '\n' | base64 | tr -d '\n'` Example: `kubeconfig-user-xtnt4:cppxv6db…`.
-1. The CA certificate should be the CA of the Load Balancer standing in front of Rancher base64 encoded `openssl base64 -in cert -out b64`. And then run this command on the file to remove any white space. `cat b64 | tr -d '\040\011\012\015' > b64_cert` then copy and paste this base64 encoded value into Codefresh UI Cert field.
-1. The hostname and port should be corresponding to your Load Balancer.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/kubernetes/add-cluster/rancher-2.png"
- url="/images/integrations/kubernetes/add-cluster/rancher-2.png"
- alt="Rancher 2.x cluster details"
- caption="Rancher 2.x cluster details"
- max-width="40%"
- %}
-
-
-Once you have all the information follow the instructions for adding a generic Kubernetes cluster in Codefresh as described in the previous section.
-
-
-### Troubleshooting cluster addition
-
-After adding your cluster configurations and in case the test fails, click "Save" to get the error message back.
-
-{% include image.html
- lightbox="true"
- file="/images/integrations/kubernetes/add-cluster/click-save-error-message.png"
- url="/images/integrations/kubernetes/add-cluster/click-save-error-message.png"
- alt="Get error message for troubleshooting"
- caption="Get error message for troubleshooting"
- max-width="40%"
- %}
-
-{:.text-secondary}
-#### Error: Cannot list namespaces
-
- `Add Cluster Error`
-{% highlight shell %}
-{% raw %}
-Failed to add cluster: namespaces is forbidden: User "system:serviceaccount:default:default" cannot list namespaces at the cluster scope
-{% endraw %}
-{% endhighlight %}
-
-The service account used for the integration doesn't have the minimal permissions required. To fix this add a service account that have the required permissions.
-
-The easiest way to do this is to create a cluster binding role between the default service account and cluster-admin role:
-
- `Create cluster binding with admin permissions`
-{% highlight shell %}
-{% raw %}
-kubectl create clusterrolebinding default-admin --clusterrole cluster-admin --serviceaccount=default:default
-{% endraw %}
-{% endhighlight %}
-
-### Kubernetes cluster - using an external reverse proxy (edge case)
-
-In case you're using an external reverse proxy to manage inbound traffic to your Kubernetes API, please read [this article]({{site.baseurl}}/docs/deploy-to-kubernetes/verify-cluster-tls-ssl-configuration/) to make sure your certificate setup are managed correctly in order to add your cluster successfully to Codefresh.
-
-### Multiple CAs in certificate chain
-
-Ideally your Kubernetes cluster will have a single certificate which is used directly on the API endpoint. Some organizations
-place clusters behind a load balancer or other proxy mechanism that uses a chain or certificates.
-
-When that happens and you more than one [CA](https://en.wikipedia.org/wiki/Certificate_authority) in your certification chain, you need to provide Codefresh with a [Certificate bundle](https://en.wikipedia.org/wiki/Chain_of_trust) (a file that containers the intermediate CAs as well).
-
-You will know when this is the case as this error will appear when you try to connect your cluster:
-
-```
-{"status":400,"code":"1004","name":"BAD_REQUEST_ERROR","message":"Failed to add cluster: unable to get local issuer certificate","context":{}}
-```
-
-To get the whole certificate open the URL of your Kubernetes in Chrome or Firefox and export all individual certificates as files
-
-{% include image.html
- lightbox="true"
- file="/images/kubernetes/add-cluster/cert-hierarchy.png"
- url="/images/kubernetes/add-cluster/cert-hierarchy.png"
- alt="A Certificate chain"
- caption="A Certificate chain"
- max-width="60%"
- %}
-
-The steps needed are:
-
-1. Connect all certificates (apart from the API/endpoint one) to a bundle:
-`cat rootCA.crt intermediateCA.crt > ca_bundle_cert`.
-1. Run the following to check the validity of the certificate:
-`openssl verify -verbose -CAfile ca_bundle_cert k8_server_cert`.
-1. If the check above passes fine, go on and run the following on your CA bundle file:
-`base64 ca_bundle_cert | tr -d '\n'`.
-1. Copy the output string (be careful when copying) and check whether you have copied it correctly:
-`openssl x509 -text -in <(echo | base64 -d)` - you should see the contents of your CA bundle file.
-1. Put the copied string into the Codefresh Kubernetes integration form and test the connection.
-
-Please make sure the certs are in order Root -> Intermediate -> Server.
-
-
-
-
-
-
-
-
-
-Once you connect a cluster it gets a unique name inside your account that is important when it comes to using this cluster inside a pipeline. From the same screen you can also connect [internal clusters that are behind your firewall]({{site.baseurl}}/docs/reference/behind-the-firewall/#deploying-to-an-internal-kubernetes-cluster/).
-.
-
-## Viewing the Codefresh cluster dashboard
-
-After you connect a cluster, several graphical dashboards are automatically populated. The first one is the [Codefresh Kubernetes dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/).
-
-{%
- include image.html
- lightbox="true"
-file="/images/integrations/kubernetes/kubernetes-dashboard.png"
-url="/images/integrations/kubernetes/kubernetes-dashboard.png"
-alt="Integrated Kubernetes Dashboard"
-caption="Integrated Kubernetes Dashboard"
-max-width="100%"
-%}
-
-You can use this Dashboard to get basic information for your cluster such as services, pods, deployments etc.
-
-{%
- include image.html
- lightbox="true"
-file="/images/integrations/kubernetes/change-kubernetes-manifest.png"
-url="/images/integrations/kubernetes/change-kubernetes-manifest.png"
-alt="Changing a Kubernetes Manifest"
-caption="Changing a Kubernetes Manifest"
-max-width="100%"
-%}
-
-From the same dashboard you can also add/change configmaps and even edit directly the manifest of a resource.
-
-
-
-## Viewing the environment dashboard
-
-The second dashboard that is enabled after you connect a cluster (but not automatically populated), is the [environment dashboard]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/).
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/kubernetes/environments.png"
-url="/images/integrations/kubernetes/environments.png"
-alt="Codefresh Environment Dashboard"
-caption="Codefresh Environment Dashboard"
-max-width="100%"
-%}
-
-This dashboard shows a live view of a Kubernetes application along with the status of the latest builds that affected this environment. You can define such environments either directly from the GUI or [programmatically in a pipeline]({{site.baseurl}}/docs/pipelines/deployment-environments/).
-
-## Ad-hoc deployments with the Codefresh UI
-
-One of the [easiest ways to deploy to Kubernetes]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/) is to use the Codefresh UI and [manually deploy a docker image]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/#deploying-a-new-service):
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/kubernetes/deploy-with-ui.png"
-url="/images/integrations/kubernetes/deploy-with-ui.png"
-alt="Deploying with the quick UI dialog"
-caption="Deploying with the quick UI dialog"
-max-width="80%"
-%}
-
-You can also [create a pull Secret]({{site.baseurl}}/docs/deployments/kubernetes/access-docker-registry-from-kubernetes/) from the GUI.
-
-
-## Automated deployments with Codefresh pipelines
-
-You can also deploy to a cluster in a pipeline. Codefresh offers [several ways for Kubernetes deployments]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/). The important point here is that all connected clusters are automatically available to all pipelines with their unique name as a `kubectl` context.
-
- {% include
-image.html
-lightbox="true"
-file="/images/getting-started/quick-start-k8s/deployment-build.png"
-url="/images/getting-started/quick-start-k8s/deployment-build.png"
-alt="Kubernetes deployment in a pipeline"
-caption="Kubernetes deployment in a pipeline"
-max-width="100%"
-%}
-
-
-You can use the [integrated Codefresh deployment methods]({{site.baseurl}}/docs/pipelines/steps/deploy/) or even run [custom kubectl commands directly on your cluster]({{site.baseurl}}/docs/deployments/kubernetes/custom-kubectl-commands/).
-
-Codefresh also offers a simple solution for [templating]({{site.baseurl}}/docs/deployments/kubernetes/kubernetes-templating/) but you can use another templating methods such as [kustomize]({{site.baseurl}}/docs/example-catalog/cd-examples/deploy-with-kustomize/).
-
-
-
-## Using a cluster for running CI/CD pipelines
-
-Finally you can also use the [Codefresh Runner]({{site.baseurl}}/docs/installation/codefresh-runner/) to run pipelines in your cluster.
-
-
-
-## Related articles
-[Manage your Kubernetes cluster]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
-[Cloning Git repositories]({{site.baseurl}}/docs/example-catalog/ci-examples/git-checkout/)
-
diff --git a/_docs/integrations/microsoft-azure.md b/_docs/integrations/microsoft-azure.md
deleted file mode 100644
index 25c6aa4dc..000000000
--- a/_docs/integrations/microsoft-azure.md
+++ /dev/null
@@ -1,135 +0,0 @@
----
-title: "Microsoft Azure CI integration"
-description: "How to use Codefresh with Azure"
-group: integrations
-redirect_from:
- - /docs/microsoft-azure/
- - /docs/deploy-your-containers/microsoft-azure/
-toc: true
----
-
-Codefresh has native support for Azure in the following areas:
-
-- [Integration with Azure Git]({{site.baseurl}}/docs/integrations/git-providers/#azure-devops)
-- [Connecting to Azure registries]({{site.baseurl}}/docs/docker-registries/azure-docker-registry/)
-- [Deploying to AKS]({{site.baseurl}}/docs/deployments/kubernetes/#adding-aks-cluster)
-- [Using Azure Storage for Test reports]({{site.baseurl}}/docs/testing/test-reports/#connecting-azure-storage)
-- [Using Azure Storage for Helm charts]({{site.baseurl}}/docs/deployments/helm/add-helm-repository/#private-repository---azure)
-- [Azure SSO]({{site.baseurl}}/docs/administration/single-sign-on/sso-azure/)
-
-## Using Azure Git repositories
-
-Codefresh can easily check out code from Azure Git repositories:
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/azure/azure-git-integration.png"
-url="/images/integrations/azure/azure-git-integration.png"
-alt="Azure Git integration"
-caption="Azure Git integration"
-max-width="70%"
-%}
-
-For more details see the [documentation page]({{site.baseurl}}/docs/integrations/git-providers/#azure-devops). Once your repository is connected, you can use the [native clone step]({{site.baseurl}}/docs/pipelines/steps/git-clone/) as well as [Git triggers]({{site.baseurl}}/docs/pipelines/triggers/git-triggers/) like all other git providers.
-
-## Using Azure Docker registries
-
-Azure Docker registries are fully compliant with the Docker registry API that Codefresh follows. You can connect an Azure Registry like any [other Docker registry]({{site.baseurl}}/docs/docker-registries/).
-
-{%
- include image.html
- lightbox="true"
-file="/images/integrations/docker-registries/add-azure-registry.png"
-url="/images/integrations/docker-registries/add-azure-registry.png"
-alt="Adding the Azure Docker registry"
-caption="Adding the Azure Docker registry"
-max-width="70%"
-%}
-
-Once the registry is added you can the [standard push step]({{site.baseurl}}/docs/pipelines/steps/push/) step in pipelines.
-
-## Deploying to Azure Kubernetes
-
-Codefresh has native support for connecting an Azure cluster in the [cluster configuration screen]({{site.baseurl}}/docs/deployments/kubernetes/#connect-a-kubernetes-cluster).
-
-{%
- include image.html
- lightbox="true"
-file="/images/integrations/azure/aks-integration.png"
-url="/images/integrations/azure/aks-integration.png"
-alt="Connecting an Azure cluster"
-caption="Connecting an Azure cluster"
-max-width="40%"
-%}
-
-Once the cluster is connected you can use any of the [available deployment options]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/) for Kubernetes clusters. You also get access to all other Kubernetes dashboards such as the [cluster dashboard]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/) or the [environment dashboard]({{site.baseurl}}/docs/deployments/kubernetes/environment-dashboard/) .
-
-## Storing test reports in Azure storage
-
-Codefres has native support for test reports. You can store the reports on Azure storage.
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/azure/azure-storage.png"
-url="/images/integrations/azure/azure-storage.png"
-alt="Azure cloud storage"
-caption="Azure cloud storage"
-max-width="50%"
-%}
-
-See the full documentation for [test reports]({{site.baseurl}}/docs/testing/test-reports/).
-
-## Using Azure storage for storing Helm charts
-
-You can connect Azure Storage as a Helm repository in the [integrations screen]({{site.baseurl}}/docs/deployments/helm/add-helm-repository/).
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/azure/azure-helm-repo.png"
-url="/images/integrations/azure/azure-helm-repo.png"
-alt="Using Azure for Helm charts"
-caption="Using Azure for Helm charts"
-max-width="80%"
-%}
-
-Once you connect your Helm repository you can use it any [Codefresh pipeline with the Helm step]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/).
-
-## Azure Single Sign-on
-
-You can use Azure Active Directory as an [SSO mechanism]({{site.baseurl}}/docs/administration/single-sign-on/) in Codefresh.
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/azure/azure-sso-integration.png"
-url="/images/integrations/azure/azure-sso-integration.png"
-alt="Azure SSO integration"
-caption="Azure SSO integration"
-max-width="70%"
-%}
-
-Once configuration is complete all Codefresh users can login using their Azure credentials instead of personal accounts.
-
-## Traditional Azure deployments
-
-For any other Azure deployment you can use the [Azure CLI from a Docker image](https://hub.docker.com/_/microsoft-azure-cli){:target="\_blank"} in a [freestyle step]({{site.baseurl}}/docs/pipelines/steps/freestyle/).
-
-`YAML`
-{% highlight yaml %}
-{% raw %}
- create_my_vm:
- title: Creating a VM
- image: mcr.microsoft.com/azure-cli
- commands:
- - az vm create --resource-group TutorialResources --name TutorialVM1 --image UbuntuLTS --generate-ssh-keys
-{% endraw %}
-{% endhighlight %}
-
-For authentication see the [Microsoft documentation page](https://docs.microsoft.com/en-us/cli/azure/authenticate-azure-cli?view=azure-cli-latest){:target="\_blank"}.
-
-## Related articles
-[Manage your Kubernetes cluster]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
-[Cloning Git repositories]({{site.baseurl}}/docs/example-catalog/ci-examples/git-checkout/)
diff --git a/_docs/integrations/notifications.md b/_docs/integrations/notifications.md
deleted file mode 100644
index 21b12ae77..000000000
--- a/_docs/integrations/notifications.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: "Notifications"
-description: ""
-group: integrations
-redirect_from:
- - /docs/notifications/
-toc: true
----
-Codefresh enables you to send notifications about events.
-
-Codefresh supports the following notification channels:
-- Email
-- [Slack]({{ site.baseurl }}/docs/integrations/notifications/slack-integration/)
-- [Jira]({{ site.baseurl }}/docs/integrations/notifications/jira-integration/)
-
diff --git a/_docs/integrations/notifications/jira-integration.md b/_docs/integrations/notifications/jira-integration.md
deleted file mode 100644
index ee47311ce..000000000
--- a/_docs/integrations/notifications/jira-integration.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: "Jira notification integrations for piplines"
-description: ""
-group: integrations
-redirect_from:
- - /docs/jira-integration-1/
- - /docs/integrations/jira-integration-1/
-toc: true
----
-Codefresh integrates with Jira in several ways:
-* Through the [Jira integration]({{site.baseurl}}/docs/integrations/jira/) for the highest visibility into your GitOps deployments
-* Through a [custom step]({{site.baseurl}}/docs/integrations/notifications/jira-integration/#use-jira-within-your-codefresh-pipeline) from our step marketplace so that you can connect your pipelines with Jira
-* Alternatively, through using your own [jira-cli]({{site.baseurl}}/docs/integrations/notifications/jira-integration/#using-your-own-jira-cli)
-
-
-## Prerequisites
-* [Codefresh Account]({{site.baseurl}}/docs/administration/create-a-codefresh-account/)
-* [Jira Account](https://www.atlassian.com/software/jira){:target="\_blank"}
-
-## Use Jira in your Codefresh pipeline
-
-The step marketplace offers several freestyle steps that can be used in your Codefresh pipeline through steps.
-
-One of those steps is the [Jira Issue Manager](https://codefresh.io/steps/step/jira-issue-manager){:target="\_blank"}.
-It can be used to:
-* Create a Jira issue
-* Comment on existing Jira issues
-* Change the status of an issue, for example, once the build is successful
-* Add a description to your issue
-* And more
-
-More information is provided [directly in the example]({{site.baseurl}}/docs/example-catalog/ci-examples/sending-the-notification-to-jira/).
-
-## Using your own jira-cli
-
-Alternatively, you can use your own jira-cli by adding the following steps to your Dockerfile:
-
-{% highlight yaml %}
-FROM python:2-alpine
-RUN apk add -U gcc musl-dev linux-headers openssl-dev libffi-dev && pip install jira-cli
-{% endhighlight %}
-
-And then running the Dockerfile.
-
-## Related articles
-[Codefresh pipeline examples]({{site.baseurl}}/docs/example-catalog/examples/)
-[Create a pipeline]({{site.baseurl}}/docs/pipelines/pipelines/)
\ No newline at end of file
diff --git a/_docs/integrations/notifications/slack.md b/_docs/integrations/notifications/slack.md
deleted file mode 100644
index 8300c42c7..000000000
--- a/_docs/integrations/notifications/slack.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: "Slack"
-description: "Get Slack notifications with pipeline integrations"
-group: integrations
-sub_group: notifications
-permalink: /:collection/integrations/notifications/slack-integration/
-toc: true
-excerpt: "Integrate Codefresh with Slack to get updates on development and testing progress and feedback."
----
-
-You can integrate Slack globally, or for specific pipelines and builds.
-
-## Set up global Slack integration in Codefresh
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Slack** and then click **Configure**.
-1. Select **Quick Setup**.
-1. Select the types of notifications you want to receive on Slack.
-1. Click **Add to Slack**. You are redirected to the Slack sign-in page.
-1. Log in with your Slack credentials.
-1. Select the check box to enable notifications for Slack.
-1. Click **Save**.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/slack/add-slack-integration.png"
-url="/images/integrations/slack/add-slack-integration.png"
-alt="Add Slack integration"
-max-width="50%"
-%}
-
-
-Codefresh can now post notifications to Slack, for example, notifications of successful and failed builds, and direct messages received within the Codefresh app.
-
-## How Slack notifications work
-
-When you have Slack integration enabled:
-
-1. All pipelines that are launched automatically by [triggers]({{site.baseurl}}/docs/pipelines/triggers/) send Slack notifications
-1. All pipelines that are executed manually do **NOT** send Slack notifications.
-
-You can override this behavior by toggling the checkbox **Report notification on pipeline execution** under **Advanced Settings**
-either in a Git trigger dialog or the Run settings of a pipeline.
-
-{% include image.html
-lightbox="true"
-file="/images/integrations/slack/report-notifications.png"
-url="/images/integrations/slack/report-notifications.png"
-alt="Manual Slack override"
-caption="Manual Slack override"
-max-width="40%"
-%}
-
-## Individual pipeline Slack integration
-
-If you wish for more fine-grained control over Slack notifications, then take a look at any of the available slack plugins
-
-* [https://codefresh.io/steps/step/slack-message-sender](https://codefresh.io/steps/step/slack-message-sender){:target="\_blank"}
-* [https://codefresh.io/steps/step/slack-notifier](https://codefresh.io/steps/step/slack-notifier){:target="\_blank"}
-* [https://github.com/cloudposse/slack-notifier](https://github.com/cloudposse/slack-notifier){:target="\_blank"}
-
-
-## Related articles
-[Git triggers in pipelines]({{site.baseurl}}/docs/pipelines/triggers/git-triggers/)
-[Creating pipelines]({{site.baseurl}}/docs/pipelines/pipelines/)
-[Monitoring pipelines]({{site.baseurl}}/docs/pipelines/monitoring-pipelines/)
diff --git a/_docs/integrations/secret-storage.md b/_docs/integrations/secret-storage.md
deleted file mode 100644
index a7f268fa2..000000000
--- a/_docs/integrations/secret-storage.md
+++ /dev/null
@@ -1,158 +0,0 @@
----
-title: "Secret Storage"
-description: "Manage Kubernetes secrets with Codefresh"
-group: integrations
-toc: true
----
-
-Codefresh can resolve variables storing secrets from remote sources. This allows you to keep sensitive data on your cluster, and for Codefresh to request it during pipeline execution on-demand.
-
-Secret-Store is an additional context in Codefresh. Codefresh supports two types of secret storage:
-* Kubernetes secrets for SaaS versions
-* Runtime-Kubernetes for hybrid deployments with Codefresh Runner
-
-You can set up both types either in the Codefresh UI or via the CLI (`codefresh create context secret-store --help`).
-
-> This feature is for Enterprise accounts only.
-
-## Kubernetes secret store setup
-Kubernetes the native secrets supported by a cluster.
-
-### Prerequisites
-
-* For the Kubernetes secret store, [connect your Kubernetes cluster to Codefresh]({{site.baseurl}}/docs/integrations/kubernetes/connect-a-kubernetes-cluster/).
-* Create a Kubernetes secret:
-
-
-### Create a Kubernetes Secret
-
-Create your secret in Kubernetes:
-
-```
-kubectl create secret generic my-secret --from-literal=key1=supersecret
-```
-
-```
-kubectl create configmap my-config-map --from-literal=key1=config1
-```
-
-
-### Set up Kubernetes secret integration in Codefresh UI
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Secret Store** and then click **Configure**.
-1. From the **Add Provider** dropdown, select **Kubernetes**.
-1. Do the following:
- * **Name**: A unique name given to your context, which will be referenced in `codefresh.yaml`.
- * **Resource Type**: Select **Secret** and the data is base64 decoded during resolution.
- * **Cluster**: The name of the cluster as it is configured in Codefresh.
- * **Namespace**: The namespace where the secret is stored.
- * **Resource Name**: Optional. The name of the secret.
- * To allow all users in the account access to the secret, enable **Allow access to all users**.
-
-
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/secret-storage/secrets-ui-view.png"
-url="/images/integrations/secret-storage/secrets-ui-view.png"
-alt="Kubernetes Secret Store"
-caption="Kubernetes Secret Store"
-max-width="80%"
-%}
-
-{:start="5"}
-1. To apply the changes, click **Save**.
-
-
-### Set up Kubernetes secret integration via Codefresh CLI
-
-* To create a secret store context for **Kubernetes**, run:
-```
-codefresh create context secret-store kubernetes "$NAME_IN_CODEFRESH" --cluster "$CLUSTER" --namespace "$NAMESPACE" --resource-type "$TYPE" --resource-name ”$NAME”
-```
-OR, for our example:
-
-```
-codefresh create context secret-store kubernetes "test" --cluster "anna-demo@FirstKubernetes" --namespace "default" --resource-type secret --resource-name "my-secret"
-```
-
-where:
-
-- `$NAME_IN_CODEFRESH` is a unique name given to your context, which will be referenced in `codefresh.yaml` later.
-- `$CLUSTER` is the name of the cluster as it is configured in Codefresh.
-- `$NAMESPACE` is the Kubernetes namespace where the secret is stored.
-- `$TYPE` is of either `secret` or `configmap`
- - if `secret`, data will be base64 decoded during resolution
- - if `configmap`, data will be replaced as is
-- `$RESOURCE_NAME` is optional and is the name of the secret
-
-## Runtime secret store setup for Codefresh Runner installation
-
-
-For [Codefresh Runner]({{site.baseurl}}/docs/installation/codefresh-runner/) installations, you can also store secrets in your own runtime.
-
-### Set up runtime secret store in Codefresh UI
-
-1. In the Codefresh UI, on the toolbar, click the **Settings** icon, and then from the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}.
-1. Select **Secret Store** and then click **Configure**.
-1. From the **Add Provider** dropdown, select **Runtime secret**.
-1. Do the following:
- * **Name**: A unique name given to your context, which will be referenced in `codefresh.yaml`.
- * **Resource Name**: The name of the secret.
- * **Resource Type**: Select the type of secret . - if `secret`, data will be base64 decoded during resolution
- - if `configmap`, data will be replaced as is
- * **Runtime Environment**: Select the runtime environment with the secret.
- * To allow all users in the account access to the secret, enable **Allow access to all users**.
-
-{% include
-image.html
-lightbox="true"
-file="/images/integrations/secret-storage/secrets-ui-view2.png"
-url="/images/integrations/secret-storage/secrets-ui-view2.png"
-alt="Runtime Secret Store"
-caption="Runtime Secret Store"
-max-width="80%"
-%}
-
-{:start="5"}
-
-1. To apply the changes, click **Save**.
-
-
-
-### Set up runtime secret store with Codefresh CLI
-
-To create a secret store context for **Runtime-Kubernetes** environments ([behind the firewall]({{site.baseurl}}/docs/reference/codefresh-runner/)), run:
-
-```
-codefresh create context secret-store kubernetes-runtime "$NAME_IN_CODEFRESH" --runtime "$RUNTIME_NAME" --resource-type "$TYPE" --resource-name ”$NAME”
-```
-
-or, for our example:
-
-```
-codefresh create context secret-store kubernetes-runtime "test" --runtime "gke_firstkubernetes-176201_us-central1-a_anna-demo" --resource-type secret --resource-name "my-secret"
-```
-
-where:
-
-- `$NAME_IN_CODEFRESH` is a unique name given to your context, which will be referenced in `codefresh.yaml` later.
-- `$CLUSTER` is the name of the cluster as it is configured in Codefresh
-- `$NAMESPACE` is the Kubernetes namespace
-- `$TYPE` is of either `secret` or `configmap`
- - if `secret`, data will be base64 decoded during resolution
- - if `configmap`, data will be replaced as is
-- `$RESOURCE_NAME` is the name of the secret (optional)
-- `$RUNTIME_NAME` is the name of the run-time environment to be configured as secret store. If not set, *any* runtime-environment will be considered.
-
-## Using the secrets
-
-Once Codefresh is linked to your secrets, you can use them either in pipelines or any relevant section in the Codefresh UI. For details, see [Using secrets]({{site.baseurl}}/docs/pipelines/secrets-store/) for the details.
-
-## Related articles
-[Shared Configuration]({{site.baseurl}}/docs/pipelines/shared-configuration/)
-[Git integration for pipelines]({{site.baseurl}}/docs/integrations/git-providers/)
-[Kubernetes integration for pipelines]({{site.baseurl}}/docs/integrations/kubernetes/)
-[Container registry integration for pipelines]({{site.baseurl}}/docs/integrations/docker-registries/)
diff --git a/_docs/pipelines/monitoring-pipelines.md b/_docs/pipelines/monitoring-pipelines.md
index 4ced7da8b..b75b84403 100644
--- a/_docs/pipelines/monitoring-pipelines.md
+++ b/_docs/pipelines/monitoring-pipelines.md
@@ -312,14 +312,10 @@ In both cases you can copy to clipboard the yaml shown using the button at the t
### Viewing pipeline metrics
-### Viewing pipeline metrics
-
-Codefresh offers several metrics for the pipeline, and for steps in the pipeline, that allow you to get a better overview of the resources
+Codefresh offers several metrics for pipeline steps that allow you to get a better overview on the resources
consumed by your pipeline.
-**Pipeline metrics**
-
-At the most basic level, Codefresh displays quick metrics while the pipeline is running that include
+At the most basic level Codefresh will show some quick metrics while the pipeline is running that include
memory consumed and size of logs:
{% include
@@ -327,34 +323,25 @@ image.html
lightbox="true"
file="/images/pipeline/monitoring/quick-pipeline-metrics.png"
url="/images/pipeline/monitoring/quick-pipeline-metrics.png"
-alt="Metrics for running pipeline"
-caption="Metrics for running pipeline"
-max-width="95%"
+alt="Pipeline running metrics"
+caption="Pipeline running metrics"
+max-width="70%"
%}
-* To view memory and disk usage for running or completed pipeline builds, click the **Metrics** tab at the bottom of the Build page.
-
- * Memory usage: View memory usage (Y-axis) by time (X-axis) for the duration of the build.
- * Disk usage: View disk usage (Y-axis) by time (X-axis) for the duration of the build. The red line is set at 90% of the maximum disk space.
- To see the precise usage at different points in time, mouse over the dots.
- Viewing the actual disk usage for a build during its run allows you to better gauge and define the [minimum disk space required for the build volume]({{site.baseurl}}/docs/pipelines/pipelines/#runtime).
-
-
+You can then get the memory usage for the whole pipeline by clicking on the metrics tab at the bottom of the screen.
{% include
image.html
lightbox="true"
file="/images/pipeline/monitoring/pipeline-metrics.png"
url="/images/pipeline/monitoring/pipeline-metrics.png"
-alt="Detailed metrics for pipelines"
-caption="Detailed metrics for pipelines"
-max-width="60%"
+alt="Pipeline detailed metrics"
+caption="Pipeline detailed metrics"
+max-width="70%"
%}
-**Pipeline-step metrics**
-For step-specific metrics, first select the step, and then click the **Metrics** tab.
-Step metrics are available for memory and CPU usage (not disk space).
+If you click on an individual step before clicking the *Metrics* tab you will get metrics for that specific step only.
{% include
@@ -368,7 +355,6 @@ max-width="70%"
%}
-
### Restarting the pipeline
You can choose to restart any pipeline by clicking the button at the top right corner.
diff --git a/_docs/pipelines/pipelines.md b/_docs/pipelines/pipelines.md
index aee62ce01..443383d12 100644
--- a/_docs/pipelines/pipelines.md
+++ b/_docs/pipelines/pipelines.md
@@ -218,19 +218,16 @@ You can define multiple external resources in a single pipeline.
- Medium (recommended 3-4 steps)
- Large (recommended 5-6 steps)
-#### Set minimum disk space for a pipeline build
-To speed up builds and improve performance, Codefresh caches different types of data during pipeline execution for reuse across builds. Image-caching is one example of cached data, where Codefresh pulls the required images during the first build and caches them for reuse in future builds. For more info, see [Pipeline caching]({{site.baseurl}}docs/configure-ci-cd-pipeline/pipeline-caching).
-Because a portion of the disk space is already utilized by cache, a build can run out of disk space and fail with the 'no space left on device' error.
+#### Set disk space for pipeline builds
+Set the disk space you need for the pipeline's build volume. Configuring the disk space per pipeline build volume prevents out-of-space scenarios that lead to failed builds. The disk space set for the pipeline is inherited by all the builds run for the pipeline.
-To prevent out-of-space scenarios that lead to failed builds, you can set the minimum disk space you need for the pipeline's build volume. Defining the minimum disk space ensures that Codefresh assigns either a cached disk with sufficient disk space or a new empty disk at the start of the build.
+Codefresh calculates the available range according to the disk size, and automatically sets the disk space for the build volume to 70% of the total disk space. You can either retain the default allocation or change as needed.
-The disk space set for the pipeline is inherited by all the builds run for the pipeline.
-You can also configure the disk space for a [specific trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/git-triggers/#set-minimum-disk-space-for-build-volume-by-trigger) used by the pipeline or for a specific run, and override what's set for the pipeline.
+>You can also configure the disk space for a [specific trigger]({{site.baseurl}}/docs/pipelines/triggers/git-triggers/#set-minimum-disk-space-for-build-volume-by-trigger) used by the pipeline or for a specific run, and override what's set for the pipeline.
-1. Select the pipeline for which to set the minimum disk space.
+1. Select the pipeline for which to set the disk space.
1. Select **Settings**, and then **Runtime**.
-1. Enable **Set minimum required disk space**, and either retain the default displayed or change as needed.
-
+1. Enable **Set minimum required disk space** and either retain the default displayed or change as needed.
{% include
image.html
diff --git a/_docs/pipelines/steps/git-clone.md b/_docs/pipelines/steps/git-clone.md
index a7703d34a..017e3213b 100644
--- a/_docs/pipelines/steps/git-clone.md
+++ b/_docs/pipelines/steps/git-clone.md
@@ -55,7 +55,6 @@ step_name:
| `git` | The name of the [git integration]({{site.baseurl}}/docs/integrations/git-providers/) you want to use. If left empty, Codefresh will attempt to use the git provider that was used during account sign-up. Note that this might have unexpected results if you are changing your Git integrations.| Required|
| `repo` | path of the repository without the domain name in the form of `my_username/my_repo` | Required |
| `revision` | The revision of the repository you are checking out. It can be a revision hash or a branch name. The default value is the branch you have specified in your Git provider (e.g `master` or `main`). | Default |
- `depth` | The number of commits to pull from the repo to create a shallow clone. Creating a shallow clone truncates the history to the number of commits specified, instead of pulling the entire history. | Optional |
| `use_proxy` | If set to true the Git clone process will honor `HTTP_PROXY` and `HTTPS_PROXY` variables if present for [working via a proxy](#using-git-behind-a-proxy). Default value is `false`. | Default |
| `credentials` | Credentials to access the repository, if it requires authentication. It can an object containing `username` and `password` fields. Credentials are optional if you are using the [built-in git integrations]({{site.baseurl}}/docs/integrations/git-providers/) . | Optional |
| `fail_fast` | If a step fails and the process is halted. The default value is `true`. | Default |
diff --git a/_docs/quick-start/ci-quick-start.md b/_docs/quick-start/ci-quick-start.md
deleted file mode 100644
index 57f6ef389..000000000
--- a/_docs/quick-start/ci-quick-start.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-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
deleted file mode 100644
index 134333e7b..000000000
--- a/_docs/quick-start/ci-quickstart/create-ci-pipeline.md
+++ /dev/null
@@ -1,576 +0,0 @@
----
-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
deleted file mode 100644
index 0cc914827..000000000
--- a/_docs/quick-start/ci-quickstart/deploy-to-kubernetes.md
+++ /dev/null
@@ -1,253 +0,0 @@
----
-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
deleted file mode 100644
index ac3167670..000000000
--- a/_docs/quick-start/ci-quickstart/deploy-with-helm.md
+++ /dev/null
@@ -1,366 +0,0 @@
----
-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
deleted file mode 100644
index 4e07f5766..000000000
--- a/_docs/quick-start/ci-quickstart/on-demand-environments.md
+++ /dev/null
@@ -1,112 +0,0 @@
----
-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
deleted file mode 100644
index d7916dcd4..000000000
--- a/_docs/quick-start/create-codefresh-account.md
+++ /dev/null
@@ -1,118 +0,0 @@
----
-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:
-
-As the first step in setting up your account in Codefresh, you need to select your identity provider.
-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.
-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.
-
-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%"
-%}
-
-
-
-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/_docs/reference/git-tokens.md b/_docs/reference/git-tokens.md
deleted file mode 100644
index 25a8994a2..000000000
--- a/_docs/reference/git-tokens.md
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: "Git tokens"
-description: ""
-group: reference
-redirect_from:
- - /docs/administration/git-tokens/
-toc: true
----
-
-
-
-Codefresh requires two types of Git tokens for authentication:
-* Git runtime token for runtime installation
- Used by:
- * Argo CD clone repositories and pull changes to sync the desired state in Git to the live state on the cluster.
- * Argo Events to create webhooks in Git repositories for Event Sources in Delivery Pipelines
-
- The Git runtime token is runtime-specific but not user-specific.
-
-
-* Git user token, a user-specific personal access token for each runtime, unique to every user
- Unique to every user, the Git user token is used to authenticate the user for client-based actions, such as Git clone and push operations on specific repositories.
- Git user token requirements translate to permission scopes which differ for the different Git providers.
-
- After installation, you need to authorize Git access for every provisioned runtime either through OAuth2 or through a personal access token from your Git provider.
- Every user can view the list of runtimes and tokens assigned to each runtime in [User Settings](https://g.codefresh.io/2.0/user-settings){:target="\_blank"}. Codefresh flags and notifies you of invalid, revoked, or expired tokens.
-
-
-
-
-### Git runtime token scopes
-The Git runtime token is mandatory for runtime installation.
-
-{::nomarkdown}
-
-{:/}
-
-#### GitHub and GitHub Enterprise runtime token scopes
-
-* `repo`
-* `admin:repo_hook`
-
-{::nomarkdown}
-
-{:/}
-
-#### GitLab Cloud and GitLab Server runtime token scopes
-
-* `api`
-* `read_repository`
-
-{::nomarkdown}
-
-{:/}
-
-#### Bitbucket Cloud and Bitbucket Server runtime token scopes
-
-* **Account**: `Read`
-* **Workspace membership**: `Read`
-* **Webhooks**: `Read and write`
-* **Repositories**: `Write`, `Admin`
-
-{::nomarkdown}
-
-{:/}
-
-### Git personal tokens
-The Git personal token is a user-specific personal access token per provisioned runtime. Unique to each user, it may be required after to authenticate Git-based actions per runtime in Codefresh, based on how your admin has set up authentication for Git providers.
-
-> If you have access to multiple runtimes, you can use the same personal access token for all the runtimes.
- You must configure the token for each runtime.
-
-{::nomarkdown}
-
-{:/}
-
-#### GitHub and GitHub Enterprise personal user token scopes
-* `repo`
-
-
-{::nomarkdown}
-
-{:/}
-
-#### GitLab Cloud and GitLab Server personal user token scopes
-
-* `write_repository` (includes `read-repository`)
-* `api-read`
-
-{::nomarkdown}
-
-{:/}
-
-#### Bitbucket Cloud and Server personal user token scopes
-
-* **Account**: `Read`
-* **Workspace membership**: `Read`
-* **Repositories**: `Write`, `Admin`
-
-### Related articles
-[User settings]({{site.baseurl}}/docs/administration/user-settings/)
\ No newline at end of file
diff --git a/_docs/reference/secrets.md b/_docs/reference/secrets.md
deleted file mode 100644
index b306c7510..000000000
--- a/_docs/reference/secrets.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: "Secrets"
-description: "Learn how Codefresh stores secrets"
-group: reference
-toc: true
----
-
-
-Codefresh provides out-of-the-box management for secrets, generally to store secrets for third-party integrations.
-
-For secure secret storage, every Codefresh runtime uses the [Bitnami Sealed Secrets controller](https://github.com/bitnami-labs/sealed-secrets){:target="_blank"} behind the scenes.
-This controller is installed as part of the runtime and automatically managed by Codefresh.
-
-### How Sealed Secrets work
-
-Sealed Secrets are based on [public/private key encryption](https://en.wikipedia.org/wiki/Public-key_cryptography){:target="_blank"}. When the controller is installed, it gets a public and private key. The private key stays within the cluster. The public key can be given anywhere to encrypt secrets.
-
-Any kind of secret can be encrypted with the public key (also via the `kubeseal` executable), and then passed to the cluster for decryption when needed.
-
-For GitOps applications, encryption for secrets is critical, as it means that you can commit any kind of secret in Git as long as it is encrypted.
-
-Here's the event flow for Sealed Secrets:
-
-1. A secret is encrypted by an operator and/or developer with the `kubeseal` executable.
-1. A custom Kubernetes resource called SealedSecret is created.
-1. The secret is committed in Git.
-1. During application deployment, the Codefresh runtime applies this secret to the cluster.
-1. The Sealed Secret controller identifies the Sealed Secret object and decrypts it using the private key of the cluster.
-1. The Sealed Secret is converted to a [standard Kubernetes secret](https://kubernetes.io/docs/concepts/configuration/secret/) {:target="_blank"} inside the cluster.
-1. It is then passed to the application like any other secret, as a mounted file or environment variable.
-1. The application uses the secret in its decrypted form.
-
-For more details, you can read our [blog post for sealed secrets](https://codefresh.io/blog/handle-secrets-like-pro-using-gitops/){:target="_blank"}.
-
-### Configuring the Sealed Secrets controller
-
-The Sealed Secret controller is fully managed by the Codefresh runtime, and secret encryption and decryption are fully automated.
-
-> **Warning!** DO NOT tamper with the controller or its private/public keys in any way.
-
-The applications you deploy with Codefresh should also have no knowledge of the controller. All secrets that you need in your own applications should be accessed using the standard Kubernetes methods.
-
-### What to read next
-[Set up a hosted (Hosted GitOps environment]({{site.baseurl}}/docs/runtime/hosted-runtime)
-[Install hybrid runtimes]({{site.baseurl}}/docs/runtime/installation)
-[Image enrichment with integrations]({{site.baseurl}}/docs/integrations/image-enrichment-overview)
-
diff --git a/_docs/reference/shared-configuration.md b/_docs/reference/shared-configuration.md
deleted file mode 100644
index 5153b962b..000000000
--- a/_docs/reference/shared-configuration.md
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: "Shared configuration repo"
-description: ""
-group: reference
-toc: true
----
-
-
-A Codefresh account with a hosted or a hybrid runtime can store configuration manifests for account-level resources in a Git repository. This repository can be shared with other runtimes in the same account, avoiding the need to create and maintain configuration manifests for every runtime.
-
-* Hosted runtimes
- As part of the setup for a hosted runtime, Codefresh creates the shared configuration repository in the selected organization, together with the default Git Source repo. See [Connect Git provider]({{site.baseurl}}/docs/runtime/hosted-runtime/#2-connect-git-provider) in Hosted GitOps setup.
-
-* Hybrid runtimes
- When you install the first hybrid runtime for an account, you can manually define the shared configuration repo through the `--shared-config-repo` flag. Or, you can allow Codefresh to automatically create the shared configuration repo in the runtime installation repo, in `shared-config` root. See [Installing hybrid runtimes]({{site.baseurl}}/docs/runtime/installation/).
-
- For older versions of hybrid runtimes, upgrade the runtime to create the shared configuration repo, as described in [Upgrading hybrid runtimes](#upgrading-hybrid-runtimes) later in this article.
-
-> Currently, Codefresh supports a single shared configuration repo per account.
-
-
-### Shared configuration repo structure
-Below is a representation of the structure of the repository with the shared configuration.
-See a [sample repo](https://github.dev/noam-codefresh/shared-gs){:target="\_blank"}.
-
-```
-.
-├── resources <───────────────────┐
-│ ├── all-runtimes-all-clusters │
-│ │ ├── cm-all.yaml │
-│ │ └── subfolder │
-│ │ └── manifest2.yaml │
-│ ├── control-planes │
-│ │ └── manifest3.yaml │
-│ ├── runtimes │
-│ │ ├── runtime1 │
-│ │ │ └── manifest4.yaml │
-│ │ └── runtime2 │
-│ │ └── manifest5.yaml │
-│ └── manifest6.yaml │
-└── runtimes │
- ├── production │ # referenced by /apps/runtime1/config_dir.json
- │ ├── in-cluster.yaml ─┤ # manage `include` field to decide which dirs/files to sync to cluster
- │ └── remote-cluster.yaml ─┤ # manage `include` field to decide which dirs/files to sync to cluster
- └── staging │ # referenced by /apps/runtime2/config_dir.json
- └── in-cluster.yaml ─┘ # manage `include` field to decide which dirs/files to sync to cluster
-```
-{::nomarkdown}
-
-{:/}
-
-#### `resources` directory
-
-The `resources` directory holds the resources shared by all clusters managed by the runtime:
-
- * `all-runtimes-all-clusters`: Every resource manifest in this directory is applied to all the runtimes in the account, and to all the clusters managed by those runtimes.
- * `control-planes`: Optional. Valid for hosted runtimes only. When defined, every resource manifest in this directory is applied to each hosted runtime’s `in-cluster`.
- * `runtimes/`: Optional. Runtime-specific subdirectory. Every resource manifest in a runtime-specific subdirectory is applied to only that runtime. `manifest4.yaml` in the above example is applied only to `runtime1`.
-
-{::nomarkdown}
-
-{:/}
-
-#### `runtimes` directory
-Includes subdirectories specific to each runtime installed in the cluster, always with `in-cluster.yaml`, and optionally, application manifests for other clusters.
-
-**Example application manifest for in-cluster.yaml**
-
-```yaml
-apiVersion: argoproj.io/v1alpha1
-kind: Application
-metadata:
- labels:
- codefresh.io/entity: internal-config
- codefresh.io/internal: 'true'
- name: in-cluster
-spec:
- project: default
- source:
- repoURL:
- path: resources # or shared-config/resources
- directory:
- include: '{all-runtimes-all-clusters/*.yaml,all-runtimes-all-clusters/**/*.yaml,runtimes//*.yaml,runtimes//**/*.yaml,control-planes/*.yaml,control-planes/**/*.yaml}'
- recurse: true
- destination:
- namespace:
- server: https://kubernetes.default.svc
- syncPolicy:
- automated:
- allowEmpty: true
- prune: true
- selfHeal: true
- syncOptions:
- - allowEmpty=true
-```
-
-
-### Git Source application per runtime
-In addition to the application manifests for the runtimes in the shared configuration repository, every runtime has a Git Source application that references `runtimes/`.
-
-This Git Source application creates an application manifest with the `` for every cluster managed by the runtime. The `include` field in the `` application manifest determines which subdirectories in the `resources` directory are synced to the target cluster.
-
-
-### Adding resources
-When creating a new resource, such as a new integration for example in the Codefresh UI, you can define the runtimes and clusters to which to apply that resource. The app-proxy saves the resource in the correct location and updates the relevant Argo CD Applications to include it.
-
-### Upgrading hybrid runtimes
-Older hybrid runtimes that do not have the shared configuration repository must be upgraded to the latest version.
-You have two options to define the shared configuration repository during upgrade:
-* Upgrade the hybrid runtime, and let the Codefresh app-proxy automatically create the shared configuration repo automatically.
-* Manually define the shared configuration repository, by adding the `--shared-config-repo` flag in the runtime upgrade command.
-
->If the shared configuration repo is not created for an account, Codefresh creates it in the installation repo, in `shared-config` root.
-
-If the hybrid runtime being upgraded has managed clusters, once the shared configuration repo is created for the account either automatically or manually on upgrade, all clusters are migrated to the same repo when app-proxy is initialized. An Argoproj application manifest is committed to the repo for each cluster managed by the runtime.
-
-See [(Hybrid) Upgrade provisioned runtimes]({{site.baseurl}}/docs/runtime/monitor-manage-runtimes/#hybrid-upgrade-provisioned-runtimes).
-
-
-
-
-
-
-
diff --git a/images/create-project.png b/images/create-project.png
deleted file mode 100644
index 2a582026b..000000000
Binary files a/images/create-project.png and /dev/null differ
diff --git a/images/deployments/helm/add-helm-repository.png b/images/deployments/helm/add-helm-repository.png
new file mode 100644
index 000000000..f9227b255
Binary files /dev/null and b/images/deployments/helm/add-helm-repository.png differ
diff --git a/images/deployments/helm/connect-helm-repo.png b/images/deployments/helm/connect-helm-repo.png
new file mode 100644
index 000000000..576319863
Binary files /dev/null and b/images/deployments/helm/connect-helm-repo.png differ
diff --git a/images/deployments/helm/diff.png b/images/deployments/helm/diff.png
new file mode 100644
index 000000000..56888435f
Binary files /dev/null and b/images/deployments/helm/diff.png differ
diff --git a/images/deployments/helm/full-helm-pipeline.png b/images/deployments/helm/full-helm-pipeline.png
new file mode 100644
index 000000000..429cbe4c8
Binary files /dev/null and b/images/deployments/helm/full-helm-pipeline.png differ
diff --git a/images/deployments/helm/helm-badge.png b/images/deployments/helm/helm-badge.png
new file mode 100644
index 000000000..ff284dcd8
Binary files /dev/null and b/images/deployments/helm/helm-badge.png differ
diff --git a/images/deployments/helm/helm-commit-message.png b/images/deployments/helm/helm-commit-message.png
new file mode 100644
index 000000000..b9433254c
Binary files /dev/null and b/images/deployments/helm/helm-commit-message.png differ
diff --git a/images/deployments/helm/helm-release-dashboard.png b/images/deployments/helm/helm-release-dashboard.png
new file mode 100644
index 000000000..c7078f88b
Binary files /dev/null and b/images/deployments/helm/helm-release-dashboard.png differ
diff --git a/images/deployments/helm/history.png b/images/deployments/helm/history.png
new file mode 100644
index 000000000..c00e3e5a8
Binary files /dev/null and b/images/deployments/helm/history.png differ
diff --git a/images/deployments/helm/import-helm-configuration.png b/images/deployments/helm/import-helm-configuration.png
new file mode 100644
index 000000000..17fbbf3cb
Binary files /dev/null and b/images/deployments/helm/import-helm-configuration.png differ
diff --git a/images/deployments/helm/k8s-name.png b/images/deployments/helm/k8s-name.png
new file mode 100644
index 000000000..24197bb23
Binary files /dev/null and b/images/deployments/helm/k8s-name.png differ
diff --git a/images/deployments/helm/managed-helm-repo.png b/images/deployments/helm/managed-helm-repo.png
new file mode 100644
index 000000000..0a9d0c5b7
Binary files /dev/null and b/images/deployments/helm/managed-helm-repo.png differ
diff --git a/images/deployments/helm/manifests.png b/images/deployments/helm/manifests.png
new file mode 100644
index 000000000..67e4ad306
Binary files /dev/null and b/images/deployments/helm/manifests.png differ
diff --git a/images/deployments/helm/override-helm-actions.png b/images/deployments/helm/override-helm-actions.png
new file mode 100644
index 000000000..db9a39df9
Binary files /dev/null and b/images/deployments/helm/override-helm-actions.png differ
diff --git a/images/deployments/helm/promotion/board-management.png b/images/deployments/helm/promotion/board-management.png
new file mode 100644
index 000000000..8b99e0a87
Binary files /dev/null and b/images/deployments/helm/promotion/board-management.png differ
diff --git a/images/deployments/helm/promotion/board-selection.png b/images/deployments/helm/promotion/board-selection.png
new file mode 100644
index 000000000..01922b53b
Binary files /dev/null and b/images/deployments/helm/promotion/board-selection.png differ
diff --git a/images/deployments/helm/promotion/board.png b/images/deployments/helm/promotion/board.png
new file mode 100644
index 000000000..bbd35458a
Binary files /dev/null and b/images/deployments/helm/promotion/board.png differ
diff --git a/images/deployments/helm/promotion/edit-helm-environment.png b/images/deployments/helm/promotion/edit-helm-environment.png
new file mode 100644
index 000000000..7e06aa853
Binary files /dev/null and b/images/deployments/helm/promotion/edit-helm-environment.png differ
diff --git a/images/deployments/helm/promotion/edit-value.png b/images/deployments/helm/promotion/edit-value.png
new file mode 100644
index 000000000..b28abfb2f
Binary files /dev/null and b/images/deployments/helm/promotion/edit-value.png differ
diff --git a/images/deployments/helm/promotion/expand.png b/images/deployments/helm/promotion/expand.png
new file mode 100644
index 000000000..9e4d063f4
Binary files /dev/null and b/images/deployments/helm/promotion/expand.png differ
diff --git a/images/deployments/helm/promotion/filter.png b/images/deployments/helm/promotion/filter.png
new file mode 100644
index 000000000..a429fd407
Binary files /dev/null and b/images/deployments/helm/promotion/filter.png differ
diff --git a/images/deployments/helm/promotion/helm-environments.png b/images/deployments/helm/promotion/helm-environments.png
new file mode 100644
index 000000000..4b5849797
Binary files /dev/null and b/images/deployments/helm/promotion/helm-environments.png differ
diff --git a/images/deployments/helm/promotion/promote-settings.png b/images/deployments/helm/promotion/promote-settings.png
new file mode 100644
index 000000000..4d965ac59
Binary files /dev/null and b/images/deployments/helm/promotion/promote-settings.png differ
diff --git a/images/deployments/helm/promotion/promote.png b/images/deployments/helm/promotion/promote.png
new file mode 100644
index 000000000..94bd01a85
Binary files /dev/null and b/images/deployments/helm/promotion/promote.png differ
diff --git a/images/deployments/helm/promotion/shift-left.png b/images/deployments/helm/promotion/shift-left.png
new file mode 100644
index 000000000..cce3c9378
Binary files /dev/null and b/images/deployments/helm/promotion/shift-left.png differ
diff --git a/images/deployments/helm/promotion/shift-right.png b/images/deployments/helm/promotion/shift-right.png
new file mode 100644
index 000000000..54d1a2ff0
Binary files /dev/null and b/images/deployments/helm/promotion/shift-right.png differ
diff --git a/images/deployments/helm/promotion/value-options.png b/images/deployments/helm/promotion/value-options.png
new file mode 100644
index 000000000..5ce6820f5
Binary files /dev/null and b/images/deployments/helm/promotion/value-options.png differ
diff --git a/images/deployments/helm/quick-helm-integration.png b/images/deployments/helm/quick-helm-integration.png
new file mode 100644
index 000000000..d6e7ced4b
Binary files /dev/null and b/images/deployments/helm/quick-helm-integration.png differ
diff --git a/images/deployments/helm/rollback.png b/images/deployments/helm/rollback.png
new file mode 100644
index 000000000..5ff38aae6
Binary files /dev/null and b/images/deployments/helm/rollback.png differ
diff --git a/images/deployments/helm/services.png b/images/deployments/helm/services.png
new file mode 100644
index 000000000..e9e00b23e
Binary files /dev/null and b/images/deployments/helm/services.png differ
diff --git a/images/deployments/kubernetes/define-k8s-deployment-resource.png b/images/deployments/kubernetes/define-k8s-deployment-resource.png
new file mode 100644
index 000000000..381ea2e78
Binary files /dev/null and b/images/deployments/kubernetes/define-k8s-deployment-resource.png differ
diff --git a/images/deployments/kubernetes/define-k8s-service-resource.png b/images/deployments/kubernetes/define-k8s-service-resource.png
new file mode 100644
index 000000000..2488975be
Binary files /dev/null and b/images/deployments/kubernetes/define-k8s-service-resource.png differ
diff --git a/images/deployments/kubernetes/deploying-private-cf-registry.png b/images/deployments/kubernetes/deploying-private-cf-registry.png
new file mode 100644
index 000000000..92b9c979c
Binary files /dev/null and b/images/deployments/kubernetes/deploying-private-cf-registry.png differ
diff --git a/images/deployments/kubernetes/describe-k8s-deployment.png b/images/deployments/kubernetes/describe-k8s-deployment.png
new file mode 100644
index 000000000..68be6815a
Binary files /dev/null and b/images/deployments/kubernetes/describe-k8s-deployment.png differ
diff --git a/images/deployments/kubernetes/environment-variables-deployment.png b/images/deployments/kubernetes/environment-variables-deployment.png
new file mode 100644
index 000000000..6b90e010a
Binary files /dev/null and b/images/deployments/kubernetes/environment-variables-deployment.png differ
diff --git a/images/deployments/kubernetes/grid-view.png b/images/deployments/kubernetes/grid-view.png
new file mode 100644
index 000000000..d05e9e554
Binary files /dev/null and b/images/deployments/kubernetes/grid-view.png differ
diff --git a/images/deployments/kubernetes/kube-context.png b/images/deployments/kubernetes/kube-context.png
new file mode 100644
index 000000000..c94744a62
Binary files /dev/null and b/images/deployments/kubernetes/kube-context.png differ
diff --git a/images/deployments/kubernetes/kubernetes-dashboard.png b/images/deployments/kubernetes/kubernetes-dashboard.png
new file mode 100644
index 000000000..1a78c079f
Binary files /dev/null and b/images/deployments/kubernetes/kubernetes-dashboard.png differ
diff --git a/images/deployments/kubernetes/parallel-kubectl.png b/images/deployments/kubernetes/parallel-kubectl.png
new file mode 100644
index 000000000..9945bfe6b
Binary files /dev/null and b/images/deployments/kubernetes/parallel-kubectl.png differ
diff --git a/images/integrations/kubernetes/deploy-with-ui.png b/images/deployments/kubernetes/quick-ui-deploy.png
similarity index 100%
rename from images/integrations/kubernetes/deploy-with-ui.png
rename to images/deployments/kubernetes/quick-ui-deploy.png
diff --git a/images/integrations/aws/amazon-s3-helm-repo.png b/images/integrations/aws/amazon-s3-helm-repo.png
deleted file mode 100644
index be5855ddf..000000000
Binary files a/images/integrations/aws/amazon-s3-helm-repo.png and /dev/null differ
diff --git a/images/integrations/aws/amazon-storage.png b/images/integrations/aws/amazon-storage.png
deleted file mode 100644
index 66a6ea71a..000000000
Binary files a/images/integrations/aws/amazon-storage.png and /dev/null differ
diff --git a/images/integrations/aws/aws-integration.png b/images/integrations/aws/aws-integration.png
deleted file mode 100644
index 30fedd8ba..000000000
Binary files a/images/integrations/aws/aws-integration.png and /dev/null differ
diff --git a/images/integrations/codefresh-hosted-gitops/hosted-app-dashboard.png b/images/integrations/codefresh-hosted-gitops/hosted-app-dashboard.png
deleted file mode 100644
index 1f84c0589..000000000
Binary files a/images/integrations/codefresh-hosted-gitops/hosted-app-dashboard.png and /dev/null differ
diff --git a/images/integrations/codefresh-hosted-gitops/hosted-dora-metrics.png b/images/integrations/codefresh-hosted-gitops/hosted-dora-metrics.png
deleted file mode 100644
index 1e49aa2de..000000000
Binary files a/images/integrations/codefresh-hosted-gitops/hosted-dora-metrics.png and /dev/null differ
diff --git a/images/integrations/codefresh-hosted-gitops/hosted-home-dashboard.png b/images/integrations/codefresh-hosted-gitops/hosted-home-dashboard.png
deleted file mode 100644
index 34aefde20..000000000
Binary files a/images/integrations/codefresh-hosted-gitops/hosted-home-dashboard.png and /dev/null differ
diff --git a/images/integrations/codefresh-hosted-gitops/hosted-int-tools.png b/images/integrations/codefresh-hosted-gitops/hosted-int-tools.png
deleted file mode 100644
index 82bf5df46..000000000
Binary files a/images/integrations/codefresh-hosted-gitops/hosted-int-tools.png and /dev/null differ
diff --git a/images/integrations/codefresh-hosted-gitops/hosted-runtime.png b/images/integrations/codefresh-hosted-gitops/hosted-runtime.png
deleted file mode 100644
index 9ca9c1f2e..000000000
Binary files a/images/integrations/codefresh-hosted-gitops/hosted-runtime.png and /dev/null differ
diff --git a/images/integrations/docker-registries/add-amazon-ecr-registry.png b/images/integrations/docker-registries/add-amazon-ecr-registry.png
deleted file mode 100644
index 1e93350e8..000000000
Binary files a/images/integrations/docker-registries/add-amazon-ecr-registry.png and /dev/null differ
diff --git a/images/integrations/docker-registries/add-azure-registry.png b/images/integrations/docker-registries/add-azure-registry.png
deleted file mode 100644
index d6dfc40d2..000000000
Binary files a/images/integrations/docker-registries/add-azure-registry.png and /dev/null differ
diff --git a/images/integrations/docker-registries/add-bintray-registry.png b/images/integrations/docker-registries/add-bintray-registry.png
deleted file mode 100644
index bc582d8bd..000000000
Binary files a/images/integrations/docker-registries/add-bintray-registry.png and /dev/null differ
diff --git a/images/integrations/docker-registries/add-docker-registry.png b/images/integrations/docker-registries/add-docker-registry.png
deleted file mode 100644
index a62a1eda4..000000000
Binary files a/images/integrations/docker-registries/add-docker-registry.png and /dev/null differ
diff --git a/images/integrations/docker-registries/add-gcr-registry.png b/images/integrations/docker-registries/add-gcr-registry.png
deleted file mode 100644
index 90ea85000..000000000
Binary files a/images/integrations/docker-registries/add-gcr-registry.png and /dev/null differ
diff --git a/images/integrations/docker-registries/add-other-docker-registry.png b/images/integrations/docker-registries/add-other-docker-registry.png
deleted file mode 100644
index ca5c9aeb0..000000000
Binary files a/images/integrations/docker-registries/add-other-docker-registry.png and /dev/null differ
diff --git a/images/integrations/docker-registries/add-quay-registry.png b/images/integrations/docker-registries/add-quay-registry.png
deleted file mode 100644
index d6268f67c..000000000
Binary files a/images/integrations/docker-registries/add-quay-registry.png and /dev/null differ
diff --git a/images/integrations/docker-registries/bintray/bintray-metadata.png b/images/integrations/docker-registries/bintray-metadata.png
similarity index 100%
rename from images/integrations/docker-registries/bintray/bintray-metadata.png
rename to images/integrations/docker-registries/bintray-metadata.png
diff --git a/images/integrations/docker-registries/bintray/bintray-api-key.png b/images/integrations/docker-registries/bintray/bintray-api-key.png
deleted file mode 100644
index ebe3c5576..000000000
Binary files a/images/integrations/docker-registries/bintray/bintray-api-key.png and /dev/null differ
diff --git a/images/integrations/docker-registries/bintray/bintray-domain.png b/images/integrations/docker-registries/bintray/bintray-domain.png
deleted file mode 100644
index 2ad961cd9..000000000
Binary files a/images/integrations/docker-registries/bintray/bintray-domain.png and /dev/null differ
diff --git a/images/integrations/docker-registries/bintray/bintray-set-me-up.png b/images/integrations/docker-registries/bintray/bintray-set-me-up.png
deleted file mode 100644
index eb9124c06..000000000
Binary files a/images/integrations/docker-registries/bintray/bintray-set-me-up.png and /dev/null differ
diff --git a/images/integrations/docker-registries/digital-ocean/codefresh-docker-registry.png b/images/integrations/docker-registries/digital-ocean/codefresh-docker-registry.png
deleted file mode 100644
index 6e5c34275..000000000
Binary files a/images/integrations/docker-registries/digital-ocean/codefresh-docker-registry.png and /dev/null differ
diff --git a/images/integrations/docker-registries/digital-ocean/codefresh-pipeline.png b/images/integrations/docker-registries/digital-ocean/codefresh-pipeline.png
deleted file mode 100644
index 63a6864c2..000000000
Binary files a/images/integrations/docker-registries/digital-ocean/codefresh-pipeline.png and /dev/null differ
diff --git a/images/integrations/docker-registries/digital-ocean/container-registry-do.png b/images/integrations/docker-registries/digital-ocean/container-registry-do.png
deleted file mode 100644
index c5a5e31b4..000000000
Binary files a/images/integrations/docker-registries/digital-ocean/container-registry-do.png and /dev/null differ
diff --git a/images/integrations/docker-registries/digital-ocean/create-registry.png b/images/integrations/docker-registries/digital-ocean/create-registry.png
deleted file mode 100644
index 0497ab828..000000000
Binary files a/images/integrations/docker-registries/digital-ocean/create-registry.png and /dev/null differ
diff --git a/images/integrations/docker-registries/dockerhub/add-dockerhub-registry.png b/images/integrations/docker-registries/dockerhub/add-dockerhub-registry.png
deleted file mode 100644
index 5714d0ed1..000000000
Binary files a/images/integrations/docker-registries/dockerhub/add-dockerhub-registry.png and /dev/null differ
diff --git a/images/integrations/docker-registries/dockerhub/pushing-two-dockerhub-accounts.png b/images/integrations/docker-registries/dockerhub/pushing-two-dockerhub-accounts.png
deleted file mode 100644
index adf423a26..000000000
Binary files a/images/integrations/docker-registries/dockerhub/pushing-two-dockerhub-accounts.png and /dev/null differ
diff --git a/images/integrations/docker-registries/dockerhub/two-dockerhub-integrations.png b/images/integrations/docker-registries/dockerhub/two-dockerhub-integrations.png
deleted file mode 100644
index ed758e381..000000000
Binary files a/images/integrations/docker-registries/dockerhub/two-dockerhub-integrations.png and /dev/null differ
diff --git a/images/integrations/docker-registries/ecr/ecr-manual-promote-button.png b/images/integrations/docker-registries/ecr/ecr-manual-promote-button.png
deleted file mode 100644
index 338c08dd6..000000000
Binary files a/images/integrations/docker-registries/ecr/ecr-manual-promote-button.png and /dev/null differ
diff --git a/images/integrations/docker-registries/ecr/ecr-manual-promote-repo-name.png b/images/integrations/docker-registries/ecr/ecr-manual-promote-repo-name.png
deleted file mode 100644
index 047af00bc..000000000
Binary files a/images/integrations/docker-registries/ecr/ecr-manual-promote-repo-name.png and /dev/null differ
diff --git a/images/integrations/docker-registries/ecr/ecr-manual-promote-settings.png b/images/integrations/docker-registries/ecr/ecr-manual-promote-settings.png
deleted file mode 100644
index 8d52e4291..000000000
Binary files a/images/integrations/docker-registries/ecr/ecr-manual-promote-settings.png and /dev/null differ
diff --git a/images/integrations/docker-registries/github/github-registry-codefresh.png b/images/integrations/docker-registries/github/github-registry-codefresh.png
deleted file mode 100644
index 656179f5b..000000000
Binary files a/images/integrations/docker-registries/github/github-registry-codefresh.png and /dev/null differ
diff --git a/images/integrations/docker-registries/github/github-registry-pipeline.png b/images/integrations/docker-registries/github/github-registry-pipeline.png
deleted file mode 100644
index 51c462619..000000000
Binary files a/images/integrations/docker-registries/github/github-registry-pipeline.png and /dev/null differ
diff --git a/images/integrations/docker-registries/github/manual-docker-push.png b/images/integrations/docker-registries/github/manual-docker-push.png
deleted file mode 100644
index 74be26a2e..000000000
Binary files a/images/integrations/docker-registries/github/manual-docker-push.png and /dev/null differ
diff --git a/images/integrations/docker-registries/github/multiple-docker-tags.png b/images/integrations/docker-registries/github/multiple-docker-tags.png
deleted file mode 100644
index 6196243da..000000000
Binary files a/images/integrations/docker-registries/github/multiple-docker-tags.png and /dev/null differ
diff --git a/images/integrations/docker-registries/google-artifact-registry-settings.png b/images/integrations/docker-registries/google-artifact-registry-settings.png
deleted file mode 100644
index 9faa1ba98..000000000
Binary files a/images/integrations/docker-registries/google-artifact-registry-settings.png and /dev/null differ
diff --git a/images/integrations/docker-registries/google-gcr-registry-settings.png b/images/integrations/docker-registries/google-gcr-registry-settings.png
deleted file mode 100644
index e085a0c1b..000000000
Binary files a/images/integrations/docker-registries/google-gcr-registry-settings.png and /dev/null differ
diff --git a/images/integrations/docker-registries/registry-name.png b/images/integrations/docker-registries/registry-name.png
deleted file mode 100644
index 3d7b1c9a6..000000000
Binary files a/images/integrations/docker-registries/registry-name.png and /dev/null differ
diff --git a/images/integrations/github-actions/environment-variables.png b/images/integrations/github-actions/environment-variables.png
deleted file mode 100644
index 93393c4cd..000000000
Binary files a/images/integrations/github-actions/environment-variables.png and /dev/null differ
diff --git a/images/integrations/github-actions/github-action-pipeline.png b/images/integrations/github-actions/github-action-pipeline.png
deleted file mode 100644
index 95be64ce5..000000000
Binary files a/images/integrations/github-actions/github-action-pipeline.png and /dev/null differ
diff --git a/images/integrations/github-actions/github-action-step-browser.png b/images/integrations/github-actions/github-action-step-browser.png
deleted file mode 100644
index 7bb1f9a5c..000000000
Binary files a/images/integrations/github-actions/github-action-step-browser.png and /dev/null differ
diff --git a/images/integrations/github-actions/github-actions-marketplace.png b/images/integrations/github-actions/github-actions-marketplace.png
deleted file mode 100644
index 7d2fb0d3f..000000000
Binary files a/images/integrations/github-actions/github-actions-marketplace.png and /dev/null differ
diff --git a/images/integrations/github-actions/select-github-action.png b/images/integrations/github-actions/select-github-action.png
deleted file mode 100644
index dc586dfc5..000000000
Binary files a/images/integrations/github-actions/select-github-action.png and /dev/null differ
diff --git a/images/integrations/github-actions/snyk-action-arguments.png b/images/integrations/github-actions/snyk-action-arguments.png
deleted file mode 100644
index cdce79526..000000000
Binary files a/images/integrations/github-actions/snyk-action-arguments.png and /dev/null differ
diff --git a/images/integrations/jenkins/call-a-codefresh-pipeline.png b/images/integrations/jenkins/call-a-codefresh-pipeline.png
deleted file mode 100644
index d6d28a5b0..000000000
Binary files a/images/integrations/jenkins/call-a-codefresh-pipeline.png and /dev/null differ
diff --git a/images/integrations/jenkins/calling-codefresh-from-jenkins.png b/images/integrations/jenkins/calling-codefresh-from-jenkins.png
deleted file mode 100644
index e857a46c9..000000000
Binary files a/images/integrations/jenkins/calling-codefresh-from-jenkins.png and /dev/null differ
diff --git a/images/integrations/jenkins/calling-jenkins-from-codefresh.png b/images/integrations/jenkins/calling-jenkins-from-codefresh.png
deleted file mode 100644
index 9a65af5a9..000000000
Binary files a/images/integrations/jenkins/calling-jenkins-from-codefresh.png and /dev/null differ
diff --git a/images/integrations/jenkins/codefresh-logs-from-jenkins.png b/images/integrations/jenkins/codefresh-logs-from-jenkins.png
deleted file mode 100644
index 4f864c45c..000000000
Binary files a/images/integrations/jenkins/codefresh-logs-from-jenkins.png and /dev/null differ
diff --git a/images/integrations/jenkins/jenkins-api-token.png b/images/integrations/jenkins/jenkins-api-token.png
deleted file mode 100644
index d53ab493a..000000000
Binary files a/images/integrations/jenkins/jenkins-api-token.png and /dev/null differ
diff --git a/images/integrations/jenkins/jenkins-credentials.png b/images/integrations/jenkins/jenkins-credentials.png
deleted file mode 100644
index 46da80590..000000000
Binary files a/images/integrations/jenkins/jenkins-credentials.png and /dev/null differ
diff --git a/images/integrations/jenkins/jenkins-freestyle-job.png b/images/integrations/jenkins/jenkins-freestyle-job.png
deleted file mode 100644
index 9b14ce0a9..000000000
Binary files a/images/integrations/jenkins/jenkins-freestyle-job.png and /dev/null differ
diff --git a/images/integrations/jenkins/jenkins-tool-installation.png b/images/integrations/jenkins/jenkins-tool-installation.png
deleted file mode 100644
index e498d2b59..000000000
Binary files a/images/integrations/jenkins/jenkins-tool-installation.png and /dev/null differ
diff --git a/images/integrations/jenkins/jenkins-variables.png b/images/integrations/jenkins/jenkins-variables.png
deleted file mode 100644
index 6bcb4e21b..000000000
Binary files a/images/integrations/jenkins/jenkins-variables.png and /dev/null differ
diff --git a/images/integrations/jenkins/migrate-jenkins-pipeline.png b/images/integrations/jenkins/migrate-jenkins-pipeline.png
deleted file mode 100644
index db9731f2d..000000000
Binary files a/images/integrations/jenkins/migrate-jenkins-pipeline.png and /dev/null differ
diff --git a/images/integrations/jenkins/pipeline-variables.png b/images/integrations/jenkins/pipeline-variables.png
deleted file mode 100644
index 27ce44b83..000000000
Binary files a/images/integrations/jenkins/pipeline-variables.png and /dev/null differ
diff --git a/images/integrations/jenkins/trigger-remote-jenkins-job.png b/images/integrations/jenkins/trigger-remote-jenkins-job.png
deleted file mode 100644
index dd1783f77..000000000
Binary files a/images/integrations/jenkins/trigger-remote-jenkins-job.png and /dev/null differ
diff --git a/images/integrations/jira/account-settings.png b/images/integrations/jira/account-settings.png
deleted file mode 100644
index 95db987d0..000000000
Binary files a/images/integrations/jira/account-settings.png and /dev/null differ
diff --git a/images/integrations/jira/add-app.png b/images/integrations/jira/add-app.png
deleted file mode 100644
index d5457759c..000000000
Binary files a/images/integrations/jira/add-app.png and /dev/null differ
diff --git a/images/integrations/jira/add-jira-password.png b/images/integrations/jira/add-jira-password.png
deleted file mode 100644
index 074bd1e9c..000000000
Binary files a/images/integrations/jira/add-jira-password.png and /dev/null differ
diff --git a/images/integrations/jira/client-key.png b/images/integrations/jira/client-key.png
deleted file mode 100644
index 99ff95a65..000000000
Binary files a/images/integrations/jira/client-key.png and /dev/null differ
diff --git a/images/integrations/jira/codefresh-dashboard.png b/images/integrations/jira/codefresh-dashboard.png
deleted file mode 100644
index 3d9959f37..000000000
Binary files a/images/integrations/jira/codefresh-dashboard.png and /dev/null differ
diff --git a/images/integrations/jira/codefreshpipeline.png b/images/integrations/jira/codefreshpipeline.png
deleted file mode 100644
index b0dedbd61..000000000
Binary files a/images/integrations/jira/codefreshpipeline.png and /dev/null differ
diff --git a/images/integrations/jira/configure.png b/images/integrations/jira/configure.png
deleted file mode 100644
index 46e55ade0..000000000
Binary files a/images/integrations/jira/configure.png and /dev/null differ
diff --git a/images/integrations/jira/confirm.png b/images/integrations/jira/confirm.png
deleted file mode 100644
index 93c4614f2..000000000
Binary files a/images/integrations/jira/confirm.png and /dev/null differ
diff --git a/images/integrations/jira/jira-comment.png b/images/integrations/jira/jira-comment.png
deleted file mode 100644
index f9747daa6..000000000
Binary files a/images/integrations/jira/jira-comment.png and /dev/null differ
diff --git a/images/integrations/jira/jira-deployment-info.png b/images/integrations/jira/jira-deployment-info.png
deleted file mode 100644
index 5ed018afb..000000000
Binary files a/images/integrations/jira/jira-deployment-info.png and /dev/null differ
diff --git a/images/integrations/jira/jira-deployment-report-int-settings.png b/images/integrations/jira/jira-deployment-report-int-settings.png
deleted file mode 100644
index e919690e6..000000000
Binary files a/images/integrations/jira/jira-deployment-report-int-settings.png and /dev/null differ
diff --git a/images/integrations/jira/jira-enrichment-int-settings.png b/images/integrations/jira/jira-enrichment-int-settings.png
deleted file mode 100644
index 5dfd1c225..000000000
Binary files a/images/integrations/jira/jira-enrichment-int-settings.png and /dev/null differ
diff --git a/images/integrations/jira/jira-image-dashboard.png b/images/integrations/jira/jira-image-dashboard.png
deleted file mode 100644
index 65d76183e..000000000
Binary files a/images/integrations/jira/jira-image-dashboard.png and /dev/null differ
diff --git a/images/integrations/jira/jira-integration-one.png b/images/integrations/jira/jira-integration-one.png
deleted file mode 100644
index 0fb770643..000000000
Binary files a/images/integrations/jira/jira-integration-one.png and /dev/null differ
diff --git a/images/integrations/jira/jira-integration-two.png b/images/integrations/jira/jira-integration-two.png
deleted file mode 100644
index 5def27440..000000000
Binary files a/images/integrations/jira/jira-integration-two.png and /dev/null differ
diff --git a/images/integrations/jira/jira-integration-type.png b/images/integrations/jira/jira-integration-type.png
deleted file mode 100644
index 483e5e155..000000000
Binary files a/images/integrations/jira/jira-integration-type.png and /dev/null differ
diff --git a/images/integrations/jira/jira-marketplace-auth.png b/images/integrations/jira/jira-marketplace-auth.png
deleted file mode 100644
index 1f69b1d34..000000000
Binary files a/images/integrations/jira/jira-marketplace-auth.png and /dev/null differ
diff --git a/images/integrations/jira/jira-report-info-toggle.png b/images/integrations/jira/jira-report-info-toggle.png
deleted file mode 100644
index c047fae3c..000000000
Binary files a/images/integrations/jira/jira-report-info-toggle.png and /dev/null differ
diff --git a/images/integrations/jira/manage-apps.png b/images/integrations/jira/manage-apps.png
deleted file mode 100644
index 588855644..000000000
Binary files a/images/integrations/jira/manage-apps.png and /dev/null differ
diff --git a/images/integrations/jira/oauth-credentials.png b/images/integrations/jira/oauth-credentials.png
deleted file mode 100644
index 91d88dfae..000000000
Binary files a/images/integrations/jira/oauth-credentials.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/add-cluster-button.png b/images/integrations/kubernetes/add-cluster/add-cluster-button.png
deleted file mode 100644
index 4f618fb1b..000000000
Binary files a/images/integrations/kubernetes/add-cluster/add-cluster-button.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/add-cluster-fields.png b/images/integrations/kubernetes/add-cluster/add-cluster-fields.png
deleted file mode 100644
index a245290c7..000000000
Binary files a/images/integrations/kubernetes/add-cluster/add-cluster-fields.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/add-do-cluster.png b/images/integrations/kubernetes/add-cluster/add-do-cluster.png
deleted file mode 100644
index 86a0d3511..000000000
Binary files a/images/integrations/kubernetes/add-cluster/add-do-cluster.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/authorize-do.png b/images/integrations/kubernetes/add-cluster/authorize-do.png
deleted file mode 100644
index fa7f86c70..000000000
Binary files a/images/integrations/kubernetes/add-cluster/authorize-do.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/cert-hierarchy.png b/images/integrations/kubernetes/add-cluster/cert-hierarchy.png
deleted file mode 100644
index f850381c2..000000000
Binary files a/images/integrations/kubernetes/add-cluster/cert-hierarchy.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/click-save-error-message.png b/images/integrations/kubernetes/add-cluster/click-save-error-message.png
deleted file mode 100644
index de3259fbf..000000000
Binary files a/images/integrations/kubernetes/add-cluster/click-save-error-message.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/connect-azure-spn.png b/images/integrations/kubernetes/add-cluster/connect-azure-spn.png
deleted file mode 100644
index 39da41ef5..000000000
Binary files a/images/integrations/kubernetes/add-cluster/connect-azure-spn.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/do-authorized.png b/images/integrations/kubernetes/add-cluster/do-authorized.png
deleted file mode 100644
index ad9f02615..000000000
Binary files a/images/integrations/kubernetes/add-cluster/do-authorized.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/gke-basic-auth.png b/images/integrations/kubernetes/add-cluster/gke-basic-auth.png
deleted file mode 100644
index c5225fa8b..000000000
Binary files a/images/integrations/kubernetes/add-cluster/gke-basic-auth.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/rancher-2.png b/images/integrations/kubernetes/add-cluster/rancher-2.png
deleted file mode 100644
index f1d17a3c6..000000000
Binary files a/images/integrations/kubernetes/add-cluster/rancher-2.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/rancher-token.png b/images/integrations/kubernetes/add-cluster/rancher-token.png
deleted file mode 100644
index 89efeb779..000000000
Binary files a/images/integrations/kubernetes/add-cluster/rancher-token.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/restrict-namespace.png b/images/integrations/kubernetes/add-cluster/restrict-namespace.png
deleted file mode 100644
index 9999b36dd..000000000
Binary files a/images/integrations/kubernetes/add-cluster/restrict-namespace.png and /dev/null differ
diff --git a/images/integrations/kubernetes/add-cluster/select-aks-cluster.png b/images/integrations/kubernetes/add-cluster/select-aks-cluster.png
deleted file mode 100644
index c2deb87df..000000000
Binary files a/images/integrations/kubernetes/add-cluster/select-aks-cluster.png and /dev/null differ
diff --git a/images/integrations/kubernetes/environments.png b/images/integrations/kubernetes/environments.png
deleted file mode 100644
index 2ad21c0dd..000000000
Binary files a/images/integrations/kubernetes/environments.png and /dev/null differ
diff --git a/images/integrations/kubernetes/environments.textClipping b/images/integrations/kubernetes/environments.textClipping
deleted file mode 100644
index 672ca7c22..000000000
Binary files a/images/integrations/kubernetes/environments.textClipping and /dev/null differ
diff --git a/images/integrations/secret-storage/secrets-ui-view.png b/images/integrations/secret-storage/secrets-ui-view.png
index 44194be4c..2e6c0b9fb 100644
Binary files a/images/integrations/secret-storage/secrets-ui-view.png and b/images/integrations/secret-storage/secrets-ui-view.png differ
diff --git a/images/integrations/secret-storage/secrets-ui-view2.png b/images/integrations/secret-storage/secrets-ui-view2.png
index 43c4380a8..3b49f1651 100644
Binary files a/images/integrations/secret-storage/secrets-ui-view2.png and b/images/integrations/secret-storage/secrets-ui-view2.png differ
diff --git a/images/pipeline/monitoring/pipeline-metrics.png b/images/pipeline/monitoring/pipeline-metrics.png
index f028eebf8..3a7752386 100644
Binary files a/images/pipeline/monitoring/pipeline-metrics.png and b/images/pipeline/monitoring/pipeline-metrics.png differ
diff --git a/images/quick-start/create-account/bitbucket-authorize.png b/images/quick-start/create-account/bitbucket-authorize.png
deleted file mode 100644
index 987adbff3..000000000
Binary files a/images/quick-start/create-account/bitbucket-authorize.png and /dev/null differ
diff --git a/images/quick-start/create-account/codefresh-accountname.png b/images/quick-start/create-account/codefresh-accountname.png
deleted file mode 100644
index 44cfd1036..000000000
Binary files a/images/quick-start/create-account/codefresh-accountname.png and /dev/null differ
diff --git a/images/quick-start/create-account/codefresh-dashboard.png b/images/quick-start/create-account/codefresh-dashboard.png
deleted file mode 100644
index 86c077b08..000000000
Binary files a/images/quick-start/create-account/codefresh-dashboard.png and /dev/null differ
diff --git a/images/quick-start/create-account/codefresh-personalize.png b/images/quick-start/create-account/codefresh-personalize.png
deleted file mode 100644
index 205fd55b3..000000000
Binary files a/images/quick-start/create-account/codefresh-personalize.png and /dev/null differ
diff --git a/images/quick-start/create-account/codefresh-signup.png b/images/quick-start/create-account/codefresh-signup.png
deleted file mode 100644
index ab7a35661..000000000
Binary files a/images/quick-start/create-account/codefresh-signup.png and /dev/null differ
diff --git a/images/quick-start/create-account/create-account-steps.png b/images/quick-start/create-account/create-account-steps.png
deleted file mode 100644
index 9769257b5..000000000
Binary files a/images/quick-start/create-account/create-account-steps.png and /dev/null differ
diff --git a/images/quick-start/create-account/git-firewall.png b/images/quick-start/create-account/git-firewall.png
deleted file mode 100644
index bf4842c4f..000000000
Binary files a/images/quick-start/create-account/git-firewall.png and /dev/null differ
diff --git a/images/quick-start/create-account/github-authorize.png b/images/quick-start/create-account/github-authorize.png
deleted file mode 100644
index 49aa8809b..000000000
Binary files a/images/quick-start/create-account/github-authorize.png and /dev/null differ
diff --git a/images/quick-start/create-account/gitlab-authorize.png b/images/quick-start/create-account/gitlab-authorize.png
deleted file mode 100644
index d666b39f6..000000000
Binary files a/images/quick-start/create-account/gitlab-authorize.png and /dev/null differ
diff --git a/images/quick-start/create-account/select-identity-provider.png b/images/quick-start/create-account/select-identity-provider.png
deleted file mode 100644
index d5321606e..000000000
Binary files a/images/quick-start/create-account/select-identity-provider.png and /dev/null differ
diff --git a/images/quick-start/create-account/stash.png b/images/quick-start/create-account/stash.png
deleted file mode 100644
index 1415da356..000000000
Binary files a/images/quick-start/create-account/stash.png and /dev/null 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
deleted file mode 100644
index fcac5f314..000000000
Binary files a/images/quick-start/quick-start-ci/add-docker-hub.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/add-new.png b/images/quick-start/quick-start-ci/add-new.png
deleted file mode 100644
index 92780006e..000000000
Binary files a/images/quick-start/quick-start-ci/add-new.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/build-button.png b/images/quick-start/quick-start-ci/build-button.png
deleted file mode 100644
index 6da6cdc1c..000000000
Binary files a/images/quick-start/quick-start-ci/build-button.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/build-method.png b/images/quick-start/quick-start-ci/build-method.png
deleted file mode 100644
index 1be012842..000000000
Binary files a/images/quick-start/quick-start-ci/build-method.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/building.png b/images/quick-start/quick-start-ci/building.png
deleted file mode 100644
index 07d491905..000000000
Binary files a/images/quick-start/quick-start-ci/building.png and /dev/null 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
deleted file mode 100644
index 2da15cc57..000000000
--- a/images/quick-start/quick-start-ci/ci-with-merges.svg
+++ /dev/null
@@ -1,974 +0,0 @@
-
-
-
-
diff --git a/images/quick-start/quick-start-ci/create-ci-project.png b/images/quick-start/quick-start-ci/create-ci-project.png
deleted file mode 100644
index b794862c0..000000000
Binary files a/images/quick-start/quick-start-ci/create-ci-project.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/create-pipeline.png b/images/quick-start/quick-start-ci/create-pipeline.png
deleted file mode 100644
index 332301eb6..000000000
Binary files a/images/quick-start/quick-start-ci/create-pipeline.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/dashboard.png b/images/quick-start/quick-start-ci/dashboard.png
deleted file mode 100644
index 34a927ba3..000000000
Binary files a/images/quick-start/quick-start-ci/dashboard.png and /dev/null 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
deleted file mode 100644
index 69b2f4165..000000000
Binary files a/images/quick-start/quick-start-ci/docker-build-steps.jpg and /dev/null 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
deleted file mode 100644
index 178b822eb..000000000
Binary files a/images/quick-start/quick-start-ci/docker-build-steps.png and /dev/null 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
deleted file mode 100644
index 2b0021a39..000000000
--- a/images/quick-start/quick-start-ci/docker-build-steps.svg
+++ /dev/null
@@ -1,270 +0,0 @@
-
-
-
-
diff --git a/images/quick-start/quick-start-ci/docker-file-locate.png b/images/quick-start/quick-start-ci/docker-file-locate.png
deleted file mode 100644
index 81d73d6d5..000000000
Binary files a/images/quick-start/quick-start-ci/docker-file-locate.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/docker-hub.png b/images/quick-start/quick-start-ci/docker-hub.png
deleted file mode 100644
index ff945379c..000000000
Binary files a/images/quick-start/quick-start-ci/docker-hub.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/docker-images.png b/images/quick-start/quick-start-ci/docker-images.png
deleted file mode 100644
index 986ba244e..000000000
Binary files a/images/quick-start/quick-start-ci/docker-images.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/docker-layers.png b/images/quick-start/quick-start-ci/docker-layers.png
deleted file mode 100644
index 090e94c0d..000000000
Binary files a/images/quick-start/quick-start-ci/docker-layers.png and /dev/null 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
deleted file mode 100644
index 47575b018..000000000
Binary files a/images/quick-start/quick-start-ci/docker-push-stage.jpg and /dev/null 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
deleted file mode 100644
index 101dec208..000000000
Binary files a/images/quick-start/quick-start-ci/docker-push-stage.png and /dev/null 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
deleted file mode 100644
index 597cd444d..000000000
--- a/images/quick-start/quick-start-ci/docker-push-stage.svg
+++ /dev/null
@@ -1,356 +0,0 @@
-
-
-
-
diff --git a/images/quick-start/quick-start-ci/docker-pushing.png b/images/quick-start/quick-start-ci/docker-pushing.png
deleted file mode 100644
index 68243eaf0..000000000
Binary files a/images/quick-start/quick-start-ci/docker-pushing.png and /dev/null 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
deleted file mode 100644
index df71408b8..000000000
Binary files a/images/quick-start/quick-start-ci/docker-store-stage.jpg and /dev/null 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
deleted file mode 100644
index 99ddf870b..000000000
Binary files a/images/quick-start/quick-start-ci/docker-store-stage.png and /dev/null 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
deleted file mode 100644
index dcc35e69f..000000000
--- a/images/quick-start/quick-start-ci/docker-store-stage.svg
+++ /dev/null
@@ -1,322 +0,0 @@
-
-
-
-
diff --git a/images/quick-start/quick-start-ci/docker-timeline.png b/images/quick-start/quick-start-ci/docker-timeline.png
deleted file mode 100644
index ea7c844d9..000000000
Binary files a/images/quick-start/quick-start-ci/docker-timeline.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/external-registries.png b/images/quick-start/quick-start-ci/external-registries.png
deleted file mode 100644
index 572b45d1b..000000000
Binary files a/images/quick-start/quick-start-ci/external-registries.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/finished-build.png b/images/quick-start/quick-start-ci/finished-build.png
deleted file mode 100644
index aa474d944..000000000
Binary files a/images/quick-start/quick-start-ci/finished-build.png and /dev/null 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
deleted file mode 100644
index 22dd534b6..000000000
Binary files a/images/quick-start/quick-start-ci/fork-example-project.png and /dev/null 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
deleted file mode 100644
index 8652e71ec..000000000
Binary files a/images/quick-start/quick-start-ci/inspect-docker-file.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/pipeline-overview.jpg b/images/quick-start/quick-start-ci/pipeline-overview.jpg
deleted file mode 100644
index 6443154ef..000000000
Binary files a/images/quick-start/quick-start-ci/pipeline-overview.jpg and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/pipeline-overview.png b/images/quick-start/quick-start-ci/pipeline-overview.png
deleted file mode 100644
index b36aa08d6..000000000
Binary files a/images/quick-start/quick-start-ci/pipeline-overview.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/pipeline-overview.svg b/images/quick-start/quick-start-ci/pipeline-overview.svg
deleted file mode 100644
index 51fbcdadb..000000000
--- a/images/quick-start/quick-start-ci/pipeline-overview.svg
+++ /dev/null
@@ -1,401 +0,0 @@
-
-
-
-
diff --git a/images/quick-start/quick-start-ci/push-to-registry.png b/images/quick-start/quick-start-ci/push-to-registry.png
deleted file mode 100644
index 26214fb07..000000000
Binary files a/images/quick-start/quick-start-ci/push-to-registry.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/sample-application.png b/images/quick-start/quick-start-ci/sample-application.png
deleted file mode 100644
index 0bbe73d5f..000000000
Binary files a/images/quick-start/quick-start-ci/sample-application.png and /dev/null 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
deleted file mode 100644
index 9ecb3f18c..000000000
Binary files a/images/quick-start/quick-start-ci/select-branch-to-build.png and /dev/null 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
deleted file mode 100644
index d42f3c64c..000000000
Binary files a/images/quick-start/quick-start-ci/select-git-repository.png and /dev/null 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
deleted file mode 100644
index a7ad54d86..000000000
Binary files a/images/quick-start/quick-start-ci/unit-test-result.png and /dev/null 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
deleted file mode 100644
index 9e0c9c06e..000000000
Binary files a/images/quick-start/quick-start-ci/unit-test-stage.jpg and /dev/null 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
deleted file mode 100644
index e0e098ff2..000000000
Binary files a/images/quick-start/quick-start-ci/unit-test-stage.png and /dev/null 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
deleted file mode 100644
index 29b91cffc..000000000
--- a/images/quick-start/quick-start-ci/unit-test-stage.svg
+++ /dev/null
@@ -1,287 +0,0 @@
-
-
-
-
diff --git a/images/quick-start/quick-start-ci/unit-tests.png b/images/quick-start/quick-start-ci/unit-tests.png
deleted file mode 100644
index e881c02a6..000000000
Binary files a/images/quick-start/quick-start-ci/unit-tests.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/webhook-github.png b/images/quick-start/quick-start-ci/webhook-github.png
deleted file mode 100644
index 60021616b..000000000
Binary files a/images/quick-start/quick-start-ci/webhook-github.png and /dev/null differ
diff --git a/images/quick-start/quick-start-ci/yaml-toggle.png b/images/quick-start/quick-start-ci/yaml-toggle.png
deleted file mode 100644
index a3712d889..000000000
Binary files a/images/quick-start/quick-start-ci/yaml-toggle.png and /dev/null 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
deleted file mode 100644
index 3af8d098e..000000000
Binary files a/images/quick-start/quick-start-helm/empty-helm-cluster.png and /dev/null differ
diff --git a/images/quick-start/quick-start-helm/helm-logs.png b/images/quick-start/quick-start-helm/helm-logs.png
deleted file mode 100644
index fa5a57942..000000000
Binary files a/images/quick-start/quick-start-helm/helm-logs.png and /dev/null 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
deleted file mode 100644
index 0e7f4e2c6..000000000
Binary files a/images/quick-start/quick-start-helm/helm-only-store.png and /dev/null 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
deleted file mode 100644
index fdd692b8e..000000000
Binary files a/images/quick-start/quick-start-helm/helm-release-details.png and /dev/null differ
diff --git a/images/quick-start/quick-start-helm/helm-repo.png b/images/quick-start/quick-start-helm/helm-repo.png
deleted file mode 100644
index bab1ce09b..000000000
Binary files a/images/quick-start/quick-start-helm/helm-repo.png and /dev/null differ
diff --git a/images/quick-start/quick-start-helm/helm-rollback.png b/images/quick-start/quick-start-helm/helm-rollback.png
deleted file mode 100644
index 8e7afa0a2..000000000
Binary files a/images/quick-start/quick-start-helm/helm-rollback.png and /dev/null 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
deleted file mode 100644
index 4f1cb75c0..000000000
Binary files a/images/quick-start/quick-start-helm/helm-select-shared-configuration.png and /dev/null differ
diff --git a/images/quick-start/quick-start-helm/helm-values.png b/images/quick-start/quick-start-helm/helm-values.png
deleted file mode 100644
index f5eae9b13..000000000
Binary files a/images/quick-start/quick-start-helm/helm-values.png and /dev/null 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
deleted file mode 100644
index b88412000..000000000
Binary files a/images/quick-start/quick-start-helm/helm-version-selection.png and /dev/null 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
deleted file mode 100644
index 6b0b984fe..000000000
Binary files a/images/quick-start/quick-start-helm/import-helm-repo-conf.png and /dev/null 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
deleted file mode 100644
index 1f189587d..000000000
Binary files a/images/quick-start/quick-start-k8s/add-codefresh-registry.png and /dev/null 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
deleted file mode 100644
index 5201bb34a..000000000
Binary files a/images/quick-start/quick-start-k8s/add-service-button.png and /dev/null differ
diff --git a/images/quick-start/quick-start-k8s/add-service.png b/images/quick-start/quick-start-k8s/add-service.png
deleted file mode 100644
index 9e591d297..000000000
Binary files a/images/quick-start/quick-start-k8s/add-service.png and /dev/null differ
diff --git a/images/quick-start/quick-start-k8s/after-change.png b/images/quick-start/quick-start-k8s/after-change.png
deleted file mode 100644
index 5251e7d9d..000000000
Binary files a/images/quick-start/quick-start-k8s/after-change.png and /dev/null differ
diff --git a/images/quick-start/quick-start-k8s/after-deployment.png b/images/quick-start/quick-start-k8s/after-deployment.png
deleted file mode 100644
index 24785c27f..000000000
Binary files a/images/quick-start/quick-start-k8s/after-deployment.png and /dev/null differ
diff --git a/images/quick-start/quick-start-k8s/before-change.png b/images/quick-start/quick-start-k8s/before-change.png
deleted file mode 100644
index 00277967c..000000000
Binary files a/images/quick-start/quick-start-k8s/before-change.png and /dev/null differ
diff --git a/images/quick-start/quick-start-k8s/deployment-build.png b/images/quick-start/quick-start-k8s/deployment-build.png
deleted file mode 100644
index d99bb08c9..000000000
Binary files a/images/quick-start/quick-start-k8s/deployment-build.png and /dev/null 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
deleted file mode 100644
index d4f7c703e..000000000
Binary files a/images/quick-start/quick-start-k8s/deployment-in-progress.png and /dev/null differ
diff --git a/images/quick-start/quick-start-k8s/deployment-step.png b/images/quick-start/quick-start-k8s/deployment-step.png
deleted file mode 100644
index d4f7c703e..000000000
Binary files a/images/quick-start/quick-start-k8s/deployment-step.png and /dev/null 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
deleted file mode 100644
index 162a46c8f..000000000
Binary files a/images/quick-start/quick-start-k8s/docker-image-name.png and /dev/null 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
deleted file mode 100644
index ab9926668..000000000
Binary files a/images/quick-start/quick-start-k8s/generate-api-button.png and /dev/null 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
deleted file mode 100644
index e2f795dce..000000000
Binary files a/images/quick-start/quick-start-k8s/generate-api-key.png and /dev/null differ
diff --git a/images/quick-start/quick-start-k8s/git-change.png b/images/quick-start/quick-start-k8s/git-change.png
deleted file mode 100644
index 7e4e60c57..000000000
Binary files a/images/quick-start/quick-start-k8s/git-change.png and /dev/null differ
diff --git a/images/quick-start/quick-start-k8s/integrations.png b/images/quick-start/quick-start-k8s/integrations.png
deleted file mode 100644
index 3f90509a1..000000000
Binary files a/images/quick-start/quick-start-k8s/integrations.png and /dev/null differ
diff --git a/images/quick-start/quick-start-k8s/overview.png b/images/quick-start/quick-start-k8s/overview.png
deleted file mode 100644
index d04961b28..000000000
Binary files a/images/quick-start/quick-start-k8s/overview.png and /dev/null 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
deleted file mode 100644
index 009f52eed..000000000
Binary files a/images/quick-start/quick-start-k8s/push-to-registry.png and /dev/null 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
deleted file mode 100644
index 1189d9a71..000000000
Binary files a/images/quick-start/quick-start-test-pr/auto-build-feature.png and /dev/null 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
deleted file mode 100644
index 89669530d..000000000
Binary files a/images/quick-start/quick-start-test-pr/auto-build-pr.png and /dev/null 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
deleted file mode 100644
index f74365f78..000000000
Binary files a/images/quick-start/quick-start-test-pr/auto-build-settings.png and /dev/null 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
deleted file mode 100644
index 48614f490..000000000
Binary files a/images/quick-start/quick-start-test-pr/demo-environment.png and /dev/null 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
deleted file mode 100644
index db836686c..000000000
Binary files a/images/quick-start/quick-start-test-pr/demo-stage.jpg and /dev/null 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
deleted file mode 100644
index aafe111be..000000000
Binary files a/images/quick-start/quick-start-test-pr/demo-stage.png and /dev/null 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
deleted file mode 100644
index eab0ac324..000000000
--- a/images/quick-start/quick-start-test-pr/demo-stage.svg
+++ /dev/null
@@ -1,347 +0,0 @@
-
-
-
-
diff --git a/images/quick-start/quick-start-test-pr/env-details.png b/images/quick-start/quick-start-test-pr/env-details.png
deleted file mode 100644
index 949a2c051..000000000
Binary files a/images/quick-start/quick-start-test-pr/env-details.png and /dev/null 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
deleted file mode 100644
index 05f317da9..000000000
Binary files a/images/quick-start/quick-start-test-pr/launch-dashboard.png and /dev/null 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
deleted file mode 100644
index bacf0b7f9..000000000
Binary files a/images/quick-start/quick-start-test-pr/launch-url.png and /dev/null differ
diff --git a/images/quick-start/quick-start-test-pr/launch.png b/images/quick-start/quick-start-test-pr/launch.png
deleted file mode 100644
index ce0ae37cf..000000000
Binary files a/images/quick-start/quick-start-test-pr/launch.png and /dev/null 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
deleted file mode 100644
index 16a42677b..000000000
Binary files a/images/quick-start/quick-start-test-pr/multiple-pipelines.png and /dev/null 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
deleted file mode 100644
index a6f234a7c..000000000
Binary files a/images/quick-start/quick-start-test-pr/port-setting.png and /dev/null 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
deleted file mode 100644
index df584d087..000000000
Binary files a/images/quick-start/quick-start-test-pr/view-branches.png and /dev/null 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
deleted file mode 100644
index 3706ca172..000000000
Binary files a/images/quick-start/quick-start-test-pr/view-prs.png and /dev/null differ
diff --git a/images/rel-notes-nov22-app-warnings.png b/images/rel-notes-nov22-app-warnings.png
deleted file mode 100644
index 2dd8d9f9e..000000000
Binary files a/images/rel-notes-nov22-app-warnings.png and /dev/null differ
diff --git a/images/rel-notes-nov22-ignore-extraneous-on.png b/images/rel-notes-nov22-ignore-extraneous-on.png
deleted file mode 100644
index 0dbbc040b..000000000
Binary files a/images/rel-notes-nov22-ignore-extraneous-on.png and /dev/null differ
diff --git a/images/whats-new/rel-notes-nov-22-ignore-extraneous-annotation.png b/images/whats-new/rel-notes-nov-22-ignore-extraneous-annotation.png
deleted file mode 100644
index cbce7a837..000000000
Binary files a/images/whats-new/rel-notes-nov-22-ignore-extraneous-annotation.png and /dev/null differ
diff --git a/images/whats-new/rel-notes-nov22-app-warnings.png b/images/whats-new/rel-notes-nov22-app-warnings.png
deleted file mode 100644
index 2dd8d9f9e..000000000
Binary files a/images/whats-new/rel-notes-nov22-app-warnings.png and /dev/null differ
diff --git a/images/whats-new/rel-notes-nov22-card-view.png b/images/whats-new/rel-notes-nov22-card-view.png
deleted file mode 100644
index 248fc5f14..000000000
Binary files a/images/whats-new/rel-notes-nov22-card-view.png and /dev/null differ