Skip to content

Commit 342851c

Browse files
authored
Proj one getting started (#291)
* Add topics to getting started * Update ci-codefresh.md * Update ci cd topics * Create concepts.md * Update content * Add concepts * Update content Added content to concept and ci, cd topics * Update getting started * Update gitops-codefresh.md
1 parent f2ef0b2 commit 342851c

File tree

7 files changed

+457
-0
lines changed

7 files changed

+457
-0
lines changed

_data/home-content.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11

22

3+
4+
- title: Getting started
5+
icon: images/home-icons/started.svg
6+
url: ''
7+
links:
8+
- title: Introduction to Codefresh
9+
localurl: /docs/getting-started/intro-to-codefresh/
10+
- title: Codefresh for CI
11+
localurl: /docs/getting-started/ci-codefresh/
12+
- title: Codefresh for CD
13+
localurl: /docs/getting-started/cd-codefresh/
14+
- title: Codefresh for GitOps
15+
localurl: /docs/getting-started/gitops-codefresh/
16+
- title: Concepts in Codefresh
17+
localurl: /docs/getting-started/concepts/
18+
319
- title: Dashboards & insights
420
icon: images/home-icons/guides.png
521
url: ''
@@ -41,6 +57,7 @@
4157
localurl: /docs/ci-cd-guides/progressive-delivery/
4258

4359

60+
4461
- title: Example catalog
4562
icon: images/home-icons/tutorial.svg
4663
url: ''

_data/nav.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
11

22

33

4+
- title: Getting started
5+
url: "/getting-started"
6+
pages:
7+
- title: Introduction to Codefresh
8+
url: "/intro-to-codefresh"
9+
- title: Codefresh for CI
10+
url: "/ci-codefresh"
11+
- title: Codefresh for CD
12+
url: "/cd-codefresh"
13+
- title: Codefresh for GitOps
14+
url: "/gitops-codefresh"
15+
- title: Concepts in Codefresh
16+
url: "/concepts"
17+
18+
19+
20+
421
- title: Dashboards & Insights
522
url: "/dashboards"
623
pages:
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
title: "Codefresh for CD"
3+
description: "Continuous deployment (CD) with Codefresh pipelines"
4+
group: getting-started
5+
toc: true
6+
---
7+
8+
Work in progress TBD
9+
10+
<!--Focus on
11+
12+
Connecting K8s cluster
13+
Deploying K8s
14+
Running kubectl
15+
Connecting to Helm registries
16+
Building Helm charts
17+
Pushing Helm charts
18+
Deploying Helm charts
19+
Dashboards -->
20+
21+
22+
## Connecting to Kubernetes
23+
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.
24+
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.
25+
26+
See [Connecting a Kubernetes cluster]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster).
27+
28+
## Deploying to Kubernetes
29+
Codefresh offers a variety of options for you to choose from when deploying to Kubernetes.
30+
Deploy to Kubernetes from the Codefresh UI, or programmatically through dedicated steps in pipelines, avoiding the need for `kubectl` commands.
31+
32+
**On-demand deployment**
33+
For quick and easy deployment, deploy on-demand from the Codefresh UI.
34+
35+
**Dedicated steps in pipelines**
36+
We have the `deploy` step, and the more advanced `cf-deploy-kubernetes`step that enables simple templating on Kubernetes manifests.
37+
38+
Codefresh pipelines also support Kustomize and Helm for deployments through freestyle steps.
39+
40+
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).
41+
42+
See [Deployment options for Kubernetes]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/).
43+
44+
## kubectl
45+
`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.
46+
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.
47+
48+
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.
49+
50+
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.
51+
52+
See [Running custom kubectl commands]({{site.baseurl}}/docs/deployments/kubernetes/custom-kubectl-commands/).
53+
54+
## Helm and Codefresh
55+
Codefresh supplies a built-in Helm repository with every Codefresh account. And supports, besides public HTTP repositories, several private, authenticated Helm repositories.
56+
57+
**Connect to Helm repositories**
58+
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.
59+
60+
**Build Helm charts**
61+
Install Helm charts from Helm repositories, or build a new one.
62+
63+
<!--Codefresh has a dedicated step for Helm step to easily integrate Helm in Codefresh pipelines, and authenticate, configure, and execute Helm commands.
64+
The Helm step can operate in one of three modes covering most scenarios:
65+
* Install the chart into a Kubernetes cluster. This is the default mode if not explicitly set.
66+
* Package the chart and push it to the defined repository.
67+
Authentication to set up authentication and add the repo to Helm. This is useful if you want to write your own helm commands using the freestyle step’s commands property, but you still want the step to handle authentication. -->
68+
69+
Deploy Helm charts
70+
Deploy the Helm chart to a Kubernetes cluster, Helm repo, or both.
71+
72+
73+
## Dashboards
74+
75+
TBD
76+
<!--Dashboards are key to providing the right information at the right time.
77+
78+
Helm Boards
79+
80+
81+
Helm Releases
82+
The Helm Releases dashboard provides a unique view into your production Kubernetes cluster, and actions for . 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.
83+
84+
perational Dashboards ~ Exposing the most commonly needed application and environmental information to developers so that they can troubleshoot without needing assistance from the DevOps teams; even in production
85+
86+
Analytical Dashboards ~ Developers often need to reach out to the DevOps team to get statistics and metrics around builds and deployments. Codefresh automatically generates DORA metrics as well as many other key indicators of build and deployment efficiency, which can be easily viewed in seconds by product owners and management alike.
87+
88+
Kubernetes Services
89+
90+
Environments
91+
-->
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
title: "Codefresh for CI"
3+
description: "Continuous integration (CI) with Codefresh pipelines"
4+
group: getting-started
5+
toc: true
6+
---
7+
8+
<!--Focus on:
9+
Building Docker images
10+
Compiling code
11+
Running unit tests
12+
Running integration tests
13+
Security scans
14+
Code quality -->
15+
16+
Work in progress
17+
18+
19+
## Docker images
20+
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.
21+
22+
**Build and push image**
23+
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.
24+
25+
See:
26+
[Build and push Docker images]({{site.baseurl}}/docs/example-catalog/ci-examples/build-and-push-an-image/)
27+
28+
29+
**View image**
30+
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.
31+
32+
See:
33+
[Viewing Docker images]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/#viewing-docker-images)
34+
35+
36+
37+
**Promote image**
38+
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.
39+
40+
See:
41+
[Promoting Docker images]({{site.baseurl}}/docs/ci-cd-guides/working-with-docker-registries/#viewing-docker-images)
42+
43+
44+
## Code compilation
45+
TBD
46+
47+
## Unit testing
48+
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.
49+
50+
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.
51+
You can create test reports and view them whenever you need.
52+
53+
See:
54+
[Run unit tests example]({{site.baseurl}}/docs/example-catalog/ci-examples/run-unit-tests/)
55+
56+
57+
## Integration testing
58+
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.
59+
In Codefresh, you can launch these sidecar containers within the pipeline through compositions and service containers.
60+
61+
62+
See:
63+
[Run integration tests example]({{site.baseurl}}/docs/example-catalog/ci-examples/run-integrations-tests/)
64+
65+
## Security scanning
66+
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.
67+
68+
**Security scan platforms**
69+
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"}.
70+
71+
**Scan timing in pipeline step**
72+
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.
73+
74+
**View scan results**
75+
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.
76+
77+
**Security annotations**
78+
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.
79+
80+
See:
81+
[Security scanning tests]({{site.baseurl}}/docs/testing/security-scanning/)
82+
[Test reporting modes]({{site.baseurl}}/docs/testing/test-reports/)
83+
[Metadata in Docker images]({{site.baseurl}}/docs/pipelines//docker-image-metadata/)
84+
85+
86+
87+
## Code quality coverage
88+
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.
89+
90+
Three steps to
91+
* Set up integrations with the platforms/tools (Coverall, SonarQube, Codecov, for example).
92+
* 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"}.
93+
* Reference them by name in the pipeline step, and view the updated reports in the respective UIs.
94+
95+
See:
96+
[Code coverage examples]({{site.baseurl}}/docs/example-catalog/examples/#code-coverage-examples)
97+
98+

_docs/getting-started/concepts.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
---
2+
title: "Concepts in Codefresh"
3+
description: "Understand terminology and nuances in Codefresh"
4+
group: getting-started
5+
toc: true
6+
---
7+
Work in progress
8+
9+
10+
### Runtime
11+
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.
12+
You can install a single Hosted runtime, and multiple Hybrid Runtines in a Codefresh account.
13+
14+
15+
<!--add diagram -->
16+
A single Runtime can connect to and manage multiple remote clusters.
17+
18+
19+
See:
20+
[GitOps runtime architecture]({{site.baseurl}}/docs/installation/runtime-architecture)
21+
[Hybrid GitOps Runtime installation]({{site.baseurl}}/docs/installation/hybrid-gitops)
22+
[Hosted GitOps Runtime installation]({{site.baseurl}}/docs/installation/hosted-runtime)
23+
24+
25+
26+
### Runner
27+
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.
28+
29+
Codefresh Runner gives you:
30+
* Access to secure services (such as Git repositories or databases) that are behind the firewall and normally not accessible to the public cloud.
31+
* 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.
32+
* Complete control over the build environment in addition to resources for pipelines.
33+
34+
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.
35+
36+
You can have multiple Runner installations in the same Codefresh account. A Runner can also manage multiple remote clusters in your account.
37+
38+
See:
39+
[Codefresh Runner installation]({{site.baseurl}}/docs/installation/codefresh-runner)
40+
[Runner installation behind firewalls]({{site.baseurl}}/docs/reference/behind-the-firewall)
41+
42+
43+
### Project
44+
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.
45+
Projects centralize viewing and configuration settings for the pipelines that belong to them:
46+
* Selecting a pipeline shows the other pipelines in the same project.
47+
* Define access control and user-defined variables for the project, and they are inherited by all the pipelines assigned to the project
48+
49+
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.
50+
51+
See:
52+
[Projects in pipelines]({{site.baseurl}}/docs/pipelines/pipelines/#pipeline-concepts)
53+
54+
### Pipeline
55+
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.
56+
57+
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.
58+
59+
More to be added...
60+
61+
<!-- ### Workflow
62+
A workflow is type of Kubernetes resource that lets you define and run automated workflows, and stores their state.
63+
Argo Workflows is an open source workflow engine that orchestrates parallel tasks on Kubernetes, implemented as a set of Kubernetes custom resource definitions (CRDs).
64+
65+
Argo Workflows is part of the Argo project, which provides Kubernetes-native software delivery tools including Argo CD, Argo Events and Argo Rollouts.
66+
67+
What are worklfows in Codefresh?
68+
Workflows in Codefresh refers to our integration with Argo Workflows to implement continours integration topped with our unique functionlaity on top of vanilla
69+
70+
Triggers: Codefresh offers a rich set of triggers that you can select and define through the Codefresh UI as part of creating an Argo Workflow. These include Git and Cron triggers. The triggers and the event that are mapped to sensors and
71+
72+
Workflow Templates: Predefined library of for Argo Workflows.
73+
74+
75+
76+
Build view dashboard: The Workflows dashboard provides
77+
See Delivery Pipelines. -->
78+
79+
80+
### Applications
81+
An application is a deployment to a Kubernetes, or any Kubernetes-compatiale cluster or clusters.
82+
Codefresh supports two types of applications:
83+
* Containerized applications packaged as Docker images or
84+
* Argo CD applications
85+
86+
**Containerized applications**
87+
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.
88+
89+
Deploy an application directly to Kubernetes through the Codefresh UI, or use Helm as a package manager to deploy to Kubernetes, again from Codefresh.
90+
Codefresh offers several levels of visibility into your deployments :
91+
* The Kubernetes dashboard displays the status of pods and Docker images.
92+
* The Helm dashabord displays the applications deployed to the cluster through Helm packages.
93+
* The Environment dashbaord displays both Helm and Kubernetes releases, the status of the cluster, and most importantly that of the builds that affect it.
94+
95+
See:
96+
97+
98+
**Agro CD applications**
99+
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.
100+
101+
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.
102+
After creation, you can edit and optimize the application,
103+
104+
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.
105+
106+
107+
108+
### Triggers
109+
TBD
110+
111+
### Events
112+
TBD
113+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: "Codefresh for GitOps"
3+
description: "Argo CD with Codefresh GitOps"
4+
group: getting-started
5+
toc: true
6+
---
7+
8+
Work in progress TBD

0 commit comments

Comments
 (0)