From c1e0c5d8d6e37013c3ecbace0ec32f7f72891ea4 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Sun, 27 Nov 2022 11:54:44 +0200 Subject: [PATCH 01/43] Create create-codefresh-account.md Added new topic for creating CF account --- .../create-codefresh-account.md | 215 ++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 _docs/administration/create-codefresh-account.md diff --git a/_docs/administration/create-codefresh-account.md b/_docs/administration/create-codefresh-account.md new file mode 100644 index 00000000..41372816 --- /dev/null +++ b/_docs/administration/create-codefresh-account.md @@ -0,0 +1,215 @@ +--- +title: "Create a Codefresh account" +description: "Welcome to Codefresh!" +group: getting-started +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. + +Creating an account in Codefresh is free (no credit card is required) and can be done in three simple steps + +{% include +image.html +lightbox="true" +file="/images/getting-started/create-account/create-account-steps.png" +url="/images/getting-started/create-account/create-account-steps.png" +alt="Codefresh account creation steps" +max-width="90%" +%} + +## Step 1: Select your Identity Provider +As the first step in setting up ypur account in Codefresh, select the identity provider (IdP) to use. +Codefresh currently supports the following IdPs: +GitHub +Bitbucket +GitLab +Azure +Google +LDAP + +If you need an IdP that is not in the list, please [contact us](https://codefresh.io/contact-us/) with the details. + +>NOTES: + For Git repositories, the login method is less important, as you can Git repositories through [Git integrations]({{site.baseurl}}/docs/integrations/git-providers/), regardless of your sign-up process. + + If you multiple sign-up methods, as long as you use the same email address in all the sign-ups, Codefresh automatically redirects you to the account dashboard. + +1. Go to the [Codefresh Sign Up page](https://g.codefresh.io/signup). + + +{% include +image.html +lightbox="true" +file="/images/getting-started/create-account/select-identity-provider.png" +url="/images/getting-started/create-account/select-identity-provider.png" +alt="Codefresh sign-up page" +caption="Sign-up page (click image to enlarge)" +max-width="40%" +%} + +1. Select the IdP for sign-up. +1. Continue + + + +## Step 2: Accept the permissions request + +After you select the IdP (identity provider), Codefresh requests permission to access your basic details, and for Git providers, to access your Git repositories). The Permissions window that is displayed differs according to the IdP selected in the previous step. + +Don't worry, Codefresh will not do anything without your explicit approval, so don't be scared by the permissions shown +in the request window. The permissions requested by Codefresh are needed in order to build and deploy your projects. + +1. Click + + * For GitHub: To continue, click **Authorize codefresh-io**. + +{% include +image.html +lightbox="true" +file="/images/getting-started/create-account/github-authorize.png" +url="/images/getting-started/create-account/github-authorize.png" +alt="GitHub authorization page" +caption="GitHub authorization page (click image to enlarge)" +max-width="50%" +%} + +* For Bitbucket: To continue, click **Grant access**. + + +{% include +image.html +lightbox="true" +file="/images/getting-started/create-account/bitbucket-authorize.png" +url="/images/getting-started/create-account/bitbucket-authorize.png" +alt="Bitbucket authorization page" +caption="Bitbucket authorization page (click image to enlarge)" +max-width="50%" +%} + +* For GitLab: To continue, click **Authorize**. + + +{% include +image.html +lightbox="true" +file="/images/getting-started/create-account/gitlab-authorize.png" +url="/images/getting-started/create-account/gitlab-authorize.png" +alt="GitLab authorization page" +caption="GitLab authorization page (click image to enlarge)" +max-width="50%" +%} + +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. + + +## Step 3: Verify account details + +Verifying account details is the final step in creating your Codefresh account. + +1. Review the details for your new account, make the relevant changes, and click **NEXT**. + +{% include +image.html +lightbox="true" +file="/images/getting-started/create-account/codefresh-signup.png" +url="/images/getting-started/create-account/codefresh-signup.png" +alt="Codefresh account details" +caption="Codefresh account details (click image to enlarge)" +max-width="40%" +%} + +{:start="2"} +1. Enter a name for your account, and click **NEXT**. + +{% include +image.html +lightbox="true" +file="/images/getting-started/create-account/codefresh-accountname.png" +url="/images/getting-started/create-account/codefresh-accountname.png" +alt="Codefresh account name" +caption="Codefresh account name (click image to enlarge)" +max-width="40%" +%} + +{:start="3"} +1. Finally, answer the questions to personalize your account and click **FINISH**. + +{% include +image.html +lightbox="true" +file="/images/getting-started/create-account/codefresh-personalize.png" +url="/images/getting-started/create-account/codefresh-personalize.png" +alt="Codefresh personalize account" +caption="Codefresh personalize account (click image to enlarge)" +max-width="40%" +%} + +Congratulations! Your new Codefresh account is now ready. + +{% include +image.html +lightbox="true" +file="/images/getting-started/create-account/codefresh-dashboard.png" +url="/images/getting-started/create-account/codefresh-dashboard.png" +alt="Codefresh dashboard" +caption="Codefresh dashboard (click image to enlarge)" +max-width="40%" +%} + + + + +## What to read next + +* [Create a Basic pipeline]({{site.baseurl}}/docs/getting-started/create-a-basic-pipeline/) +* [Deploy to Kubernetes]({{site.baseurl}}/docs/getting-started/deployment-to-kubernetes-quick-start-guide/) +* [Introduction to Codefresh pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) +* [Pipeline examples]({{site.baseurl}}/docs/yaml-examples/examples/) + + From bb101bee78c315698fe39c4bea85fe3d9a9b27ba Mon Sep 17 00:00:00 2001 From: NimRegev Date: Sun, 27 Nov 2022 12:26:53 +0200 Subject: [PATCH 02/43] Update add-users.md Ported from Classic and edited content --- _docs/administration/add-users.md | 74 ++++++++++++++----------------- 1 file changed, 33 insertions(+), 41 deletions(-) diff --git a/_docs/administration/add-users.md b/_docs/administration/add-users.md index be103373..4eb6430f 100644 --- a/_docs/administration/add-users.md +++ b/_docs/administration/add-users.md @@ -1,60 +1,52 @@ --- -title: "Manage users" +title: "Adding users to Codefresh accounts" description: "" group: administration toc: true --- -If you have a Codefresh account, you can add any number of users to collaborate on repositories, workflows, and pipelines. +Once you have created a Codefresh account, you can add any number of users to collaborate on repositories, workflows, and pipelines. -Adding a user requires assigning a role, and optionally, an SSO provider: +Adding a user requires assigning a role to define access to account resources, and optionally, selecting an SSO provider: -**Role**: Defines the user's access level, and is by default set to User. The Administrator role has full access to account settings. -For guidelines on access control, see [Access control]({{site.baseurl}}/docs/administration/access-control/). +* **Role**: Defines the user's access level to the resources in the account. + * **User**: The default. With this role, users can work with your repositories and pipelines, but cannot change settings +on clusters, docker registries, git integrations, shared configurations etc. + * **Administrator**: User with this role have full access to your account and can change all your settings, so make sure that they are trusted colleagues. + For guidelines on access control, see [Access control]({{site.baseurl}}/docs/administration/access-control/). +* **SSO**: By default, SSO is not enabled for users. If required, explicitly select the SSO provider. For an overview of SSO, see [Single Sign on]({{site.baseurl}}/docs/administration/single-sign-on/). -**SSO**: By default, SSO is not enabled for users. If required, explicitly select the SSO provider. For an overview of SSO, see [Single Sign on]({{site.baseurl}}/docs/administration/single-sign-on/). -### Add a user -1. In Codefresh, click **Account Settings**. -1. From the sidebar, select [Collaboration](https://g.codefresh.io/2.0/account-settings/users){:target="\_blank"}. - - {% include - image.html - lightbox="true" - file="/images/administration/users/users-list.png" - url="/images/administration/users/users-list.png" - alt="Users list" - caption="Users list" - max-width="40%" - %} +## Add a user to an account +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, from Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/account-admin/collaborators/users){:target="\_blank"}. +1. Select **Users**, and then select **+ [Add User]**. +1. Type the **User's email address**, and click **Invite**. + + The user receives an email invitation, and in the Users list, the user name is set to Pending, and status to Resend. +1. From the **Role** dropdown, select either **User** or **Administrator**. +1. If SSO is configured for the account, **Select SSO provider**. -{:start="3"} -1. Select **Users**, and then select **+ [Add User]**. - {% include - image.html - lightbox="true" - file="/images/administration/users/invite-user.png" - url="/images/administration/users/invite-user.png" - alt="Add new user" - caption="Add new user" - max-width="40%" - %} - 1. Type the **User's email address**. - 1. **Assign a role**, by selecting either **User** or **Administrator**. - 1. If SSO is configured for the account, **Select SSO provider**. -The user receives an email invitation, and the Users page is updated with information on the user. -The Status column shows Invite sent until the user accepts the invitation, when the user account is created. +## Manage users in an account -> For invitations pending accept, select ![](/images/administration/users/icon-Send.png?display=inline-block) **Resend invite**. - To edit account settings, select ![](/images/administration/users/icon-Edit.png?display=inline-block) **Edit**. - To remove the user account, select ![](/images/administration/users/icon-Delete.png?display=inline-block) **Delete**. +Once you add a user to an account, you can do the following to manage that user: +* For invitations pending accept, select ![](/images/administration/users/icon-Send.png?display=inline-block) **Resend**. +* To edit the user's email address, select ![](/images/administration/users/icon-Edit.png?display=inline-block) **Edit**. +* To remove the user account, select ![](/images/administration/users/icon-Delete.png?display=inline-block) **Delete**. -### Troubleshoot add users -[User is prompted to enter an organization name](https://support.codefresh.io/hc/en-us/articles/360020177959-User-is-prompted-to-enter-an-organization-name) -[Account invitation not permitting login](https://support.codefresh.io/hc/en-us/articles/360015251000-Account-invitation-not-permitting-login) +## Troubleshoot add users + +* [User is prompted to enter an organization name](https://support.codefresh.io/hc/en-us/articles/360020177959-User-is-prompted-to-enter-an-organization-name) +* [Account invitation not permitting login](https://support.codefresh.io/hc/en-us/articles/360015251000-Account-invitation-not-permitting-login) + + +## What to read next +[Access control]({{site.baseurl}}/docs/administration/access-control/) +[Single Sign on]({{site.baseurl}}/docs/administration/single-sign-on/) + From 0158b0332ebc62f0b9b362fe48f438dd57112db4 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Sun, 27 Nov 2022 16:02:27 +0200 Subject: [PATCH 03/43] Update access control and add users --- _docs/administration/access-control.md | 284 +++++++++++++----- _docs/administration/add-users.md | 68 ++++- .../access-control/kubernetes-abac.png | Bin 0 -> 57254 bytes .../access-control/pipeline-tags.png | Bin 0 -> 31782 bytes .../tagging-kubernetes-clusters.png | Bin 0 -> 10937 bytes images/administration/users/invite-users.png | Bin 0 -> 57821 bytes images/invite-users.png | Bin 0 -> 57821 bytes 7 files changed, 274 insertions(+), 78 deletions(-) create mode 100644 images/administration/access-control/kubernetes-abac.png create mode 100644 images/administration/access-control/pipeline-tags.png create mode 100644 images/administration/access-control/tagging-kubernetes-clusters.png create mode 100644 images/administration/users/invite-users.png create mode 100644 images/invite-users.png diff --git a/_docs/administration/access-control.md b/_docs/administration/access-control.md index 3c55b8cc..9448652b 100644 --- a/_docs/administration/access-control.md +++ b/_docs/administration/access-control.md @@ -1,108 +1,248 @@ --- -title: "Access control" -description: "" +title: "Permissions for access control" +description: "How to restrict resources in a company environment" group: administration +redirect_from: + - /docs/enterprise/access-control/ + - /docs/enterprise-account-mng/ent-account-mng/ + - /docs/enterprise/ent-account-mng/ + - /docs/administration/ent-account-mng/ toc: true --- -Access control defines the access policy for resources within an enterprise. -In Codefresh, access control to an entity is derived from the entity type, which can be categorized into one of the following: + +Codefresh provides several complementary ways for access control within an organization: -* **GitOps-controlled entities** - Entities whose entire lifecyle - creation, update, and deletion, are fully GitOps-controlled. - Examples of such entities in Codefresh include: - * Runtimes - * Git Sources - * Pipelines comprising Argo Workflow/Events resources such as the Workflow Template, Sensor, Event Sources - * Applications comprising Argo CD/Rollouts resources project, Application Set, applications, rollout +* **Role-based access**: [Role-based access](#users-and-administrators), restricts access to parts of the Codefresh UI intended for account administrators. For example, only an account administrator should be able to change integrations with [git providers]({{site.baseurl}}/docs/integrations/git-providers/) and [cloud services]({{site.baseurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/). -* **Non-GitOps-controlled entities** +* **Attribute-based access control (ABAC)**: Policy-based access control via attributes (ABAC), restricts access to [Kubernetes clusters and pipelines](#access-to-kubernetes-clusters-and-pipelines). This option allows account administrators to define exactly which teams have access to which clusters and pipelines. For example, access to production clusters can be granted only to a subset of trusted developers/operators. On the other hand, access to a QA/staging cluster can be less strict. - Entities reported to Codefresh as built artifacts, not GitOps-controlled. - - Examples of such entities in Codefresh include: - * Images +* **Git-repository access**: Git repository access allows you to restrict the Git repositories used to load [pipeline definitions](#pipeline-definition-restrictions). -* **Account-configuration entities (currently non-GitOps-controlled)** - Entities whose state is not currently stored in a Git repository. - Examples of such entities in Codefresh include: +## Role-based access for users and administrators - * Account configuration collaborators - * Account configuration security - * Account configuration Single Sign-On (SSO) - * Billing +Role-based access, as either a user or an administrator, is usually defined when you [add users to Codefresh accounts]({{site.baseurl}}/docs/administration/add-users/#users-in-codefresh). +> You must be an administrator yourself to add users and change their roles. -### GitOps-controlled entities -Codefresh stores the state of your account entities according to GitOps principles and policies. +Each user has the selected role. -#### Write permissions -Users with write permissions can access and manage files directly in the Git repository. Any action on the file such as create, update, or delete, is immediately reflected in the user account. +{% include + image.html + lightbox="true" + file="/images/administration/users/invite-users.png" + url="/images/administration/users/invite-users.png" + alt="User roles for access control" + caption="User roles for access control" + max-width="90%" +%} -Any user action via a Codefresh client (UI or CLI), on a GitOps-controlled resource, is impersonated with the user's Git permissions. If the user does not have permissions for an action in Git, then the user is automatically denied access to the same action in a Codefresh client. +The table below lists the functionality available for role-based access. -For Codefresh to impersonate the user, the user must provide Git credentials for every runtime. The credentials are securely stored by the Codefresh application proxy. -The Codefresh application proxy uses these credentials: -* For Git-provider operations -* To update Codefresh with the read/write permissions to all existing repositories linked to the Git Source defined for a runtime. The Codefresh client can perform client-side validations. +{: .table .table-bordered .table-hover} +| Functionality | Available for Role | +| -------------- | -------------- | +|Run pipelines | `User` and `Admin`| +|View Docker images | `User` and `Admin`| +|Inspect text reports | `User` and `Admin`| +|[Git Integrations]({{site.baseurl}}/docs/integrations/git-providers/) | `Admin`| +|[External docker registry settings]({{site.baseurl}}/docs/docker-registries/external-docker-registries/) | `Admin`| +|[External Helm repositories]({{site.baseurl}}/docs/new-helm/add-helm-repository/) | `Admin`| +|[Cloud provider settings]({{site.baseurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/) | `Admin`| +|[Cloud storage settings]({{site.baseurl}}/docs/testing/test-reports/#connecting-your-storage-account) | `Admin`| +|[Shared configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/) | `Admin`| +|[API token generation]({{site.baseurl}}/docs/integrations/codefresh-api/#authentication-instructions) | `Admin`| +|[SSO Settings]({{site.baseurl}}/docs/administration/single-sign-on/) | `Admin`| +|[Runtime environment selection]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/#pipeline-settings) | `Admin`| +|[Slack settings]({{site.baseurl}}/docs/integrations/notifications/slack-integration/) | `Admin`| +|[Audit logs]({{site.baseurl}}/docs/administration/audit-logs/) | `Admin`| +|ABAC for Kubernetes clusters | `Admin`| +|Billing and charging | `Admin`| -To add your Git personal token, in the Codefresh UI, go to your avatar and then select [user settings](https://g.codefresh.io/2.0/user-settings). -{% include -image.html -lightbox="true" -file="/images/administration/access-control/pat.png" -url="/images/administration/access-control/pat.png" -alt="Add personal access token" -caption="Add personal access token" -max-width="30%" -%} -#### Read permissions -Codefresh enforces read permissions by checking if the user has Git permissions to view the Kubernetes manifest in the repository. -Read permissions to entities created dynamically from changes in resource state, are inherited from the parent entity's permissions. +## ABAC access control to Kubernetes clusters and pipelines + +ABAC (Attribute-Based Access Control) allows fine-grained access to Kubernetes clusters and pipelines. See ([ABAC](https://en.wikipedia.org/wiki/Attribute-based_access_control){:target="\_blank"}. + +ABAC access control includes: + +1. Assigning custom attributes to your Kubernetes clusters +1. Assiging custom attributes to your pipelines +1. Defining rules as policies using teams, clusters, and attributes (who, what, where) + + + +### Add Kubernetes clusters with policy attributes + +After adding Kubernetes clusters, you can configure clusters with multiple tags. + +Tag names are arbitrary and can be anything you choose that matches your company process. You can tag your clusters with product names, software lifecycle phases, department names or anything that helps your security policies. + +You can assign multiple tags to each cluster making it easy to define multiple policies on the same cluster, for example, per project and per team. + +{% include image.html + lightbox="true" + file="/images/administration/access-control/kubernetes-abac.png" + url="/images/administration/access-control/kubernetes-abac.png" + alt="Cluster tags" + caption="Cluster tags" + max-width="70%" + %} + +**Before you begin** +* If needed, [add a Kubernetes cluster]({{site.baseurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/) + +**How to** + +1. Expand the provider under which you added the cluster. +1. Mouse over the cluster to which to add tags or attributes, and then click **Edit tags** on the right. + The Tags page displays existing tags if any, and allows you to add multiple tags for a single cluster. + + +{% include image.html + lightbox="true" + file="/images/administration/access-control/tagging-kubernetes-clusters.png" + url="/images/administration/access-control/tagging-kubernetes-clusters.png" + alt="Assigning tags to a cluster" + caption="Assigning tags to a cluster" + max-width="60%" + %} +1. Click **Add** and type in the tag. +1. Continue to add tags and when finished, click **Save**. + +>By default, all clusters (with and without tags are displayed and can be edited by all users (but not deleted). As soon as you add at least one tag to a cluster, the cluster is only accessible to users with the affected policy rules (explained in the next sections). + +### Configure CI pipelines with policy attributes + +Similar to Kubernetes clusters, you can also add tags to specific pipelines. + +**Before you begin** +* If needed, [create a CI pipeline]({{site.baseurl}}/docs/TBD/) + +**How to** -From the user's perspective, this means that: +1. In the Codefresh UI, go to [Pipelines](https://g.codefresh.io/pipelines/all/){:target="\_blank"}. +1. In the row with the target pipline, click the context menu for the pipeline, and then select **Edit tags**. +1. Type in the new tag, press Enter, and continue to add the tags you need. +1. When finished, click **Save**. -* If the user does not have read permissions from the Git provider for the Sensor's Kubernetes manifest, the user does not have visibility into pipelines. - Workflow entities that are dynamically created, derive their read permissions from pipeline permissions. -* Notifications are displayed only for resources with read permissions. +{% include image.html + lightbox="true" + file="/images/administration/access-control/pipeline-tags.png" + url="/images/administration/access-control/pipeline-tags.png" + alt="Assigning attributes to a pipeline" + caption="Assigning attributes to a pipeline" + max-width="80%" + %} -> Currently, we do not enforce Analytics views according to read permissions for pipelines. +### Define rules for access control +Define security rules using the *who, what, where* pattern. +For each rule you select: +1. The team the rule applies to +1. Cluster privileges (*Create/delete/read/update*) or pipeline privileges (*Create/delete/read/run/update*) +1. Effective tags -#### Write operations on dynamically-created entities -These are operations users can perform on dynamically-created entities, such as workflows for example. Typically, the permissions for such entities are derived from those of the parent entity. +This way you can control access to clusters and pipelines by departments, projects, roles etc. -Currently, all users with view permissions, can also terminate and retry workflows. +**Before you begin** +* Make sure you have [created at least one team]({{site.baseurl}}/docs/administration/add-users/#create-a-team-in-codefresh) +**How to** +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From Access & Collaboration on the sidebar, select [**Permissions**](https://g.codefresh.io/account-admin/permissions/teams){:target="\_blank"}. +1. For each entity, do the following to define a rule: + 1. Select the team to which assign the rule. + 1. Select the permissions to assign to the team for that entity. + 1. Select either all clusters with tags (**All tags**) or all clusters that are untagged (**Without tags**). -### Non-GitOps-controlled entities -For now, users can view all `image` entity types. These are resources reported to Codefresh as built artifacts, but not stored using the GitOps approach. + {% include image.html + lightbox="true" + file="/images/administration/access-control/kubernetes-policies.png" + url="/images/administration/access-control/kubernetes-policies.png" + alt="Kubernetes policies" + caption="Kubernetes policies" + max-width="80%" + %} -### Account-configuration for non-GitOps-controlled entities -All account-configuration entities you have access to are listed in your account settings, and are exposed only to account admins. +### Description of privileges -When adding a user account, you can assign the `admin` role to the user. The `admin` role automatically enables all account-configurations. +For clusters: -### Runtime account-configuration -Runtime configuration is also exposed in the account settings dedicated area and only exposed to admins but is fully controlled via the GitOps approach after installation.
+* `Create` - cluster creation requires someone to be account administrator anyway so currently this permission isn’t really necessary . +* `Read` - can only see existing allowed clusters without any ability to change them. +* `Update` - can see and edit existing allowed cluster resources (which means also perform [installation, removal and rollbacks of Helm charts]({{site.baseurl}}/docs/new-helm/helm-best-practices/)). Tags are managed from account settings, so this permission doesn’t apply to it currently. +* `Delete` - cluster removal requires someone to be account administrator anyway so currently this permission isn’t really necessary. + +For pipelines: + +* `Create` - can only create new pipelines, not see, edit (which includes tagging them) or delete them. This permission should also go hand in hand with additional permissions like read/edit untagged pipelines. +* `Read` - view allowed pipelines only. +* `Update` - see and edit allowed pipelines only (including tagging them). +* `Delete` - can delete allowed pipelines only. +* `Run` - can run allowed pipelines only. +* `Approve` - resume pipelines that are waiting for manual [approval]({{site.baseurl}}/docs/codefresh-yaml/steps/approval/). +* `Debug` - allow the usage of the [pipeline debugger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/debugging-pipelines/). -Users with write permissions to the runtime installation repository in Git can make changes to the runtime, and create, update, or delete Git Sources defined for that runtime. -We are at present exposing the runtime configuration under the account settings only to account admins. -Be aware though that these can also be changed directly through Git by users who are not admin users in Codefresh.
-For now, Codefresh admin users can see all runtimes and Git Sources even if they don't have read permissions to the underlying Git repository. +## Git-repository access restrictions -### Upcoming enhancements to access control -We are working to enhance our access control model by adding another layer to provide the ability to define: -* Permissions on write operations for entities that are non-GitOps controlled, such as account configuration and workflow operations -* Read permissions for entities that are completely non-GitOps controlled -* A more granular permission model for entities that are GitOps-controlled, but without sufficient access control policies in place -* A more granular permission model for dynamic resources that are non-GitOps controlled, but created from a GitOps-controlled entity, for example, workflows +By default, users can load pipeline definitions when [creating a pipeline]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/), from the inline editor, or any private or public Git repository. -### What to read next -[Codefresh architecture](({{site.baseurl}}/docs/getting-started/architecture/)) +You can change the default behavior to restrict loading CI pipeline definitions from specific Git repositories or completely disable loading the definitions from all Git repositories. + +### Enable/disable pipeline YAMLs by source +Enable or disable access to pipeline definition YAMLs based on the source of the YAML. These global settings are effective for all pipelines in the account and enables or disables that method of pipeline creation from the Codefresh UI. +pipeline definitions from: + * The inline editor in the Codefresh UI: Disabling the inline editor for example, disables new and _all existing pipelines_ + with pipeline definitions defined in the Codefresh editor. The Run button is disabled for all such piplines. + * Any Git repository connected to Codefresh + * **Any** public URL + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From Configuration on the sidebar, select [**Pipeline Settings**](https://g.codefresh.io/account-admin/account-conf/pipeline-settings){:target="\_blank"}. + + {% include image.html + lightbox="true" + file="/images/administration/access-control/pipeline-restrictions.png" + url="/images/administration/access-control/pipeline-restrictions.png" + alt="Global pipeline restrictions" + caption="Global pipeline restrictions" + max-width="80%" + %} + +1. Turn on or off the options as needed. +1. Continue with + +### Defining access to Git repositories +If enabled or disabled defined access to pipeline definitions by Git repositories, you can configure more fine-grained restrictions through the integrations settings for your [Git provider]({{site.baseurl}}/docs/integrations/git-providers/). + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From Configuration on the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}. +1. Select the Git provider integration, click **Edit**. +1. Scroll down and expand **YAML Options**. + + {% include image.html + lightbox="true" + file="/images/administration/access-control/pipeline-git-restrictions.png" + url="/images/administration/access-control/pipeline-git-restrictions.png" + alt="Pipeline restrictions per Git provider" + caption="Pipeline restrictions per Git provider" + max-width="80%" + %} + +{:start="5"} +1. Configure restrictions for Git repositories that can be used for pipeline definitions: + * **Allow only the following repositories**: Toggle **Manual selection** to on, and then select the Git repos, or define a regex according to which to select repos. + * **Allow only the following branches**: Select Git repositories by the branches that match the regex. For example, this regex `/^((pipeline-definition)$).*/g`, allows users to load pipeline YAMLs only from a branch named `pipeline-definition` in a Git repository. + * **Allow only the following paths**: Select Git repositories by folders within the repo that match the glob pattern). + + + +## What to read next +[Codefresh installation options]({{site.baseurl}}/docs/administration/installation-security/) +[Managing your Kubernetes cluster]({{site.baseurl}}/docs/deploy-to-kubernetes/manage-kubernetes/) diff --git a/_docs/administration/add-users.md b/_docs/administration/add-users.md index 4eb6430f..9b7ad563 100644 --- a/_docs/administration/add-users.md +++ b/_docs/administration/add-users.md @@ -1,12 +1,14 @@ --- -title: "Adding users to Codefresh accounts" +title: "Managing users and teams in Codefress" description: "" group: administration toc: true --- -Once you have created a Codefresh account, you can add any number of users to collaborate on repositories, workflows, and pipelines. +Once you have created a Codefresh account, you can add any number of users to collaborate on repositories, workflows, and pipelines, and teams of users. + +## Users in Codefresh Adding a user requires assigning a role to define access to account resources, and optionally, selecting an SSO provider: * **Role**: Defines the user's access level to the resources in the account. @@ -17,7 +19,7 @@ on clusters, docker registries, git integrations, shared configurations etc. * **SSO**: By default, SSO is not enabled for users. If required, explicitly select the SSO provider. For an overview of SSO, see [Single Sign on]({{site.baseurl}}/docs/administration/single-sign-on/). -## Add a user to an account +### Add a user to a Codefresh account 1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. 1. From the sidebar, from Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/account-admin/collaborators/users){:target="\_blank"}. 1. Select **Users**, and then select **+ [Add User]**. @@ -29,9 +31,7 @@ on clusters, docker registries, git integrations, shared configurations etc. - - -## Manage users in an account +### Manage users in a Codefresh account Once you add a user to an account, you can do the following to manage that user: * For invitations pending accept, select ![](/images/administration/users/icon-Send.png?display=inline-block) **Resend**. @@ -39,6 +39,62 @@ Once you add a user to an account, you can do the following to manage that user: * To remove the user account, select ![](/images/administration/users/icon-Delete.png?display=inline-block) **Delete**. + +## Teams in Codefresh + +### Create a team in Codefresh + +Create a team in Codefresh and then assign users to the team. You can assign the same user to multiple teams, as in most companies, users have overlapping roles. + >By default there are two teams, *users* and *admins* with users [invited as collaborators]({{site.baseurl}}/docs/accounts/invite-your-team-member/). + + Teams allow you to enforce access control through ABAC. + +> Only Enterprise customers can add new teams. Other Codefresh plans can only use the predefined *Users* and *Admin* teams. [Contact us](https://codefresh.io/contact-us/) if you wish to upgrade to an Enterprise plan. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, from Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/account-admin/collaborators/users){:target="\_blank"}. +1. Select **Teams**, and then select **Create a Team**. +1. Enter the **Team Name**. + > The team name can include only lower-case alphanumeric characters and hyphens, without spaces. + + See the screenshot below for some sample team names. + +{% include image.html + lightbox="true" + file="/images/administration/access-control/teams.png" + url="/images/administration/access-control/teams.png" + alt="Examples of teams in Codefresh" + caption="Examples of teams in Codefresh" + max-width="80%" + %} + +### Assign a user to a team +1. To assign users to the team, do the following: + 1. Hover over the team and click the **Settings** icon. + 1. Click **Invite to team**, type the email address of the user to invite, and then click **Add**. +1. To change the name of the team, click **Edit** and type the new name. + +## Define session timeouts and domain restrictions for user accounts +As an administrator, you can also define session timeouts to automatically log out users who have inactive for the specified duration, and restrict invitations to specific email domains. + +> The maximum inactivity duration you can set is 30 days. Inactive users are warned 90 seconds before the last 15 minutes. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, from Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/account-admin/collaborators/users){:target="\_blank"}. +1. Select **Security**. +1. For **User Session**, add the timeout duration in minutes/hours/days. + + {% include image.html + lightbox="true" + file="/images/administration/access-control/security-timeout.png" + url="/images/administration/access-control/security-timeout.png" + alt="Security timeout" + caption="Security timeout" + max-width="90%" + %} + +1. To restrict invitations to specific email domains, in the **Email domains** field below User Invitations, type in the domains, one per line. + ## Troubleshoot add users * [User is prompted to enter an organization name](https://support.codefresh.io/hc/en-us/articles/360020177959-User-is-prompted-to-enter-an-organization-name) diff --git a/images/administration/access-control/kubernetes-abac.png b/images/administration/access-control/kubernetes-abac.png new file mode 100644 index 0000000000000000000000000000000000000000..6dd650d5685c900d245d8b73ebb1dfbe958980f7 GIT binary patch literal 57254 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 56s0abF$Q9Ij> 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 ZQtg8Z@?+^w@I$5u3NotF6_O^w{}1IZ_xu0= literal 0 HcmV?d00001 diff --git a/images/administration/users/invite-users.png b/images/administration/users/invite-users.png new file mode 100644 index 0000000000000000000000000000000000000000..d29a06a4ff8ca0229c9f2b2d390e1d028221e177 GIT binary patch literal 57821 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%0DId)uG07wF@f-G36!i< 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%0AVCH$0W@!4lfHbWDY+(}7J61YM| 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 H=Mwc#RF*#b literal 0 HcmV?d00001 diff --git a/images/invite-users.png b/images/invite-users.png new file mode 100644 index 0000000000000000000000000000000000000000..d29a06a4ff8ca0229c9f2b2d390e1d028221e177 GIT binary patch literal 57821 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%0DId)uG07wF@f-G36!i< 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%0AVCH$0W@!4lfHbWDY+(}7J61YM| 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 H=Mwc#RF*#b literal 0 HcmV?d00001 From c79eb33958c3d5645b337c7468f96600bdccd991 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Sun, 27 Nov 2022 16:09:59 +0200 Subject: [PATCH 04/43] Update access-control.md --- _docs/administration/access-control.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_docs/administration/access-control.md b/_docs/administration/access-control.md index 9448652b..bfb1a36b 100644 --- a/_docs/administration/access-control.md +++ b/_docs/administration/access-control.md @@ -195,7 +195,7 @@ By default, users can load pipeline definitions when [creating a pipeline]({{sit You can change the default behavior to restrict loading CI pipeline definitions from specific Git repositories or completely disable loading the definitions from all Git repositories. -### Enable/disable pipeline YAMLs by source +### Enable/disable access to pipeline YAMLs by source Enable or disable access to pipeline definition YAMLs based on the source of the YAML. These global settings are effective for all pipelines in the account and enables or disables that method of pipeline creation from the Codefresh UI. pipeline definitions from: * The inline editor in the Codefresh UI: Disabling the inline editor for example, disables new and _all existing pipelines_ @@ -218,8 +218,8 @@ pipeline definitions from: 1. Turn on or off the options as needed. 1. Continue with -### Defining access to Git repositories -If enabled or disabled defined access to pipeline definitions by Git repositories, you can configure more fine-grained restrictions through the integrations settings for your [Git provider]({{site.baseurl}}/docs/integrations/git-providers/). +### Define access to Git repositories for pipeline YAMLs +If access to pipeline definitions are defined by Git repositories, you can configure more fine-grained restrictions through the integrations settings for your [Git provider]({{site.baseurl}}/docs/integrations/git-providers/). 1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. 1. From Configuration on the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}. From 3b2321324cf8e2a9f2dae7817e0eb26a087b6607 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 28 Nov 2022 09:46:45 +0200 Subject: [PATCH 05/43] Update add-users.md --- _docs/administration/add-users.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/_docs/administration/add-users.md b/_docs/administration/add-users.md index 9b7ad563..e08522fe 100644 --- a/_docs/administration/add-users.md +++ b/_docs/administration/add-users.md @@ -1,5 +1,5 @@ --- -title: "Managing users and teams in Codefress" +title: "Users and team management" description: "" group: administration toc: true @@ -33,25 +33,26 @@ on clusters, docker registries, git integrations, shared configurations etc. ### Manage users in a Codefresh account -Once you add a user to an account, you can do the following to manage that user: -* For invitations pending accept, select ![](/images/administration/users/icon-Send.png?display=inline-block) **Resend**. -* To edit the user's email address, select ![](/images/administration/users/icon-Edit.png?display=inline-block) **Edit**. -* To remove the user account, select ![](/images/administration/users/icon-Delete.png?display=inline-block) **Delete**. +Once you add a user to your Codefresh account, you can do the following to manage that user: +* Resend invitations that are pending acceptance: Select ![](/images/administration/users/icon-Send.png?display=inline-block) **Resend**. +* Edit the user's email address: Select ![](/images/administration/users/icon-Edit.png?display=inline-block) **Edit**. +* Change the role: From the **Role** dropdown, select the new role. +* Change SSO provider: From the **SSO** dropdown, select the new SSO provider. +* Remove the user account: Select ![](/images/administration/users/icon-Delete.png?display=inline-block) **Delete**. ## Teams in Codefresh +Teams are users who share the same permissions, roles, or as required by . By default there are two teams, *users*, and *admins* with users [invited as collaborators]({{site.baseurl}}/docs/accounts/invite-your-team-member/). +Teams allow you to enforce access control through ABAC (). + +> Only Enterprise customers can add new teams. Other Codefresh plans can only use the predefined *Users* and *Admin* teams. [Contact us](https://codefresh.io/contact-us/) if you wish to upgrade to an Enterprise plan. ### Create a team in Codefresh Create a team in Codefresh and then assign users to the team. You can assign the same user to multiple teams, as in most companies, users have overlapping roles. - >By default there are two teams, *users* and *admins* with users [invited as collaborators]({{site.baseurl}}/docs/accounts/invite-your-team-member/). - Teams allow you to enforce access control through ABAC. - -> Only Enterprise customers can add new teams. Other Codefresh plans can only use the predefined *Users* and *Admin* teams. [Contact us](https://codefresh.io/contact-us/) if you wish to upgrade to an Enterprise plan. - -1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **User Management**. 1. From the sidebar, from Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/account-admin/collaborators/users){:target="\_blank"}. 1. Select **Teams**, and then select **Create a Team**. 1. Enter the **Team Name**. @@ -70,14 +71,14 @@ Create a team in Codefresh and then assign users to the team. You can assign the ### Assign a user to a team 1. To assign users to the team, do the following: - 1. Hover over the team and click the **Settings** icon. + 1. Hover over the team name and click the **Settings** icon. 1. Click **Invite to team**, type the email address of the user to invite, and then click **Add**. 1. To change the name of the team, click **Edit** and type the new name. ## Define session timeouts and domain restrictions for user accounts -As an administrator, you can also define session timeouts to automatically log out users who have inactive for the specified duration, and restrict invitations to specific email domains. +As an administrator, you can optionally define session timeouts to automatically log out users who have been inactive for the specified duration, and restrict invitations to specific email domains. -> The maximum inactivity duration you can set is 30 days. Inactive users are warned 90 seconds before the last 15 minutes. +> The maximum duration for inactivity you can set is 30 days. Inactive users are warned before the last 15 minutes. 1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. 1. From the sidebar, from Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/account-admin/collaborators/users){:target="\_blank"}. @@ -93,7 +94,7 @@ As an administrator, you can also define session timeouts to automatically log o max-width="90%" %} -1. To restrict invitations to specific email domains, in the **Email domains** field below User Invitations, type in the domains, one per line. +1. To restrict invitations to specific email domains, in the **Email domains** field below User Invitations, type in the domains to allow, one per line. ## Troubleshoot add users From 89796ecfcb573397957ab30b8141d4946cd9e6e9 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 28 Nov 2022 10:45:57 +0200 Subject: [PATCH 06/43] Update content for audit --- _docs/administration/access-control.md | 3 +- _docs/administration/audit.md | 118 +++++++++++++----- .../audit/icon-UnorderedList-notification.png | Bin 370 -> 0 bytes 3 files changed, 87 insertions(+), 34 deletions(-) delete mode 100644 images/administration/audit/icon-UnorderedList-notification.png diff --git a/_docs/administration/access-control.md b/_docs/administration/access-control.md index bfb1a36b..e8f0c589 100644 --- a/_docs/administration/access-control.md +++ b/_docs/administration/access-control.md @@ -26,7 +26,6 @@ Role-based access, as either a user or an administrator, is usually defined when > You must be an administrator yourself to add users and change their roles. -Each user has the selected role. {% include image.html @@ -219,7 +218,7 @@ pipeline definitions from: 1. Continue with ### Define access to Git repositories for pipeline YAMLs -If access to pipeline definitions are defined by Git repositories, you can configure more fine-grained restrictions through the integrations settings for your [Git provider]({{site.baseurl}}/docs/integrations/git-providers/). +If access to pipeline definitions are enabled for Git repositories, you can configure fine-grained restrictions through the integrations settings for your [Git provider]({{site.baseurl}}/docs/integrations/git-providers/). 1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. 1. From Configuration on the sidebar, select [**Pipeline Integrations**](https://g.codefresh.io/account-admin/account-conf/integration){:target="\_blank"}. diff --git a/_docs/administration/audit.md b/_docs/administration/audit.md index eca08759..fcf56fb1 100644 --- a/_docs/administration/audit.md +++ b/_docs/administration/audit.md @@ -1,56 +1,110 @@ --- -title: "Audit" -description: "" +title: "Audit logs" +description: "Get a list of all actions in Codefresh" group: administration +redirect_from: + - /docs/enterprise/audit-logs/ toc: true --- -Most entities in Codefresh are GitOps-compliant, and fully controlled via the GitOps approach. +Codefresh keeps a log of all actions that happen at all times, based on API calls that reach Codefresh. +The audit log includes: +* GUI actions from users +* [CLI](https://codefresh-io.github.io/cli/) invocations +* Any [external integrations]({{site.baseurl}}/docs/integrations/codefresh-api/) used with Codefresh -For information on which entities and how they are controlled, review [access control]({{site.baseurl}}/docs/administration/access-control/). +The time frames by audit logs depends on the pricing tier of your Codefresh account. -Audit logs are available for GitOps-compliant entities. +You can: +* View, filter, and search for audited events +* View API payload for an event +* Download the audit log file in CSV -View audit logs: +## View audit logs +The Audit Log is divided into actions audited (All Audit), and tiggers and webhooks processed by Codefresh (Triggers). -* Of Git Sources, in the **Notifications** panel -* Of pipeline entities, in the **Update History** tab -* In your Git repository -### Git Source changes in Notifications -The **Notifications** panel is a pull-down panel, always available in the Codefresh toolbar. The panel shows a recent view of changes to entities such as Git Sources. +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, from Access & Collaboration, select [**Audit**](https://g.codefresh.io/account-admin/audit/audit-all){:target="\_blank"}. +1. To focus on a specific time frame, select the date range from the toolbar. + The All Audit tab includes all Codefresh events in your account, sorted by the most recent events. + Each event shows the following details: + * `Entity ID/Name`: The entity that was affected. + * `Entity type`: The type of entity on which the action was action, such as user, team, build, pipeline, project, etc. + * `Action`: The action that was taken on the entity. + * `Status`: The result of the API call. + * `User`: The name of the user who performed the action. + * `Last Request`: The time of the event. -{% include -image.html +{% include image.html lightbox="true" -file="/images/administration/audit/notifications.png" -url="/images/administration/audit/notifications.png" -alt="Git Sources change log in Notifications" -caption="Git Sources change log in Notifications" -max-width="30%" +file="/images/administration/audit/audit-logs.png" +url="/images/administration/audit/audit-logs.png" +alt="Audit Logs view" +caption="Audit Logs view" +max-width="70%" +%} + + +The Triggers tab includes all the triggers/webhooks that were processed by Codefresh, with the same information as the Audit tab. + +{% include image.html +lightbox="true" +file="/images/administration/audit/audit-triggers.png" +url="/images/administration/audit/audit-triggers.png" +alt="Audit Triggers view" +caption="Audit Triggers view" +max-width="70%" %} -### Pipeline entity changes in Update History -When you drill down into a pipeline, the **Update History** tab shows the list of changes to all its underlying entities. +Both lists have built-in paging and filtering. + -{% include -image.html + + +### Filter audited events + +Filter audited events to focus on a specific entity or user. + +{% include image.html lightbox="true" -file="/images/administration/audit/update-history.png" -url="/images/administration/audit/update-history.png" -alt="Pipeline entity change log in Update History" -caption="Pipeline entity change log in Update History" -max-width="30%" +file="/images/administration/audit/audit-filter.png" +url="/images/administration/audit/audit-filter.png" +alt="Filtering audit actions" +caption="Filtering audit actions" +max-width="40%" %} -### Git repo change log +### Get more details for audited events + +You can get the exact API payload for each event as it was sent to Codefresh. You can get the URL and other call parameters used for the selected event. + +* At the right of the row with the event, click the **More Details** (book) icon. + + +{% include image.html +lightbox="true" +file="/images/administration/audit/api-call-details.png" +url="/images/administration/audit/api-call-details.png" +alt="API call details for audited event" +caption="API call details for audited event" +max-width="40%" +%} + + + +## Export audit logs + +Export all log events, both Audits and Triggers, to a `CSV` file, for offline processing with your own tools or for viewing in external applications such as Microsoft Excel. -A change to a GitOps-controlled resource in Codefresh is made by Codefresh impersonating and pushing commits to your Git Sources. -The Git repository linked to the Git Source shows all the commits. +* On the top right of the toolbar, click **Download Audit**. + The downloaded file includes in addition to the events themselves, the API call information (payload and parameters) for each event. -### (Future) Centralized audit log in account settings -We plan to create a centralized location from which to view all API operations. +## What to read next +[Codefresh installation options]({{site.baseurl}}/docs/administration/installation-security/) +[Access Control]({{site.baseurl}}/docs/administration/access-control/) +[Codefresh API]({{site.baseurl}}/docs/integrations/codefresh-api/) diff --git a/images/administration/audit/icon-UnorderedList-notification.png b/images/administration/audit/icon-UnorderedList-notification.png deleted file mode 100644 index 0ba6f1783b1ec8b25c35ab3754b3254ace98ebda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-1!HlL zyA#8@b22Z19F}xPUq=Rpjs4tz5?O(A?4B-;Ar*{or=0a=HWX;RU(tKSFnkfqM%jQv zWrxZfRxrF^&{7CtP~E{|6*0x-r0LG555A@xJM~|2(&9fc-zJ9{S4I6iIqM^{)H>d^ zv$9UKs{S#!u>bvq?kwkvOaTgl%scX?&-qs7t+Qmyk&Wu6QZF91eduywI{v7Pr^)qx zg`vWq_nCa1EdBN-GOnhNj-PCiFL1i%EZ4JR3h%E^c6^rMxi-(9@9K-5>N4%&;=9ZI z-=1A4UweROxr=;QXdyT6^c3N;P4mnhi;f>CefPpT%c?(m$@!GN%z2kXZu{P-oZ_Pq zc$(dXIr*aTSHZ;ek9tpYk1HtuF?#How}DTq_in0@TH*w`3B1pf8O1w;zZczmlm-kU N22WQ%mvv4FO#tz3ljZ;b From 8f537e28b07554b80a40905f65bbdea9497e6bee Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 28 Nov 2022 11:53:58 +0200 Subject: [PATCH 07/43] Add manage Git PATs and update user settings Added new topic for manage PATs from GitOps and ported user settings from Classic --- _docs/administration/audit.md | 2 +- _docs/administration/manage-pats.md | 149 +++++++++++ _docs/administration/user-settings.md | 240 +++++++----------- .../administration/audit/api-call-details.png | Bin 0 -> 48071 bytes images/administration/audit/audit-filter.png | Bin 0 -> 35346 bytes images/administration/audit/audit-logs.png | Bin 0 -> 89463 bytes .../administration/audit/audit-triggers.png | Bin 0 -> 88934 bytes .../manage-pats/allow-support-access.png | Bin 0 -> 9047 bytes .../manage-pats/bitbucket-pat-scopes.png | Bin 0 -> 164789 bytes .../manage-pats/github-pat-scopes.png | Bin 0 -> 149899 bytes .../manage-pats/gitlab-pat-scopes.png | Bin 0 -> 316960 bytes .../manage-pats/oauth-user-authentication.png | Bin 0 -> 54800 bytes .../manage-pats/user-settings-pat.png | Bin 0 -> 55892 bytes .../user-settings/allow-support-access.png | Bin 0 -> 9047 bytes .../user-settings/notifications.png | Bin 0 -> 22502 bytes 15 files changed, 235 insertions(+), 156 deletions(-) create mode 100644 _docs/administration/manage-pats.md create mode 100644 images/administration/audit/api-call-details.png create mode 100644 images/administration/audit/audit-filter.png create mode 100644 images/administration/audit/audit-logs.png create mode 100644 images/administration/audit/audit-triggers.png create mode 100644 images/administration/manage-pats/allow-support-access.png create mode 100644 images/administration/manage-pats/bitbucket-pat-scopes.png create mode 100644 images/administration/manage-pats/github-pat-scopes.png create mode 100644 images/administration/manage-pats/gitlab-pat-scopes.png create mode 100644 images/administration/manage-pats/oauth-user-authentication.png create mode 100644 images/administration/manage-pats/user-settings-pat.png create mode 100644 images/administration/user-settings/allow-support-access.png create mode 100644 images/administration/user-settings/notifications.png diff --git a/_docs/administration/audit.md b/_docs/administration/audit.md index fcf56fb1..06be92c1 100644 --- a/_docs/administration/audit.md +++ b/_docs/administration/audit.md @@ -15,7 +15,7 @@ The audit log includes: The time frames by audit logs depends on the pricing tier of your Codefresh account. -You can: +You can: * View, filter, and search for audited events * View API payload for an event * Download the audit log file in CSV diff --git a/_docs/administration/manage-pats.md b/_docs/administration/manage-pats.md new file mode 100644 index 00000000..f40507f7 --- /dev/null +++ b/_docs/administration/manage-pats.md @@ -0,0 +1,149 @@ +--- +title: "Manage Git PATs" +description: "" +group: administration +toc: true +--- + +As a user in Codefresh, you must authorize access to your Git provider accounts, and authenticate Git-based actions from Codefresh clients, per provisioned runtime. +The authorization method depends on the Git provider and on what authorization has been set up by your account admin. +* If your admin has set up authentication with OAuth2, you can authorize access using OAuth2. +* You can always generate a personal access token from your Git provider and then add the same to Codefresh to authorize access. + +> If you have access to more than one runtime, you can use the same token for multiple runtimes. + You must however authorize access individually for each runtime. + +{::nomarkdown} +
+{:/} + + +## Authorize Git access in Codefresh +Authorize Git access with OAuth2 if your account admin has set up Codefresh as an OAuth application, or alternatively through personal access tokens from your Git provider. +>Notes: + For OAuth2: The adminstrator pre-configures the permissions and expiry date. Once you supply your credentials for authorization, you are automatically directed to the Git Personal Tokens page. + +**Before you begin** + +Make sure you have: +* For Bitbucket only, your Bitbucket account username +* If needed, a _personal access token_ from your Git provider with the required scopes: + * [GitHub](#generate-github-personal-access-tokens) + * [GitLab](#generate-gitlab-personal-access-tokens) + * [Bitbucket](#generate-bitbucket-personal-access-tokens) + + +**How to** +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Git Personal Access Token** (TBD(https://g.codefresh.io/account-admin/collaborators/users){:target="\_blank"}). +1. Select the runtime, and then do one of the following: + * To add a token, select **Add Token**. + * To update an existing token by replacing it with a new token, select **Update Token**. +1. For **OAuth2**: + > If the application is not registered, the button is disabled. Contact your admin for help. + * Click **Authorize Access to GitHub**. + * Enter your credentials, and select **Sign In**. + * Complete the verification if required, as when two-factor authentication is configured, for example. + + + + For **Git personal access tokens**: + * Expand **Advanced authorization options**. + * For Bitbucket, enter your **Bitbucket username**. + * In the **Personal Access Token** field, paste the token you generated. + + + + +{:start="4"} +1. Click **Add Token**. + In the Git Personal Access Tokens list, you can see that the new token is assigned to the runtime. + +{::nomarkdown} +
+{:/} + +### Generate GitHub personal access tokens + +1. Log in to your GitHub or GitHub Enterprise account. +1. Select **Settings > Developer Settings > Personal Access Tokens > Tokens (classic)**. +1. Define the following: + * Token name + * Expiration date + * Select scope: `repo` + + {% include + image.html + lightbox="true" + file="/images/administration/manage-pats/github-pat-scopes.png" + url="/images/administration/manage-pats/github-pat-scopes.png" + alt="GitHub personal access token scopes" + caption="GitHub personal access token scopes" + max-width="50%" + %} + +{:start="4"} +1. Copy the personal access token generated as you will need it to authorize access. + +{::nomarkdown} +
+{:/} + +### Generate GitLab personal access tokens + +1. Log in to your GitLab Cloud or Server account. +1. Select **User settings > Access tokens**. +1. Define the following: + * Token name + * Expiration date + * Select these scopes: `read_api`, `read_repository`, `write_repository` + + {% include + image.html + lightbox="true" + file="/images/administration/manage-pats/gitlab-pat-scopes.png" + url="/images/administration/manage-pats/gitlab-pat-scopes.png" + alt="GitLab personal access token scopes" + caption="GitLab personal access token scopes" + max-width="50%" + %} + +{:start="4"} +1. Copy the personal access token generated as you will need it to authorize access. + + + + +{::nomarkdown} +
+{:/} + +### Generate Bitbucket personal access tokens + + +1. Log in to your Bitbucket Cloud or Server account. +1. Select **Personal Settings > App passwords**. +1. Define the **Label**. + Select these scopes: + * **Permissions**: `Read` + * **Workspace membership**: `Read` + * **Repositories**: `Write` + + {% include + image.html + lightbox="true" + file="/images/administration/manage-pats/bitbucket-pat-scopes.png" + url="/images/administration/manage-pats/bitbucket-pat-scopes.png" + alt="Bitbucket personal access token scopes" + caption="Bitbucket personal access token scopes" + max-width="50%" + %} + +{:start="4"} +1. Copy the personal access token generated as you will need it to authorize access. + +{::nomarkdown} +
+{:/} + +## Related articles +[Git tokens in Codefresh]({{site.baseurl}}/docs/reference/git-tokens/) \ No newline at end of file diff --git a/_docs/administration/user-settings.md b/_docs/administration/user-settings.md index c8f130c5..98dee39e 100644 --- a/_docs/administration/user-settings.md +++ b/_docs/administration/user-settings.md @@ -1,182 +1,112 @@ --- -title: "User settings" -description: "" +title: "Manage personal user settings" +description: "Manage your personal settings" group: administration toc: true --- -As a user in Codefresh, you can manage your account by authorizing access to your Git provider accounts, and optionally, enabling access for Codefresh support. +As a Codefresh user, you can manage several settings in your personal account. -* Enable access for Codefresh support - Optional. Enable access to your account for troubleshooting purposes. -* Authorize Git providers - The Git personal token is a user-specific access token, required to authenticate Git-based actions from Codefresh clients, per provisioned runtime. - The authorization method depends on the Git provider and on what authorization has been set up by your account admin. +Email notifications for builds and build usage +Access for Codefresh support to your account +Access to private Git repositories +Create and manage API keys +> To manage Git personal access tokens for GitOps, see??? - If your admin has set up authentication with OAuth2, you can authorize access using OAuth2. - Or, you can always generate a personal access token from your Git provider and then add the same to Codefresh to authorize access. +## Access user settings +* In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **User Settings** (https://g.codefresh.io/user/settings){:target="\_blank"}. - > If you have access to more than one runtime, you can use the same token for multiple runtimes. - You must however authorize access individually for each runtime. +## Email notifications for CI builds -{::nomarkdown} -
-{:/} +Configure the email notifications you want to receive for builds based on the build status: only successful, only failed, or for both successful and failed builds. -### Enable access for Codefresh support -Enable Codefresh support personnel to access your user account. Access to your account is useful for visibility during troubleshooting. +> By default, email notifications are disabled for _all users_, for both successful and failed builds. + +* In **Notifications**, define the email address and select the notifications: + * Email address for the notifications. By default, it's the same address you used to [sign-up]({{site.baseurl}}/docs/getting-started/create-a-codefresh-account/). + * Select to receive emails for successful builds + * Select to receive emails for failed builds + + + +{% include image.html +lightbox="true" +file="/images/administration/user-settings/notifications.png" +url="/images/administration/user-settings/notifications.png" +alt="email settings" +caption="email settings" +max-width="50%" +%} + + + +## Weekly updates of build usage + +Select to receive weekly summaries of your builds across your pipelines along with other statistical data. This information can be useful if you want to understand your overall project build health and capacity usage. + +* In **Updates**, select or clear **Receive updates...**. + + +## Enable access for Codefresh support + +Enable Codefresh support personnel to access your user account. Access to your account is useful for visibility during troubleshooting. If you have an issue with the Codefresh platform, our support personnel can log into your account and look at running builds, inspect Docker images, run pipelines for you etc. You can disable this security setting at any time. -> Codefresh personnel takes action only after confirmation from you, and all actions are audited. +>Codefresh personnel takes action only after confirmation from you, and all actions are audited. -1. In the CSDP UI, go to [User Settings](https://g.codefresh.io/2.0/user-settings){:target="\_blank"}. -1. Enable **Allow Codefresh support tem to log in...**. +* In **Security**, select **Allow Codefresh support team to log in…**.. -{% include - image.html - lightbox="true" - file="/images/administration/user-settings/security-enable-support-access.png" - url="/images/administration/user-settings/security-enable-support-access.png" - alt="Enable access for Codefresh support" - caption="Enable access for Codefresh support" - max-width="50%" + +{% include image.html +lightbox="true" +file="/images/administration/user-settings/allow-support-access.png" +url="/images/administration/user-settings/allow-support-access.png" +alt="Allow access to Codefresh support" +caption="Allow access to Codefresh support" +max-width="100%" %} -{::nomarkdown} -
-{:/} -### Authorize Git access in Codefresh -Authorize Git access with OAuth2 if your account admin has set up Codefresh as an OAuth application, or alternatively through personal access tokens from your Git provider. ->Notes: - For OAuth2: The adminstrator pre-configures the permissions and expiry date. Once you supply your credentials for authorization, you are automatically directed to the Git Personal Tokens page. + + +## Create and manage API keys + +Generate new API keys to access Codefresh functionality from your scripts or applications, outside the Codefresh UI. Edit scopes for existing keys, or revoke them when needed. +For details, see [Codefresh API]({{site.baseurl}}/docs/integrations/codefresh-api/#authentication-instructions). + +>Tokens are visible only during creation. You cannot "view" an existing token. To re-enable API access for an existing application, you must delete the old token and create a new one. + + +1. In **API Keys**, to generate a new API key, click **Generate**. +1. Select the scopes for the key. + + +{% 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="80%" +%} -**Before you begin** -Make sure you have: -* For Bitbucket only, your Bitbucket account username -* If needed, a _personal access token_ from your Git provider with the required scopes: - * [GitHub](#generate-github-personal-access-tokens) - * [GitLab](#generate-gitlab-personal-access-tokens) - * [Bitbucket](#generate-bitbucket-personal-access-tokens) +## What to read next + +[Manage Git PATs]({{site.baseurl}}/docs/administration/manage-pats) +[Single Sign on]({{site.baseurl}}/docs/administration/single-sign-on/) -**How to** -1. In the Codefresh UI, go to [User Settings](https://g.codefresh.io/2.0/user-settings){:target="\_blank"}. -1. Select the runtime, and then do one of the following: - * To add a token, select **Add Token**. - * To update an existing token by replacing it with a new token, select **Update Token**. -1. For **OAuth2**: - > If the application is not registered, the button is disabled. Contact your admin for help. - * Click **Authorize Access to GitHub**. - * Enter your credentials, and select **Sign In**. - * Complete the verification if required, as when two-factor authentication is configured, for example. - - - - For **Git personal access tokens**: - * Expand **Advanced authorization options**. - * For Bitbucket, enter your **Bitbucket username**. - * In the **Personal Access Token** field, paste the token you generated. - - - - -{:start="5"} -1. Click **Add Token**. - In the Git Personal Access Tokens list, you can see that the new token is assigned to the runtime. - -{::nomarkdown} -
-{:/} - -#### Generate GitHub personal access tokens - -1. Log in to your GitHub or GitHub Enterprise account. -1. Select **Settings > Developer Settings > Personal Access Tokens > Tokens (classic)**. -1. Define the following: - * Token name - * Expiration date - * Select scope: `repo` - - {% include - image.html - lightbox="true" - file="/images/administration/user-settings/github-pat-scopes.png" - url="/images/administration/user-settings/github-pat-scopes.png" - alt="GitHub personal access token scopes" - caption="GitHub personal access token scopes" - max-width="50%" - %} - -{:start="4"} -1. Copy the personal access token generated as you will need it to authorize access. - -{::nomarkdown} -
-{:/} - -#### Generate GitLab personal access tokens - -1. Log in to your GitLab Cloud or Server account. -1. Select **User settings > Access tokens**. -1. Define the following: - * Token name - * Expiration date - * Select these scopes: `read_api`, `read_repository`, `write_repository` - - {% include - image.html - lightbox="true" - file="/images/administration/user-settings/gitlab-pat-scopes.png" - url="/images/administration/user-settings/gitlab-pat-scopes.png" - alt="GitLab personal access token scopes" - caption="GitLab personal access token scopes" - max-width="50%" - %} - -{:start="4"} -1. Copy the personal access token generated as you will need it to authorize access. - - - - -{::nomarkdown} -
-{:/} - -#### Generate Bitbucket personal access tokens - - -1. Log in to your Bitbucket Cloud or Server account. -1. Select **Personal Settings > App passwords**. -1. Define the **Label**. - Select these scopes: - * **Permissions**: `Read` - * **Workspace membership**: `Read` - * **Repositories**: `Write` - - {% include - image.html - lightbox="true" - file="/images/administration/user-settings/bitbucket-pat-scopes.png" - url="/images/administration/user-settings/bitbucket-pat-scopes.png" - alt="Bitbucket personal access token scopes" - caption="Bitbucket personal access token scopes" - max-width="50%" - %} - -{:start="4"} -1. Copy the personal access token generated as you will need it to authorize access. - -{::nomarkdown} -
-{:/} -### Related articles -[Git tokens in Codefresh]({{site.baseurl}}/docs/reference/git-tokens/) \ No newline at end of file diff --git a/images/administration/audit/api-call-details.png b/images/administration/audit/api-call-details.png new file mode 100644 index 0000000000000000000000000000000000000000..5bae454cc638762b40be7731d4448b7b932d7bd3 GIT binary patch literal 48071 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 Gf&T-`KvZS` literal 0 HcmV?d00001 diff --git a/images/administration/audit/audit-filter.png b/images/administration/audit/audit-filter.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8f776276023ecd92df7ca225e3f0f5aff63289 GIT binary patch literal 35346 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 literal 0 HcmV?d00001 diff --git a/images/administration/audit/audit-logs.png b/images/administration/audit/audit-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcda78c2cca1c6cf9f4c5e10ad238e8122b7e6b GIT binary patch literal 89463 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 literal 0 HcmV?d00001 diff --git a/images/administration/audit/audit-triggers.png b/images/administration/audit/audit-triggers.png new file mode 100644 index 0000000000000000000000000000000000000000..20ca12d88c10ff6a8017329525c5768dd5c709fb GIT binary patch literal 88934 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

i&+|*^#R1o=Q4xNl$IlV)jikr93}m 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 literal 0 HcmV?d00001 diff --git a/images/administration/manage-pats/allow-support-access.png b/images/administration/manage-pats/allow-support-access.png new file mode 100644 index 0000000000000000000000000000000000000000..2f58419c25e940af20279962171c41b161e85336 GIT binary patch literal 9047 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 literal 0 HcmV?d00001 diff --git a/images/administration/manage-pats/bitbucket-pat-scopes.png b/images/administration/manage-pats/bitbucket-pat-scopes.png new file mode 100644 index 0000000000000000000000000000000000000000..3a81e17a074376747fe667995e67be3a46758dc9 GIT binary patch literal 164789 zcmeFZbyS;Aw>FGB#oeJ;u>!^2OQA>wcc-|!y96l|DGmkN;t(LX2Pp0m+yaFV+~uR^ zyw5qSzvo%&`}6(hU2DR+lgT}qduGqfwXc0`Vl>p0aIq+{5D*Y>m0!!hLqI@YL_k2g z$3T1fWO|S`0099}-d0XdLs?FaUc=SN%GTZz0f8;q+{A=XnUih6)YQaeV1$Dm%hl^$ zbaebXlOS;CNat`TVz__IU>|A%BBG=;GtNs&68{!(Cq^O9e(10-*8roz~urOCs{`c^Z5MI;)Ep8rmgc`A6`((!aqTmA&dQZ{tHpE`F z(CWnCnQ#;lfFO;aEHCrH8}T3q-GpQ==ln4k z>$NN@N%(Hzw76c^&cr5g?*91vvG&);7y2*5Jx2y!+RZip z@UVvrcgy}HJ17z&Q3~$nKU599-x=F9ES(8Mf=NAYE7(ovd-mmQiA@uc`LMh-G|BUq z>_4Fg`gy@k9#2oTIoYZgy=+n`WB>W|-WaLMHc+T>gIvGbLV45Bn{7oE&yPVtb}O8- zzA`ug@R-{Qt&yX5i4))xA`nhN0I$f%tkcrrvuBu?4bOG_slIfS>HGFtat>t2NIAu6 z*}Fr3Xw9r1(#`fG#pTjv zX9G`u6A>;pp8fve_P2e7WHD>76d1O;HOI{Tct3Q?D{t)Rn9FRa+E89@KQ#QS7AAJN zuwKMk!54lh^?0Owdj8{GEB1XL8U7m5NEZ_;>@p~4&5DYY&@8~uosAJ_o70h$8X6!O zGTv?`gNUeA|9eUyydf{Is@`E{`hrII_l51mt68M7>s3?~0fm3`1(Gb?6d_nK+tnp= zu?d$t+!?z2AR;2-d1GHl6EfpBbkXK1_>f&(Tnb60z^>4qYnbiu>W3r)z<0Qq2E6L_ zk0QP2buKb2RFAPjfw@V}D*@RAskT3CDHJ?0v2d!%@+ci-q94bU$a^H(M0EkxNsPC< zWPkSok>IKlpRI9xr<2{E*3a2FS!Ao{?UlSi>)V{R;fK4?(zKi$2Pn_;1qhvboze1Q zH#2DW$H~cw>HVnZUteWtikviS-IA;6h>Fn$jS40dEw$e(VB3r%f^c}M>clYD|aeNnVYJJoAMi{SO zaqdvHmjt@CLy7h&Ffh>h$0di0W5lh+9q-tPB>Oub#~^AbUYw(X;K^}9;v9e$%Sh7L zi}rBLoIOEAadeJut^zcNG?tu`vv0ZvBQE1x&`BKx*ROjV9UmXxCG2lG2oIl+>_gjT zTUjZE%FU}f_(r*z2(pYR*^Q-haX=5BF} zDIadZ!Kvx{qa(a7R8?=+!2#ZFdowaBfz0uV&`q7PwRR1nzxODRA4Y1W_^+-IvqIB0 zy^Dd}kc*kZnFg;_2G$JEgB7RrcT-%2k^M-6U>`jGEmTF_^xGR`JFgzWPf+}HdS_+P{d0Tn~$8*;UQ27XG|x^Pt4vLnIxlzlu|m5Ub8l+P|BcMb>l$jfbY zzCCJ?YL7(y@qEkMdMKT%`D)N^_=r*UV!&wp`24r5E zY2d-v)uwrLn+84MQoqZOeejnYUCeC>N* zPv^o&NMsy{ANlHp-uS9=GOCvEKqdmtExFxOQFyBmu~dyy}OooAq&|rCElx1E;J+Waig0G=Y zb*}un%>H+Faf2nq$U34}*kZHE7T0OIns&$YSsZzo!S$=gnrtaHmPIh$m;9YZtvgK-7}EGE)~Yj=w+M-qdz_obEWf65z`4 zPP=l!!cNfMW7yZzc7JC$BJ((J%)Lcn`nzeBq!8F})$ld}F-xT{>pysFc`e z8hC`$dFSnzVwR1>?66fG+KR?Chi2Au}=S@W}F9tPYWY zg<5nub0;A@a3?9uOD1bQ;u7n|ev zY=Q1Ubnv26C1jJ)?PT53O3^uXq?lt?Oz>mb%|d6pA+;EH?0C-CQwt_0z0QC&Uz+G6 zWUMs=3=_Q|pCE54GP2#;kB^5|kWA;Rc=j(MM-sp{h##V}D+n zUxGO$skb*z{lkoui9SgqhV$K)?$P6L18fm`DA(-I|EhazZj7exS>|%0jC7rPF4R@h za6`hpI3jTNZsuYZ-53->W8?%*n8U!1SR3`YT@zf@ChvIy{X_dIV#W>DR$eJdko_kfii4$%F1d$wy4cH>dE z`&A%`;Qn*PYHfdsYM#@=ywl!KfN;Oe{zP#-(G@&^uV>b2Q4P6*$cqW>vS#Nk6^MM9 z7}Qt=0S?WUL(FX1Px43z{4`PZ?`d+Y39d>^pm>JuomxjYMH4_-o->GV zKs=JYS(mtMhr8czB11nUnb*)6V?WDKh0FrXi0Zi+)3IpwQV%N@L!5PS&E&JIk+?pp zW`uGL@mP2g-$8kFaSJlx@(1}366MB;2|Do@3aiQurbCWd0!~eJ?qmAEUx8;EOrsv6 zwAjQ!zEC$vJv5l;7xCw8y5+kcKq7kj4!vqD?hO~u-6LKGh#4ULP?$n~TTvTfu7C;sDS+r+!;tSr$(Z#%I%+N2VR{5t@+@*4?4u zqHd#FMGnOGlW)mpx1I63BB}>JqLLnD#sx0QSLMd&r!8axJ4~GD*suJOnD6U&piR8I z%4@%I#gZTFdEQP1S(mvW`GzgKOSKdfDg~u$_d`J~FVTjwp}F z&=ERONfT;B{IDvhD$i9m3%WJ`wa9>kC>B7uGS-wf^?6j0;q~#=L->!;kGJ;zjD!_F zOTU(%S>DMs9-F&ZXGiZah|dw3N40>Q9!6n?V!&_($ra{PGXr6f30P+3f{IDSPAF#G zh}7v7Tdz{0hiqzIafziKaV7Ne;TU;ysR6d+#9>k#-5i>F_)2HPn_wQL3O?{Io@KL9I*9F{sC_R!Tu)v;EzfrU)P0uiYg7{ID>sWAeFiMIA_*Xa4 zR6{%-$0Y?RFoA>&pY~|Qg9dN*!v*^m1LmvTT6Pq^zyF{)ywzDDBqX#d=mbG8vnucF zTpWqt!rh+@MeqZE{>;-9KT(5gW?<#YvQSu@`6=fRJSG*`(MMccc*CUc!J2J{Qx1PT zy}dMC;;ATVNg4;-lR2vHUJQe7vlSL^MYt~1CB>ImQ&5*cep!DtYp(cPJ$EEwU zXLDA1t}QYLt}daB3CDfz3Wt%Xp?IunUb0zQeka^c=B+O0`O>WR?1vOltv8+kOqKoRUoTCd{Ne(# zPqUE+U8bvJb-qjyHrLEF84|!?1ye}z`F>YH_<}+P2|$-flZqX1!=LO>P<206bb*nG z5PywI$l+{{i@S%7m+X1uy{De^@Io)&SrA!pZZfjBHd!yx_Zf+P3AI|Oad@BJ2l0E! zp9=5zl)U9*+h@gIy8&?N4`^<@^v5YsQGqrXqQ_x4#PEBqJk3U zt^LS?EkD3o`CPKA>TM?T2ll)T$(uV5j_nP0P1q3omD4>0$0QMt*mmDLKQ`fBbxCH5 z1B%;0((4Z5k!dHA&K<_p763?t>8aZ7c^I^^||+pyLO0WFQgo{#3J2Qu8}?8QG2 z`z^sASDDzB#6q@i1F#XcQS&j5#d*fjVO5TrpKG2NFg!mDCSSitPXGn=CGy;fow1dd z&Hd)^Yvk3WsOasZ8hS5rv8G|2yc~4I*83rL#IU+MhOIfaG1yOVdET}OHc^cG=9PfE z_1|AQ6u!U{RTcEBKO-hC#`>AJr2WVY@S8lQhK z@kK^`z;kcW(BXTQ0Z{HBFB*CGt}hFMrzJ_;np;@<0oPb z(7R7DwN`Y8Gwnz8;7G9D1!?a*pRzuHvS7AO-|x1OPGYkh0(|L5X^^4fqJ43=O@q%> z6hSqlGSSv74v>ZOz=KRrHN3=8&+7)0HkqiJliZR+yK^Z9Gc)hAUd?_B#B!V&=4-dQ zeI~9jaeuH8?m(t%RXP_cGeS zx#C%~*p>dB%!ENnq;tHVmq389%9tO*)EZ-d|^FCyiqMl5Ey#DRUw>*wO*0CiF>X z?2FC@FY(3`=xsf8jvZURP4wmSc%L2R6F%-CMtU1Ods5V|4jG)H^>SoUpmJ3gf(oh@ zxRWyf+~L%Led45(a`_c=Ex=ZPHp!1?MoYWTVW-0Hc0EgTYlu|aT{@tMa{{gy5DloG zm>dQ{oF;3NfDV0&4$eel?po6t(d~Kd7vJjb^*ZwPbG-z?hM~OmCV923ra1Sx_x;&% z{HRtqy<2VC*HCkUb$J7Ev&Hm%005eZoQ*57yQNw51uc2qPxD?|fTnNOH zRYRW=`r?U739B(eA~MQyaUw2{+o6RDKX9Qgv&ZkeZg!}eoI9@q=3a^zMX8r^R|olD zYc?irNXQ9(Zs9eTG{zPh4YQoM=!|_!<*T8AuyF-x3Zj( zO{S&Ijb-u-foiLg#3D#Nj7}kt31I#k3`Zxr2rF4+kyBFBdgygm!j$va- zI0HCH{mu zxH(QhlokKvTm(naU=vtkJepX_> zuSBR^8(Vh`UUMm#xf3o(#+t!4OsD1Hv?0=*#Lv5!UYEYWR$Y#UEl$PNhW;$iU3oI0 z>+61^&KW_N9|KD}Vgsp1Dbx&YzgS2X0P6-|^SE!8_=#5xm8%4lQMI8`GMxGYsx`bh zp0}WQl-rKFy0&V|{X`dOy!oh;lo_r!Kg^{8+BW6(W2gk+4{a@rOA2M#GcF51aq*J_@z)%cX1%}a zvm|!5K8vz%S`!BbW^izo0TbvXeW{D*WF5AWR`9=ejq-_+9Z(F7icHcp3)Pn2-dySV zSui=x)M9P`@bvjer5~P*dO$(=hjCI&4wjg6GT+*@T&VR4YkGew)R-y zo+uj+^9Om$PfN?Tu+(^D3*^l)yb_+bthCpKYpFQJei9xFEsW3S}SS;JWpw zAwS(Jx-5tkdK0w0ZAL)fwc_oDM5_6U?$lE_zH%RhO^VbS;O2OCKu;D)?997| z=X4DzdOgq|?q@Mb=%!CV+X?ooES3wwI>tQaa5)_&-;j?@o?ldNf-GiMTPK zSZ3ErvdZ-yF1lf)O~$Dmy$bjC+Y0F#RmjNf*4@uIhLnF9=Ce#G9clEae$a}-er4XO zOE`q75nmRRS1IT@eSW-Mj8oP7mbgwL`BkNrg)k}Is6OQ<=ZJDCLL;-si1KPdN@y94pg<6qfqW6kjX4xtS>Yu ztQk1kuM1h_jO*@4<+Zy?DKh!d&p7sZCJlWIV+HvR>VQKO?Vv$simFi8w zi0jgv=H|#bHj6+3VF%(-iyoRHYpTtixZvS(@GgA4H1H+)2mjBHk*aGW$Kg$BWIMv) zge_lKYi%MiJUZw$tBxhutmd>-JLREJW{2>`UBF?w^9!0E0aA2cO+n#YePkk*b=-wx ze#@2Js^5H*3494#Ghn^2VimaDvOv?*+|Tt@pcWlYWpeN9?hM&&UO}WN2s%3vzP+kj zsI0sY>2>FyYHXaK)Fq=B7pr%&C_6MR9)&GCDa5iT~J z96m=N>FkLx6g+~n%K$1FD|oJJAwPf%)y|N*?73F^l6CE&grcUYfAw#hFLOb4wy)jrO!l1*-@(WONg_m$$!`ov*(zYgVD|Xfg z9?SFd|JFBKwP_H)IhLbD0UWA4&_Ry&X|7W0>JvlXG#M7GYxe8)XD&mwt4dc!xQPkL z=c?fK{EE3zXezUcq3Mm{Z?k93$Zxdz66DJ7nYCT&9nk7_7GL*O;(h=ldK9hNpUyc3 zO71jFic=Oud}HAXa?H^)N@vft?0X6_V)S|i!$Pw>7|YK%zmSCRS*<80qRbvzQD4o{ zpmP$K385Qd5_cpMm~tQ9=C0%zH1X5Er`h-dn5)M%``Jbvx}GDw?|lruZ_1a^b~Xk% zULGugVX`I4&QXado9TIh_{?J)OK{bAaG>|$>~3D={o{Eg>!v?5=j(7|8ZiaQeZb=> zUY_jTty*fT*fYC(1+vFPIRirvy+$#h<8N0)l>FS5uYbAS(VaQ!`GkaFnneEl08+iQ zVKYxFJq-3%w&&Q`tywh0rM;hZW7z6a0U(p+$9KU~zSkar{*n?)&@hyE57?mC>5-YX ztiQlkvT3SZdW0*7b~2unk7cSknIWRY?L6+g&t(nnBLaU5GTijo6fo}={g4wmBQ)>@ zm%~w)dj)SS6LZczZG6M8Idcx&t#}Mp-6!tQolg(oOQs>ye9`QJ16|{L%#sS)Xx`~o zG3VSBzq|@S#k>JA(9FVOQlJY#4~I03N3!Z+QujBdo~ublbGR|)P=T%aYdVt6E2d5mdHBu6X**P*6@a=l8L)YS`WkAi;qB9C%GfO}xvOz54OxE8Ty9-z*mTf`F-A_x!&t z?Z3d8f%=*r@7{jn9?{=7{r8~~;!2n_&dvG~#{D-i_%Dr3F~L(EAfe$eXXd{VpR@?( zYnybU3{SGZ52rtq6f*fV4(W@|5KZkPj!>KHd+5+)KXJ| z!#zbpY`y+dn}DY}TX*2U&E8XIekngeyX;QjzX^Gs9xzq$sqU5N;=kF=Q{T3qKTW)v z$)e#uE#j%oe;LI;LV5o+)cpLP6yS~TsM-CBW{j}_z@Np6{)xVOAnogLkhX+J~~=!uju#wzqclSZMR(gz}ygXl&JAw|BO66|EXRmi@L4Y;Q+x@sX;E zMYp^dTAezkHvoO?=4qFd)WXH%Y7)k~J#P5*8H_llt8o+lXBkrcE9eF$4H_7^A>)h{dn_P;FCtn66+Y)YqIvE z{y~`X6c@-hNg$@;Jxf6VJ6F$&zf)~-NwI!Wqz5x_=&ccYsvBa7@%oP>$(^kvx@PAfS2wXHopApEe#q+#){^vR5fRQ%djSYAoupH))e!*29m}9fq zb6Qa3(%{qI&KUnf1|=#A6%zdvoIhKT*KZ1JQBaz#?z(TLY}7o+6?Ge(bzHQB=?T`P zjZn@ngr7FJpQkb2k5g(iYNejJw+s((^E%|}y| zBcET6;%#i)&G-zi!oBss0idM^6vvqH(a~Qu5ko@KHcs`TyaG9$Y9X(eQEL3Sc?W4* zFKMx{D;)bbM;Cv3K+3HwKne=sB45AIhu-@K(0{MeLAo$(@J*S)z^%#H#jsm$P3GVw z4mu1aI_{c5uJB2@`J*VDQ&+8cjosgF|E26hLv_+`{Ihge?~kj{Q~5a@FRin>mg(%@-LPlV8X9csgssH*0 z^DS1KF)@=p@yaP#RYP9;jc|ET?&FFRjBWbwZ8nc6^T)AIf&%l?08)aGajJ&nA{T8@yDFQ5&Mf?SXgML1N^tTlcpgN!HcQ ze*fyErs)1qW)*(=?S;4#?fZ%sMR_$H?T?*>RzVJlegm75-jZ&3(PEc0o_J;wqV+X>974@aXZsUf5WpXG zM!NzM@lO?PhlV@xXrnDvaxvfNw(CP{HIz}~=63mlx0(%?oi4YoJA@bt;g!;ynpfj) zJ1Y!rj>5i&jg;8Varm^KktVhztW)Njxly(w(bK9K@HUs-*1oIcE3OY(d?MB*UaUW+ z>9zQTyWa<5%Dh~6qEidomR#_;Xuasxxpkf8gVaFt#S&z*y3-3d@m9RlL!2#JubdwF zCbm;-;z7p`0ip|AdvRRr{)FKSy}YDkg+-s{cl~a4he~i&$hYegg;%B8#1^*mqh-I3 zn&aU#jFs@Xn~Dw>$xNtK6+MxZdZlG?nJY!?AA}qs)~BRZ5%{Cdamd`_=w=|(d-CTO zlslwkvGB*4LIJg<_v5E6ExsE0eT>=A!Kf&bXhYf_pTLtoe=*;?R4O_$mJFsMG*V~u z%YCb-sJ17ARFDrGo7LW~r*5wv+TYx#O{-obwjSrh9UdK5G6tZs#r-|A!LsSG2KZbS2 zx_sdNP7Qaf=}06^T8vu?^hwprKKD4<7UgiWwC#D!c&LH_Ls-Il3R`UDI#%-hS-$^W zKyDZxK;xr*Vc7holP@N|X-X)?x{N_Q>73!2(eb>Hl^xpG$N4F)?8^aL=tGK7Pp)!X z^RXJB8qjfKK*Hi_zv%g-7|{}C1wUSy6Bh@LpODZ6bp`aEPQ6p(5TY{gPRtXv<5>Hd zi#as()Sc{za&B7J`ID1VgKlOP{omN8%N6Dv`Zb;$oTn}2*6D(ylUttCcu!E>34jnm z)n;zP0H~zc>sBK*?{XMxm*b}1vcL1uX=1_x_rQs)NFMjm-`lS+g0fn;v@7)}?_n6d zlof4#R24bcX^z#6k~fnLrUgl634(9+q<{#M7;K9`sBv4DaHb~dTnnX>ddiP1Kxa>=8bvsp3D>Vznm%VkL@6G3q3k)CdB!$HqCEkMvC z1SaJ^U9(*nu5B~*wcY*PD(j_B0|eYbVIVwT?NJpVY@5bqPz%O1Yb5kLzqtz96Bu_kx z>UnR&>nmvhYb8?ip((Co@a41Lm}OuC{Z_NE`jDgccHTkV?a;t^I=W|VfXWC~g0d0x zOZi^+sb3RSN=iBg;+b)_Ba6-E9d7W`X27lN+0@srh|p-tf|bfYA@CzE{Ctd!OYn~= zYeV6|m(O2+t9RWErfskrL)`KMnW&h+0?iIy3Q-2m8FXF_txDbzYVFmlfq0j`Ih2)* zwrr!2E~b_1z{>#vRCd~|?{tR=fX_vGkLmky` z-p1A5xb1NSg{P~JI%}T{ohKQcDuoM%;k$coX*$Sfa+<&PtEtlFLGP{YQC+Px#04Y2 zp?yN|L2^7aFKmcqi8FX2zxM6+XyEH@~8 zt|d<3yZ(?5{y~V)MDBeQZ29;-gKyb_TjHv9Rs+28QYv$Y^Vic}*Wi~F{yFZu%ah(& zBK-acQV@ldg*oEAs=)h*LCQUuw7OZ5Sh5)Vk!pGMdvm>=sUMNoXb<_mwhr;hX%nfM z##ZhBW)g%zKL5dFlI7!uNqAAW#~QLiqLNAH`wN48)M`D*EanHT0KDf8daoK7oDtn| z7eU?&T!&LAc>c&Y?lron+Vg2---1&7%&u)LrLczZ$dDV>))UOPkSXc9ujyy2td*R!|M2ctq!{D1*X*3h zz;{vR1$IwDa0XC71-6}y+`+`Q_u$XBsIpm)6}i!Ijl~>71`;g8?T>do14H8k#~mMY z;*MJA)Ej4BPwIes5MZy!G2*E)-Hp z(7a!40M>hON~7HrwQM~t%I0fO%v`ADt5x0R$9=#heoBs&8)-Rk&X~rl0-bsYUf|A& z*8UJyYES=y>w{c-EUbF5T?P9H46E$!#?eV?lg&csSEjD0&JhFFrRN5Y$0%?+*2;F% zJqi*OicQVZOQCgKqMaSO!~B`sddTP5=7Wyfl*-=@DIWScv%e|4zs^ywIr8qpTzU$n zE+W7FUMoNUiszxU~#soVT$C2P&}1oOvk?C_EhQcO5io4a={2E+>fE834@Z* zfCd|POm9ljgFrjiYB=k7;+shIXX~!hH6X<6N!pr#ZrGr-3|S34IVn19c^I#m5=1RP zwA1(!>T(7=TonV6CFHG-3I!dDvI2eJ2U7k>S|=Zhuq7q(JU8!D^OYNK!~@}*P9#-! zIX-<}_T`2-BO9BphMl)M zn|pT>nZxU8*Sh4hhIQ00&j32)&e;9JV`V(z@g3|m1{-4|SAKGhrz84aB!`Od|KXk- z-H=GQfx7T!u5f<3uMJ(kJ?OYtdXhMr11BM1s;t+ZqZewU18~|SXxv9eLR9hR-+UELBBNm?RC>PBw zO=k}|-RxH(TZFiz{$C^WgO+xJkeiB@3iR@K_TqS#n>|!ibmSC|gP$!wJ&_h9a={zn zxvcs%-@)+sfoSJDFN#ghh#H-NGHq6{Zu2EWrm5_Pf{td70jJdR$E z(4}K03mGM~#pBUr(J0>vxt3|Hy%UvWwV1(Y>v_rN-WKevku}7QXK01Yw?CAW=mY0c z%0dsfn()69FE;s9pU54MJnL9L9#%Tuc#k)~=GWYOXvW#iXsRp`F1*Q8G7>hfT9S}an#GUsnZ7dle-dD<5xc9-ni3^UM6{WhORFA@}}^E84;P#h&d?O z=doH+&1Nc#ZQbB=V;NE+Gxw+5@biq-^Y}*E$qq5F0rF}U1vgq2x(0RKv0wV&c!DWI zF?;#mS+p-KBC4FMmy=Alh~Qms0J)JfWe`(Z*VOv?T&{E4y{$2qTflUb%C*ZK?wcr& zOjAWUba%He&oc}XbJ5$@*SF%@wJMJ}dykxkGm^vXukvXRy&p_6m3?XM4x}D8NMDu| zUYw_BOS}Lr-v^W#qi@{Bg!a0qe(JyST1j``rV}Xa@L7KJ!C7ctVj*1YE%+B#=!Fx4 z^#oHFN;pjLqRk}nN3$EdnI8)xHV>Lk)dm`zmdg?7iO6_uHN*{X$FK4UpHgd{Qc^q_ z8%&g1F=ZL4^xD<)l*5_(n1Wb=uRPKX@(|CC}Qt(YY-eIHu*`3A-vwVWfrhz%C{G{fbR@-_?>Ne@v9C`PjD&N zi=Ie?YSRW?hS*1;;TFg2r(4v{EKZy)am5Na<5Sx0sg7>g0RzVCs(~FzVuQ98!}HW* zTK6z*ZeqSok070dr&wvoH~W5jk#MRCpy~lw*kC8bqzER=1OMuU*HMa8O@DpDk4GA9 zf2ef4Ofl;LR?Aawjz*1sPIfu$P`RG{@xF|-_pP6lRYYVzEw$N{6_=~yemsX&B^K5c zm4N&9iRl?^p?!ec;O^T?n#ToI>jKM6#lShYi6WM8KEna+idEC6Y_=B8ZQTqz#+8=H zn90w>U}|cvEP+t%E>h^meM^VG8BKCZSX>n_{7Ldd#XSQs;CtmHJ3@~Uw1Qr@!_{-% zzV=he`M5#yVHEgjWxVNUiWsW1+w%Z1OtQ=O&Y7h%Um0YEYS=n&P3MD+1cUbUyvAOd zLJ^)Pn!EC`=obn24G$n5DF*jZRj%8sA_&=c*7ufKB_cgNV5=^Dd2h8&O{m?B`oRP zAiY=BKyGY4J#ZnIR@)S$V=NXH;(3t#9e{!v?q&U-7KiobME(llf#v5s?PA0)jez8gilU-474N1^L}MbAfC=fR4#s z*Y6T@gg<(x{IBX~3H*mA+(D*IiNXz^-$5p$17AIzX$?R8@WFEL-0oU5%@v)Uw4C9R z<;shQnZ4Izkl)ftQsSSIF6Z`*vKVef9(}0B4DafAFV8O>xxI@)Ru{+JFqvNFKV0OJ zC=ziSx@o|2Z9t+JX5U2tQ~z?uhIO&?w|-0s-B11UqR9gRY{6{bo-$UA=0CkIFZ$@o%Z##!|RIkoxGAGTT^Yh0mlY_< zo{vk79Le{=y=O-r>=$MIphfK5gUp6?PdUwN@=P72naOug`4yylU_0gnc}5U(^zBYJ zV#RcPiWOtseRP1;XMU{hyjH$v8~jUwXOm1AB+-g7{VDiegU&*UO09R879y)5iMK2@ENf~#(9cxHDThNN&iQ0wZ!j5g$R?c8ZD$C9<}z3u;my*gns`Md8IxXAhG z^kVze!WHxwjTlrx) z4r@oj!lmrY=_F{Q#!Su?1MI=yN*QM}0F2_OMsl1KT6marZGghS$1Wo7DZz@mT;5b} zERje~j9vcSI9jC@MYJc%TGUQ(`S;$28rj31GX$EQF@LaaO;;-uO@QZ4i})p5%*UnR zE#g@FV!fjo%~O5{HF?Kd%~rx@=$m3;#ooZ z8i=d~-fGBxM*vhZD~$Yhj$t@6x{kr@Tjq~IqBrgnM8TB{Z7p8zp-qC}Vj|;1!Gjy0 zkA8J%0>e*l#`Q){OtOi{{CD*N@jj>dP@%d!DOekY*D6s-L>8NgJd5<0D`v>{& zVv(e46=HbJC%+{K?FAnx}15Re5d; zRvkZVbFVD8Kj6r|we=;FDPwvN9no@_*WCI*JyjW?|+8@OkFZ|*?a$& zE|lfVe#>p05vjR`5RhN+x-@4{gAar@OVqB$oHAUaFj>yGB?7m3!OL-VvY|VRk%LO0 zyC!Lz;*$7wn-N8hNXIw}n@=sDsXe>kb+JI~eft1=bpX^Tn+F2kylIdo6iIg{3Ygrq zyV2%&bM%d^Li=A~sV5h-k|=5Xq0*QEppJ6Lh~!>YEd7m&mn*(pXo*V8w%Lfx=|N&q ze`p8bfc;w_FIsH#b7{Tf3Puw}k`JXL1brNRpP|l(x8m!tvjovLDt1f46oDv4aYqJ% z!%TBUHI8xZ0=Aa$@rd38aAopED}HDdC!ny>#a?3iaRrs&t7Fjpno4w#x&-t|pOoC zW;XPqmr|)^iIf%+$j%?~x+MS6>;?&n+3D?>#sLWt{ynqb06OJEzGK^}G&vA8U)+21 zcK!OHSC@M_5}TPb=4z(<<6KU(DmX}RhzsTAPImW~L3Z{v?Fz_YB`y?C!SbT`6A_h_Uzvo?X4m2yOyg0LVIu+sksKVSd(G0;eLmuhc@TRvE%bt)Ep~%_w6;q9 zK4MSsdWBIn#lcckuhZMnJb@<$tsFmk3WiPJ$(VszEpky5AIvM`$63QsB-X;&Vph4u zjxC&7OwLU*{f4#gJZrk*+kk=7^FQ)EbN_8=sO7;m9l-WKzwYC8DWrR%IU+V4ZHuro ze4|Q%H2K`Oe$FBXYxTC{uTC}b+xo7q@hP57ZeB4>nx3WMBe!{yjO%~{L5Zdb2WfMf zM6}A|{X8O)+i@U|*FZESf?QyOcc6vUh&}41+4F+F)z7p9{#SWZkhA#`hKkvNfG;s@ zg*K?XrxUIh*Z3bBc-^6}De2&uZz8QFL#q^nxarbxN**2S5581#N|zSA{>qY+_z_{; z13KO`=QDVk`y%hIjhnDASrg_Uc{nzGT0g1ZlI~uEkkWZu0zSEK?!$7>fas_!2ZaWg zMh4PH^l=t`Dy+|WurI{vAb1*WK>(^313Y~qjXEg2w;Wy3ZIG9mC@;I61`^kN#JsON z#H!rq_0YbJ>AHa2>mWZ6-G`?MBf?myOyy$Cr}warlREHAQY_ z-u3!v&UU#a=%f1uI#{m;JUH}3Hd(X1#eAk>O58jw`#VqLb+Mx&@LG>2ADM`iU9(QSpxxF|HT7&34pbylf=sz+6<|cdPjOoc z&zMEPr-LKU=n^+>x~*RIb|_)Cwu_jkE_(@V`AMGy{^vwe=Gzdq&l*xYfP2Hx+g9wV zj@HR>rHJLRhr1{JRT|e0P9j~iKCp%x!J%5SBa10AnH?F*nY)Iy_A6bwrcNya$124L zX_BWsg6_i}onX&rI{G!53zPSsb}dK-;4X~R51K%$ zvuBcS_RhVjW#>9B3b!V=97cTXry0<~V)C-KDfF}Njtc~2naRYe+&K7ABWtgJ`kN;q zd1%f?6cooveTJirrO}i|s6#1sHU}#t*V;DFU2gR_AfR}59f28J#647dIDzw1Rb(fj z1Hw?kb0%RXLim#1QJBeH-zvl6DmBmP`bT{V67o`{@%L45MTH;MYfxeq+JR^dD%aTk zmLrNvKUh^%Y!O~&9T`%gX=tr#RdoqEJ;gM*VrA`d>=eP~Ato=mR|fo4^hquwEvF@p=**h5Z0o|MM2eTPK`2IK zievTe&yf~WE){`}1{_R)YYSilhf;r~Z-dkR{y5%2lI>>*${0kK0bou}*y)%MP53r`5%3h??tF zZy%PI0ZsfXz0LLnlG*CG+vw~VmP_F3-p*t_SC1VGvXO|GNg#^TJ5R62T?y4@KH2DW zCHbJ!>D;4#9si-y^{ZB`fa;ukrf2zus-1V{XEm~)df=zHj+T&{v}&l=nk&bEN{jnj z>uAPW)aiffO#G5f_z*m%k{;Wuwf~{kn>L(>fO=tuIv=_XTL|kl-t`tHY<6bkV#X{q zf*NCS_*^)}3^Ka&9~`g@ow@z}Ml^ zL)KhX*q6-3NV*wL55mI_UFT}H|{ z0N+(xy$aEson}rR!z-&_!h`x!^kO|Lw!SxS7o#&0Q0Jce=g}t(El%rAWgE&tq2Jx8 zI6J$;%VD)A?9M23$B`u$qw7LPfbOFpDLE;Qzq@yMU3N(NJ_qc~ezU_lq1JmL>5QUM zAmgVK*qZ_HL9mqj^QWupc6X77{6YS}#?&Lf1`(r6_A4V=sODC$J{#z=?fS7N$KqSX zR%8bBpVq*A1g=@|!pnCD@XInUaQT7YN0-w!j!un~Yznbn|iR0<xf$#FV?H}8YZxZ}(dzOng{fl=fcmP%cM0@LA2u$>G za7MS@zUqb5Q*BaXw+OET#?XtjTno2-l?}S;~+w5=W=%eS5$GVI6rDVCL?+VH& zjI0dXG4KEA=xM2=z|3fB&Z-U!rzS}|9ZzXp{%cv>5Pyv_woQl;$`H~!VgnmdRI+Hz zV6`ho88>*X!_G}OZ`NY%Bd~6683@^|zyZ652Tezh8nA~k(l7#A1aPiC8F+!R#_WA9 z6ud1lf&uG%HSTA9tXpGf5qLA-Bv{26XZ-(MOG)%~`O0z%0*g0=m53*tTMQDPp@OPL z^qoxmQ96Nv!ZI`C=6J1I1FZnBi;dCoozL^zH(k!enj3^^H;NOla++_drN;#dsL&9Kc$9-)v^e*6~ z(rDV`H`^+7;q2`?X{mQ*hAxI=(={}2t7>n~oqm!hFEO06%sU6ZnsH%Yor}kJo{6SN zhb)I?DrdLQASm;`K`W?or>O$;dff1=+Fl=I)*O7!Y)T*yKr$9HFFSXFHERo|;HSek zH)dhvbS0`s+mcNIMVNO1&b_YMGdJekv3Vs{8Wjps;{yDO`co0r(t*01mQkfm#H7?1nUSk>?hOqQ2YpxL=fN+geNM(I<*5V2D zB4L^j%JS)8LTEsSkHa$fe}V+)fE-=>B3$3BIM|5hUPtX@2lBYwcnm`Bv4_B1oTJQ=SKGRYbQx_DjJ5NUYh z){pHFMO1&mE2ArToSbWpCTWB+j?VZc>+H|v1zU~p_tiUKh5Ya3+ik#%jz*v`wPAx- z3Gou0(k*X_E*%C`1|kd5odF#}l+&x;>%B0p3NE8!=+rLxTe!*X;SY)>R=1dV+=N6~ zh|T4r<+!OMxjfZ22gn*N168L2j_ccJ#(}_gEXtmVX-PvbJuoE&lhA0(&(XI zukB@TWP~$fGmeQc-vSeXobxj?yPDk+j^-Rz1mt|9|A+sH>ys-cnHS5=#0!yO(=`rT z;uyP4A=nIM zY_TW!yh5e%1EM=b0->evx}|&}Q&Pi~bLm9W8fz|ei7mMorPE?BLiHA+3Q`%@hAVc~ zFPQpFf2J)wA65g;2n%){%t-F8?ilq49+;ajZ_HD5T+~M0yENBoI(D8IG-YK4P8I8d zgJRWc3o(zNoy~lLtTCkBux@b@L^mlD_0E2;h!g}ui4Pbqh>^5X`@j*#IBzgXyMx`4 zu@jUWUknUZiKe0?;OY9f>rFlk&2EvkLVHnF*|iC_6;@)`tkV?82Qc>fU+Zt}pY>hC zsiJTdUWc|Syy#6+{<2tsH-GWwIR;^MT>21@P&%7#S^iGRmfk|BaCH6n1lCmLML4t6 z+A|q)zubbKzG|1i=f-ZgM1y5kOX?Cbeqg1PiHSRq+Cp6oJ$d{TvOanvezSG?O7(;P zI&s{F>W^Rh$bJGSPc=Oizx-`pz9CH_?8YbL2>PM)NN63*RS+)Qo-ZTAH)6Y2XAd<0 zft{Oe&}}wkWZr>MDOZs{5`!1MMqn*hi5%Z5UN{;nY^)4k7)_Pi4!N?!2Sy%TYpEA+ z-{v`;5gF5@m`|zK6e3xap($Cln7cqn?tI#FIMV|s^FWE)yEBlBBb09|7l-dFOX-ij z7LOx4cEw-V&r)vToQKCqv9FixC4y($>h|b2s!C*yM=`aO;Ig5xirE))*Ffq6=iO_7 zokbBkragy!{8m8blHr0SOvT7uwo^2UFec4q)wWH72!i$(bbRknCwI=py^p@X?_OfvOvSYOpu+l+{!ydIJQUV@waz`D25rbIha4af zvrt(iC=b6Ws)NYQT9$0mz9mm1FT5$m9wzzE-tpH>8;8bH5(%(pS9l>6peJl?ptc?8dlqrsPOCZii_KNn8CKpj-gL?|2G^bo)Cl#oS8Mhgb0zWz3oU^z z575iyN`y8ElPUlV22K|R?kk}b0Xv_n9v?I&PBgxu(NomO4NZQ8XZbHLqUj{tq3e@bmu1CIJ9tIhTDk(Mt;uDo}e z0x)bWTtygu(V9$}yaqBJb@9JJqKz`hVtTXYRL&cs|H_jK<|962uvoivJVCjUNpu>? z=a6glGYW6Io%g}>S&0E@1-#I<_<&bWI(@$}Gwq(h(RZ#W5MD zwllAON@YpM2wFdO(*L~E`7H3gO}lxP?Wv%1o*G8ux~YJ77@4PUuS=HoO+JBKtxxw{ zXA3&b@w`vKQ6ft5zGcB|DD5Bxz-7pZqhZYspPZ~oD@eS|No3XA@cr!z@65r9n7)_8 zkK6#&CE8p3%p%T@btv{T28JY299N4a9G%PMGaS^szep#$3?tOK%nCcVf!FxUMbrur zS9g}5RHE>WXI8<$!!&Z#U6o}CyT#d2 z1yP1R(*T!ne+*4Bwzqs3nl91<{dg-`0xz{Z=+u{8EF{u^%y>X4(%vYp%W&1qevK|p zA>w4wjL+yqBq8%W7r9JRmuOsH5-(|1aml7VlbG!nU|!uUimt|D)}%p2s&z3u1>wi+ zkCp_U-0kr}%nQshQN zYd~9{%Q}Ih%I!?{JS*DR=(2p-x-Ww|C|fvt_63c*AM%W{2)FqhM=g=H<~J2i{Z~H- zHz((r2=BaN918_;y3VY=myo9u9;H@hV0J2DfivcVS?>ch;2!}&!S?5P#)b6SN4w?Z zD_V`GbS0IiUJS?8X3hNHks)ngc4Y4Pb15VPvv~%jcb;pP>^+nziL)+mIX8{G`C!@OEF8KZzI7 zGlPT9&080MgPa!~IcZ7wGY4Ts@k5msCFNM_y(j5-D0zkn$(y#0!QmlKpNOk!hOxTD zC?GSFU-@=Ty8Q~`1-C-)*YHAt@gla z{Lm`Bs_n7@FU%Rk6TSJW`Hw(PA0hrjAAe7MLpkMlkMDnqP@a@{R9Ob5 z@nqPFU4AwkfPel?AEY13X91>qFn8OQn`=sRFfc06l4rL*p6iXH>aI3DlYYa~iL>vl z6Y;s?dg|A2u}$7&K<*fWimZ>{H-l&@zi9jWrHe4poheVEoHRHTkq+aa7Y;7FG8G0E~Jnegv(=ocs(KEs09h0|V6l{vR zdILOrmnyYyj+jWe6vlv{-He&*21!wS@g_$vZ?B$b5SXkHTg?MJvN!aNjMcY$SeG*R zFlh0vj8*l=A^^H=NYRqq=sO-YRhNH#du)s!-uJM$HT9!BjHzOa3_YJoU> zBFIZ<`U75WQ-Qrw0$VYZJqSFe@T+$xS=-n!QdSP_?&_MC`8fXkzj-VZO_2u?g6XFb zQkVskP8xy?vo^jcGBbJUj%ky~bb_hSB{D+i8mYV8BvNvmub<(dHfejZ#g!Pm@CJbi zqa>sy(AjWEjkCUxEh}Dl8jq$ZKURP(DKIVun>Z=0dh?dm^nS$T3~i!VaqcJ2Dt#T{c*qIc&7B&o|TxOg}(79V%b1}T`9FTGfhmYE#}GngjantkAm zyoHYwh=#atXza|_A8|;CsN*BI4aTrZjY@`q*0S>?7;)KJeof_W=PC}o z4PqR-l_rp^DCo^fW^TJHT3s4-x*#^b=`fgKSOlswrn~A z*z%at`(F~}EjC<5rqZ=x2lctS?AFX#BURQ-!T*lPMUTEN=_RJDC#V1aNAT;$F^9{p z#ciwn$9{j>k{yo}2q*aiOQ9#!XAzZ>qW*zMNjLlN5-y{~!B`SZet+P1HoOTRKROmm zA*+XAC_{wdtpF*99FvG8(-zy}Ou3*j*2%9n0U(Howi)#4Z@;)Sj3W;RY?x>dJt1^* z#AjhKkn~-rQ+s1BWZyTup`HI0rxRbjS;UHyn+w1RvO{#r{M|KV4CemO2-kUFh?S-J zuBezlQzmk)cS>rDB~|hu#usAU?dQmDH1e1N`MTOgGfiv}wX0-__4E8NDomx``mZ(G zaP&xJjBvwj+BcGUD#CGYOQkc9Bn}zBamre;fdLcI;x{vG!B=A56dnl-yJYZjYj#z@iG*v;2JS#*WP6%`eybDV_8$tfXFQ3*KjeaSA&DLFI3 zc*R$(A?0P+MRnD0`+Qrb3hw8J8?w@3N#;?6=GRbNintXzlt$~NSw39Blx|~dGdH$c z2%O0x@H*Kfjgk9ke$f*6O9b6*==A#!0WVx%>rh(bU`L1YE{;8tWMof#^;L~s58Tev zai$ulYHfv=lcr_=FJI_aNOlEBg5LSXbU)FcE25}HKBnA;jszWMuyMhgy^%72Y;_}Z z^5haQMD)y>RpTvL3_>U%RBTqO@pee1{ zqJc&KG_CJE8@g0} zKWPW3ObDltKitD_sNp1RSss960#fcwH0NPAf2ay^=^mo_hbydlHS2|6-?*e{ogg|d zRPy;AeOQz3wOnQ3wZHGGran^PPqN3|6*2RT#VKAvd=RH4-B(#z3G8WNj2c_8r`+z& zx%@z%ozJ(BK~8XQqx9!H(vGYce4Nhxbc^Rb(AE}liD!)d-p~IC?72k#BJ)2K{!(yo zIVVSbMIZ)*xSU%6*?3!QHG2~h;?ceUfV-HizDpbwEUc{;1oSs=4R!srq|4K?dO>g} z^a<{;ieY32YC&M}XwWU`p(uW%fUsg-;|5MJPi}8;Pr)w5?!xBLQrP|A{(-ZfyO!}v zezgh*`FlpbD*2`GYPQtYRa}iw9o5^~3}9r`kp#FX?JU+dGBPDXKQQhH-4p1=$HyYH z;}>kKRH>8!UQt3O;P!LuIq+xHgQO@z$9|dv`HR}1EXU$$Cs**2lqSoDAQa|>RE;=j z*6`6}zem_1M>y9VBe?TQl8N9v!S&oSM)G4GBSYe>b5>SN9YUE+25<#B)%#ZMJ7TE2 z7#P@dJBEb1W-kDHK;2QQ&GoO#Tq5|jbO<~frwnK}PY5>~6#Vpq$ln1bBv!`Woid zuPg*6IwmnEh%lD{NpgzM=EC3`#gcpv44U013N~#jD=G9L+8>E!mIuCV^>A>qt_aSb z%PHO*zu1|et~>HQk5h=u49@^V1?L6ic095`7iFz4q?n09!@?5gOBZy@7H#cDTTJ0E zf$P<-!Xbv&jr(+d-!03OaD$pzRM3fkwA65O^i9dKN2@LGy`Uf^wWxSV<>52Cp#m4h zP+)r?D!o7@MVkr6UmbjOXrDZU8MKpYlgiO{W!U|u~DD}Ma4<~)?nTYM+4 zt~FyN4064v7mBEIa$^}zE?=<6&4jA5*SC|B(l#v{_cHHIHCc^{6q<7UE(^bZ!H?sX zU$m+^6W>a5s@Wk=(9eKZ#D|Y?sJS~AO(~YWnU9N?o%m?q`YjNsoPo?)f z_mu2Q6-i^zBSC2S$~ZgjcEfMSTZzane}ChzFfJJ8WWbk`mNWD^0A2s?2Y-dPlvUe3 z+=|`!jAdeHu6>B12A_}di} zCJ)JDfFmJRsE&acfLsYoP0y)%W!x<$Hm+{a&@<(?4duQnH+L?a7Wn~s3!m#g{%}Wz zFElIQH4o~mQ)r)X&BQFk5jIRPoG(WKp7I{dvb4x;j|y?B(5e8mHv20Wx1ue}cVoRe zQ`&XI5j7Vz=J_15e&g4uv8`sOUt)TxRNTbEX4fT6Mp}N}gkT*)1-vWW$qREfG$kxs z4X8N#E2I`paip|hPfnS@?-%=n1Hu}h^~nQCn+}p>usZ{85jDb#9K<;`+oW}}~DrnoLGil?1x4N10+)4gSPq*Q!K zD&O7nlD&$tRgH)=y1nfmuuN8~GqcLo4D;)##5DkHpLg(*tm#$c&jiYa?=H=2W1huO z(?MJ@Wnt1%JFm(RVK+eVb(6kOQ=4=M(k*(t04~i0ByAo4=GpYyYiPq{1n<>qK^tNj zvUjLH!48@X<=zKfXzFU=pqEp9`vhkrGe~}mtZ~qBiyNjBCc_l!c%zqa_AHDMHUG_j zCz}bt6QUOge7hZb=m&DZTM-;!Epc|JNPHzROKqxPV-W5sS#4xLaD4oTuuK&{_6b8$ zdb(q#oK&M(tsd7-LN4eCf?eO(umg)~xtvnHQIQ_~oX5xWW@0{Y68G8xT-bf!>`j4b ziO!Lk8QIR*jNZvq0^jbGD1}V~SXCqY#fU)P~ir=g?2E>-6Nrk_!-| zpENR?vP=Mcamg9gk5a|2HcSQxae-`lAE`jA*?OfzGCo~%rthJuX;El|D%PbYcM3Iu z{Jy~>&R+8_wrnIgja>+&HxC3i6tj|`b9Jid)!7+2rqtp8 z`Y927gyooUDWIZUDQG;$dx%SyV~>t?%_=)P6>u*?)wgxNU}VR2IhJ?;QAl1Tbc44o z;+Ui+u~BW8?MQPjGtWv$c>eNjd1RTs>C@%_teF97v`@d$>iN4wJt-(PlMQS)kQTN1 z=|rGRn;#b=89xtpg5&n}Uc>_gR=C?$P;l&P=4z>$!w0kx($_~n3Qk#k+|~j|v@L(s zjVW2fqZuLvYe{;zIL919pT#7tj|8rm!rb@kV22=cU%-gs$%!JmMwYM%)!dG*Dr#my2D>ernb|pKeLX? z4sh4C+eu{inDX3yge%4$k-F?{^{+-|Uar_&sL;w4nNg#U_B56y%`Is9tW+uLHt)V& zkG6_5{&|L|9d!sOqhOnaow%2sKu@&7hOxe=RHaAfFW7sz82>I$u@EAc_qiY!aU`K#)3>MDD$-rO*L5dQT?s&Ay`RNf6tFz~HUvTK3Z5 zMz1iH$kVytNgA~nau-i60lkj2rmbBWoVtO^DJc-BjU7_5K%D?_K(nQ}KJn37JB7Q&nv zz2Y+yYu85e;anSDaSo7$qx%0jBr2+{hQ~#N2hw>=K+A>InBEa1`H`&4Ji8K*@3ohr z53(|Pj|;#Iue~|k%^lOFJ~|jT$?sXcb>DfD!%4~SOED2oy@BcLW-No#QZaQB&+y^9 zn0ktb^T)WUz8h`uG^$n{=2bo3qNFqsc=1AtEg_DgbMK`C&s%1o0Jt!Do z2DK3Vg5b;J4tAr8npubUyV1IbBwfXep^8CXULVvJbakifgA6mQ%AJHEhiO;&t5-X) zyCI|psIl}kG@dP6&;|6h5y4eYeQxvU&~R+-(*xA|emAS2WLRnKzwzB)DKVTRgX=y# zDLDj{r{hi3Rf!&Hz}h?>a3vr-Y#F=*YpU&9cNVN(uGm~4k=oPlK1Rjri6PAVOF>2I zTy)(gKD&AY?k4jR_oB<^jU1FrT%a91FA6E++%|OXw_R)=Pk7xbzG{S*3C>uNH3}+X zj~>_-!Rh+_Z1v%TG2O3Q80DY0rHp};xrS(nD>Vx4eej%|&IYSQ4gk$`Yv>1?*3qUz z)k6FNK;9LI9Yr+c4T%y4{sCarl-E^XYR5P^rw4v=|Ggr?iXYvXacByve0ZSxU8tc| zraVecI)cd+6@qh+!U$_hNuO{KuqPbv{7(C5|15sI{4(v8qSX_0}q zOGG)p$0dKIKR}Y|Y!x<3Z)`Lf=KG>%)=bqkeOt3L%WU`Zc4Y;}N7Vs=8g|9sfNm?N z#3FXm%O_#Pjk0)h<&IGbKV!lmE^6S|$jx^T#HvI_o`NyGy>nOUY^2)6$xw#F;_|$Ud9U0{)?LiGWeoqPiydUKxglgJ%QovbU`}r(5P{PaYEgD@7Yu5e*D?h=nqkFEu z9({|`aX5M`R&^jPa(%Qny63$@XF}iLyJ_>}%@Q+du}I9EZe3(+OMTxRi_;;I@Zj+M zHBmk74s(u6LMWJ4ci*hT(9{ra9nR3Le^(mc;@l}5yg|CTXUCl-)&3pJ(B;NbvMb|q zV0(6qFE55izdDp>e%s6|XRrlj8FBpJ9DVEO-hjS+6zNf$mNyGQSo16>&M8gJ`8?<>CADn3PdnEPel39Y%*em5y zPRW-U)nU)TPRz&eK7Vo=D_fE#d!^~x7_uCEKMKgi$#%u@9=TA>yL{8S=B|q?14ymw z!g)(np-b{cI8pH#4*&4hYs}cp`cw#O(#CybaYAzZsGNv8pm^tzx4=7cr6g^~MgQBK zURg!ecRj8%gx1Er9zJlt8oQyaZ0Mg8uz`HFyJO-sU=eV+n&!_&TzoDqDCqwK^~qMa zso)gqb^YNH!&?N~Rh7my2kWlYR!`Np?nY*H&9i}#KIq#nHQ7-!t*G2r%sU7fz4+hL zs6X%bI6_eLP&>^1-1($@I^>U$vc4*nS!Rsdtf8aZ<&&83#1n48b^&i@v#I=R69Fe4 zHCQBqosD4U(9Z6<(VddvcbF_nQGc0ma^iB}9p%tk`Nkm2P&gj5+fAhbq1P4E*l(Zn z$%MJ(Bi`7e-^J8OV7>#1-eA86*r2YXR<`eD@nOj_<0!+A5((&Bh=YB5e zH@HaEk!K>O@W{6FM?b56e=G<$aTtjI)Hu6$P;plLS4Hf%0$CH95UOLZXA$#lLS>`T z#9g4w`}?Cn8F=9>+iBN_5eVY<7IF$aqhd!p0G`SuGhl9%kV=ocQ-VSRs17d13w1c~ z$FuC%iVKtphb3~@&5I8X)mrWCvvht=5N+<4WWRGarN)Huxd(*K(nl0^Ej#2IV(VcZ zzE5Y=uZKFe8!BRTCHmUlbewFSeBikggP`&I1R)hwJL)Bak@Vt?YKcq0)iJR;@1E zC+bn;@hVCYUn03<>aqh4APmQy z!-8wg7DR<=SljE_JCWF)$a@7Qe=e{bIO$!%qHhg74m%ZX{W?Z}L@{+&2~&t~wJk0x zKU@q@gE@}Mo4h1cOdy1+*heZqAL&?_6<=F7t!QRK_m{P^;n5VVo;}vbwX|^b-13=N z3EeFl1N%?_>UnbKjo6Z4q5&Q6Je9;n7pBs~uG`4mI8GvCMu_mH&hA9%aFT$(Q_RCF z_Kq`)_*wSGc;{QyqTu8M&esKdn3;Mss^XmC(7EXcKammkg-aYUJ{z=AAmOm6d;+PF z=Ac*a+(qm-jKzHjg;xk(NL3|ihJ~LUxyUV2?i>m07g;ThD+avyM5#_)mD`u0A+`Vd zAs?c+N)9%?ng}_vPCV^QY|?Y9P>_^q_iHyCvUb)^czw*v$?a~4<|0Sgq!)K^x=|bp@nS652D)Cbe_{@&>@^H z+5?@+9c|Z-?MkT2{(c8t>otZzi_eX6QEqj|_dZ~$W|zjvT7JfBzfwqnl%&Z71> zfFXHsHuK7ZX97|m(?!{&&>d6}+``|AYW?+F8u^TB`Nz_V&v!*k)0ym@(z^kx9?M8N zwx}c4gk8)#M?QFe{EsO^LTDl#$5P3Hydq)$?5#-y;&QbEBYZuN9<9RMxZQDCaur=q zVNP+g$ll4%$jAI8sT5@b(2?+~nqMClxHWv<$Q=@o=3hw>md-Yc0{cJ*9Kl)U0D7iK z;7DJ{JDo>4rKFQnQ*&h|jexbj_dt`HZTb)@)!<7HU0ofczz1N76|NgW4V?8i=BQ>E zCG>Ijk>w7qZk(PSwa>gu{4O@GvX8`9%9OZP$7FNq*EIBYx#`e?V>sXVCGm;>*7U56 zE~jp|U&zI26%X%%iG_0=;&R@Guhol-yUJMbSRr*MdO9Y+DIEzW1_t}Dne^obAP);% zpl*wgSdkU3`^ypII5|sSl43MHW`3fNsuF0rRZK_FMgjC8XgNGTS;=;SDl+9p&Lkji zm4rBIE*S^^tZ|Mp{CkV$h`3Vvq^$Z_F)7RM_|`9^Melx&&8^Sdy0o|qW*t`pDL)l@ zLGU|F_2+#V|1Yp=0{+VE|MQs)t{mbRNIrSxxBTMI%qV0hI`|Fh*h6aSe@_0y4Nn7y zBBm|kOZ>HYrqR9_&vA?}W&W#WHe@ID*O&dhr=G_>4^+;sU1zaW~z+8dCJIO z)EFvZH17}O;C?a5q@~%`6q}c!j%N+-#JrK0A6Co1wM6th#^FR?gv@HE&d^BPt=Ii} zI`JD{A|kHBYA&OIi=Ly%42d~j0=m+`({$a&phz7-Klm^MbBd-%36aA7?arRrtcjn0 z*!j=br>BlUXb54f^{ZG@!D8AqD(@O%HDTQeGSib;n=! zPkqQG2a*@#)6-K%ffmt>$)8}ULG%Jc=1ii+!O z$@UKvKq;CoIYg*kprV#*h3!sums-bE%s)S%_xyg@s@}WjzjAflWh{iZy|tajiVIx! zJA1`SOPV^){R4!AZ;oF@?O4DY3o`UPh29)*$I2m2`X`W0vzxcrb`$t zg;iQ{t<<}h&^hh!Ja{lIA<_Ss3SqZw!6VdLBOd~)(|lDD9&kc$E20R@^_HI$9GsJ` zkE=Bw|3{oQq!@=<1|08t6#Vfn+ZgH0&yO!2@&hhD>$s4MRIYVN3zQdCeh_PTy8+EZ z4@oLrt_P*1Fd$xOwEPe3*OLwG)s}eMqccbSqiJ3U=mskMsEx9 zDE7R4s|MU?>D2I8lnv{4LWozJYhzZ*oIA z^G}|S%MZfM74>9SvfVAIxEeWI4TzBwtD_d}G6cOOD(54fm;bUyH#t$yaM5&2(yr%v zx{PO2e)~)H++qFw$5E(3ZC@Op^=5I%m2B4u>Ezwr^?s|&ME@TRh)YRF-@+Vo@)TKB z-p25{tbe9>H6w0SLU_OW{kdQl5`%H)0w3>8O*v)B_gqEqS@1-?kBfd=U6EkUpAm1D z;q*1^w6#+?41qGbITyPcF-MVc54dv6is?XsIF6^$H`ZNAVCDJ5h zU({W|4;?2q$ga~@P0fED!%{OZ_sjwMZFSk7=<9sK1*E*ulf3Z>d=7=_FkH)Zi1W^kwRTKLVGs}n(rc+Ld`n!0IJ zX_=>HxW2dNeBe4pvrdGh;8gQ=>Cx|fq*~{*b4pGv%j|Ag)*H(T(001Eys*J!R#m88 zLFA%pRv#$vp)gz;SB5HyWs{ke*c<`3p^(n?aY#3T0Io>qHxdY3NW`o**ufyfJwjhg1rw3Y0WK`Xju_Yu-EwGHPj@ z48`}~EqL($vSnP-rX=Hr6dv!OR z;|eW2dL608z}YE_O-MX<+q~jP_qP_ncGDxqWGo%*!+V_4Jcfnj#5^V@x?$JdGv}8d zua>|YRuw4zR#H*a6&nI?D5yTZ@hTe^PchQjGoR|=J08Yw*v@WTq`oe9mR3TR;aU1_ zL_fo{w^nA{ICFyy;C;y{SqMBS*G3(lxqFV^$s!AZ@r%wz8&B(9&BemQ=aR^21CJ7J zsl`x=2eoQQatn3&J#=YoHWx;B?710p+{B4Ke1csL4^9wm1^6l#V3}L)Kqy@IDsc{Sa$DgOni03YLGW&!{WqCPTG|n z+GiIRWFX~&& zueBo|L0@*6?nxWGzVuc5AT+1rpoad$s{{N9?5=4gQoBcV7v2!mc$ZjsBM=o1lWVlS z8|QaXz-tsxF=&$QI!|D6+!FAry1QK>Q(3b1%fdQPuv)=js>~#sW|*%re6EzwD#Paz zZd8wgCRyGiL7KHDS`DBQ=e&_>RnI1|gNO2VDna&cP4qjy`NxvpCb@|3CDnIG5Z6dB zuFV|?)R?F+BqKD46Y9S7swOsK;PiVyeqG=Ze%qG|+B(~6_s&9ctZ)>FGd&hH7E|fy zpEL9z{i<1rz(qbX-1L9jjqLvbTq?HXcIYfEEG|$m9bd^3P*H$CG#`C0Uk7D(qygL0 zTVrJ>0NT&Ih#C|F5#gh)17ia?MW-2Eh?Qbb0N)mk_1{#HZD%kxu!j0A^zec#v_ll4 zQudVVlJCW(_Z(VIrV|y*5&>>^VW@Gis%d|_hP}46QkD2j;NfG4&8unH&#YyLZBVL0 zmFyzQT6YeuI8SsCY`4pdEAepY{xG5w?D3E@^RAdT?LK~M;d#0LMtUIpMsv~Ug&Kjv zqG4WeUE9mh9V`vaf9TOq!931Q(9=AbJH5Gh91P z{rVIyaGA_6cmCT|C;0~)`8|z^*E$UfCPfr=LD5(t%GCRD1rUUj3nhl3!7=N_#Uq=k~DSU_*-5 zc`h40;JV>v;*0B)= z*1q9pPqrVc@VmS~aAR<%fS}@Qh`a~{VMg(~&~c!OB*-HJyE5kF)SfF+f}L|o-Uxm3 z)V{W2=AZETZ#&{5t?KO2$C}p$3MI97O z>%BMmXFH|38_|v2(fUNDnDMG!;0@#U$O3*N2mdRTaF0rtE=g~7^ABL#;u=t>nc{wK zT$rQJo%y0I&7qVXVY~Pv_D53D-L=a;0G^h%|<%HS9#`>W=(n zStKKu;@V^8!%Uady|=r_%Wx}uxZU%*-=h7$qVBdDzR@z}bT}F1&zg7*bq~_ci~8KQ z2n)@f>s`tqvhJ0TK~@s`Dq5cr?UWlCx@HY;xnxZczV+&ysV;)V;GtKId`siVxe>W5 zGa2IC9oT(khQ3~R$5@2$V_t}1b)qFo-!=1C`R37pkjI0O&>YF@PHYqWgVBI2HBn8y zeXfrD0KS#3+ts<%?+s>{L+cGHRyD~(i!>+>-8<4^nCFu*NU$sF`!w%B*okHwSq1V* zha{WsLDoLm|8LcJ5kgJu9}XDO8Q0b)A3Jp^D%I~-!xgWuH*sQ4+B9M=Qw^H(mu{o^ zZ4RIjjXx06im%I#-VGcEd~LYZgSOL!NnO6TFo=q7VbtBE*=-&Q4>{iKO=NO2KS1(g zp3@F1JIa#>xyLwXyGM_~V@7AnD&X_k=Z#T3d&#T-8GECfg7DT50Zc*XkKxZs-}Lm4 z+Ry%%6}z8Bzn|oe@N(TyUQifpaRa^mVb%DpaAu>{I7W9ZWbhNEMI#yMsC+o=b*ajr zxJfsLk6t=vB5gE3QDVr*&^NAmT(uT0DKx&{W;Yvt#ISrwvN6}(<#-|t zS=Fx(09ZC*84M!6k2wBAI}ipx2Zwj)0QVhXuQ>EuO3wqeCET;x-{a zK(>oo9H|FOs})W5ph8itWqSF>^qNs}9ruRmke~nS>F}rCHPg2PGcU3^Q2 z@-prir`b;K3$rdJgWGi|pX%lNx{27=23aw!S+S+nn^1M%Ad1f*`jx)aNq}%==myi2 z;iHYJ6)ttMWmlS^AXRn=m2>s55$2(GpG#e9;viaBa==F7bAcYkB?X%7X3D2Srt_~h z=eO)A;u}g#NAZVCo3ji*0qHT1+QQ|h>lVFa#NyqxLPfXl{E00f)Pl)NaHm1&&gjRB z*3m9JjU^#>8)!#>ET;ajNHX{6gYMZcxcJKjL0X-6r}NEfsEn$0RC&Pi z^sumLI>yxfW$2ehr-9PT)Q`C4m<(XH@A4PQ&S^c^kptig;lADbsr1h&N6AGmlt6?a z6{SYu#TL9|q{#3y2ysDIZI^tuw~XmU6Z4hy^5qcZ%)Iy6j&}hRed+oAVsRi<5+6r5 z6=hL5;s;Y2$SxGhp)%SIQFVo+w{SM=)7Zf-JDJ9rj3Va3@V@P}euX{K0;_8O` z6Gu(%U^g2ez)tkKiW~q4+YNv>hg=l!sa;=4pG#<8pDyWZ(cSKTlgf(h82Fb=V%D$+nfJj zlxoU>C_Bz(%~z&j)*#SVP)Db4AfaxMNI6orI|>%sWo^7EOSzfZxj`^G6qDWO)lfr{ zTFF+K#%><3<0e`4_P?3HKTg5lP5QzK@WNiJI*5&{ZRm%I>3?8te-7+X@E87l{_Ud~ z^UE*tpKJt%7C2q*pJT&%>O?7J2hwk2btAt@7uE_54YsfX*AwruS0iu2!a87l&1DMW zh$Rb8m~e~L=Xl$s;lS1iO?VI6@cQ=4ovKAQne=c&0mO^0DC_5*$W>P;W`^$P}_PtC?Pw}hX0 z1#1Ht?=QQHz0AoW?`Qu32R6{cvKNL&gz4DZ=cubMYDw><9GqGW?fiI$*K^s%qI%`7jj+LoAebZWz1i>z<7b2~FR=bizBNkcXXBVw=`>2IQ)!K3xtw$M z>S=PoD+wW@QxN_HA%Q_PN$*OYeejfjX)l6}aH`2|4yv)MZ&h<5i*6Ck=^eYrq~HU3)fLQE0pj9T`c&El{h~L7Zi-i!Yi9MexCa@ zeC*O~{r0izob1y%OytfNSD|cuuVM2S(8>V*-oIw(Vkit_L*lK<-?mteaH`fDJlA^v zKI;4v%l*fv&YxtX6d3omf8cU|Anr;f!jIX%Ab|f| zv^(odXcHfX$bZX_(twJQ9q8ZxbM^e|a{oAkY(SCi4(r3#|I(6%Bxp7h3+!*V|FLEK z=l1a&nvw-lkevK4Ey+)TUQ!oDx%4kV`(OW%4=UkzB=Px=4aUFWcWA3Bp|MTtpS}qG zx7en3D3;|rJLURcT4F^HMe{V^=8pc?AN%ujOX0o5YF2pee`(2k7U(6Laq|`bONYTa zLi_puKf3=lB>w-SgHETo91I-tZu_ zE6TL7IkxLrJwD;!7;6rC@>zm(g5RKFp;;HLjAv$Mo|tLGJsqY^>geltAR;2I92!5Z zRs^Wi{S982@_^34)wu6AP#vBXJX}i3J8D1Q}Ah5^Ci*G^4%|>eAm`r*Gqab7Q~4MKo5~P|>?!zvdtw6y))^YmEZprLXw) z7o?pJg3@@+uraP&Z!^s!7x9?!^YdpF+?j<6{(~J~dkOCpMw#sZ4CgkIhrJ zOI9(_=t5X*Y?9igR}~fQsCZ+FUSec;%U)M~blDoYzcY14e@(b@CgtK;AE9ERHt^`B zh1m<_sKI#7xpkq}9le>b83j-BCG60XVG!$wzTd}VE{ zTI(qZlm**x)RmMhvgOb>TAqMrNv1-UFRdV8qL_Cyw3 z;mBxdds(U3+xBigycJ4GcHDcdo{CRtTFaTpc6NcXs;yygv@*hr`08HQ%`Eg7?~do< zsqWJ#8*L^BjId&Ou)I596#PJkv>`I0!v0OT4Cw#s?C@E7a&p`~xpS!$`Qg zSY#|`NEYZj)DjIvPHmQ$B^a>=-+uepj^)Aqr^K;^k4@p-J@00-9C^`V6&4)+vi_{< z310kK*qL0>gB>})ORq-NvRzDCrF&jp&*lpa>&AEK$-{0L` z_aKQ92Mdw_abohi@-QgphV;`+GsK?3_yK2VDxTuTKXrK`V`5xP$%o#aNu)UiM4-lu zvcen;0UsugFLfRb2BoBzBq3w{e5bMQJ-2)MOB-s-cZW&>7%+A$fEvJ>i@Tx82<;62Bk z@b<`kF<0-|0F}7z%0#aa5VXWvauq4~)`F=+wIQqJygkvW);H-j9>3>=mnp<-u=PFz z8s#;#`KpscQ0|5GxVePU7h9I20y_^FO48dqFTgf>&C?c2c}5+8(hD|Eg8=cUr{nRI z{fH6auzDHfY=PNbgfrpxw4`h!&+*(f8maO!o0G<74c!;fb-R59pq~Dty1tsJBirWI z{bs49re|E~%UA5z#E}PjC>|N5RN>US{ypsMg1-jiDNfcL1X@MCu8S+R04d!QrfKNL z&YPgw6QVUWLUvswYD!xy)8I24Ec~I?yMfc^%f=y!mT{EaudCpdKO6ww{h}Y^*m@D^ zAbPF1KVWqs2gy#Xe+HxI)hbljt!GG5lTc&3sj>>+yb7>T7z{?b2Uxw%I`P^`1D+AU zNCbmuArme!T&HGFZ4M|-K_$A2_z$;|&8?!BS8b3jP8MeN#!4tpqtl|SmM}Qd$Lur27Hogk=1?lX%&PPCxksXTwE<7!aYegE7TUi`wGBz zy*gm^^R1MY@OwGW%JaxGY)V9#;ROOzBAc!NePIm&x1yT@S0Cg;yZ2~d2v7GpbnKC^ zazc;2Gajnw8Tv_v@{f{b0F%PfmmDwGNyn2zl$pT6w+llTk)~UU*Il6!q=ud8haaKb zaoRekYZBm<^kdz;E(r9RH0Mj#)xrpPrd)1q$HY{Pc5p)qV7l;?7t{0|nh4sk>qf8o zAYznDtSycf>)y_GB{##;kAkN)=l=m!J8=ei;H}{MXbX6=Th!uJOa;`u^$u;q+fGOC z?DWD2U3(*c@=BYCbqs$E-yeSwVxmg=WrS^YWsCp7p$st8BfrtuTTv zA}dtZ4$fyqpDZ&hVj1x$rd>qrXP6)c`uZWzAfYw3w_eOw z4aTcg@QO?cJ!4seO%2KDghstxwwuN+i{M5r`LO{V(7FS>I|{<6QDyYtLsV#{a@ z+jmwmpHavt%+r6HF&sL)Tz`gq>Wsl^Rr`nL?@%ni6JOKx!BfV+5S^0ngu5XhvNUsg z$(?{B#K(uR1>b4BU!;0!J4HF~_K(6u7meg4P2Oz%?NGQzu3iW8Sh9AE|{R&M?Y8^=o!6ux#M(7 zwqpN8QT)s?utY?N2dX%Gxmu3MnZI2;?0XDjsleTwtvX~J@OUHabemHtX?O}SWhOu< zKS{ZZVS}^JgL3*e153$B@!#?u?*(*Q5KQ%)Q3zUUtiq*H0|L`bF5W_QAO1&CNb3-1 zQi8T6(cHjYuM#%h)*kKpyX|eS6qMRcEK@5ht+)4qQ@M|zt0s?G55B7YA|+xXzSiKu zvs*~lg|*f^UiHIdj^N*ACzAQ=p}dT(0ORk)!zGAxgs0nXqs4Lz`kbB;FcbobM|D>l z{>S)e;pJSFT<(#MyT^B70|W%PCNZhiLkKMs4q2Sj4rF3uB*yd`Z7e9Mc`4XFNcMBf z6#zH-Q$$TWowQ6eeYULiq$Bo;5e6WsV_#@yva*iNVsED6#eswyImC$P)KodxGj;6u-tA3*~pnP%jxY)v2FG%*v;NZjfh%jS^=Ni|MFrU1R zGYe;iK`@F-b5%|y601)dbGDbOsv%a8+=Ytr=bbf+2a}|e3xfRN)1*v0&&kdab8B{) z4maXGv&^b${1sNW4)VF`QoP^ei#8TAyt%!{QzQxn4EhoToCctno{xgy%Rh}cT9db z3%5ifh`)VWX)0Q-n?Ni^({I(*^ptm4cjmd zMvSj|u8Q?o^e1%klDpT{ypWmlV+y-%+7F(sZJQE1z#3mItT(}$&LMc^vuZakYgDc7 zK;>-yTOPorI=ozQTRu=t_L{_8havP1q=kQD^0!$3l$>Pms;r$ZxnifzF=Yt{w2b@P z|HR98!zlT(5^E-tT@gntI@L;BCxRc~x#O=R9g?V?=I+#+m5qH6N)UfAdEVonJ@9Ls z^{2ebq0cxlo@~-3aMnFzB=Rs-7Dv%jS;sA{YWertEU~75=`SrpEX8f|uqE?0#~By- za%-9jK6&2$gALAws>}K=e(~>eH%DuJmh;hJLRP#C`EEHS?j10AW=h8EZjDu;F!_jL z{7l2C)$2Q~?QRMXeAJo4;g1Ku6k{I3B)$zLaJAH0*peH)#*S1Q{5;bp?U8La%S9MZq@rZJ$}}f(LPVPNMe8o1zIN|~(G<|i_jZ5_ zaY98a1I-!p*dn&wvp{+KK^&jgDx^A|gFs+M7t>gexpEmFuE8pveEOv9x4@UvGf^v+ z^;3%xq0>+1i1AY;MO@v#4QuVZ*xNVZy4ucNk2o?0p`l)IqEJnDzry)|sFSE43 zWXjfApI)J&k`m0*WzG);{wGr5Y`TpD7K&G)`fkAy(m(v4FR%cU6jwM-&cA3IT9J8O zR}db~CWUtgL%Z6~!~M@nWpV~Qp*Yg1d$=5HXz4f*d!_MKaVlm{RU!+B+r{0$#ckP- z-IC5YC?mAp<%%V&>%<05HfBIaL_tOF_oP{-_XhUvXvM~ltz!F&Z=g=*lpdfCq4)$& zML+LN3Zr}8QBS~ik~!?ezbqOzTeUciv=J1HyIN1bOvZ0UgbiId`01ggdFq_E!qj4- zS?Mk9ctsDkLIgg1CE3_y*nGP-_?2S!x0zqt-{~1B1_~|C+AqG?N<=@{_Zt1?42?m> z@^w8Dw1myz^p4HK=dyh({h13Pt<+0T(ptapdwSJwCw8tIZ0T`HsZ+0@_1arV>CnoU zOq&E3Hz!(UgTJqPy>98|)($lzt*9UOj^L(NI|&U3CLAX&-iB5dYK(@IR6-1dosFg0 zAA1G=9_3?UKZ3!!u?kpkRQ=>8CK>eX-?mB+snZq|c-WNnR$FYlYJ3suP`=>8!=~hm zZTRUz2$_ISl-;1Vr>T$Rl&#^-r#GS*FxKn)IZbfxvBVyo*x#ko39JXp;wazsYiFj@ zMX?{b-IU~)3`C)!uWx}TqJ&NRtm!Qa(o54|*6X#0ea?bRCyu`ax?WC-&gy4{J&}bE ze0_&4pu1fr>h|8T-=Wu>j396@IT_$taISR@Cb4`2Ja*fAn##`7qoIFRAe?u0x?|*P zI_gD`7ycj(9d2R)T%!T!bDKH@X_yqEm@4`hXl`XsNK)@QOnJq<>gV47n8@jx6FIQV zb=ZTN#jAyF5K$D2hh-tR#HjH!(e3tK-6@X^=S2T_~Hg(3`vj; zy)}qIGfZQ?K0S=6r9z5ve%PveroE=`p(l@Na@H~;fqGovZ8gk!%7W}Nv`ayGHD6}m zWo=W)hx5Lsri+E``n(NEN6UPya;<2?+0+f_3b}wF_bYoUDb_>jFPuy>o%Vb{NU(jV<&y~yk z4WSEiMOcxs>SL}$D~$h+i8s$y^G*4Es^;ew^o54hnZ5e9+68TciFXlI8ww64@-c2# zbPH>n8$(WtdYj6QmI(;M5W7KRR82+v4B70k!km#WTKpNgVRRj0Woo?j>aw`=x6;)xn{w+MmNC01w)7=JPt6_2Ik{Fkm1 z)@I~Dkn5Rm+$<0&3#MyRzI#9zlXWT{JMJetS@1Ubn6VSt$S<2Ml^*QZgOZNxt!HFB zv3N%{F0KU;d5%g2Q|Rv}km85I?Wf+mT00{n-KH4|*hYU)=-YIZI3KWEG{d>eb;lyhron^74SYR zg+L}e?l|JQ8~-FrI>;;bOVD?qr^}e0MDB-%=eGS*YyB_4Y)XF14{`C;XC`KWZF6*X zw(_-K(e-@M%`x*yC_iq_h*8VFUFF!gEMyCT> zyl16dg&5-SU+NQ#A{Q(NBfHv+T4VMs?C!pY@>ch`5-lq5Sw$;5gh-Ayc@_-ZB8R@w zue2@@M1^?htS~*wVIRx0+#ebrFjQnCyC!Z~v@~_`oZ0i;f#-&z-c}j{Ae4jkiVmas zCUmJlga`EdHl(LQTM@iA&Qlk@(3kvx^{jgIKDIpe_3ZNqZ+cJLxam{lYteK3&Or}f z)Uc7aEd|^bxf&jwGUX5wI!{2&RJ11&0o$SX7V7@?AMZa#l-ilX;^6)_DA!mc7qJ5&_4UQ_lxKP6UdIqip|B5aJ?2Gk-} z9kFOQN?3g|j*;E~P?7;#){SMYf08n`A|Kqbb4o?5zHSSH_sYvQWE!4~y1d#17Jj&@ z!Z3X4Eh3^-YC8dntyn2-`)R58}=SS^blc1Z+&V$X_bdl zh#m28xZsK0lwr~bN7lRL2^|>vhBX5@a-@eTop^Sv(k(qdRu=F<9DAtO--n0d&9I@b zZOYg8U^~Uk);)C7cLL%!_&U8APo6>u9B7PbZWqOo2aOrRUu)ynR?58PYWCR%_+`J> zY(Vo?vwpbb>E}vvPF4)YGVVXmo_%IIw?-_Tk99tXm9^|z=2J3Wa6&a|@`pksZ1@`N z1gDH5geVCujVaAj`@ZCrGC*I-1v?OhmzT8}*H4wq3HAEpOa|4KayyqW?L|-f zJj_T-oxDn8`|N1h9vY%+r-Bvu+~Y^t41xH0Bl`|LCU66^{4e7T1wI$hJ$rcj{U(H1l%xvxg^on>=1_7grS%e9y!JRp>$2!ImoL@sks- zP)vn_keHa48*;M;o;4H&O6a%TP@xU+oT@#YcW~p_a1MlRK7u)_q4XsFm^sl9J1bdM zxQU*yk1%{pR_WG82XWNghgME|yg>zvlLMjweZ;C_C(bkThD4weSCj0+uz!6`%fc=$ zRR9Rk)uZKKMqeVd1UU&_Nzr>h^p{g(x4UBgco;9lZ~wVIwr?+0bL{h|gi0&12`??n zDvGpXIAbjFZz&!~ph8e%rbLE`8|uzaVt|4zhH1soZ-r4-)6$Ioh#?HA)RUv+L4NUH z_pMkb#{H-Vz51D9$!^hrPLWytq<4d+vxv!XDHH+gZa z4YMS$@ndP&Gq3}5o6kOH-w+`x-pCx8kU~Lfhf;a_%TeDJlq2YTG%tNUiGupQ?N6i6X_H!Zy+Gw>l$4so+XVn zuiH-7{GRO5&|cGsOm%HaG3n%P>fTA!%a!01dfl5TJ7@J~{~a;+M5u!swPoHCLt8g@ zvNPS<<(r!27c|CgJ2b}m*mBF0`)ksnHlL9od*hu3*qU_Lx^cGV^z{t?iyM#`Ew#%b z?wS6Qr4IfiIVA?cIA{IyA(rV@Mn*=m_vEo~9%qrAq1vog+V?epqDWUK3J*tx7ssYv zTbDz%k6BOWK^$?D*Rr5)yIW;tAK2#+om)kVu-|Ia&kOebbTX~aTqleU?(o|0o5{Gh0atslh>O}LNi?OEF&vX#zchR&CBCj*V@K) zL*$k3G!k&`$#cA$pJ3lbrlA25BR`9Oh`>Prit<^QX^X`ohU1-Lw6fo^-@MgEW0N6wgtc{Z>859f4d5*V2A-xhkhA1kZ zE>2iy2`Q#vUo7C7P`yZ|d^1!u}FkYclQ!ZUcWP zk?Ewe85LH|7SP?@dm2g^Q{SIHn0%D7eJ9u5meCHTkncq@>kf6Kv7w`4Z1? zV|w#^{)-iSkHD_5m5BzDk|u^nE%lp9p(91YopJj@Ek~Vb0Qe z`(x1)jiN#EpF(#8n*{WW&(BJgGV`|8-?qDN8TQ^}M_}zjBpV1_p zleWtES3(CB9C->zBCP_BokWp{J2ULV_HIBkzdtaYz-!Ngi@Zxus3=zJm30Z#d6tw6#q6sqIP50nemeZ` zht_Ag zv=3gce+M_VW`GAvc2aGd2aI1glrzYC#G^b5j;E_)qcZ|AWP4r0UJIh^ zS;_5Hglf`QSl9ELWW|!YXR$QdT?xG|Vz6HavfIrIGUcpT-1Oq?J0&7EeFB8Gw9!iX zgQhQ>Q*p_S8k{_BW?9O(ppvWOM3^CoXSd&TBTsrzo9w)QwB|`7KMGF`pE9=fk2dK{ z2@b^EFj__e;&b}Ri#&Bc{Qdz-!MG0gYbkdNND2bujx;C^;}_4{VN9CJN~TqJ;KnI; z*3>fdjo+BTJCQNEw$k4$Oc|w;9XmclUlLbjf!nl0MW|YfS8~T}??k8I+K&f)-K|0> z4X#3d+~Bk0&-G=FHC=eCc!yN-t2%TN%~_#<0sZbr41sMwCU$6^*yzsn#6;Zdy1rxY zg?+~$Al|pV;GY2SY{4w_*v=&7s4LrATb(I{&{ldL7#(LWu{IplO#q=gOh@l3NQ+!& zDcW)g3>uc`A_Mqmaam6j1#>+`%c}?c!voWwwXopz2S5uruV|XAUSECn@HZ;fMSbz% z)#^m&g^qZO=nL#HTa{-lZsCMjoc;b2)6f%B_tQtY?v74`QM8AWKalK3Ai}La`y00U zu8!-H`MEi57u9SLmoxb&&}h5*&227kj9I@q;TsyJB>=FY5LWx16sZ^ zPC{aCdLL?7H!AFjq}Q>zqHUs$orQm?PsRLD_>9CbATEEu@}~WHF00gDbrU&@TX1l` z@2Y8Au-bvSPDxR&t{s=Go@uC}q^HSTedXoxsTkwq2XeKYtZKArx#ml#;fmIWfE*RQ zx=G4b&K`*nCSi;icy};F{m$di?W?VfTRNpy=+b)4XU~u?B_H+c%I8`Ou|8tJ#xoN_ zp1L6JwW`QF2aEVirpb7$qMFi z01sgzZD(qDD0#I^USxzKL&>y)1{Fyl$e-y&9`Rn%Gz7HbJC}R^gr=dXX}Jz?uLW2tHPzHu zU}eP3CVM)(891L1iLk$jRv?HA@ZSeQ+OK*v&lT}B60WW;EAsQZYXRA6N1WJ1k+t~t zpFZAhDOPbrq{QL;nciU@2I93(+Z?Xz!TX2X@S-(PC>a{d_+SSd{5pZ`DFDebwX(1% zNl8svIXCVbUtEN^D9&=yIH@D7C|J$jpO|D&cT==+ZtT!Jf?DUj*(sK28)}iweQ`)1 z>2|WxB#cyJJ%X@{=^xFJfeI0$m3;lIh;NR4F8AbhF`YjiduT@TM(?LJ5w1G4l!`q` zVa4<~6Q<&7#RtaHnOuQWR=znHS5=uq4b3>Pzix|ndYpx7Y3193EU%Qb-}M*ESgBz< z2&h_%1w4IQ=i*rrEU^FXRL`piAS%pU0M#+Mb*mX+1Ypt#3Jg-F+KA~!dOZ0kblw>^ zUf^-#eg)k^-JBjo5uS`%f@WX)DOsdExw|IT>%46BRB2$rIG!=rmhPKt=QX^I2_DEo z!?YW9h&;{f^!PRCj#Xb(1EaaXQ-Co}fXy?02-iup^9~N~Ugf;1%(kJ+7#8?Kl|Dp= zD8%w?5V^a_G1*9_wbu3Gq}iOW(koizj(E-k)#uSGdo-gMy9K|a)Txb1dKhG!I^q`AuB#PI-?Hh+@O9|(O|&aEJMAk~_U zetC*$({VO0dV+cKMS*yF6p*#143%*`7+E(f`wyjZwqLf-4w zDN8-H#Jna}n=yjoN@@Jcm&r_4eTU^W`s0Bt7 z+7NN!p|?+BJ8||zTs`i%V!38E;O^mojh%Oe!gq^Te!_1}fY5yl)gYgq0ZSq)dBBs+ zDp`qyE&kM#XHBLyYJ!?Y*77ifa>iqrKKJ^^E{c7|i1PO2@?M|ugbK1oLrrN`M#*;AN(X62U6p8=4#pNiLY)s5*el{#I0 zsnr|58GP|qpiYP$FFCVpHx;&K@C<%PSe8p`i>V}tZ&$G?C~Wv*NzBw7$w2*_VfT4? zf$JSFhY^;#HZJWCd_VGQ`k`cp=DO6y=*wLK-gRKW^SkmNKbm|U^K8&ktLiJ%ydAif z0G677vp8!9J)eC_G`qVpwo{$G*D2t>(%i;t_7U(jl7qdvA6=_n+^|RTY63PIGIF=X z`&OX?mkC-m#X;-Du9_*&$Qu`v=m-zCl=P{tRColzwZ?z@;$b~qL45M;f-Cmx zJoah8EgzK#8*zbTa|>t2V!7nUF=*l^sM4Ht%}efrk`&LJvJIq{<+V0X5Ert%yzH^* z4-u&K7r1d+!|0VbyT3WEtgE}!595ummNpa#1JV`@8=szVKa(G~84(DcZtaqi65dR)XFNDKX9R7%O%4o47%$T;%q$ zKP|{u%Y@ivfmQ&yw!ae`@m&DioZ=1cue1!~H3>Wmv%T`SM08IJg|TtVLX*1_Gk(|c zZ7L4)roLL7%GI|5zNRIWyxhqor@r(ikfiCK1_XD)8!1&%_F=J#85#Z&~D&Py>(_)FZQ zR87!C>gFX*Aik@fEL-76>hUh+gHm3NY!S9{oH9MHsTWHgk#jFgj|N#c;_B?Xk! z48vpAXBii{iXU|wQP(p&IxImqZ7jC~wMvKLOa$UP7i3x!EZ1CH9)?4gHd_*TR-SRT z24hBRUf2_Nc&C%AHHyv1_AiROcxWuZ`*(m#rQejsrm7P5z@txuw3A`+pVyN8YP`(V z>R~X%;#jYzk-8z>Le{eEH$HXs| zRPECzmXpcA!13qXW=$#^792w|V|se?)Ne#*2sgm^jUxswN48b7u7G>`mO@Gw0&^V- z{*jT0tX-&uE!t^fRFmr_&cjXKv$Z3;0V3gV7_?rgTDV|e;J&^_$jB6^S>6q=EzQ7x z6ly38+RqxyeZ4Xa8!Y?FFfY$C5!;WV;0d??<>!gs=r~6MJqxdq$6p`7;$lN0%GDLJu-pX;-${)UX;s3(~Kr^ z$YF2qcIv|O8@vxX2n5V4<>z_$?0&5JjU!38JK0lJK~o0ph0F7vj;@On*bwZ zCrM^=HvQ;mg#?^Fqor+k2M;@&R7 zQghcOO7rbPX4bBDMX~gQ3mPF&NJ#K{?;Ap!7ya#rW$!Qt*dU zw7IC`nZ#KoS;HR2<0_w>vKR^o{A%OFO>@i?*pAp7+p57X@U?d3o%TdYId|x`-pQn2 z?o_zYa?8u)Mpn1Fd)^VSn(9}lBMmgo2AP@WRCgzn2(O+;H>>2qP0-$Q<$0ek=ZSkY zP_S#_(Ngd#%cJePZW4n%uEJc)8Ov!44YSaX{4c>wsL#0vP(N8*<&*e4~D+&`^U&N{Cv6Cda z|FrsCDuGXiAIRmH@JM2PBWB>Q(>?l5B!JoG%rJv&gE!DJ(3b}RJ*YDVW)`sMxbZ!4 zK_Fh?+X%4Eje7sGjZ$@HG;*+w4X{V(=>Ov=WHKbSw3O~wVy}sI6ExNGkuS!4;aV?t z8!_pr>O+62A{lM+;Md?Sr5wN83m@;ZqIoVN9Q){sryUS|oz1#N6ge5&B$X;K{^Oa2 zlzP+I8i&~9@)@1y_4#TX*ITZ7*E4EwSl27bvOSxG?hqN&y{GtvU%iYaBcqcOiTN;r z+MPalg`%RDHymB8Av8y1{fHH5tYnQNR*YeXgZyio-RT035{y>u9k|arFrS>GV!lRW>T`uq5k2QJHbN$M1m1E z?u>wQ;AR>8<%KnHul9{;3PR`0w$0t0Zj7^k+_$@W#?d5oU9*GS5H26HHoqfoH1&Ra z&Z?vA*{DKPVs5TV-Jy0vQfCZ3#L{k5J;{u4%BUIYs@$Wc{E)QoZ(}{gMClK56;w3O z$cs!MCx;&StI}HwcBdXP{a}1<-L?a=wQ~wwM3uLtGTcSYa4t>Yb8q!42T~G4q6J|9 zY19^RnGtQ$8bd-Dh$zZEc9R=4{#D4k<%RLM^W$j@6$04u2dN?^ITeRe?0ftryxlHo zu%t-)cojz~yWw&%vB){#gd3Xt zvo0$Za1g-9JrQ5FQL!qDfi#FEniUDw1HFsB`4RRUv6&_(I&=KuGC@^IYFPx5L~IX zMcR~?zz%&HOJ$*Fj%vm>Eb~bWSjqf&nk}6#*@!*kNQsxJ8MA|*%%md6(ghU>IP_VL zdCxQo#}TP!UrmZ@3)x#GJ?=G&#((sToO}O{&qKMGU5jX2*rV_>R5ugODY2((=&wF_ zU}p83PYow#w9HKTGr!GarrGR*hz{EGPH*c+V?UMY5i-%w9%n*yVT_;5pzAbAR4e&X zdZDQ8J;L27WmovIyO=C7E~DWSSd3=HRYP_sxHTCEqguUi9Qpnrkt={Bb~iK8?n48y zwzZYjd$#s0wI-qDZu1qqn}nmEOs&Cqz3V?ZNwK%eO*Ls(l!nBW6S{UL?7o~&VWUX* zheNV-%&4;adUK}FY7)9he~Sw6l|*yCp3SNoGwr8XMCfen+FbV_HP+EOE5Xj-idB8+nQlEFA?BhHAzu9Y0s9QEj(}LfQ3A*R6o}`hX!RILt#UPvp7~}u zvn&9oaXttu+K8dLpqqtaV!bt9VTzR{={R}db)ChmqC2mW)DbRuG*6O~0ovqtrYtD_ zF!Jqq`;N~Fr=WP$jkcYPA5FrW_cUj@(G$LQ@T#ljlMA+)K1`w<^+;Gj6pSnKq#T0& zvK}dh-;R#NFP|21SCN^DR$n}&Q`#|Z&eeU7cb$KPl?QEc?L0QBrK!jXV;==pew3+_ z5o7m?s_Wb0YZ^Ji9qWE{JoxC{A-yY>iA;`ItlEzm)BNr*cvFaU1}vGA9=3 zP=o7-T79%B!ntz!P<;Uq$q)Q;`5DZ3usPqNcU=?r(Z9 z({|>LZ`d@W=f~H$*{~TLKZX~u%J&D0stOr&t&j$nxYg;%uqGa>v>Slg?bjWBmjs1toAA>f00MVQt<^#7w+N^3 zaA`GOx*<9?3)hHLD*#voFUT{kPN47J@7K$X2MHzAs$S4Y>vtd1(#&YfaLA87U6_KX zW}Au0r$3t{TtH8`iP3~iwA|spiB-0<+^3lDL(nAO{4Q-xH~n>cg=S%;&tJ{*Q_{pe zu@8UmDFW3o%L)r&I`?XcpEX(!jUHE(y@Kd#muAUPY-Fn8t17+F3(vs7K-PdKeA)$E z4?gpDV750qr_*OMOAiW>o#3+&^JA6G)1PQpGtsk|9!jM$IxfQdZqm`8n0HwT;^YBJ zk>qr0gJ0*usMSDst%L+Arq0^c>CV$cUx5lFS>OA!cRp3@(TN*=`R2zh*^Paujga0p z_T%z71kq*3?9EJLAU(8x>c<|&V%w1vw!Ouvuz+uL`$G?^cCAH>AZ~K<&RmoLjen$p zuTq|P!U@4bbcM3u{zn9XeHj+sBdluO0s54w1S|1|Hu-8swSu0S0H_BCyv$+O;}_RY zGxs|U1s7cSiy)){FA;|6@nE&I!3T}CEhc^sNDr*H0kd;_QD1Q51!)sVoelSQQi4_e zt~L7apAmHZhn;jsSxzFX)xzu072-`P(3^%VX)S_?fQ%zi3 zM`@(`zkS&|p%y)%+bq?7R5#$KZnx(? zKw0p_hDi8utJZpwJ0|cYNGKwLzAN7k8b&z`+A|HO4G?Q&>){s}?>8bSNUT*5PAHxIzjrfnB&vQ#}y$OdNNgH5D!xv0XWS$v* z@8I>e?}bJ2B|U;g9Q{5Fzo`I+d{@^2K8Fnz^7M986JcUt-(@(V9wHX|`|x2JbrHjb zzt0o@Qr0LhTf)~_dr|m!pF{r%v-N#TxUDpw?dh{S1hRkU34nBg}ohRqIPi3u?!Q z%P)S=Iud3&%_tt(4;nhoT^3Ceu&R$J-ez8rAKD=%+n(22wa=nHQe`FTE(PNswSOge zt%W2EguBi8J9!}#O}I)-AiH<&_FVLa?FI{|t(F>1qC;P+GT21OVdspN3R2!?EH({S z+iMl#sguUqK5aUM`CqY#4jHd36;h#Y58jn5qQPCp3$oSAHIfsCRtd(#Uc_)*&=8Zt zSiM;rkgr673|4dRPwq|N1;R~+3&d4ZBMDhbu(WFUIuNsq)y zTGdJg5vF)fyI{$MHu;xl`2K;wyxUZ_hXbH6gRph8oA*d^~{AU#O zE05>0#S4)rvb zOwANM-V&HThJzg~#JBwQNg@VVLMZ+Bl!l)Yx+Dc5 zSc}=IP6>-wAB~kF?!hnNTBHvKY9iTjL0Z^m6YHD|`P}}iXzs`OCbq9ANbHAPmB^BR zZN?!6@eI)@1Ryv)kG6*FMwBZRgaagwf6`7p_?$)>jYv{DmD*DsS9C>gtaXK4ZFfyE zW)};RqJrSxMi>c~A{u9j`3rtnjrFH=RT39FjTvS@may(NWF?FJ(JI&f)%uyj3b-FK z+0Tif>NfVa{S>iINgAvKyz;`EK0c#uoA`X`Q#{)hyV!X(X0)gSg>@+YZ0M9|x}^!C z)WwYxOE5bhAMt*N9hea#TJSt{Z%f<}p@n&Wq%3A4k#28UDibHsv$D!BS?IV}z*Xu`n^VfLsY00Ty>|l)n$$0MC6a>) zA2Fo_TTw_bE?*Im<`+g;4^Q<$p)5SYP`a+hk53-4o4U3E@zS4k9(L~{$vX=!jC zj0Dt1ui~nLQA2t&m zUdIY}Y{K8Ve?Q$no$;nB)wq(4BxSELcTq8#S+Kl2^`J^lAq$GjrnlhRdw) zo2G{C2uj)#qZ1ot)G>lI76%RRkg2di?0N5jsQPojWw|sK`ZNP(djN&7k17fm%5_0- z@~0{!aWnQ;#hKBkw!EivwmWLBB~}dLPj?@_seoo|w-Z8pxRCS-m-e0D>im0^P5O@6 zAi8Me$s)t(CMfE-G@JB?6Fs(e@@~b#+>V*ivz#`aW_t{N=!*i0S3ygrc^~p+qIf62 zfeJc>Sw6ig;017tS5qN}`xEY-@JqF>M84^Ci?tXG_a5Pu%DwPUrKajb8;U4H>Hx_h z(hMCQ`4vZmxAFUYo@wRc~0aB`)_f$hD8SiO5kvRj+mPd1bnVhWNH`uR#K z+m|A;I4I?*QS zNSvxA?k>nKfS|I8B!Ob$ims;=4kFe?!f}k1v)DP`34cG*vipVCm>*ZYNutOrUD8E> zqG(#1YT^Z5LKHm?{zHu=El5;&H`)D2lqlpOxrY0lFLu+Tu2^ z15E!TU~=&Pu=SQvZFbStDDGZb+@ZzYU4vVpxU|LH-5rX%Lve>faHn{2Dee~BAviaE z?K|g;`zw$E**p7LKId8+CAo{mUr_BLTWI1{q@5d132Odgv2|4WWpme^061fqmNI@d zPJB$IEPjv$3OlOUx?x#hd4qv6xR3vx@M#EFgyuK(rr);-Km1#vP#oCeL+MR-4q#xd zUt4$vuuF&#B5CUq{@9bhi7q$v?V!X+Dg6*{v`XCQXSVP+pB`Rca+t@{xD`ySis|3I zO&#ufK4&5bb{?4d4ccis^NHFoBeQ%e4l1OP_123j-+U2}bgc_5`L66r73|3^OY<(y z?=A$-n-u-h5rjU_^#RFaS2eR&s89#twL`Ebd`c(|rtFNf#8 z^bv*5CtIrCE`*h8Tq*bTecbEo-LOCc^49BhJ01DWiPDsA^vv%^y*{>YieJan9bP7h z6ULk`+qg)B7GYx?)_4G~Qo25DHaRXA=y{5S4Z^WVC`XuTabJHe^=7Faw3-*zvEr>% zX6JGk34W9s*`!bY8p9i|S%1dA*(iG;EvRFBs{@5CYf8x!FiCjS7)H4qa#FglPz2{+tnanQ-v$d0n-_zEL}PJm zs(EClU-02-7^u>{w>%5mm_9~F%dRZUd%Q=Yrb2k4I<|fmhj`IK>ldxm%Us*}-#zF2 zROPZN?_cKv@im{h5O$lj_p459iQRgdvC?B7?3iVUw}iQigt)REL+-pR4XqO#&b?n) zTFiU<$=r?n52$uxppPAIN|j2^D7SG^ZyM z-AfsJVle)DZa9VHo<6DZ^BUS>vrE&{-YSjUesd`jDth20Q?N4@a#7&@5sL^-m#0}7 zqizGTPsNq}NuV00MFdCj4t<%)*sYnNC(dCbSF8JDP41HhsN0-H_ST9;IO1WGwjRwY z6l+4V>P=y{4mPgs^ACSx8@7V}Y;EbE3ewd^xaiw~AGm0cxx(LG4%odL*241rR_L-a zu?TV{lPy0wI&u*-L_)*PMI~RS-f*+h!*@~@BC$L@1u!msyu3g-!`3qw0AO<&fV6cL zojT51F)!W?O@uAN;eKb3qz+X|fi9&mM&+z-^1eAdT)3e5;9z>0pb0QF@B3RJCyNcS`50$A8Bcc5jWNhznt_i z0Be4bM*7N<0S5A#AY93-{+H1@{y@j9cA>CjcVJe;IF>2-vfY5p9HfQs1l~ukEwliGB_K`~D=^ z6fn3{Uc`r6)IDk+qFOhH+699tX-;E1uM_5=*e$U!Hi2iNcTse~>J=u}A*kVbD&U-G zb^Zjt+e%-DO@&ogNM{(~+aeto;_$0$*~Nr!@aVE93&)$6X6xSi+y$D}@E>uLe{8!i zYL~H-FljWSzje#?vJB;iT9^w}btylqyTSA7df3w96fv~(*uD2qaqU1F6m8p12!4so z^--dFvl0^%j1~^>^JtZ;8aS~pfkR0kBvt2umLbu2FuI{^gc)ZYBk!%vGWO6Vz~)vG z^!S1+s~bzYy*#NCtrR7TB|{XR1eTi(sh0fKlKw}D1Yz1wRTM6-at%uRcu1=-%iN!d z;V65528zZgmu_*@=;BHciI@f(Jj%qq-Z8MqntIk{1^33O&OuZDLl09MOtLoM+wJjGlqd86&1T znJ`U%B6}Jo!EP8iO%Fsw4S1BRm-Xg|LwV-Ouw6NoIzytEsiyP2)s*3Loo*JeHR>XQ z3HASTI>In|qbm4EXI+oG%$NX}M@V0#Pw%7bMbM=5jfH;F12#RvMt zG$)7WQv^3MFtP5$dNBN;Z$-i8^;0aa34Mavkiu`R8oQmSo0e3NmFGQtp)h-PY-ACg zZ4C4`-{&d3T(?kLuR^Ddny#z+#`XI?GEhBMB;e)8UV3ESn$`jvd?!ZLq`5Ptvq^`; zadph^-$zl$DwScX_{9n187UQ8A|@kBE)9_#wn+FeZV^zgw;t#(S0XRR=u{UE_l&>n zwPxhmm;j=(j;l=A@%t?84@o%YVdlW2z&5s^-H{rh0t`9+x3a_@qb1*GHf*WqAgN&> zkQ0x(Rdv}7ek0@1*9N7hbE5YEQcAR--;ugJ%i-Dnr8OgrT*bO*T3c5R za6J~@w>FK%M1lb)n{NxmI2+mBZ;fWo@3B*626|e&q(K7jKMzqb4ar`$FGNQAa^=EW zrnom=!nS8O64J3KYzkS+-Vf_D0xI(9Skx}- z=KM^Lz;ev|`(pkpkj8*xo=mC5`sn@+^_Me?Z5LKyVFQgSJsJW6f>p}#_Rf@~BpGMt zdRN!xRX)Bc8^9@@@4$3AHtkp*Y=C%zZk$a6WPTK+YK<%TNYBX>Q!(v%rxu&1&?quJ z)ca}Q8u8=P;`^!xJtoW5$mL= A=## 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৐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

*DI`ZoGt9Eo?u%Mb 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

  • -)*Y`?d)}gGN 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

    1Ab)RnfA4mv--ar8=OxI; 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

    7wUE?}>MmI*gFNH-^}7Nw9yUWEGoPA~2j&P|=BF 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 GP52AABI4En literal 0 HcmV?d00001 diff --git a/images/administration/manage-pats/oauth-user-authentication.png b/images/administration/manage-pats/oauth-user-authentication.png new file mode 100644 index 0000000000000000000000000000000000000000..d57bbb417a25bcc23de606d9a3086e905e1f6857 GIT binary patch literal 54800 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 literal 0 HcmV?d00001 diff --git a/images/administration/manage-pats/user-settings-pat.png b/images/administration/manage-pats/user-settings-pat.png new file mode 100644 index 0000000000000000000000000000000000000000..fd97a1044e5445b873f218b3f44997080b94aa95 GIT binary patch literal 55892 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 literal 0 HcmV?d00001 diff --git a/images/administration/user-settings/allow-support-access.png b/images/administration/user-settings/allow-support-access.png new file mode 100644 index 0000000000000000000000000000000000000000..2f58419c25e940af20279962171c41b161e85336 GIT binary patch literal 9047 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 literal 0 HcmV?d00001 diff --git a/images/administration/user-settings/notifications.png b/images/administration/user-settings/notifications.png new file mode 100644 index 0000000000000000000000000000000000000000..2e54acc6ce10d7f24caad77c09797128a5701608 GIT binary patch literal 22502 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 Date: Tue, 29 Nov 2022 09:49:12 +0200 Subject: [PATCH 08/43] Port SSO content Ported content for SSOs fromClassic and streamlined content for all SAML SSOs --- _docs/administration/single-sign-on.md | 14 +- .../single-sign-on/{sso-ldap.md => ldap.md} | 0 _docs/administration/single-sign-on/oidc.md | 200 ++++++++++++++++++ .../{sso-auth0.md => oidc/oidc-auth0.md} | 7 +- .../{sso-azure.md => oidc/oidc-azure.md} | 0 .../{sso-google.md => oidc/oidc-google.md} | 0 .../{sso-okta.md => oidc/oidc-okta.md} | 0 .../oidc-onelogin.md} | 0 .../single-sign-on/saml-setup.md | 140 ++++++++++++ .../single-sign-on/saml/saml-jumpcloud.md | 75 +++++++ .../single-sign-on/saml/saml-onelogin.md | 80 +++++++ .../single-sign-on/saml/saml-pingidsso.md | 83 ++++++++ .../single-sign-on/sso-setup-saml2.md | 172 --------------- .../single-sign-on/team-sync.md | 103 +++++++++ 14 files changed, 692 insertions(+), 182 deletions(-) rename _docs/administration/single-sign-on/{sso-ldap.md => ldap.md} (100%) create mode 100644 _docs/administration/single-sign-on/oidc.md rename _docs/administration/single-sign-on/{sso-auth0.md => oidc/oidc-auth0.md} (93%) rename _docs/administration/single-sign-on/{sso-azure.md => oidc/oidc-azure.md} (100%) rename _docs/administration/single-sign-on/{sso-google.md => oidc/oidc-google.md} (100%) rename _docs/administration/single-sign-on/{sso-okta.md => oidc/oidc-okta.md} (100%) rename _docs/administration/single-sign-on/{sso-onelogin.md => oidc/oidc-onelogin.md} (100%) create mode 100644 _docs/administration/single-sign-on/saml-setup.md create mode 100644 _docs/administration/single-sign-on/saml/saml-jumpcloud.md create mode 100644 _docs/administration/single-sign-on/saml/saml-onelogin.md create mode 100644 _docs/administration/single-sign-on/saml/saml-pingidsso.md delete mode 100644 _docs/administration/single-sign-on/sso-setup-saml2.md create mode 100644 _docs/administration/single-sign-on/team-sync.md diff --git a/_docs/administration/single-sign-on.md b/_docs/administration/single-sign-on.md index bf75ea99..4e129f09 100644 --- a/_docs/administration/single-sign-on.md +++ b/_docs/administration/single-sign-on.md @@ -10,11 +10,11 @@ toc: true Customers in our **enterprise plan** can log in to Codefresh, using Federated Single Sign-On (SSO). To learn more, please [contact sales](https://codefresh.io/contact-sales/). - Federated identity management enables the cross organizational exchange of identity information across Internet domains, without migrating credential information or consolidating several security domains. With federation, customers can authenticate with their corporate credentials to gain access to Codefresh. This means that you can sign in to your Codefresh account using your corporate credentials. - + Federated identity management enables the cross organizational exchange of identity information across Internet domains, without migrating credential information or consolidating several security domains. With federation, customers can authenticate with their corporate credentials to gain access to Codefresh. + To set up Federated SSO, your identity management organization must use either of the following: - - **A Security Assertion Markup Language 2.0 (SAML 2.0)** compliant Identity Provider (IdP), configured to communicate with Codefresh Service Provider (SP). For example, ADFS, Auth0, Okta and Ping Identity. + - **A Security Assertion Markup Language 2.0 (SAML 2.0)** compliant Identity Provider (IdP), configured to communicate with the Codefresh Service Provider (SP). For example, ADFS, Auth0, Okta and Ping Identity. - **OpenID Connect (OAuth 2.0)** identity management. For example, Google, GitHub, Bitbucket and GitLab. @@ -22,8 +22,8 @@ Asserting the identity of the user to Codefresh ensures seamless SSO from a brow A SAML2-based federated system comprises: - - **Identity Provider (IdP)**: The identity provider belongs to the corporation that manages accounts for a large number of users who need secure internet access to the services or Web-based applications of another organization. In our case, it's a customer's organization that requires access to Codefresh. - - The IdP manages the corporate users, and integrates with Identity Management systems in the customer's organization responsible for authentication. The Identity Management systems integrate with authentication providers such as LDAP or AD. + - **Identity Provider (IdP)**: The identity provider belongs to the corporation that manages accounts for a large number of users who need secure internet access to the services or web-based applications of another organization. In our case, it's the customer's organization that requires access to Codefresh. + - The IdP manages the corporate users, and integrates with Identity Management systems in the customer's organization responsible for authentication. The Identity Management systems integrate with authentication providers such as LDAP or AD(Active Directory). - All user authentication is carried out via Identity Management systems integrated with the IdP. - For successfully authenticated users, the IdP sends a SAML assertion to the Codefresh service provider that enables the user to access Codefresh. @@ -45,6 +45,4 @@ Using federated SSO significantly simplifies cross-domain user management as fol ### What to read next [Setting Up SAML2 Federated Single Sign-On (SSO)](sso-setup-saml2) -[Setting Up OpenID Connect Federated Single Sign-On](sso-setup-oauth2) - - +[Setting Up OpenID Connect Federated Single Sign-On](sso-setup-oauth2) diff --git a/_docs/administration/single-sign-on/sso-ldap.md b/_docs/administration/single-sign-on/ldap.md similarity index 100% rename from _docs/administration/single-sign-on/sso-ldap.md rename to _docs/administration/single-sign-on/ldap.md diff --git a/_docs/administration/single-sign-on/oidc.md b/_docs/administration/single-sign-on/oidc.md new file mode 100644 index 00000000..296deece --- /dev/null +++ b/_docs/administration/single-sign-on/oidc.md @@ -0,0 +1,200 @@ +--- +title: "OpenID Connect" +description: "Setting Up OpenID Connect Federated Single Sign-On (SSO)" +group: single-sign-on +toc: true +--- + +Codefresh natively supports login using GitHub, Bitbucket and GitLab using the OpenID Connect (OAUTH 2.0) protocol. This guide will review how to add SSO integrations based on OAUTH 2.0 as part of Codefresh Enterprise plan. + +## Prerequisites + +In order to add successfully an identity Provider in Codefresh you need to do some preparatory work with both Codefresh and the provider. + +1. You need to inform your Identify provider that it will provide SSO services to Codefresh +1. You need to set up Codefresh and point it to your Identity Provider. + +The first procedure differs according to you Identity Provider, but the second one is common for all providers. + +Note that SSO is only available to Enterprise customers. Please [contact sales](https://codefresh.io/contact-sales/) in order to enable it for your Codefresh account. + +## Identity Provider options + +Codefresh currently supports + +* Auth0 +* Azure +* Google +* Okta +* OneLogin + +To access the SSO configuration at the account level. + +1. Click on your avatar at the top right of the GUI and select *Account settings*. +1. In the new screen, select *Single Sign-on* from the left sidebar. + +{% include image.html +lightbox="true" +file="/images/administration/sso/add-sso-dropdown.png" +url="/images/administration/sso/add-sso-dropdown.png" +alt="SSO provider settings" +caption="SSO provider settings" +max-width="70%" +%} + +{:start="3"} +1. To connect an Identity Provider, click the *add single-sign-on* button and select your provider from the drop-down menu. + +## Codefresh SSO setup + +Regardless of the Identity Provider that you have chosen, the setup in Codefresh is similar for all of them. You need to provide several fields to Codefresh to activate SSO. The common ones are: + +* *Display Name* - A name for your Identity Provider +* *Client ID* - An ID that will be used for the connection +* *Client Secret* - A secret associated with the ID + +Some providers also need additional fields which are specific to that provider. + +The process to obtain the values for these fields depends on the individual Identity Provider. In the following +sections we will outline the details for each one. + +### Setting Auth0 as an Identity provider + +See the [Auth0 instructions]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-auth0/). + +### Setting Azure as an Identity provider + +See the [Azure instructions]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-azure/). + +### Setting Google as an Identity provider + +See the [Google instructions]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-google/). + +### Setting Okta as an Identity Provider + +See the [Okta instructions]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-okta/). + +### Setting OneLogin as an Identity Provider + +See the [OneLogin instructions]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-onelogin/). + +## Testing your Identity provider + +Once you set up the Identity Provider, do the following + +1. Go to the collaborators screen by clicking on *People* on the left sidebar (under User Management). +1. Add an active user that will be used for testing. We recommend you use your own user. +1. Change Login method by selecting your Auth provider from the SSO drop-down. + + {% include image.html + lightbox="true" + file="/images/administration/sso/collaborators.png" + url="/images/administration/sso/collaborators.png" + alt="Adding collaborators" + caption="Adding collaborators" + max-width="70%" + %} + +1. Keep the current browser session open, and log in via Corporate SSO in an incognito tab (or another browser). + + {% include image.html + lightbox="true" + file="/images/administration/sso/sign-with-sso.png" + url="/images/administration/sso/sign-with-sso.png" + alt="Sign-in with SSO" + caption="Sign-in with SSO" + max-width="50%" + %} + +1. If everything works, add more users. + +> Before enabling SSO for all users, you **MUST** make sure that it is working for the test user, because if SSO is enabled for a user, Codefresh blocks logins through other IDPs for this user and only the enabled SSO is allowed. If the selected SSO method does not work for some reason, users will be locked out of Codefresh. + +## Selecting SSO method for collaborators + +To add users and select their SSO method, go to *Collaborators* from the left sidebar. Then add the email or Codefresh username of a user. + +In addition to their role you can now select the SSO method they will use + +{% include image.html +lightbox="true" +file="/images/administration/sso/select-user-sso.png" +url="/images/administration/sso/select-user-sso.png" +alt="Selecting SSO method" +caption="Selecting SSO method" +max-width="50%" +%} + +**SSO login for new and existing users** +If you have multiple SSO providers configured, you can select a different provider for each user if so required. + +* New users + If you have an SSO provider selected as the default, that provider is automatically assigned to new users, added either manually or via team synchronization. + +* Existing users + SSO login is not configured by default for existing users. You must _explicitly select_ the SSO provider for existing users. + If SSO login is already configured for an existing user, and you add a new identity provider, to change the SSO login to the new provider, you must _select_ the new provider for the user. + + +## Setting a default provider + +If you have multiple SSO providers set you can hover your mouse on the top right of the SSO screen +and setup one of them as the default provider. + +{% include image.html +lightbox="true" +file="/images/administration/sso/default-sso.png" +url="/images/administration/sso/default-sso.png" +alt="Default SSO provider" +caption="Default SSO provider" +max-width="90%" +%} + +If a default sso provider is set then: + +1. This SSO method will be automatically assigned to all new invited users +1. All new users will receive an email with an invite link that points them directly to the login page of that SSO provider + +## Syncing of teams after initial SSO setup + +Once the initial setup is done, you can also sync your teams between Codefresh and the Identity provider. +You can do this via the [Codefresh Cli](https://codefresh-io.github.io/cli/) and specifically the [sync command](https://codefresh-io.github.io/cli/teams/synchronize-teams/). + +For example, to sync you azure teams you can execute + +```bash +codefresh synchronize teams my-client-name -t azure +``` + +You can find the client-name from the SSO UI. + +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/client-name.png" +url="/images/administration/sso/azure/client-name.png" +alt="SSO Client Name" +caption="SSO Client Name" +max-width="40%" +%} + +Even though you can run this command manually it makes more sense to run it periodically as a job. And the obvious +way to perform this, is with a Codefresh pipeline. The CLI can be used as a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). + +You can create a git repository with a [codefresh.yml]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) file with the following contents: + +`YAML` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + syncMyTeams: + title: syncTeams + image: codefresh/cli + commands: + - 'codefresh synchronize teams my-client-name -t azure' +{% endraw %} +{% endhighlight %} + +To fully automate this pipeline you should set a [cron trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/cron-triggers/) for this pipeline. The cron-trigger will be responsible for running this pipeline (and therefore synchronizing the teams) in a fully automated manner. + +This way you can synchronize your teams every day/week/hour depending on you cron trigger setup. diff --git a/_docs/administration/single-sign-on/sso-auth0.md b/_docs/administration/single-sign-on/oidc/oidc-auth0.md similarity index 93% rename from _docs/administration/single-sign-on/sso-auth0.md rename to _docs/administration/single-sign-on/oidc/oidc-auth0.md index 5153a3d3..e66ecc33 100644 --- a/_docs/administration/single-sign-on/sso-auth0.md +++ b/_docs/administration/single-sign-on/oidc/oidc-auth0.md @@ -1,6 +1,6 @@ --- title: "Auth0" -description: "Set Up Auth0 Single Sign-On (SSO)" +description: "Set up Auth0 Single Sign-On (SSO)" group: administration sub_group: single-sign-on redirect_from: @@ -10,7 +10,10 @@ toc: true --- Auth0 is one of the SSO providers that Codefresh supports for authentication and authorization. -Create an SSO account for Auth0 in Codefresh. Start by creating an Auth0 application, then create the SSO account for Auth0 in Codefresh, and finally define the SSO settings for the application you created in Auth0. +Create an SSO account for Auth0 in Codefresh by: +* Creating an Auth0 application in Auth0 +* Creating the SSO account for Auth0 in Codefresh +* Definng the SSO settings for the application you created in Auth0 ### 1. Create an Auth0 application First create a new application in Auth0. diff --git a/_docs/administration/single-sign-on/sso-azure.md b/_docs/administration/single-sign-on/oidc/oidc-azure.md similarity index 100% rename from _docs/administration/single-sign-on/sso-azure.md rename to _docs/administration/single-sign-on/oidc/oidc-azure.md diff --git a/_docs/administration/single-sign-on/sso-google.md b/_docs/administration/single-sign-on/oidc/oidc-google.md similarity index 100% rename from _docs/administration/single-sign-on/sso-google.md rename to _docs/administration/single-sign-on/oidc/oidc-google.md diff --git a/_docs/administration/single-sign-on/sso-okta.md b/_docs/administration/single-sign-on/oidc/oidc-okta.md similarity index 100% rename from _docs/administration/single-sign-on/sso-okta.md rename to _docs/administration/single-sign-on/oidc/oidc-okta.md diff --git a/_docs/administration/single-sign-on/sso-onelogin.md b/_docs/administration/single-sign-on/oidc/oidc-onelogin.md similarity index 100% rename from _docs/administration/single-sign-on/sso-onelogin.md rename to _docs/administration/single-sign-on/oidc/oidc-onelogin.md diff --git a/_docs/administration/single-sign-on/saml-setup.md b/_docs/administration/single-sign-on/saml-setup.md new file mode 100644 index 00000000..c6af63e6 --- /dev/null +++ b/_docs/administration/single-sign-on/saml-setup.md @@ -0,0 +1,140 @@ +--- +title: "Setting up SAML2 Federated Single Sign-On (SSO)" +description: "" +group: administration +sub_group: single-sign-on +redirect_from: + - /docs/sso/sso-setup-saml2/ + - /docs/enterprise/single-sign-on/sso-setup-saml2/ +toc: true +--- + +As Identity Providers (IdPs) come in all shapes and sizes, this topic discusses in general what you must do to configure Federated SSO. + As you will see in the description below, the person in your organization responsible for managing your IdP will need to interact with Codefresh support to successfully set up a trust between your IdP and Codefresh as an SP. + +{:.text-secondary} +## Before you set up Federated SSO + 1. Have your account set up with Codefresh enterprise plan. + 2. Ensure you have a working SAML 2.0 compliant identity provider (IdP). + 3. Identify someone in your organization who is familiar with configuring and managing your organization's IdP. + 4. Ensure that your IdP's system clock is synchronized with a reliable time source. If it's not, tokens generated will be unusable and SSO will fail. + +{:.text-secondary} +### Summary of Federated SSO setup + +{% include image.html + lightbox="true" + file="/images/sso-flow.png" + url="/images/sso-flow.png" + alt="sso-flow.png" + max-width="100%" +%} + +{:.text-secondary} +### SAML attributes + +Codefresh expects the following user attributes to be passed through SAML between your IdP and Codefresh SP: + - User email address + - User first name + - User last name + - User full name + - User unique ID that isn't subject to change in your identity management environment + +{:.text-secondary} +### How does the connection process work? + + {% include image.html +lightbox="true" +file="/images/sso-diagram.png" +url="/images/sso-diagram.png" +alt="sso-diagram.png" +max-width="100%" + %} + +Once Federated SSO has been configured, the process works as follows: + +

    + +1. A user logs in to Codefresh and enters the email address. +2. The user is redirected to the Codefresh Service Provider (SP) to initiate SSO. +3. The user’s browser is then redirected to the customer IdP. +4. Once authenticated by the corporate side, a SAML token is sent to the user’s browser. +5. The SAML assertion is then forwarded to Codefresh SP. +6. If you are a valid Codefresh user for this SSO connection, an SSO token is returned to the user’s browser. +7. The user’s browser then returns a token to Codefresh and access is granted for your account. + +## SAML SSO configuration in Codefresh + +Codefresh supports SAML SSO for the following: +JumpCloud +OneLogin +PingID + +Currentl + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Single Sign-On**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. + + +{:start="3"} +1. Click **Add single-sign-on**, select **SAML**, and then click **Next**. +1. Enter the connection details: + + + * **Display Name**: The name you want to give to this SAML integration. + * **IDP Entry**: The SSO endpoint of your Identity Provider. For Azure SAML, for example, this is the Login URL. + * **Application Certificate**: The security certificate of your Identity Provider. Paste the value directly in the field. For Azure SAML for example, this is the Base64 Certificate, and you must copy the value between the -----BEGIN and -----END from the downloaded certificate. + >Do not convert to base64 or any other encoding by hand. + + * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. +1. Select **+Add**, and note down the `Client Name` that is generated. + + +### Configure Codefresh Service Provider settings in IdP +In your Identity Provider, create a new Service Provider and provide the following: + + * **Service Provider SSO Endpoint**: Assertion consumer service URL - `https://g.codefresh.io/api/auth//callback` + * **Service Provider Entity ID**: `g.codefresh.io` + +The mandatory fields needed for SAML assertions are: +1. firstName: User's first name +1. lastName: User's last name +1. email: User's email + +To configure users sync for SAML IDP, do the following: + +1. Select a G Suite provider +1. Enable Auto Sync users and teams to Codefresh +1. Set JSON Keyfile, Admin Email and Sync interval + +The instructions for getting the JSON Keyfile, and Admin Email are the same as for [Google SSO]({{site.baseurl}}/docs/administration/single-sign-on/sso-google/#synchronize-teams-with-the-codefresh-cli). + +>Note + These settings are for the SaaS version of Codefresh. For an on-premises setup, use the URLs that match your installation. + +Once everything is finished, you [should test the integration]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#testing-your-identity-provider). Once it's working, proceed to the next steps that are: + +* [Selecting SSO method for collaborators]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#selecting-sso-method-for-collaborators) + +>Notice that Codefresh has an internal cache for SSO configurations and it might take up to five minutes for your changes to take effect. + + + + + + + + diff --git a/_docs/administration/single-sign-on/saml/saml-jumpcloud.md b/_docs/administration/single-sign-on/saml/saml-jumpcloud.md new file mode 100644 index 00000000..558ee790 --- /dev/null +++ b/_docs/administration/single-sign-on/saml/saml-jumpcloud.md @@ -0,0 +1,75 @@ +--- +title: JumpCloud via SAML +description: Setting Up JumpCloud via SAML +group: single-sign-on +sub_group: saml +toc: true +--- + +Set up SSO for JumpCloud using SAML. +For a general overview on SAML, see [Setting up SAML2 Federated Single Sign-On (SSO)]({site.baseurl}}/docs/administration/single-sign-on/saml-setup). + +>If you do not see SAML in the SSO list, please create a support ticket to enable SAML for your account. + +Setting up SAML SSO for JumpCloud includes: +1. Configuring SSO settings for JumpCloud via SAML in Codefresh +1. Configuring SSO settings for Codefresh in JumpCloud +1. Completing SSO configuration for JumpCloud in Codefresh + +## Step 1: Configure SSO settings for JumpCloud via SAML in Codefresh + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Single Sign-On**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. +1. Click **Add single-sign-on**, select **SAML**, and then click **Next**. +1. Enter the connection details: + * **Display Name**: Any arbitrary name for this integration. + * **IDP Entry**: Type in any character. You will enter the correct value from JumpCloud in the final step. + * **Application Certificate**: You will enter the correct value from JumpCloud in the final step. + * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. +1. Click **Add**. +1. In the Single Sign-On page, click the **Edit** icon for the JumpCloud SAML integration you created. +1. Copy the **Assertion URL** (client ID) that was automatically generated when you added the integration. +1. Continue with [Step 2: Configure SSO settings for Codefresh in JumpCloud](#configure-sso-settings-for-codefresh-in-onelogin). + + + +## Step 2: Configure SSO settings for Codefresh in JumpCloud + + +1. In JumpCloud, go to **User Authentication > SSO**. +1. To configure Codefresh as a new application, click **+**. +1. Select **Custom SAML**. +1. Add a **Display Label** for the application you will create. +1. Click the **SSO** tab, and enter the following: + 1. **IDP Entity ID**: Enter the user-defined or generated Client Name from Codefresh. For example, `gujNGnhXTSmK`. + > Make sure there no spaces before the name when copying and pasting. + 1. **SP Entity ID**: `g.codefresh.io`. + 1. **ACS URL**: Enter the Assertion URL (Callback URL) generated in Codefresh. + 1. **Login URL**: Enter the Assertion URL without the `/callback`. + 1. **IDP URL**: Add a custom name or leave the default. You will need the value to complete the SSO configuration in Codefresh. + 1. **Attributes**: Add the following: + - **email**: email + - **firstName**: firstname + - **lastName**: lastname + 1. Click **Activate** and **Continue**. +1. When you get a notification on the top right to download the Certificate, download the Certificate. +1. Continue with [Step 3: Complete SSO configuration for JumpCloud in Codefresh](#complete-sso-configuration-for-jumpcloud-in-codefresh) + +## Step 3: Complete SSO configuration for JumpCloud in Codefresh +As the final step in configuring SSO for JumpCloud, add the IDP Entry and Certificate values from JumpCloud. + +1. **IDP Entry**: The IDP URL from the SSO tab in Jump Cloud. +1. **Application Certificate**: Copy and paste the content between `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----` from the certificate you downloaded into the field. You can also include the BEGIN and END lines. + - **Note**: You will get a warning when editing the Certificate section. +1. Click **Save**. + +You have completed SSO integration for JumpCloud via SAML in Codefresh. + +## Test SSO Connection + +Now test the SSO with a test user in a different browser or private/incognito browser to make sure the integration works as it should. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. +1. Locate a test user, and from the SSO list, select the integration name to enable SSO for that user. +1. In a different browser or private/incognito browser window use the Corporate option to log in. diff --git a/_docs/administration/single-sign-on/saml/saml-onelogin.md b/_docs/administration/single-sign-on/saml/saml-onelogin.md new file mode 100644 index 00000000..3d305271 --- /dev/null +++ b/_docs/administration/single-sign-on/saml/saml-onelogin.md @@ -0,0 +1,80 @@ +--- +title: OneLogin via SAML +description: Setting Up OneLogin via SAML +group: single-sign-on +sub_group: saml +toc: true +--- + +Set up SSO for OneLogin using SAML in Codefresh. +For a general overview on SAML, see [Setting up SAML2 Federated Single Sign-On (SSO)]({site.baseurl}}/docs/administration/single-sign-on/saml-setup). + +>If you do not see SAML in the SSO list, please create a support ticket to enable SAML for your account. + +Setting up SAML SSO for OneLogin includes: +1. Adding the Codefresh application in OneLogin +1. Configuring SSO settings for OneLogin via SAML in Codefresh +1. Configuring SSO settings for Codefresh in OneLogin + +## Step 1: Add Codefresh application in OneLogin + +1. From the OneLogin toolbar, **Applications** section,and then select **Add App** on the top right. +1. Search for **SAML Custom Connector (advanced)** and select it. +1. Add a **Display Name**. Leave the other settings which are optional. +1. Click **Save**. +1. From the sidebar, select **SSO** and keep the tab open. +1. Continue with [Step 2: Configure SSO settings for OneLogin via SAML in Codefresh](#configure-sso-settings-for-onelogin-via-saml-in-codefresh). + +## Step 2: Configure SSO settings for OneLogin via SAML in Codefresh + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Single Sign-On**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. +1. Click **Add single-sign-on**, select **SAML**, and then click **Next**. +1. Enter the connection details: + * **Display Name**: Any arbitrary name for this integration. + * **IDP Entry**: SAML 2.0 Endpoint (HTTP) from the SSO section in OneLogin. + * **Application Certificate**: X.509 Certificate from the SSO section in OneLogin. + * Click and open **View Details**, preferably in a new tab. + * Under X.509 Certificate, click **Copy**. + * Paste the content into the Application Certificate. + * Remove the lines, `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`. + * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. +1. Click **Add**. + The SAML integration for OneLogin is added and appears in the list of SSOs. +1. In the Single Sign-On page, click the **Edit** icon for the OneLogin SAML integration. +1. Copy the **Assertion URL** (client ID) that was automatically generated when you added the integration. +1. Continue with [Step 3: Configure SSO settings for Codefresh in OneLogin](#configure-sso-settings-for-codefresh-in-onelogin). + +## Step 3: Configure SSO settings for Codefresh in OneLogin + +1. Return to OneLogin, and from the sidebar, select **Configuration**. +1. Enter the following: + * **Audience** (EntityID): `g.codefresh.io`. + * **Recipient**: The Assertion URL you copied in the previous step. + * **ACS (Consumer) URL Validator**: The Assertion URL in Regex format. For more info on this, view OneLogin's [Setup Page](https://onelogin.service-now.com/support?id=kb_article&sys_id=c89fefdadb2310503de43e043996195a&kb_category=93e869b0db185340d5505eea4b961934){:target="\_blank"}. + * **ACS (Consumer) URL**: The Assertion URL. + * **Login URL**: `https://g.codefresh.io/login` + * **SAML Initiator**: Service Provider. + * Click **Save**. +1. In OneLogin, go to the [Users](https://cfsupport.onelogin.com/users) page, and do the following: + * Select the User. + * Go to **Applications**, and click **+**. + * Select the SAML App with the Display Name you entered in Codefresh. + * Click **Continue**. + * Make sure the **NameID** is set to the email address. + * Click **Save**. + +You have completed SSO integration for OneLogin via SAML. + + + +## Test SSO Connection + +Now test the SSO with a test user in a different browser or private/incognito browser to make sure the integration works as it should. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. +1. Locate a test user, and from the SSO list, select the integration name to enable SSO for that user. +1. In a different browser or private/incognito browser window use the Corporate option to log in. + + diff --git a/_docs/administration/single-sign-on/saml/saml-pingidsso.md b/_docs/administration/single-sign-on/saml/saml-pingidsso.md new file mode 100644 index 00000000..0a53d6f1 --- /dev/null +++ b/_docs/administration/single-sign-on/saml/saml-pingidsso.md @@ -0,0 +1,83 @@ +--- +title: PingID SSO via SAML +description: Setting up PingID SSO via SAML +group: single-sign-on +sub_group: saml +toc: true +--- + +Set up SSO for PingID using SAML in Codefresh. +> The configuration described here is for PingID SSO and not PingID Federate. The steps can be used as a general guide for Ping Federate. + +For a general overview on SAML, see [Setting up SAML2 Federated Single Sign-On (SSO)]({site.baseurl}}/docs/administration/single-sign-on/saml-setup). + +>If you do not see SAML in the SSO list, please create a support ticket to enable SAML for your account. + +Setting up SAML SSO for PingID includes: +1. Configuring SSO settings for PingID via SAML in Codefresh +1. Configuring SSO settings for Codefresh in PingID +1. Completing SSO configuration for PingID in Codefresh + + +## Step 1: Configure SSO settings for PingID via SAML in Codefresh + +Configure SSO for PingID via SAML in Codefresh. The Assertion URL is automatically generated when you add the integration. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Single Sign-On**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. +1. Click **Add single-sign-on**, select **SAML**, and then click **Next**. +1. Enter the connection details: + * **Display Name**: Any arbitrary name for this integration. + * **IDP Entry**: Type in any character. You will enter the correct value from PingID in the final step. + * **Application Certificate**: Type in any character. You will enter the correct value from PingID in the final step. + * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. +1. Click **Add**. +1. In the Single Sign-On page, click the **Edit** icon for the PingID SAML integration you just created. +1. Copy the **Assertion URL** (client ID) that was automatically generated when you added the integration. You will need this in PingID. +1. Continue with [Step 2: Configure SSO settings for Codefresh in PingID](#configure-sso-settings-for-codefresh-in-pingid). + + +## Step 2: Configure SSO settings for Codefresh in PingID + + +1. Log in to PingID and select the **Environment**. +1. Select **Connections > Applications**. +1. To add Codefresh as a new application, click **+**. +1. Enter the **Application Name** and **Description**. +1. Select **SAML Application** and then click **Configure**. +1. Select **Manually Enter** and define the following: + - **ACS URL**: The Assertion URL you copied from Codefresh. + - **Entity ID**: `g.codefresh.io`. +1. Click **Save**. +1. Go to the **Configuration** tab. +1. Download the X509 Certificate or Metadata. +1. Click **Attribute Mappings**, and add the following mappings + - **email**:Email address + - **firstName**: Given name + - **lastName**: Family name + + > For PingID Federate, you must add the follwing mapping: NameID <- Email Address + +1. Toggle the **Enable** option to on to make the application available. +1. Continue with [Step 3: Complete SSO configuration for PingID in Codefresh](#complete-sso-configuration-for-pingid-in-codefresh). + + +## Step 3: Complete SSO configuration for PingID in Codefresh +As the final step in configuring SSO for PingID, add the IDP Entry and Certificate values from PingID. + +1. **IDP Entry**: The IDP URL from the SSO tab in Jump Cloud. +1. **Application Certificate**: Copy and paste the content between `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----` from the certificate you downloaded into the field. You can also include the BEGIN and END lines. + - **Note**: You will get a warning when editing the Certificate section. +1. Click **Save**. + +You have completed SSO integration for PingID via SAML in Codefresh. + + +## Test SSO Connection + +Now test the SSO with a test user in a different browser or private/incognito browser to make sure the integration works as it should. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. +1. Locate a test user, and from the SSO list, select the integration name to enable SSO for that user. +1. In a different browser or private/incognito browser window use the Corporate option to log in. diff --git a/_docs/administration/single-sign-on/sso-setup-saml2.md b/_docs/administration/single-sign-on/sso-setup-saml2.md deleted file mode 100644 index 3e674085..00000000 --- a/_docs/administration/single-sign-on/sso-setup-saml2.md +++ /dev/null @@ -1,172 +0,0 @@ ---- -title: "Setting Up SAML2 Federated Single Sign-On (SSO)" -description: "" -group: administration -sub_group: single-sign-on -redirect_from: - - /docs/sso/sso-setup-saml2/ - - /docs/enterprise/single-sign-on/sso-setup-saml2/ -toc: true ---- - -Codefresh natively supports login using GitHub, Bitbucket and GitLab using the OpenID Connect (OAUTH 2.0) protocol. You can add new SSO integrations based on OAUTH 2.0 as part of Codefresh Enterprise plan. - -As Identity Providers (IdPs) come in all shapes and sizes, the following topic discusses in general what you must do to configure Federated SSO. - As you will see in the description below, the person in your organization responsible for managing your IdP will need to interact with Codefresh support team to successfully set up a trust between your IdP and Codefresh SP. - -{:.text-secondary} -### Before you set up Federated SSO - 1. Have your account set up with Codefresh enterprise plan. - 2. Ensure you have a working SAML 2.0 compliant identity provider (IdP). - 3. Identify someone in your organization who is familiar with configuring and managing your organization's IdP. - 4. Ensure that your IdP's system clock is synchronized with a reliable time source. If it's not, tokens generated will be unusable and SSO will fail. - -{:.text-secondary} -### Summary of Federated SSO setup - -{% include image.html - lightbox="true" - file="/images/sso-flow.png" - url="/images/sso-flow.png" - alt="sso-flow.png" - max-width="100%" -%} - -{:.text-secondary} -### SAML attributes - -Codefresh expects the following user attributes to be passed through SAML between your IdP and Codefresh SP: - - User email address - - User first name - - User last name - - User full name - - User unique ID that isn't subject to change in your identity management environment - -{:.text-secondary} -## How does the connection process work? - - {% include image.html -lightbox="true" -file="/images/sso-diagram.png" -url="/images/sso-diagram.png" -alt="sso-diagram.png" -max-width="100%" - %} - -Once Federated SSO has been configured, the process works as follows: - -
    - - Steps 2 to 7 occur in the background and are transparent to the user. -
    - -1. A user logs in to CDSP -2. The user is redirected to Codefresh Service Provider (SP) to initiate SSO -3. The user’s browser is then redirected to the customer IdP -4. Once authenticated by the corporate side, a SAML token is sent to the user’s browser -5. The SAML assertion is then forwarded to Codefresh SP -6. If you are a valid Codefresh user for this SSO connection, an SSO token is returned to the user’s browser -7. The user’s browser then returns a token to Codefresh and access is granted for your account - -### Configure SAML SSO settings in Codefresh - -1. In Codefresh, select **Account settings**. -1. From the sidebar expand **Collaboration**, and select **Single Sign-on**. - OR - Go directly to [https://g.codefresh.io/account-admin/sso](https://g.codefresh.io/account-admin/sso)) - - - {% include image.html - lightbox="true" -file="/images/administration/sso/add-sso-dropdown.png" -url="/images/administration/sso/add-sso-dropdown.png" -alt="SSO provider settings" -caption="SSO provider settings" -max-width="70%" -%} - -{:start="3"} -1. Select **Add single-sign-on**, and then select **SAML**. -1. Enter the following: - - * **Client Name**: For auto-generation, leave empty. Codefresh generates the client name once you save the settings. - * **Display Name**: The name you want to give to this integration. - * **IDP Entry**: The SSO endpoint of your Identity Provider. For Azure SAML, for example, this is the Login URL. - * **Application Certificate**: The security certificate of your Identity Provider. Paste the value directly in the field. Do not convert to base64 or any other encoding by hand. (For Azure SAML, this will be Certificate (Base64) and the value needed is between the -----BEGIN ... and -----END... from the downloaded cert) - * **Assertion URL**: `https://g.codefresh.io/api/auth//callback​` - where ​​ is he client name that is automatically generated when saving the SSO settings. - * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. -1. Select **Save**, and note down the `Client Name` that is generated. - - -### Configure IdP settings for Codefresh as a Service Provider -In the settings of your Identity Provider, create a new Service Provider and provide the following: - - * **Service Provider SSO Endpoint**: Assertion consumer service URL - `https://g.codefresh.io/api/auth//callback` - * **Service Provider Entity ID**: `g.codefresh.io` - -The mandatory fields needed for SAML assertions are: -1. firstName: User's first name -1. lastName: User's last name -1. email: User's email - -To configure users sync for SAML IDP, do the following: - -1. Select a G Suite provider -1. Enable Auto Sync users and teams to Codefresh -1. Set JSON Keyfile, Admin Email and Sync interval - -The instructions for getting the JSON Keyfile, and Admin Email are the same as for [Google SSO]({{site.baseurl}}/docs/administration/single-sign-on/sso-google/#synchronize-teams-with-the-codefresh-cli). - ->Note - These settings are for the SaaS version of Codefresh. For an on-premises setup, use the URLs that match your installation. - -Once everything is finished, you [should test the integration]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#testing-your-identity-provider). Once it's working, proceed to the next steps that are: - -* [Selecting SSO method for collaborators]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#selecting-sso-method-for-collaborators) - ->Notice that Codefresh has an internal cache for SSO configurations and it might take up to five minutes for your changes to take effect. - -## OneLogin SAML Setup - -1. In OneLogin, go to the [Applications](https://cfsupport.onelogin.com/apps) Section. -1. Select 'Add App' on the top right. -1. Search for 'SAML Custom Connector' (advanced) and select it. -1. Add a Display Name (the rest is optional) and Save. -1. View the SSO Section. -1. Open a New Tab and go to the [Single Sign-On](https://g.codefresh.io/account-admin/sso) settings in Codefresh. -1. In Codefresh, select SAML for the Add Single Sign-On. - * Display Name = any arbitrary name you want to give in this integration. - * IDP Entry = SAML 2.0 Endpoint (HTTP) from the SSO section in OneLogin. - * Application Certificate = X.509 Certificate from the SSO section in OneLogin. - * Click View Details (preferable open in a new tab). - * Under X.509 Certificate, click the copy button. - * Paste the contents into the Application Certificate. - * Remove the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----. - * Save. -1. Click edit on the SAML integration we created. - * Copy the Assertion URL -1. In OneLogin, view the Configuration section. - * Audience (EntityID) = g.codefresh.io - * Recipient = Assertion URL - * ACS (Consumer) URL Validator= Assertion URL but in Regex form. View OneLogin's [Setup Page](https://onelogin.service-now.com/support?id=kb_article&sys_id=c89fefdadb2310503de43e043996195a&kb_category=93e869b0db185340d5505eea4b961934) for more info. - * ACS (Consumer) URL = Assertion URL - * Login URL = https://g.codefresh.io/login - * SAML Initiator = Service Provider - * Save -1. In OneLogin, Go the [Users](https://cfsupport.onelogin.com/users) page. - * Select the User - * Go to Applications Section - * Click the **+** to add - * Select the SAML App (will show the Display Name from step 7) - * Click Continue - * Make sure NameID value = email address - * Save - -> Once the configuration is complete, please test the integration before enabling the SSO for all users. - - - - - - diff --git a/_docs/administration/single-sign-on/team-sync.md b/_docs/administration/single-sign-on/team-sync.md new file mode 100644 index 00000000..6059e4e7 --- /dev/null +++ b/_docs/administration/single-sign-on/team-sync.md @@ -0,0 +1,103 @@ +--- +title: Synchronize Teams +description: "Syncing of Teams After Initial SSO Setup" +group: single-sign-on +toc: true +--- + +## Overview + +Once the initial setup is done, you can also sync your teams between Codefresh and the Identity provider. +You can do this via the [Codefresh Cli](https://codefresh-io.github.io/cli/) and specifically the [sync command](https://codefresh-io.github.io/cli/teams/synchronize-teams/). + +> Note: Team Sync is available for OIDC Providers. Syncing with SAML is available with Google only. + +For example, to sync you azure teams you can execute + +```shell +codefresh synchronize teams my-client-name -t azure +``` + +You can find the client-name from the SSO UI. + +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/client-name.png" +url="/images/administration/sso/azure/client-name.png" +alt="SSO Client Name" +caption="SSO Client Name" +max-width="40%" +%} + +Even though you can run this command manually it makes more sense to run it periodically as a job. And the obvious +way to perform this, is with a Codefresh pipeline. The CLI can be used as a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). + +You can create a git repository with a [codefresh.yml]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) file with the following contents: + +```yaml +version: '1.0' +steps: + syncMyTeams: + title: syncTeams + image: codefresh/cli + commands: + - 'codefresh synchronize teams my-client-name -t azure' +``` + +To fully automate this pipeline you should set a [cron trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/cron-triggers/) for this pipeline. The cron-trigger will be responsible for running this pipeline (and therefore synchronizing the teams) in a fully automated manner. + +This way you can synchronize your teams every day/week/hour depending on you cron trigger setup. + +## Synchronize Teams Not Inviting New Users + +When running the codefresh synchronize teams command, new users will not be invited to Codefresh. The output of the command will look similar to the following: + +```json +[ + { + "action": "update", + "teams": [ + { + "team": "developers", + "members": [ + { + "members": [], + "action": "create" + } + ] + }, + { + "team": "DevOps", + "members": [ + { + "members": [], + "action": "create" + } + ] + } + ] + } +] +``` + +The cause of this is the "Restrict inviting additional users by email address domain" is enabled for the account. + +1. Navigate to Account Settings > User & Teams > Security +1. Toggle off "Restrict inviting additional users by email address domain." +1. Save. +1. Rerun the sync command. + +## Sync GitHub Organization Teams to Codefresh + +As an admin, you may want to sync your GitHub Organization Teams with your Codefresh account. At the same time, you do not want to set up an SSO provider and have the users use any login provider they choose. + +The Personal Access Token (PAT) from a user will sync ALL Organizations and ALL Teams to which the user has access. It is recommended to use a "machine" account to access the one organization you need. + +1. Create a PAT that has access to read organizations and teams +1. Install and configure the Codefresh CLI + + `codefresh synchronize teams github -t github --tk $GHTOKEN` + +1. The sync will invite all users except for those that have private email settings turned on. + +Once the initial sync happens, you can set up a cron trigger pipeline to run the command on a schedule. From 1a03cad94094222f58580ecd07e01b570b1d4a2f Mon Sep 17 00:00:00 2001 From: NimRegev Date: Tue, 29 Nov 2022 11:09:33 +0200 Subject: [PATCH 09/43] Update SAML SSO topics Added options for GSuite --- .../single-sign-on/saml-setup.md | 72 ++++++----------- .../single-sign-on/saml/saml-jumpcloud.md | 8 +- .../single-sign-on/saml/saml-okta.md | 79 +++++++++++++++++++ .../single-sign-on/saml/saml-onelogin.md | 2 +- .../{saml-pingidsso.md => saml-pingid.md} | 5 +- 5 files changed, 113 insertions(+), 53 deletions(-) create mode 100644 _docs/administration/single-sign-on/saml/saml-okta.md rename _docs/administration/single-sign-on/saml/{saml-pingidsso.md => saml-pingid.md} (96%) diff --git a/_docs/administration/single-sign-on/saml-setup.md b/_docs/administration/single-sign-on/saml-setup.md index c6af63e6..176dc9f9 100644 --- a/_docs/administration/single-sign-on/saml-setup.md +++ b/_docs/administration/single-sign-on/saml-setup.md @@ -9,7 +9,7 @@ redirect_from: toc: true --- -As Identity Providers (IdPs) come in all shapes and sizes, this topic discusses in general what you must do to configure Federated SSO. +As Identity Providers (IdPs) come in all shapes and sizes, this topic discusses in general what you must do to configure Federated SSO for SAML. As you will see in the description below, the person in your organization responsible for managing your IdP will need to interact with Codefresh support to successfully set up a trust between your IdP and Codefresh as an SP. {:.text-secondary} @@ -68,68 +68,44 @@ Once Federated SSO has been configured, the process works as follows: ## SAML SSO configuration in Codefresh -Codefresh supports SAML SSO for the following: -JumpCloud -OneLogin -PingID +Here's what you need to do to configure SSO via SAML in Codefresh: -Currentl +1. Configure SSO settings for the IdP in Codefresh: + This generally includes defining settings in Codefresh and in the IdP. + Codefresh supports SAML SSO for the following: + * [JumpCloud]({{site.baseurl}}/docs/administration/single-sign-on/saml/saml-jumpcloud) + * [Okta]({{site.baseurl}}/docs/administration/single-sign-on/saml/saml-okta) + * [OneLogin]({{site.baseurl}}/docs/administration/single-sign-on/saml/saml-onelogin) + * [PingID](({{site.baseurl}}/docs/administration/single-sign-on/saml/saml-pingid) -1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. -1. From the sidebar, below Access & Collaboration, select [**Single Sign-On**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. + Notes for SSO via SAML: + **SSO settings** - -{:start="3"} -1. Click **Add single-sign-on**, select **SAML**, and then click **Next**. -1. Enter the connection details: + * Assertion URL + The Assertion URL which is the Service Provider SSO endpoint, also referred to as the Callback URL or Client ID, is generated _after_ you create the integration. - - * **Display Name**: The name you want to give to this SAML integration. - * **IDP Entry**: The SSO endpoint of your Identity Provider. For Azure SAML, for example, this is the Login URL. - * **Application Certificate**: The security certificate of your Identity Provider. Paste the value directly in the field. For Azure SAML for example, this is the Base64 Certificate, and you must copy the value between the -----BEGIN and -----END from the downloaded certificate. - >Do not convert to base64 or any other encoding by hand. - - * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. -1. Select **+Add**, and note down the `Client Name` that is generated. + * Provider + Currently, we support GSuite for SAML. If you are using a different provider, leave this field empty. + For GSuite, you can define the sync settings, Admin Email and the JSON Keyfile. + For instructions, see [Google SSO]({{site.baseurl}}/docs/administration/single-sign-on/sso-google/#synchronize-teams-with-the-codefresh-cli). + > These settings are for the SaaS version of Codefresh. For an on-premises setup, use the URLs that match your installation. -### Configure Codefresh Service Provider settings in IdP -In your Identity Provider, create a new Service Provider and provide the following: +1. Test integration + Codefresh offers an option to test each integration. - * **Service Provider SSO Endpoint**: Assertion consumer service URL - `https://g.codefresh.io/api/auth//callback` - * **Service Provider Entity ID**: `g.codefresh.io` +1. Set an IdP as the default provider -The mandatory fields needed for SAML assertions are: -1. firstName: User's first name -1. lastName: User's last name -1. email: User's email +1. Set the SSO for each user -To configure users sync for SAML IDP, do the following: +> Codefresh has an internal cache for SSO configuration, and it can take up to five minutes for your changes to take effect. -1. Select a G Suite provider -1. Enable Auto Sync users and teams to Codefresh -1. Set JSON Keyfile, Admin Email and Sync interval -The instructions for getting the JSON Keyfile, and Admin Email are the same as for [Google SSO]({{site.baseurl}}/docs/administration/single-sign-on/sso-google/#synchronize-teams-with-the-codefresh-cli). ->Note - These settings are for the SaaS version of Codefresh. For an on-premises setup, use the URLs that match your installation. -Once everything is finished, you [should test the integration]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#testing-your-identity-provider). Once it's working, proceed to the next steps that are: +* [Selecting SSO method for collaborators]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#selecting-sso-method-for-collaborators) --> -* [Selecting SSO method for collaborators]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#selecting-sso-method-for-collaborators) ->Notice that Codefresh has an internal cache for SSO configurations and it might take up to five minutes for your changes to take effect. diff --git a/_docs/administration/single-sign-on/saml/saml-jumpcloud.md b/_docs/administration/single-sign-on/saml/saml-jumpcloud.md index 558ee790..609e9893 100644 --- a/_docs/administration/single-sign-on/saml/saml-jumpcloud.md +++ b/_docs/administration/single-sign-on/saml/saml-jumpcloud.md @@ -26,13 +26,17 @@ Setting up SAML SSO for JumpCloud includes: * **IDP Entry**: Type in any character. You will enter the correct value from JumpCloud in the final step. * **Application Certificate**: You will enter the correct value from JumpCloud in the final step. * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. +1. If GSuite is your provider, select it as the **Provider**, and define the settings below. Otherwise leave the field empty. + * **Admin Email**: The email of the user with access to `admin.google.com`. + * **Sync interval**: Optional. The time interval at which to sync. + * **Sync Field**: Optional. TBD + * **JSON Keyfile**: . TBD 1. Click **Add**. + The SAML integration for JumpCloud is added and appears in the list of SSOs. 1. In the Single Sign-On page, click the **Edit** icon for the JumpCloud SAML integration you created. 1. Copy the **Assertion URL** (client ID) that was automatically generated when you added the integration. 1. Continue with [Step 2: Configure SSO settings for Codefresh in JumpCloud](#configure-sso-settings-for-codefresh-in-onelogin). - - ## Step 2: Configure SSO settings for Codefresh in JumpCloud diff --git a/_docs/administration/single-sign-on/saml/saml-okta.md b/_docs/administration/single-sign-on/saml/saml-okta.md new file mode 100644 index 00000000..715c2baf --- /dev/null +++ b/_docs/administration/single-sign-on/saml/saml-okta.md @@ -0,0 +1,79 @@ +--- +title: Okta SSO via SAML +description: Setting up Okta via SAML +group: single-sign-on +sub_group: saml +toc: true +--- + +Set up SSO for OKta using SAML. +For a general overview on SAML, see [Setting up SAML2 Federated Single Sign-On (SSO)]({site.baseurl}}/docs/administration/single-sign-on/saml-setup). + +>If you do not see SAML in the SSO list, please create a support ticket to enable SAML for your account. + +Setting up SAML SSO for Okta includes: +1. Configuring SSO settings for Okta via SAML in Codefresh +1. Configuring SSO settings for Codefresh in JumpCloud +1. Completing SSO configuration for JumpCloud in Codefresh + +## Step 1: Configure SSO settings for Okta via SAML in Codefresh +Create a SAML account for Okta in Codefresh to create an integration for Codefresh in Okta. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Single Sign-On**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. +1. Click **Add single-sign-on**, select **SAML**, and then click **Next**. +1. Enter the connection details: + * **Display Name**: Any name you want for the integration. + * **IDP Entry**: Type in any character. You will enter the correct value from Okta in the final step. + * **Application Certificate**: You will enter the correct value from Okta in the final step. +1. Click **Add**. + The SAML integration for Okta is added and appears in the list of SSOs. +1. In the Single Sign-On page, click the **Edit** icon for the Okta SAML integration you created. +1. Copy the **Assertion URL** (client ID) that was automatically generated when you added the integration. +1. Continue with [Step 2: Configure SSO settings for Codefresh in Okta](#configure-sso-settings-for-codefresh-in-okta). + +## Step 2: Configure SSO settings for Codefresh in Okta + +1. Navigate to **Applications**. +1. Select **Create App Integration > SAML2.0**, and click **Next**. +1. General Settings: + - Fill in the Name and any other settings you need. + - Click **Next**. +1. Configure SAML: + - **Single Sign On URL**: + - **ACS URL**: Enter the Assertion URL (Callback URL) generated in Codefresh. + - **Audience URL**: `g.codefresh.io` + - **Name ID Format**: `EmailAddress` + - Attribute Statements + - Leave **Name Format** as Unspecified + - **firstName**: `user.firstName` + - **lastName**: `user.lastName` + - **email**: `user.email` + - Click **Next**. +1. Feedback: + - If displayed, complete the form. + - Click **Finish**. +1. Sign On Tab: + - Select **View SAML Setup Instructions** on the right. + - Keep the page open as you will need it to complete the setup for Okta in Codefresh. +1. Continue with [Step 3: Configure SSO settings for Codefresh in Okta](#configure-sso-settings-for-codefresh-in-okta). + + +## Step 3: Complete SSO configuration for Okta in Codefresh +Complete SSO setup for Okta via SAML in Codefresh. + +1. **IDP Entry**: The IDP URL from the SSO tab in Okta. +1. **Application Certificate**: Copy and paste the content between `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----` from the certificate you downloaded into the field. You can also include the BEGIN and END lines. + - **Note**: You will get a warning when editing the Certificate section. +1. Click **Save**. + +You have completed SSO integration for OKta via SAML in Codefresh. + +## Test SSO connection + +Now test the SSO with a test user in a different browser or private/incognito browser to make sure the integration works as it should. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. +1. Locate a test user, and from the SSO list, select the integration name to enable SSO for that user. +1. In a different browser or private/incognito browser window use the Corporate option to log in. diff --git a/_docs/administration/single-sign-on/saml/saml-onelogin.md b/_docs/administration/single-sign-on/saml/saml-onelogin.md index 3d305271..76762b03 100644 --- a/_docs/administration/single-sign-on/saml/saml-onelogin.md +++ b/_docs/administration/single-sign-on/saml/saml-onelogin.md @@ -41,7 +41,7 @@ Setting up SAML SSO for OneLogin includes: * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. 1. Click **Add**. The SAML integration for OneLogin is added and appears in the list of SSOs. -1. In the Single Sign-On page, click the **Edit** icon for the OneLogin SAML integration. +1. In the Single Sign-On page, click the **Edit** icon for the OneLogin SAML integration you created. 1. Copy the **Assertion URL** (client ID) that was automatically generated when you added the integration. 1. Continue with [Step 3: Configure SSO settings for Codefresh in OneLogin](#configure-sso-settings-for-codefresh-in-onelogin). diff --git a/_docs/administration/single-sign-on/saml/saml-pingidsso.md b/_docs/administration/single-sign-on/saml/saml-pingid.md similarity index 96% rename from _docs/administration/single-sign-on/saml/saml-pingidsso.md rename to _docs/administration/single-sign-on/saml/saml-pingid.md index 0a53d6f1..8b727ac1 100644 --- a/_docs/administration/single-sign-on/saml/saml-pingidsso.md +++ b/_docs/administration/single-sign-on/saml/saml-pingid.md @@ -32,8 +32,9 @@ Configure SSO for PingID via SAML in Codefresh. The Assertion URL is automatical * **Application Certificate**: Type in any character. You will enter the correct value from PingID in the final step. * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. 1. Click **Add**. -1. In the Single Sign-On page, click the **Edit** icon for the PingID SAML integration you just created. -1. Copy the **Assertion URL** (client ID) that was automatically generated when you added the integration. You will need this in PingID. + The SAML integration for PingID is added and appears in the list of SSOs. +1. In the Single Sign-On page, click the **Edit** icon for the PingID SAML integration you created. +1. Copy the **Assertion URL** (client ID) that was automatically generated when you added the integration. 1. Continue with [Step 2: Configure SSO settings for Codefresh in PingID](#configure-sso-settings-for-codefresh-in-pingid). From c73ed6a80f9e807831ed2f1ca839d824ee3658c2 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Wed, 30 Nov 2022 09:10:12 +0200 Subject: [PATCH 10/43] Update nav structure --- _data/nav.yml | 80 ++++++++++++------- .../access-control.md | 0 .../add-users.md | 0 .../{ => account-user-management}/audit.md | 0 .../create-codefresh-account.md | 0 .../oauth-setup.md | 0 .../platform-ip-addresses.md | 0 _docs/administration/single-sign-on/ldap.md | 2 +- .../single-sign-on/oidc/oidc-auth0.md | 11 +-- .../single-sign-on/saml-setup.md | 2 +- .../single-sign-on/saml/saml-jumpcloud.md | 8 +- .../single-sign-on/team-sync.md | 40 ++++++---- 12 files changed, 89 insertions(+), 54 deletions(-) rename _docs/administration/{ => account-user-management}/access-control.md (100%) rename _docs/administration/{ => account-user-management}/add-users.md (100%) rename _docs/administration/{ => account-user-management}/audit.md (100%) rename _docs/administration/{ => account-user-management}/create-codefresh-account.md (100%) rename _docs/administration/{ => account-user-management}/oauth-setup.md (100%) rename _docs/administration/{ => account-user-management}/platform-ip-addresses.md (100%) diff --git a/_data/nav.yml b/_data/nav.yml index cfb2f70a..dc432643 100644 --- a/_data/nav.yml +++ b/_data/nav.yml @@ -139,39 +139,65 @@ - title: Administration url: "/administration" pages: - - title: Manage users - url: "/add-users" - - title: User settings - url: "/user-settings" - - title: Set up OAuth2 authentication for Git providers - url: "/oauth-setup" - - title: Authorize access to organizations/projects - url: "/hosted-authorize-orgs" - - title: Single Sign-On - url: "/single-sign-on" + - title: Account and user management + sub-pages: + - title: Adding a Codefresh account + url: "/create-codefresh-account" + - title: Adding users to accounts + url: "/add-users" + - title: Configure access Control + url: "/access-control" + - title: Setting up OAuth2 authentication for Git providers + url: "/oauth-setup" + - title: Authorize access to organizations/projects + url: "/hosted-authorize-orgs" + - title: Audit in Codefresh + url: "/audit" + - title: Codefresh IP addresses + url: "/platform-ip-addresses" + - title: User self-management + sub-pages: + - title: User settings + url: "/user-settings" + - title: Configuring Git authentication + url: "/manage-pats" + +- title: Single Sign-On + url: /single-sign-on + pages: + - title: Common configuration + url: /team-sync + - title: OpenID Connect + url: /oidc sub-pages: - - title: SAML2 - url: "/sso-setup-saml2" - - title: OpenID Connect - url: "/sso-setup-oauth2" - title: Auth0 - url: "/sso-auth0" + url: /oidc-auth0 - title: Azure - url: "/sso-azure" + url: /oidc-azure - title: Google - url: "/sso-google" - - title: LDAP - url: "/sso-ldap" + url: /oidc-google - title: Okta - url: "/sso-okta" + url: /oidc-okta - title: OneLogin - url: "/sso-onelogin" - - title: Access Control - url: "/access-control" - - title: Audit - url: "/audit" - - title: Codefresh IP addresses - url: "/platform-ip-addresses" + url: /oidc-onelogin + - title: SAML + url: /saml + sub-pages: + - title: JumpCloud + url: /saml-jumpcloud + - title: Okta + url: /saml-okta + - title: OneLogin + url: /saml-onelogin + - title: PingID SSO + url: /saml-pingid + - title: LDAP + url: /ldap + + + + + - title: Reference url: "/reference" diff --git a/_docs/administration/access-control.md b/_docs/administration/account-user-management/access-control.md similarity index 100% rename from _docs/administration/access-control.md rename to _docs/administration/account-user-management/access-control.md diff --git a/_docs/administration/add-users.md b/_docs/administration/account-user-management/add-users.md similarity index 100% rename from _docs/administration/add-users.md rename to _docs/administration/account-user-management/add-users.md diff --git a/_docs/administration/audit.md b/_docs/administration/account-user-management/audit.md similarity index 100% rename from _docs/administration/audit.md rename to _docs/administration/account-user-management/audit.md diff --git a/_docs/administration/create-codefresh-account.md b/_docs/administration/account-user-management/create-codefresh-account.md similarity index 100% rename from _docs/administration/create-codefresh-account.md rename to _docs/administration/account-user-management/create-codefresh-account.md diff --git a/_docs/administration/oauth-setup.md b/_docs/administration/account-user-management/oauth-setup.md similarity index 100% rename from _docs/administration/oauth-setup.md rename to _docs/administration/account-user-management/oauth-setup.md diff --git a/_docs/administration/platform-ip-addresses.md b/_docs/administration/account-user-management/platform-ip-addresses.md similarity index 100% rename from _docs/administration/platform-ip-addresses.md rename to _docs/administration/account-user-management/platform-ip-addresses.md diff --git a/_docs/administration/single-sign-on/ldap.md b/_docs/administration/single-sign-on/ldap.md index c3d4369e..e0a11232 100644 --- a/_docs/administration/single-sign-on/ldap.md +++ b/_docs/administration/single-sign-on/ldap.md @@ -36,7 +36,7 @@ Make sure also that you know the scope of the search, that is, where users to se * **Certificate**: The security certificate of the LDAP server for `ldaps` only. Paste the value directly on the field. Do not convert to base64 or any other encoding by hand. Leave the field empty if you use `ldap`. {:start="4"} -1. Select **+ Add**. LDAP users can log in to Codefresh. +1. Select **+ Add**. LDAP users can now log in to Codefresh. >Each user who logs in to Codefresh must: 1. Have a defined email address on the LDAP server diff --git a/_docs/administration/single-sign-on/oidc/oidc-auth0.md b/_docs/administration/single-sign-on/oidc/oidc-auth0.md index e66ecc33..8b754fec 100644 --- a/_docs/administration/single-sign-on/oidc/oidc-auth0.md +++ b/_docs/administration/single-sign-on/oidc/oidc-auth0.md @@ -10,12 +10,13 @@ toc: true --- Auth0 is one of the SSO providers that Codefresh supports for authentication and authorization. -Create an SSO account for Auth0 in Codefresh by: + +Set up an SSO account for Auth0 in Codefresh by: * Creating an Auth0 application in Auth0 * Creating the SSO account for Auth0 in Codefresh * Definng the SSO settings for the application you created in Auth0 -### 1. Create an Auth0 application +### Step 1: Create an Auth0 application First create a new application in Auth0. 1. Log in to Auth0. @@ -50,9 +51,9 @@ max-width="40%" %} {:start="5"} -1. Continue with _Create SSO account for Auth0 in Codefresh_. +1. Continue with [Step 2: Create SSO account for Auth0 in Codefresh](#step-2-create-sso-account-for-auth0-in-codefresh). -### 2. Create SSO account for Auth0 in Codefresh +### Step 2: Create SSO account for Auth0 in Codefresh After creating an Auth0 application, create an SSO account for OAuth0 in Codefresh. 1. In the Codefresh UI, go to [Single Sign-On](https://g.codefresh.io/2.0/account-settings/single-sign-on). @@ -78,7 +79,7 @@ max-width="40%" {:start="5"} 1. Click **Save**. 1. Copy the Client Name that is assigned to identify this SSO account. You will have to add it to the Auth0 application. -1. Continue with _Define SSO settings in Auth0 application_. +1. Continue with [Step 3: Define SSO settings in Auth0 application](#step-3-define-sso-settings-in-auth0-application). ### 3. Define SSO settings in Auth0 application diff --git a/_docs/administration/single-sign-on/saml-setup.md b/_docs/administration/single-sign-on/saml-setup.md index 176dc9f9..52559356 100644 --- a/_docs/administration/single-sign-on/saml-setup.md +++ b/_docs/administration/single-sign-on/saml-setup.md @@ -92,7 +92,7 @@ Here's what you need to do to configure SSO via SAML in Codefresh: > These settings are for the SaaS version of Codefresh. For an on-premises setup, use the URLs that match your installation. 1. Test integration - Codefresh offers an option to test each integration. + Test the integrations to verify the connection settings. 1. Set an IdP as the default provider diff --git a/_docs/administration/single-sign-on/saml/saml-jumpcloud.md b/_docs/administration/single-sign-on/saml/saml-jumpcloud.md index 609e9893..400d45dc 100644 --- a/_docs/administration/single-sign-on/saml/saml-jumpcloud.md +++ b/_docs/administration/single-sign-on/saml/saml-jumpcloud.md @@ -11,7 +11,7 @@ For a general overview on SAML, see [Setting up SAML2 Federated Single Sign-On ( >If you do not see SAML in the SSO list, please create a support ticket to enable SAML for your account. -Setting up SAML SSO for JumpCloud includes: +Set up SAML SSO for JumpCloud by: 1. Configuring SSO settings for JumpCloud via SAML in Codefresh 1. Configuring SSO settings for Codefresh in JumpCloud 1. Completing SSO configuration for JumpCloud in Codefresh @@ -25,9 +25,9 @@ Setting up SAML SSO for JumpCloud includes: * **Display Name**: Any arbitrary name for this integration. * **IDP Entry**: Type in any character. You will enter the correct value from JumpCloud in the final step. * **Application Certificate**: You will enter the correct value from JumpCloud in the final step. - * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. 1. If GSuite is your provider, select it as the **Provider**, and define the settings below. Otherwise leave the field empty. * **Admin Email**: The email of the user with access to `admin.google.com`. + * **Auto Sync users and teams to Codefresh**: Supported for Google/GSuite SAML integration. Select to automatically sync user accounts in to your Codefresh account. Optionally, define the time interval at which to sync, in hours, from 1 to 24. If you don't specify an interval, the sync interval is every 12 hours. * **Sync interval**: Optional. The time interval at which to sync. * **Sync Field**: Optional. TBD * **JSON Keyfile**: . TBD @@ -35,7 +35,7 @@ Setting up SAML SSO for JumpCloud includes: The SAML integration for JumpCloud is added and appears in the list of SSOs. 1. In the Single Sign-On page, click the **Edit** icon for the JumpCloud SAML integration you created. 1. Copy the **Assertion URL** (client ID) that was automatically generated when you added the integration. -1. Continue with [Step 2: Configure SSO settings for Codefresh in JumpCloud](#configure-sso-settings-for-codefresh-in-onelogin). +1. Continue with [Step 2: Configure SSO settings for Codefresh in JumpCloud](#step-2-configure-sso-settings-for-codefresh-in-onelogin). ## Step 2: Configure SSO settings for Codefresh in JumpCloud @@ -57,7 +57,7 @@ Setting up SAML SSO for JumpCloud includes: - **lastName**: lastname 1. Click **Activate** and **Continue**. 1. When you get a notification on the top right to download the Certificate, download the Certificate. -1. Continue with [Step 3: Complete SSO configuration for JumpCloud in Codefresh](#complete-sso-configuration-for-jumpcloud-in-codefresh) +1. Continue with [Step 3: Complete SSO configuration for JumpCloud in Codefresh](#step-3-complete-sso-configuration-for-jumpcloud-in-codefresh). ## Step 3: Complete SSO configuration for JumpCloud in Codefresh As the final step in configuring SSO for JumpCloud, add the IDP Entry and Certificate values from JumpCloud. diff --git a/_docs/administration/single-sign-on/team-sync.md b/_docs/administration/single-sign-on/team-sync.md index 6059e4e7..5126fee5 100644 --- a/_docs/administration/single-sign-on/team-sync.md +++ b/_docs/administration/single-sign-on/team-sync.md @@ -1,24 +1,31 @@ --- -title: Synchronize Teams -description: "Syncing of Teams After Initial SSO Setup" +title: Synchronizing teams with SSO provider +description: "Syncing teams after initial SSO setup" group: single-sign-on toc: true --- -## Overview +Codefresh supports syncing between the teams created in Codefresh and your Identity Provider (IdP). +Team sync enables all users -Once the initial setup is done, you can also sync your teams between Codefresh and the Identity provider. -You can do this via the [Codefresh Cli](https://codefresh-io.github.io/cli/) and specifically the [sync command](https://codefresh-io.github.io/cli/teams/synchronize-teams/). +You can sync teams: +* Automatically, in the Codefresh UI when you set up the SSO for the IdP +* Manually, through the [synchronize teams command](https://codefresh-io.github.io/cli/teams/synchronize-teams/) via the [Codefresh CLI](https://codefresh-io.github.io/cli/) -> Note: Team Sync is available for OIDC Providers. Syncing with SAML is available with Google only. +> Team sync is supported for OIDC providers. For SAML, team-sync is supported only for Google. + + +Example: + +To sync your Azure teams, run: -For example, to sync you azure teams you can execute ```shell -codefresh synchronize teams my-client-name -t azure +codefresh synchronize teams -t azure ``` +where: +`` is the Client Name/Assertion URL/Callback URL that is automatically generated by Codefresh when you save the SSO configuration for your provider. -You can find the client-name from the SSO UI. {% include image.html lightbox="true" @@ -29,10 +36,11 @@ caption="SSO Client Name" max-width="40%" %} + Even though you can run this command manually it makes more sense to run it periodically as a job. And the obvious -way to perform this, is with a Codefresh pipeline. The CLI can be used as a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). +way to perform this, is with a Codefresh CI pipeline. The CLI can be used as a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). -You can create a git repository with a [codefresh.yml]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) file with the following contents: +You can create a git repository with a [codefresh.yml]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) file with the following content: ```yaml version: '1.0' @@ -44,13 +52,13 @@ steps: - 'codefresh synchronize teams my-client-name -t azure' ``` -To fully automate this pipeline you should set a [cron trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/cron-triggers/) for this pipeline. The cron-trigger will be responsible for running this pipeline (and therefore synchronizing the teams) in a fully automated manner. +To fully automate this pipeline you should set a [cron trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/cron-triggers/) for it. The cron-trigger will run this pipeline (and therefore synchronize the teams) in a fully automated manner. -This way you can synchronize your teams every day/week/hour depending on you cron trigger setup. +This way you can synchronize your teams every day/week/hour depending on you Cron trigger setup. -## Synchronize Teams Not Inviting New Users +## CLI synchronize teams command -When running the codefresh synchronize teams command, new users will not be invited to Codefresh. The output of the command will look similar to the following: +If the `Restrict inviting additional users by email address domain` is enabled for your account, running the `synchronize teams` command via the CLI, does not invite new users to Codefresh. The output of the command will look similar to the following: ```json [ @@ -80,7 +88,7 @@ When running the codefresh synchronize teams command, new users will not be invi ] ``` -The cause of this is the "Restrict inviting additional users by email address domain" is enabled for the account. +The cause of this is the 1. Navigate to Account Settings > User & Teams > Security 1. Toggle off "Restrict inviting additional users by email address domain." From f04c329d1951b27b5248971cfb9932029cbd9702 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Wed, 30 Nov 2022 10:26:04 +0200 Subject: [PATCH 11/43] Update OIDC topics --- .../single-sign-on/oidc/oidc-auth0.md | 6 +- .../single-sign-on/oidc/oidc-azure.md | 409 ++++++++++-------- .../single-sign-on/oidc/oidc-google.md | 39 +- .../single-sign-on/oidc/oidc-okta.md | 6 +- .../single-sign-on/oidc/oidc-onelogin.md | 6 +- .../single-sign-on/saml/saml-jumpcloud.md | 5 + .../single-sign-on/saml/saml-okta.md | 5 + .../single-sign-on/saml/saml-onelogin.md | 5 +- .../single-sign-on/saml/saml-pingid.md | 5 + .../single-sign-on/team-sync.md | 83 +++- 10 files changed, 355 insertions(+), 214 deletions(-) diff --git a/_docs/administration/single-sign-on/oidc/oidc-auth0.md b/_docs/administration/single-sign-on/oidc/oidc-auth0.md index 8b754fec..968cca58 100644 --- a/_docs/administration/single-sign-on/oidc/oidc-auth0.md +++ b/_docs/administration/single-sign-on/oidc/oidc-auth0.md @@ -105,8 +105,10 @@ max-width="50%" You have completed SSO setup for Auth0 in Codefresh. -### Related articles +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on/) +[Setting up OpenID Connect (OIDC) Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/oidc) +[Common configuration for SSO providers]({{site.baseurl}}/docs/administration/single-sign-on/team-sync) -[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on/) diff --git a/_docs/administration/single-sign-on/oidc/oidc-azure.md b/_docs/administration/single-sign-on/oidc/oidc-azure.md index 95e790fc..98d71bbc 100644 --- a/_docs/administration/single-sign-on/oidc/oidc-azure.md +++ b/_docs/administration/single-sign-on/oidc/oidc-azure.md @@ -8,210 +8,255 @@ redirect_from: toc: true --- -Setting up SSO for Azure in Codefresh, requires you to register Codefresh in Azure AD with the required permissions and the client secret, configure the SSO settings in Codefresh, and then define the Client ID in Azure AD. -For general instructions on SSO setup, see the [overview]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/). +Set up SSO for Azure using OIDC. +For a general overview on OIDC, see [Setting up OpenID Connect (OIDC) Federated Single Sign-On (SSO)]({site.baseurl}}/docs/administration/single-sign-on/oidc). -### Prerequisites -* Azure user roles: *Application Administrator* or *Global Administrator* roles. - These roles are required after the SSO integration is complete to [sync teams from Azure to Codefresh]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#syncing-of-teams-after-initial-sso-setup). +Set up OIDC SSO for Azure by: +1. Registering the Codefresh application in Azure +1. Configuring permissions for the Codefresh application in Azure +1. Creating the Client secret in Azure +1. Completing SSO configuration for Azure in Codefresh +1. Configuring redirect URIs in Azure -### Register Codefresh in Azure AD -Register the Codefresh application in Azure AD. -1. Log in to **Azure Portal**, and from the sidebar, select **Azure Active Directory**. - - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/1-azure-service.png" - url="/images/administration/sso/azure/1-azure-service.png" - alt="Azure Active Directory" - caption="Azure Active Directory" - max-width="30%" - %} -{:start="2"} -1. From the sidebar, select **App registrations**. +## Prerequisites - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/2-app-registrations.png" - url="/images/administration/sso/azure/2-app-registrations.png" - alt="Azure App Registrations" - caption="Azure App Registrations" - max-width="30%" - %} +Make sure that your user in Azure who creates the application is assigned either of these roles: +**Application Administrator** +OR +**Global Administrator** + +If the user who creates the Azure application is not assigned to either of these roles, you will be unable to sync teams from Azure to Codefresh. + + +## Step 1: Register the Codefresh application in Azure + +To setup Azure Active Directory for SSO, first register a new application in Azure. + +1. Log in to the **Azure Portal**, and from the sidebar, select **Azure Active Directory**. + +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/register-app-select-azure-ad.png" +url="/images/administration/sso/azure/register-app-select-azure-ad.png" +alt="Azure Active Directory" +caption="Azure Active Directory" +max-width="70%" +%} + +{:start="2"} +1. From the sidebar, select **App registrations**, and then click **+ New registration**. +1. Enter a name for the application, for example, `Codefresh`, and retain the default values for all other settings. + +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/register-app-name.png" +url="/images/administration/sso/azure/register-app-name.png" +alt="Enter name and register application" +caption="Enter name and register application" +max-width="70%" +%} -{:start="3"} -1. To add the new application, select **+ New registration**. - Enter a name for the application, e.g. Codefresh, and for all other options, retain default settings. - - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/3-register-an-app.png" - url="/images/administration/sso/azure/3-register-an-app.png" - alt="Azure App Registration creation" - caption="Azure App Registration creation" - max-width="30%" - %} {:start="4"} -1. To apply your changes, select **Register**. The application is now registered in Azure AD. +1. To apply your changes, click **Register**. The application is created and registered in Azure AD. +1. Continue with [Step 2: Configure permissions for the application in Azure](#step-2-configure-permissions-for-the-application-in-azure). + +## Step 2: Configure permissions for the application in Azure -### Configure permissions for Codefresh +Once the application has been created and registered, configure the required permissions. -After registering Codefresh, configure the permissions. +1. Click the name of the application to open **Settings**. +1. Do the following: + * Select **API permissions**, and then click **+ Add a permission**. + * From **Request API Permissions**, select **Microsoft APIs**, and then select **Microsoft Graph**. -1. Select the application name to open **Settings**. -1. Select **API permissions**. +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/config-app-permissions-microsoft-graph.png" +url="/images/administration/sso/azure/config-app-permissions-microsoft-graph.png" +alt="Select Microsoft Graph" +caption="Select Microsoft Graph" +max-width="70%" +%} - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/5-api-permissions.png" - url="/images/administration/sso/azure/5-api-permissions.png" - alt="Azure App API Permissions" - caption="Azure App API Permissions" - max-width="30%" - %} {:start="3"} -1. To change access levels, select **Add a permission**. - - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/6-request-api-permissions.png" - url="/images/administration/sso/azure/6-request-api-permissions.png" - alt="Azure App Change Permissions" - caption="Azure App Change Permissions" - max-width="30%" - %} +1. Click **Application permissions** on the left, and select `Group > Read.All`. + +> The `User.Read.All (Delegated)` permission is added by default. + +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/config-app-permissions-selected.png" +url="/images/administration/sso/azure/config-app-permissions-selected.png" +alt="`Group > Read.All` permissions for Microsoft Graph" +caption="`Group > Read.All` permissions for Microsoft Graph" +max-width="70%" +%} + {:start="4"} -1. Find and select **Azure Active Directory Graph**. - - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/7-request-api-permissions.png" - url="/images/administration/sso/azure/7-request-api-permissions.png" - alt="Azure Active Directory Graph entry" - caption="Azure Active Directory Graph entry" - max-width="30%" - %} -{:start="5"} -1. Select **Application permissions**, and select the following permissions: - * `Directory.Read.All` - * `Group.Read.All` - * `User.Read.All` - - >Note: - User.Read for the type of delegated is required. This permission is usually added by default. +1. Click **Add Permissions**. +1. Click **Grant admin consent for Default Directory** on the bar. + +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/config-app-permissions-added.png" +url="/images/administration/sso/azure/config-app-permissions-added.png" +alt="Grant admin consent for Default Directory" +caption="Grant admin consent for Default Directory" +max-width="70%" +%} {:start="6"} -1. Select **Apply Permissions**. - - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/ApplicationPermissions.png" - url="/images/administration/sso/azure/ApplicationPermissions.png" - alt="API Permissions" - caption="API Permissions" - max-width="30%" - %} - -{:start="7"} -1. From the bar on the top, select **Grant admin consent**. - -### Create Client Secret - -1. From the sidebar, select **Certificates & secrets**. - - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/9-Create-secret-page.png" - url="/images/administration/sso/azure/9-Create-secret-page.png" - alt="Change keys" - caption="Change keys" - max-width="30%" - %} +1. Continue with [Step 3: Create client secret in Azure](#step-3-create-client-secret-in-azure). + + +## Step 3: Create client secret in Azure + +Create a client secret for the application. You will need to provide it when you set up SSO for Azure in Codefresh. + +1. From the sidebar, select **Certificates & secrets**, and then click **+ New client secret**. + +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/client-secret-select-option.png" +url="/images/administration/sso/azure/client-secret-select-option.png" +alt="Create client secret" +caption="Create client secret" +max-width="70%" +%} + {:start="2"} -1. Select **New Client secret**, and add a description (arbitrary name). - - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/10-Add-client-secret.png" - url="/images/administration/sso/azure/10-Add-client-secret.png" - alt="Add a client secret" - caption="Add a client secret" - max-width="30%" - %} +1. Optional. Add a meaningful description for the client secret, and either retain the default expiry date or define a custom one. + +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/client-secret-add-description.png" +url="/images/administration/sso/azure/client-secret-add-description.png" +alt="Description for client secret" +caption="Description for client secret" +max-width="70%" +%} + +> Tip: Make a note of the expiry date in your calendar to renew the key before the expiry date and prevent service interruptions. + {:start="3"} -1. Select the desired duration. - >**Important:** If you select a key with an expiration date, record the expiration date in your calendar. Remember to renew the key before the expiration date to ensure that users don't experience a service interruption. -1. To display the key, select **Add**. -1. Copy the value of the key as you will need this when you configure the SSO settings for Azure in Codefresh. +1. Click **Add**. + **Copy the secret key**, as you will need to provide it on setting up Azure SSO in Codefresh. +1. Continue with [Step 4: Configure SSO settinggs for Azure in Codefresh](#step-4-configure-sso-settings-for-azure-in-codefresh). -### Configure SSO for Azure in Codefresh +## Step 4: Configure SSO settings for Azure in Codefresh -1. In the Codefresh UI, go to [Single Sign-On](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. -1. Select **+ Add Single Sign-On**, select **Azure**, and then select **Next**. - - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/sso-csdp-azure.png" - url="/images/administration/sso/azure/sso-csdp-azure.png" - alt="SSO settings for Azure in Codefresh" - caption="SSO settings for Azure in Codefresh" - max-width="30%" - %} - - * **Client Name**: For auto-generation, leave empty. Codefresh generates the client name once you save the settings. - * **Display Name**: Meaningful name that identifies the SSO provider. - * **Application ID**: The Application ID in Azure - * **Client secret**: The key value you copied when you created the client secret in Azure - * **Tenant**: `.onmicrosoft.com` - * **Object ID**: Your Azure Service Principal Object ID (from Enterprise Application configuration) - - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/client-name.png" - url="/images/administration/sso/azure/client-name.png" - alt="SSO Client Name" - caption="SSO Client Name" - max-width="50%" - %} - You need this value when you configure the reply URL in the Azure portal. - -### Configure reply URLs -This is the final step in SSO setup for Azure. Add the Codefresh callback URL to the allowed reply URLs for the created application in Azure AD. -1. Go to **Azure Active Directory > Apps registrations**, and select your app. -1. Select **Add a Redirect URI**, and define: - - ``` - https://g.codefresh.io/api/auth//callback - - ``` - - where: `` is the Client Name in the SSO configuration, either defined by you or created by Codefresh. +Configure SSO for Azure in the Codefresh UI. + +**Before you begin** +* From Azure AD: + * Have your client secret handy + * Go to the application you created, and note down these **Properties: Application ID and Object ID** - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/12-set-reply-URL.png" - url="/images/administration/sso/azure/12-set-reply-URL.png" - alt="Reply URLs" - caption="Reply URLs" - max-width="30%" - %} -{:start="3"} -1. On the same page, scroll down and select **ID tokens**. + {% include image.html +lightbox="true" +file="/images/administration/sso/azure/azure-properties-object-app-ids.png" +url="/images/administration/sso/azure/azure-properties-object-app-ids.png" +alt="Application and Object IDs in Azure" +caption="Application and Object IDs in Azure" +max-width="70%" +%} + + +**How to** + +1. In the Codefresh UI, select **Account Settings**, and then from the sidebar, select **Single Sign On**. +1. Click **Add Single Sign-On**, and select **Azure AD**. +1. Enter the following: + * **Client Name**: For auto-generation, leave empty. Codefresh generates the client name once you save the settings. + * **Display Name**: Meaningful name for the SSO provider - Shown as display name in Azure (see below) + * **Access token** and **Application ID**: The Application ID from your Enterprise Application Properties in Azure AD. + * **Client Secret**: The key value you copied when you created the client secret in Azure. + * **Tenant**: `mycompany.onmicrosoft.com` or the ID of `0example1-0000-0aa0-a00a-1example0` + * **Object ID**: The Object ID from your Enterprise Application Properties in Azure AD. + * **Auto Sync users and teams to Codefresh**: Select to automatically sync user accounts in Azure AD to your Codefresh account. Optionally, define the time interval, in hours, at which to sync, from 1 to 24. If you don’t specify an interval, the sync is every 12 hours. + + {% include image.html +lightbox="true" +file="/images/administration/sso/azure/sso-codefresh-settings.png" +url="/images/administration/sso/azure/sso-codefresh-settings.png" +alt="SSO settings for Azure in Codefresh" +caption="SSO settings for Azure in Codefres" +max-width="70%" +%} + +{:start="4"} +1. Click **Save**. + If you left the Client Name empty, Codefresh generates one (as in the example below). Codefresh uses this name to identify the SSO configuration. - {% include image.html - lightbox="true" - file="/images/administration/sso/azure/13-Enable-ID-Tokens.png" - url="/images/administration/sso/azure/13-Enable-ID-Tokens.png" - alt="Reply URLs" - caption="Reply URLs" - max-width="30%" - %} +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/sso-codefresh-generated-client-id.png" +url="/images/administration/sso/azure/sso-codefresh-generated-client-id.png" +alt="Example of Codefresh-generated Client Name for Azure" +caption="Example of Codefresh-generated Client Name for Azure" +max-width="50%" +%} -You have now completed the SSO setup for Azure. + We will need this value in the reply URL setting (back in the Azure portal UI). +1. Continue with [Step 5: Configure redirect URIs in Azure](#step-5-configure-redirect-uris-in-azure). -##### What to read next -See the [overview page]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#testing-your-identity-provider) on how to test the integration, activate SSO for collaborators and create sync jobs. + +## Step 5: Configure redirect URIs in Azure + +As the final step, add the Codefresh callback URL to the allowed reply URLs for the created application in Azure. + +**Before you begin** +* Make sure you have the Client Name for the Azure SSO configuration from Codefresh + + +**How to** + +1. Go to **Azure Active Directory > Apps registrations**, and select the application you registered for SSO. +1. From the sidebar, select **Authentication**. +1. Below **Platform Configuration**, click **Add a platform** and then select **Web**. + +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/redirect-uri-web-configure.png" +url="/images/administration/sso/azure/redirect-uri-web-configure.png" +alt="Select Web configuration settings" +caption="Select Web configuration settings" +max-width="70%" +%} + +{:start="4"} +1. In the Configure Web form, do the following: + * In the **Redirect URIs** field, enter the redirect URI in the format below: + `https://g.codefresh.io/api/auth//callback` + where: + `` is the Client Name shown in the SSO configuration, either defined by you or created by Codefresh. + * Select **ID tokens**. + +{% include image.html +lightbox="true" +file="/images/administration/sso/azure/redirect-rui-define-select-id-tokens.png" +url="/images/administration/sso/azure/redirect-rui-define-select-id-tokens.png" +alt="Web configuration settings" +caption="Web configuration settings" +max-width="70%" +%} + +You have now completed the SSO setup for Azure using OIDC. + +## Test SSO Connection + +Now test the SSO with a test user in a different browser or private/incognito browser to make sure the integration works as it should. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. +1. Locate a test user, and from the SSO list, select the integration name to enable SSO for that user. +1. In a different browser or private/incognito browser window use the Corporate option to log in. + +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on/) +[Setting up OpenID Connect (OIDC) Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/oidc) +[Common configuration for SSO providers]({{site.baseurl}}/docs/administration/single-sign-on/team-sync) diff --git a/_docs/administration/single-sign-on/oidc/oidc-google.md b/_docs/administration/single-sign-on/oidc/oidc-google.md index e6d6a6a9..d25b54f2 100644 --- a/_docs/administration/single-sign-on/oidc/oidc-google.md +++ b/_docs/administration/single-sign-on/oidc/oidc-google.md @@ -6,11 +6,16 @@ sub_group: single-sign-on toc: true --- -Setting up SSO for Google in Codefresh requires you to create a client secret for Codefresh in Google, configure SSO settings in Codefresh and then define the redirect URIs, also in Google. -For general instructions on SSO setup, see the [overview]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/). +Set up SSO for Auth0 using OIDC. +For a general overview on OIDC, see [Setting up OpenID Connect (OIDC) Federated Single Sign-On (SSO)]({site.baseurl}}/docs/administration/single-sign-on/oidc). +Set up an SSO account for Google in Codefresh by: +* Creating the client secret in Google +* Configuring SSO settings for Google in Codefresh +* Setting up the redirect URI in Google -### Create Client Secret + +## Step 1: Create Client Secret in Google 1. Log in to [https://console.developers.google.com/](https://console.developers.google.com/). 1. From the sidebar, select **Credentials**. @@ -41,10 +46,12 @@ For general instructions on SSO setup, see the [overview]({{site.baseurl}}/docs/ max-width="30%" %} -You will need the Client ID and secret to configure SSO for Google in Codefresh. + You will need the Client ID and secret to configure SSO for Google in Codefresh. +{:start="5"} +1. Continue with [Step 2: Configure SSO settings for Google in Codefresh](#step-2-configure-sso-settings-for-google-in-codefresh). -### Configure SSO for Google in Codefresh +## Step 2: Configure SSO settings for Google in Codefresh 1. In the Codefresh UI, go to [Single Sign-On](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. 1. Select **+ Add Single Sign-On**, **Google**, and then **Next**. @@ -80,8 +87,9 @@ You will need the Client ID and secret to configure SSO for Google in Codefresh. {:start="5"} 1. Note down the Client Name, as you need it to set the redirect URI in Google. +1. Continue with [Step 3: Set up Redirect URI in Google](#step-3-set-up-redirect-uri-in-google). -### Set up Redirect URI +### Set up Redirect URI in Google 1. Go back to the Google Console Developer dashboard, and click the edit button on the OAuth 2.0 Client IDs that you created before. 1. For **Authorized Redirect URIs**, in the **URIs** field, enter the Client Name you noted down to generate the *Authorized Redirect URIs* * Example Client Name: `t0nlUJoqQlDv` @@ -96,9 +104,9 @@ You will need the Client ID and secret to configure SSO for Google in Codefresh. max-width="30%" %} -This concludes the basic SSO setup for Google. +You have now completed SSO setup for Google via OIDC -### Synchronize teams via Codefresh CLI +## Synchronize teams via Codefresh CLI For team/group synchronization you also need a service account. In the Codefresh configuration screen there are some optional fields that you can fill, in order to @@ -138,7 +146,16 @@ get team synchronization via the Codefresh CLI. You need to create a service acc * `JSON Keyfile`: The contents of the JSON file * `Admin email`: The user `admin.google.com` -Now you can [synchronize teams using the Codefresh CLI]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#syncing-of-teams-after-initial-sso-setup). +## Test SSO Connection + +Now test the SSO with a test user in a different browser or private/incognito browser to make sure the integration works as it should. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. +1. Locate a test user, and from the SSO list, select the integration name to enable SSO for that user. +1. In a different browser or private/incognito browser window use the Corporate option to log in. -#### What to read next -See the [overview page]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#testing-your-identity-provider) on how to test the integration, activate SSO for collaborators and create sync jobs. \ No newline at end of file +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on/) +[Setting up OpenID Connect (OIDC) Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/oidc) +[Common configuration for SSO providers]({{site.baseurl}}/docs/administration/single-sign-on/team-sync) \ No newline at end of file diff --git a/_docs/administration/single-sign-on/oidc/oidc-okta.md b/_docs/administration/single-sign-on/oidc/oidc-okta.md index fdaa0e6a..00c969fb 100644 --- a/_docs/administration/single-sign-on/oidc/oidc-okta.md +++ b/_docs/administration/single-sign-on/oidc/oidc-okta.md @@ -177,6 +177,8 @@ There are two ways to set up automatic syncing of teams: max-width="50%" %} -### What to read next -See the [overview page]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#testing-your-identity-provider) on how to test the integration, activate SSO for collaborators and create sync jobs. +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on/) +[Setting up OpenID Connect (OIDC) Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/oidc) +[Common configuration for SSO providers]({{site.baseurl}}/docs/administration/single-sign-on/team-sync) diff --git a/_docs/administration/single-sign-on/oidc/oidc-onelogin.md b/_docs/administration/single-sign-on/oidc/oidc-onelogin.md index 3e6213f8..f5f1fdd6 100644 --- a/_docs/administration/single-sign-on/oidc/oidc-onelogin.md +++ b/_docs/administration/single-sign-on/oidc/oidc-onelogin.md @@ -120,5 +120,7 @@ max-width="30%" You have now completed SSO setup for OneLogin. -#### What to read next -See the [overview page]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#testing-your-identity-provider) on how to test the integration, activate SSO for collaborators and create sync jobs. \ No newline at end of file +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on/) +[Setting up OpenID Connect (OIDC) Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/oidc) +[Common configuration for SSO providers]({{site.baseurl}}/docs/administration/single-sign-on/team-sync) \ No newline at end of file diff --git a/_docs/administration/single-sign-on/saml/saml-jumpcloud.md b/_docs/administration/single-sign-on/saml/saml-jumpcloud.md index 400d45dc..ef353e41 100644 --- a/_docs/administration/single-sign-on/saml/saml-jumpcloud.md +++ b/_docs/administration/single-sign-on/saml/saml-jumpcloud.md @@ -77,3 +77,8 @@ Now test the SSO with a test user in a different browser or private/incognito br 1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. 1. Locate a test user, and from the SSO list, select the integration name to enable SSO for that user. 1. In a different browser or private/incognito browser window use the Corporate option to log in. + +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on/) +[Setting up SAML2 Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/saml-setup) +[Common configuration for SSO providers]({{site.baseurl}}/docs/administration/single-sign-on/team-sync) \ No newline at end of file diff --git a/_docs/administration/single-sign-on/saml/saml-okta.md b/_docs/administration/single-sign-on/saml/saml-okta.md index 715c2baf..ab78ecbe 100644 --- a/_docs/administration/single-sign-on/saml/saml-okta.md +++ b/_docs/administration/single-sign-on/saml/saml-okta.md @@ -77,3 +77,8 @@ Now test the SSO with a test user in a different browser or private/incognito br 1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. 1. Locate a test user, and from the SSO list, select the integration name to enable SSO for that user. 1. In a different browser or private/incognito browser window use the Corporate option to log in. + +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on/) +[Setting up SAML2 Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/saml-setup) +[Common configuration for SSO providers]({{site.baseurl}}/docs/administration/single-sign-on/team-sync) \ No newline at end of file diff --git a/_docs/administration/single-sign-on/saml/saml-onelogin.md b/_docs/administration/single-sign-on/saml/saml-onelogin.md index 76762b03..16785864 100644 --- a/_docs/administration/single-sign-on/saml/saml-onelogin.md +++ b/_docs/administration/single-sign-on/saml/saml-onelogin.md @@ -77,4 +77,7 @@ Now test the SSO with a test user in a different browser or private/incognito br 1. Locate a test user, and from the SSO list, select the integration name to enable SSO for that user. 1. In a different browser or private/incognito browser window use the Corporate option to log in. - +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on/) +[Setting up SAML2 Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/saml-setup) +[Common configuration for SSO providers]({{site.baseurl}}/docs/administration/single-sign-on/team-sync) diff --git a/_docs/administration/single-sign-on/saml/saml-pingid.md b/_docs/administration/single-sign-on/saml/saml-pingid.md index 8b727ac1..d518bcbf 100644 --- a/_docs/administration/single-sign-on/saml/saml-pingid.md +++ b/_docs/administration/single-sign-on/saml/saml-pingid.md @@ -82,3 +82,8 @@ Now test the SSO with a test user in a different browser or private/incognito br 1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. 1. Locate a test user, and from the SSO list, select the integration name to enable SSO for that user. 1. In a different browser or private/incognito browser window use the Corporate option to log in. + +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on/) +[Setting up SAML2 Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/saml-setup) +[Common configuration for SSO providers]({{site.baseurl}}/docs/administration/single-sign-on/team-sync) \ No newline at end of file diff --git a/_docs/administration/single-sign-on/team-sync.md b/_docs/administration/single-sign-on/team-sync.md index 5126fee5..b7721303 100644 --- a/_docs/administration/single-sign-on/team-sync.md +++ b/_docs/administration/single-sign-on/team-sync.md @@ -1,18 +1,24 @@ --- -title: Synchronizing teams with SSO provider -description: "Syncing teams after initial SSO setup" +title: Common configuration for SSO +description: "Syncing teams, selecting SSO provider after initial SSO setup" group: single-sign-on toc: true --- -Codefresh supports syncing between the teams created in Codefresh and your Identity Provider (IdP). -Team sync enables all users +Once you create an SSO provider account in Codefresh, you can +* Automatically or manually sync between the teams created in Codefresh and your Identity Provider (IdP) +* Set a default SSO provider for your account +* Select an SSO provider for each user + + +## Syncing teams with IdPs +Team sync enables all users of the team You can sync teams: -* Automatically, in the Codefresh UI when you set up the SSO for the IdP +* Automatically, in the Codefresh UI when you set up the SSO account for the IdP, through the **Auto-sync team** option. For details, see the SSO setup for your IdP. * Manually, through the [synchronize teams command](https://codefresh-io.github.io/cli/teams/synchronize-teams/) via the [Codefresh CLI](https://codefresh-io.github.io/cli/) -> Team sync is supported for OIDC providers. For SAML, team-sync is supported only for Google. +> Team-sync is supported for OIDC providers. For SAML, team-sync is supported only for Google. Example: @@ -37,8 +43,8 @@ max-width="40%" %} -Even though you can run this command manually it makes more sense to run it periodically as a job. And the obvious -way to perform this, is with a Codefresh CI pipeline. The CLI can be used as a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). +Though you can run this command manually it makes more sense to run it periodically as a job. And the obvious +way to perform this is with a Codefresh CI pipeline. The CLI can be used as a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). You can create a git repository with a [codefresh.yml]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) file with the following content: @@ -56,7 +62,7 @@ To fully automate this pipeline you should set a [cron trigger]({{site.baseurl}} This way you can synchronize your teams every day/week/hour depending on you Cron trigger setup. -## CLI synchronize teams command +### CLI synchronize teams command If the `Restrict inviting additional users by email address domain` is enabled for your account, running the `synchronize teams` command via the CLI, does not invite new users to Codefresh. The output of the command will look similar to the following: @@ -88,14 +94,14 @@ If the `Restrict inviting additional users by email address domain` is enabled f ] ``` -The cause of this is the +**Turn off the domain restriction**: -1. Navigate to Account Settings > User & Teams > Security -1. Toggle off "Restrict inviting additional users by email address domain." -1. Save. +1. Navigate to **Account Settings > User & Teams > Security** +1. Toggle off **Restrict inviting additional users by email address domain**. +1. Click **Save**. 1. Rerun the sync command. -## Sync GitHub Organization Teams to Codefresh +### Sync GitHub Organization Teams to Codefresh As an admin, you may want to sync your GitHub Organization Teams with your Codefresh account. At the same time, you do not want to set up an SSO provider and have the users use any login provider they choose. @@ -109,3 +115,52 @@ The Personal Access Token (PAT) from a user will sync ALL Organizations and ALL 1. The sync will invite all users except for those that have private email settings turned on. Once the initial sync happens, you can set up a cron trigger pipeline to run the command on a schedule. + +## Set a default SSO provider for account + +If you have multiple SSO providers, you can set one of them as the default provider for your account. +Setting a default provider assigns the selected SSO automatically to all new users. The link in the email invitation takes them directly to the login page of that SSO provider. + +1. In the Codefresh UI, go to [Single Sign-On](https://g.codefresh.io/2.0/account-settings/single-sign-on). +1. From the list, select the SSO account to set as default and click the **Edit** icon on the right. +1. Scroll down and select **Set as default**. + + + +## Selecting SSO method for individual users + +In addition to setting a default provider for your account, you can select a different provider for each user if so required. +* New users + If you have an SSO provider selected as the default, that provider is automatically assigned to new users, added either manually or via team synchronization. + +* Existing users + SSO login is not configured by default for existing users. You must _explicitly select_ the SSO provider for existing users. + If SSO login is already configured for an existing user, and you add a new identity provider, to change the SSO login to the new provider, you must _select_ the new provider for the user. + +1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. +1. From the sidebar, from Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/account-admin/collaborators/users){:target="\_blank"}. +1. Select the SSO provider from the SSO list. + +{% include image.html +lightbox="true" +file="/images/administration/sso/select-user-sso.png" +url="/images/administration/sso/select-user-sso.png" +alt="Selecting SSO method" +caption="Selecting SSO method" +max-width="50%" +%} + +## Related articles +[Setting up OpenID Connect (OIDC) Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/oidc) +[Setting up SAML2 Federated Single Sign-On (SSO)]({{site.baseurl}}/docs/administration/single-sign-on/saml-setup) + + + From 050cb6dbc1a9b6831ab4dc0b3e622b4cbddea139 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 5 Dec 2022 09:05:27 +0200 Subject: [PATCH 12/43] Update oidc and sso shared config --- .../account-user-management/add-users.md | 5 +- .../account-user-management/oauth-setup.md | 2 +- .../platform-ip-addresses.md | 19 +- _docs/administration/single-sign-on/oidc.md | 195 +++--------------- .../single-sign-on/saml-setup.md | 48 ++++- .../single-sign-on/sso-setup-oauth2.md | 162 --------------- .../single-sign-on/team-sync.md | 4 +- 7 files changed, 87 insertions(+), 348 deletions(-) delete mode 100644 _docs/administration/single-sign-on/sso-setup-oauth2.md diff --git a/_docs/administration/account-user-management/add-users.md b/_docs/administration/account-user-management/add-users.md index e08522fe..2362a566 100644 --- a/_docs/administration/account-user-management/add-users.md +++ b/_docs/administration/account-user-management/add-users.md @@ -1,11 +1,12 @@ --- title: "Users and team management" -description: "" +description: "Add users and teams to Codefresh accounts" group: administration toc: true --- Once you have created a Codefresh account, you can add any number of users to collaborate on repositories, workflows, and pipelines, and teams of users. +You can then create teams in Codefresh to group users who share a common denominator, such as the same permissions, access to the same functionality, or roles. Teams make it easy for administrators to both define and manage items shared by multiple users in an orgranization. ## Users in Codefresh @@ -43,7 +44,7 @@ Once you add a user to your Codefresh account, you can do the following to manag ## Teams in Codefresh -Teams are users who share the same permissions, roles, or as required by . By default there are two teams, *users*, and *admins* with users [invited as collaborators]({{site.baseurl}}/docs/accounts/invite-your-team-member/). +Teams are users who share the same permissions, roles, or as required based on company processes. By default there are two teams, *users*, and *admins* with users [invited as collaborators]({{site.baseurl}}/docs/accounts/invite-your-team-member/). Teams allow you to enforce access control through ABAC (). > Only Enterprise customers can add new teams. Other Codefresh plans can only use the predefined *Users* and *Admin* teams. [Contact us](https://codefresh.io/contact-us/) if you wish to upgrade to an Enterprise plan. diff --git a/_docs/administration/account-user-management/oauth-setup.md b/_docs/administration/account-user-management/oauth-setup.md index be8d4e21..d9b7d831 100644 --- a/_docs/administration/account-user-management/oauth-setup.md +++ b/_docs/administration/account-user-management/oauth-setup.md @@ -1,5 +1,5 @@ --- -title: "Set up OAuth2 authentication for Git providers" +title: "OAuth2 authentication for Git providers" description: "" group: administration toc: true diff --git a/_docs/administration/account-user-management/platform-ip-addresses.md b/_docs/administration/account-user-management/platform-ip-addresses.md index 2676689f..da107c45 100644 --- a/_docs/administration/account-user-management/platform-ip-addresses.md +++ b/_docs/administration/account-user-management/platform-ip-addresses.md @@ -8,11 +8,11 @@ toc: true Access to Kubernetes clusters behind strict firewalls not accessible from the public internet is governed through authorized IP addresses. Codefresh provides a list of IP addresses to be configured on clusters to allow access to them. -You can register multiple external clusters to Codefresh runtimes, both hosted and hybrid. All runtimes require Codefresh platform IPs to be configured on the clusters. -In addition, managed clusters registered to hosted runtimes must be configured with a set of specific IP addresses to authorize access. +You can register multiple external clusters to the Codefresh Runner, and GitOps Runtimes. All Runtimes require Codefresh platform IPs to be configured on the clusters. +In addition, managed clusters registered to Hosted GitOps Runtimes must be configured with a set of specific IP addresses to authorize access. -### Codefresh platform IPs (updated July 31st 2021) +## Codefresh platform IPs (updated July 31st 2021) All the IPs are NAT gateways, and need to enable specific IPs instead of ranges. @@ -38,13 +38,13 @@ All the IPs are NAT gateways, and need to enable specific IPs instead of ranges. - 44.238.167.159 - 44.237.63.217 -### Codefresh IPs for managed clusters in hosted runtimes +## Codefresh IPs for managed clusters in Hosted GitOps Runtimes - 34.207.5.18 - 34.232.79.230 - 44.193.43.5 -### Define API access to IPs for clusters +## Define API access to IPs for clusters Clusters must be configured with API access to the authorized Codefresh IPs. If you haven't configured your clusters with the required IPs, use the links below to complete the configuration for the clusters listed: @@ -54,7 +54,8 @@ If you haven't configured your clusters with the required IPs, use the links bel [GKE (Google Kubernetes Engine)](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters){:target="\_blank"} -### 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/) -[Codefresh architecture]({{site.baseurl}}/docs/getting-started/architecture/) \ No newline at end of file +## What to read next +[Codefresh Runner installation]({{site.baseurl}}/docs/installation/codefresh-runner/) +[Set up a Hosted GitOps Runtime]({{site.baseurl}}/docs/installation/hosted-runtime/) +[Install Hybrid GitOps Runtimes]({{site.baseurl}}/docs/runtime/hybrid-gitops/) + \ No newline at end of file diff --git a/_docs/administration/single-sign-on/oidc.md b/_docs/administration/single-sign-on/oidc.md index 296deece..7fd03361 100644 --- a/_docs/administration/single-sign-on/oidc.md +++ b/_docs/administration/single-sign-on/oidc.md @@ -1,90 +1,45 @@ --- -title: "OpenID Connect" -description: "Setting Up OpenID Connect Federated Single Sign-On (SSO)" +title: "Setting up OpenID Connect (OIDC) Federated Single Sign-On (SSO)" +description: "OpenID Connect SSO setup" group: single-sign-on toc: true --- -Codefresh natively supports login using GitHub, Bitbucket and GitLab using the OpenID Connect (OAUTH 2.0) protocol. This guide will review how to add SSO integrations based on OAUTH 2.0 as part of Codefresh Enterprise plan. +Codefresh natively supports login using GitHub, Bitbucket and GitLab using the OpenID Connect (OAuth2) protocol. + ## Prerequisites -In order to add successfully an identity Provider in Codefresh you need to do some preparatory work with both Codefresh and the provider. +To add successfully an identity provider (IdP) in Codefresh you need to do some preparatory work with both Codefresh and the provider. -1. You need to inform your Identify provider that it will provide SSO services to Codefresh -1. You need to set up Codefresh and point it to your Identity Provider. +1. You need to inform your IdP that it will provide SSO services to Codefresh +1. You need to set up Codefresh and point it to your IdP. The first procedure differs according to you Identity Provider, but the second one is common for all providers. -Note that SSO is only available to Enterprise customers. Please [contact sales](https://codefresh.io/contact-sales/) in order to enable it for your Codefresh account. +>SSO is only available to Enterprise customers. Please [contact sales](https://codefresh.io/contact-sales/) in order to enable it for your Codefresh account. -## Identity Provider options +## OIDC SSO configuration in Codefresh -Codefresh currently supports +Here's what you need to do to configure SSO via OIDC in Codefresh: -* Auth0 -* Azure -* Google -* Okta -* OneLogin +1. Configure SSO settings for the IdP in Codefresh: + This generally includes defining settings both in Codefresh and in the IdP. + Codefresh supports OIDC SSO for the following: + * [Auth0]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-auth0/) + * [Azure]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-azure/) + * [Google]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-google/) + * [Okta]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-okta/) + * [OneLogin]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-onelogin/) -To access the SSO configuration at the account level. +1. Test integration with the IdP + + >Before enabling SSO for users, you **MUST** make sure that it is working for the test user. If SSO is enabled for a user, Codefresh blocks logins through other IDPs for this user and only the enabled SSO is allowed. If the selected SSO method does not work for some reason, the user will be locked out of Codefresh. -1. Click on your avatar at the top right of the GUI and select *Account settings*. -1. In the new screen, select *Single Sign-on* from the left sidebar. - -{% include image.html -lightbox="true" -file="/images/administration/sso/add-sso-dropdown.png" -url="/images/administration/sso/add-sso-dropdown.png" -alt="SSO provider settings" -caption="SSO provider settings" -max-width="70%" -%} - -{:start="3"} -1. To connect an Identity Provider, click the *add single-sign-on* button and select your provider from the drop-down menu. - -## Codefresh SSO setup - -Regardless of the Identity Provider that you have chosen, the setup in Codefresh is similar for all of them. You need to provide several fields to Codefresh to activate SSO. The common ones are: - -* *Display Name* - A name for your Identity Provider -* *Client ID* - An ID that will be used for the connection -* *Client Secret* - A secret associated with the ID - -Some providers also need additional fields which are specific to that provider. - -The process to obtain the values for these fields depends on the individual Identity Provider. In the following -sections we will outline the details for each one. - -### Setting Auth0 as an Identity provider - -See the [Auth0 instructions]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-auth0/). - -### Setting Azure as an Identity provider - -See the [Azure instructions]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-azure/). - -### Setting Google as an Identity provider - -See the [Google instructions]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-google/). - -### Setting Okta as an Identity Provider - -See the [Okta instructions]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-okta/). - -### Setting OneLogin as an Identity Provider - -See the [OneLogin instructions]({{site.baseurl}}/docs/single-sign-on/oidc/oidc-onelogin/). - -## Testing your Identity provider - -Once you set up the Identity Provider, do the following - -1. Go to the collaborators screen by clicking on *People* on the left sidebar (under User Management). -1. Add an active user that will be used for testing. We recommend you use your own user. -1. Change Login method by selecting your Auth provider from the SSO drop-down. + 1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. + 1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. + 1. Add an active user to be used for testing. We recommend you use your own user. + 1. Change Login method by selecting your Auth provider from the SSO drop-down. {% include image.html lightbox="true" @@ -95,7 +50,8 @@ Once you set up the Identity Provider, do the following max-width="70%" %} -1. Keep the current browser session open, and log in via Corporate SSO in an incognito tab (or another browser). + {:start="5"} + 1. Keep the current browser session open, and log in via Corporate SSO in an incognito tab (or another browser). {% include image.html lightbox="true" @@ -106,95 +62,12 @@ Once you set up the Identity Provider, do the following max-width="50%" %} -1. If everything works, add more users. - -> Before enabling SSO for all users, you **MUST** make sure that it is working for the test user, because if SSO is enabled for a user, Codefresh blocks logins through other IDPs for this user and only the enabled SSO is allowed. If the selected SSO method does not work for some reason, users will be locked out of Codefresh. - -## Selecting SSO method for collaborators - -To add users and select their SSO method, go to *Collaborators* from the left sidebar. Then add the email or Codefresh username of a user. - -In addition to their role you can now select the SSO method they will use - -{% include image.html -lightbox="true" -file="/images/administration/sso/select-user-sso.png" -url="/images/administration/sso/select-user-sso.png" -alt="Selecting SSO method" -caption="Selecting SSO method" -max-width="50%" -%} - -**SSO login for new and existing users** -If you have multiple SSO providers configured, you can select a different provider for each user if so required. - -* New users - If you have an SSO provider selected as the default, that provider is automatically assigned to new users, added either manually or via team synchronization. - -* Existing users - SSO login is not configured by default for existing users. You must _explicitly select_ the SSO provider for existing users. - If SSO login is already configured for an existing user, and you add a new identity provider, to change the SSO login to the new provider, you must _select_ the new provider for the user. - - -## Setting a default provider - -If you have multiple SSO providers set you can hover your mouse on the top right of the SSO screen -and setup one of them as the default provider. - -{% include image.html -lightbox="true" -file="/images/administration/sso/default-sso.png" -url="/images/administration/sso/default-sso.png" -alt="Default SSO provider" -caption="Default SSO provider" -max-width="90%" -%} - -If a default sso provider is set then: - -1. This SSO method will be automatically assigned to all new invited users -1. All new users will receive an email with an invite link that points them directly to the login page of that SSO provider - -## Syncing of teams after initial SSO setup - -Once the initial setup is done, you can also sync your teams between Codefresh and the Identity provider. -You can do this via the [Codefresh Cli](https://codefresh-io.github.io/cli/) and specifically the [sync command](https://codefresh-io.github.io/cli/teams/synchronize-teams/). - -For example, to sync you azure teams you can execute - -```bash -codefresh synchronize teams my-client-name -t azure -``` - -You can find the client-name from the SSO UI. - -{% include image.html -lightbox="true" -file="/images/administration/sso/azure/client-name.png" -url="/images/administration/sso/azure/client-name.png" -alt="SSO Client Name" -caption="SSO Client Name" -max-width="40%" -%} - -Even though you can run this command manually it makes more sense to run it periodically as a job. And the obvious -way to perform this, is with a Codefresh pipeline. The CLI can be used as a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). - -You can create a git repository with a [codefresh.yml]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) file with the following contents: - -`YAML` -{% highlight yaml %} -{% raw %} -version: '1.0' -steps: - syncMyTeams: - title: syncTeams - image: codefresh/cli - commands: - - 'codefresh synchronize teams my-client-name -t azure' -{% endraw %} -{% endhighlight %} +1. (Optional) [Set an IdP as the default provider]({{site.baseurl}}/docs/single-sign-on/team-sync/#set-a-default-sso-provider-for-account) + You can select an IdP as the default SSO provider for a Codefresh account. This means that all the new users added to that account will automatically use the selected IdP for signin. +1. (Optional) [Set the SSO method for each user]({{site.baseurl}}/docs/single-sign-on/team-sync/#select-sso-method-for-individual-users) + You can also select if needed, a different SSO provider for every user or for specific users. -To fully automate this pipeline you should set a [cron trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/cron-triggers/) for this pipeline. The cron-trigger will be responsible for running this pipeline (and therefore synchronizing the teams) in a fully automated manner. +> Codefresh has an internal cache for SSO configuration, and it can take up to five minutes for your changes to take effect. -This way you can synchronize your teams every day/week/hour depending on you cron trigger setup. +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on) diff --git a/_docs/administration/single-sign-on/saml-setup.md b/_docs/administration/single-sign-on/saml-setup.md index 52559356..bfed1283 100644 --- a/_docs/administration/single-sign-on/saml-setup.md +++ b/_docs/administration/single-sign-on/saml-setup.md @@ -71,7 +71,7 @@ Once Federated SSO has been configured, the process works as follows: Here's what you need to do to configure SSO via SAML in Codefresh: 1. Configure SSO settings for the IdP in Codefresh: - This generally includes defining settings in Codefresh and in the IdP. + This generally includes defining settings in both in Codefresh and in the IdP. Codefresh supports SAML SSO for the following: * [JumpCloud]({{site.baseurl}}/docs/administration/single-sign-on/saml/saml-jumpcloud) * [Okta]({{site.baseurl}}/docs/administration/single-sign-on/saml/saml-okta) @@ -91,19 +91,45 @@ Here's what you need to do to configure SSO via SAML in Codefresh: > These settings are for the SaaS version of Codefresh. For an on-premises setup, use the URLs that match your installation. -1. Test integration - Test the integrations to verify the connection settings. - -1. Set an IdP as the default provider - -1. Set the SSO for each user +1. Test integration with the IdP + + >Before enabling SSO for users, you **MUST** make sure that it is working for the test user. If SSO is enabled for a user, Codefresh blocks logins through other IDPs for this user and only the enabled SSO is allowed. If the selected SSO method does not work for some reason, the user will be locked out of Codefresh. + + 1. In the Codefresh UI, on the toolbar, click the **Settings** icon and then select **Account Settings**. + 1. From the sidebar, below Access & Collaboration, select [**Users & Teams**](https://g.codefresh.io/2.0/account-settings/single-sign-on){:target="\_blank"}. + 1. Add an active user to be used for testing. We recommend you use your own user. + 1. Change Login method by selecting your Auth provider from the SSO drop-down. + + {% include image.html + lightbox="true" + file="/images/administration/sso/collaborators.png" + url="/images/administration/sso/collaborators.png" + alt="Adding collaborators" + caption="Adding collaborators" + max-width="70%" + %} + + {:start="5"} + 1. Keep the current browser session open, and log in via Corporate SSO in an incognito tab (or another browser). + + {% include image.html + lightbox="true" + file="/images/administration/sso/sign-with-sso.png" + url="/images/administration/sso/sign-with-sso.png" + alt="Sign-in with SSO" + caption="Sign-in with SSO" + max-width="50%" + %} + +1. (Optional) [Set an IdP as the default provider]({{site.baseurl}}/docs/single-sign-on/team-sync/#set-a-default-sso-provider-for-account) + You can select an IdP as the default SSO provider for a Codefresh account. This means that all the new users added to that account will automatically use the selected IdP for signin. +1. (Optional) [Set the SSO method for each user]({{site.baseurl}}/docs/single-sign-on/team-sync/#select-sso-method-for-individual-users) + You can also select if needed, a different SSO provider for every user or for specific users. > Codefresh has an internal cache for SSO configuration, and it can take up to five minutes for your changes to take effect. - - - -* [Selecting SSO method for collaborators]({{site.baseurl}}/docs/administration/single-sign-on/sso-setup-oauth2/#selecting-sso-method-for-collaborators) --> +## Related articles +[Federated Single Sign-On (SSO) overview]({{site.baseurl}}/docs/administration/single-sign-on) diff --git a/_docs/administration/single-sign-on/sso-setup-oauth2.md b/_docs/administration/single-sign-on/sso-setup-oauth2.md deleted file mode 100644 index 93d4f5fc..00000000 --- a/_docs/administration/single-sign-on/sso-setup-oauth2.md +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: "Setting Up OpenID Connect Federated Single Sign-On (SSO)" -description: "" -group: administration -sub_group: single-sign-on -redirect_from: - - /docs/sso/sso-setup-oauth2/ - - /docs/enterprise/single-sign-on/sso-setup-oauth2/ -toc: true ---- - -Codefresh natively supports login using GitHub, Bitbucket and GitLab using the OpenID Connect (OAUTH 2.0) protocol. You can add new SSO integrations based on OAUTH 2.0 as part of the Codefresh Enterprise plan. - - -### Prerequisites - -To successfully add an identity provider in Codefresh, you must configure settings both for the identity provider and in Codefresh. -You need to: - -1. Configure your identity provider to provide SSO services to Codefresh. The configuration differs per identity provider. -1. Set up Codefresh to point to your identity provider, common for all identity providers. - -> SSO is only available to Enterprise customers. Please [contact sales](https://codefresh.io/contact-sales/) in order to enable it for your Codefresh account. - -### SSO configuration using OAuth2 - -SSO configuration in Codefresh is similar regardless of the identity provider selected. These settings are common to all providers: - -* **Display Name**: The name of your identity provider -* **Client ID**: The ID used for the connection -* **Client Secret**: The secret associated with the ID - -For detailed information on how to configure SSO for your identity provider, see the following: - -[Azure]({{site.baseurl}}/docs/administration/single-sign-on/sso-azure/) -[Google]({{site.baseurl}}/docs/administration/single-sign-on/sso-google/) -[Okta]({{site.baseurl}}/docs/administration/single-sign-on/sso-okta/) -[OneLogin]({{site.baseurl}}/docs/administration/single-sign-on/sso-onelogin/). - - -### Test SSO with your identity provider - -Once you configure SSO for your identity provider, do the following: -1. On the sidebar, below **User Management**, select **People**. -1. Add an active user for testing purposes. We recommend you use your own user. -1. Change Login method by selecting your Auth provider in the SSO drop-down. - - {% include image.html -lightbox="true" -file="/images/administration/sso/collaborators.png" -url="/images/administration/sso/collaborators.png" -alt="Adding collaborators" -caption="Adding collaborators" -max-width="30%" -%} - -{:start="3"} -1. Keep the current browser session open, and log in via Corporate SSO in an incognito tab (or another browser). - - {% include image.html -lightbox="true" -file="/images/administration/sso/sign-with-sso.png" -url="/images/administration/sso/sign-with-sso.png" -alt="Sign-in with SSO" -caption="Sign-in with SSO" -max-width="50%" -%} - -{:start="4"} -1. If everything works as expected, add more users. - ->Before enabling SSO for all users, you **MUST** make sure that it works for the test user. Once SSO is enabled for a user, Codefresh blocks logins through other IDPs for this user, and only allows login through the enabled SSO. If the selected SSO method does not work for some reason, the user is locked out of Codefresh. - - -## Select SSO method for collaborators - -To add users and select their SSO method, from the sidebar, select **Collaborators**. Then add the user's email or Codefresh username. -In addition to their role, you can now select the SSO method to use: - - {% include image.html -lightbox="true" -file="/images/administration/sso/select-user-sso.png" -url="/images/administration/sso/select-user-sso.png" -alt="Selecting SSO method" -caption="Selecting SSO method" -max-width="50%" -%} - -**SSO login for new and existing users** -If you have multiple SSO providers configured, you can select a different provider for each user if so required. - -* New users - If you have an SSO provider selected as the default, that provider is automatically assigned to new users, added either manually or via team synchronization. - -* Existing users - SSO login is not configured by default for existing users. You must _explicitly select_ the SSO provider for existing users. - If SSO login is already configured for an existing user, and you add a new identity provider, to change the SSO login to the new provider, you must _select_ the new provider for the user. - - -### Define a default identity provider - -If you have multiple identity providers for SSO, you can define one of them as your default provider. -When you define a default provider: -* The SSO method is automatically selected for all newly invited users -* All new users receive an email with an invite link that points directly to the login page of that SSO provider - - -1. Mouse over the top-right of the SSO screen - - {% include image.html -lightbox="true" -file="/images/administration/sso/default-sso.png" -url="/images/administration/sso/default-sso.png" -alt="Default SSO provider" -caption="Default SSO provider" -max-width="90%" -%} - -### Sync teams after initial SSO setup - -Once the initial setup is done, you can also sync your teams between Codefresh and the identity provider. -You can do this via the [Codefresh Cli](https://codefresh-io.github.io/cli/), using the [sync command](https://codefresh-io.github.io/cli/teams/synchronize-teams/). - -For example, to sync you azure teams you can execute: - -``` -codefresh synchronize teams my-client-name -t azure - -``` - -You can find the client-name from the SSO UI. - -{% include image.html -lightbox="true" -file="/images/administration/sso/azure/client-name.png" -url="/images/administration/sso/azure/client-name.png" -alt="SSO Client Name" -caption="SSO Client Name" -max-width="40%" -%} - -Even though you can run this command manually, it makes more sense to run it periodically as a job. And the obvious -way to perform this is with a Codefresh pipeline. The CLI can be used as a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). - -You can create a git repository with a [codefresh.yml]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) file with the following contents: - -`YAML` -{% highlight yaml %} -{% raw %} -version: '1.0' -steps: - syncMyTeams: - title: syncTeams - image: codefresh/cli - commands: - - 'codefresh synchronize teams my-client-name -t azure' -{% endraw %} -{% endhighlight %} - -To fully automate this pipeline, set a [cron trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/cron-triggers/) for this pipeline. The cron-trigger is responsible for running this pipeline, (and therefore synchronizing the teams), in a fully automated manner. -This way you can synchronize your teams every day/week/hour depending on you cron trigger setup. - diff --git a/_docs/administration/single-sign-on/team-sync.md b/_docs/administration/single-sign-on/team-sync.md index b7721303..252012e3 100644 --- a/_docs/administration/single-sign-on/team-sync.md +++ b/_docs/administration/single-sign-on/team-sync.md @@ -1,5 +1,5 @@ --- -title: Common configuration for SSO +title: Common configuration for SSO providers description: "Syncing teams, selecting SSO provider after initial SSO setup" group: single-sign-on toc: true @@ -135,7 +135,7 @@ max-width="90%" %} --> -## Selecting SSO method for individual users +## Select SSO method for individual users In addition to setting a default provider for your account, you can select a different provider for each user if so required. * New users From 1d941e8dc41d79b1f1a400f68e4b4888f6e19985 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 5 Dec 2022 10:19:28 +0200 Subject: [PATCH 13/43] Add CI examples from classic Ported all yaml examples and go lang examples from Classic to example-catalog bucket --- _docs/example-catalog/amazon-ecs.md | 155 ++++++++++ ...n-image-from-a-different-git-repository.md | 94 ++++++ ...ld-an-image-specify-dockerfile-location.md | 74 +++++ .../build-an-image-with-build-arguments.md | 133 +++++++++ ...e-with-the-dockerfile-in-root-directory.md | 70 +++++ .../build-and-push-an-image.md | 135 +++++++++ _docs/example-catalog/call-child-pipelines.md | 108 +++++++ _docs/example-catalog/cc/c-make.md | 75 +++++ _docs/example-catalog/cc/cpp-cmake.md | 126 ++++++++ _docs/example-catalog/ci-examples/cc.md | 10 + _docs/example-catalog/ci-examples/general.md | 16 ++ .../ci-examples/general/selenium-test.md | 75 +++++ _docs/example-catalog/ci-examples/golang.md | 13 + _docs/example-catalog/ci-examples/java.md | 15 + .../ci-examples/mobile/android.md | 81 ++++++ _docs/example-catalog/ci-examples/nodejs.md | 14 + _docs/example-catalog/ci-examples/python.md | 11 + _docs/example-catalog/ci-examples/scala.md | 10 + _docs/example-catalog/codacy-testing.md | 173 +++++++++++ _docs/example-catalog/codecov-testing.md | 126 ++++++++ _docs/example-catalog/coveralls-testing.md | 218 ++++++++++++++ .../decryption-with-mozilla-sops.md | 179 ++++++++++++ _docs/example-catalog/deploy-to-heroku.md | 213 ++++++++++++++ .../deploy-to-tomcat-via-scp.md | 123 ++++++++ .../example-catalog/deploy-with-kustomize.md | 248 ++++++++++++++++ _docs/example-catalog/docker-swarm.md | 227 +++++++++++++++ _docs/example-catalog/dotnet.md | 115 ++++++++ _docs/example-catalog/elastic-beanstalk.md | 137 +++++++++ _docs/example-catalog/examples.md | 119 ++++++++ _docs/example-catalog/fan-in-fan-out.md | 206 ++++++++++++++ ...short-sha-id-and-use-it-in-a-ci-process.md | 69 +++++ _docs/example-catalog/git-checkout-custom.md | 105 +++++++ _docs/example-catalog/git-checkout.md | 204 +++++++++++++ _docs/example-catalog/gitops-secrets.md | 232 +++++++++++++++ .../golang/golang-hello-world.md | 268 ++++++++++++++++++ _docs/example-catalog/golang/goreleaser.md | 121 ++++++++ _docs/example-catalog/helm.md | 225 +++++++++++++++ .../example-catalog/import-data-to-mongodb.md | 57 ++++ .../integration-tests-with-mongo.md | 101 +++++++ .../integration-tests-with-mysql.md | 113 ++++++++ .../integration-tests-with-postgres.md | 99 +++++++ .../integration-tests-with-redis.md | 129 +++++++++ _docs/example-catalog/java/gradle.md | 208 ++++++++++++++ _docs/example-catalog/java/publish-jar.md | 117 ++++++++ _docs/example-catalog/java/spring-boot-2.md | 256 +++++++++++++++++ _docs/example-catalog/launch-composition.md | 87 ++++++ ...vice-environment-variables-using-a-file.md | 57 ++++ _docs/example-catalog/mobile.md | 9 + .../nodejs-angular2-mongodb.md | 50 ++++ _docs/example-catalog/nodejs/lets-chat.md | 119 ++++++++ _docs/example-catalog/nodejs/react.md | 174 ++++++++++++ _docs/example-catalog/nodejs/voting-app.md | 88 ++++++ _docs/example-catalog/nomad.md | 226 +++++++++++++++ _docs/example-catalog/non-git-checkout.md | 101 +++++++ _docs/example-catalog/packer-gcloud.md | 134 +++++++++ _docs/example-catalog/php.md | 132 +++++++++ .../populate-a-database-with-existing-data.md | 153 ++++++++++ _docs/example-catalog/pulumi.md | 117 ++++++++ _docs/example-catalog/python/django.md | 175 ++++++++++++ _docs/example-catalog/python/voting-app.md | 90 ++++++ _docs/example-catalog/ruby.md | 182 ++++++++++++ .../example-catalog/run-integration-tests.md | 102 +++++++ _docs/example-catalog/run-unit-tests.md | 105 +++++++ _docs/example-catalog/rust.md | 83 ++++++ .../scala/scala-hello-world.md | 185 ++++++++++++ ...-docker-container-using-http-basic-auth.md | 86 ++++++ .../sending-the-notification-to-jira.md | 88 ++++++ .../sending-the-notification-to-slack.md | 45 +++ .../shared-volumes-between-builds.md | 117 ++++++++ ...om-composition-step-for-other-yml-steps.md | 52 ++++ .../spring-boot-kafka-zookeeper.md | 198 +++++++++++++ _docs/example-catalog/terraform.md | 114 ++++++++ _docs/example-catalog/transferring-php-ftp.md | 118 ++++++++ ...r-a-k8s-deployment-from-docker-registry.md | 135 +++++++++ .../uploading-or-downloading-from-gs.md | 153 ++++++++++ .../use-kubectl-as-part-of-freestyle-step.md | 36 +++ .../vault-secrets-in-the-pipeline.md | 116 ++++++++ _docs/example-catalog/web-terminal.md | 42 +++ 78 files changed, 9272 insertions(+) create mode 100644 _docs/example-catalog/amazon-ecs.md create mode 100644 _docs/example-catalog/build-an-image-from-a-different-git-repository.md create mode 100644 _docs/example-catalog/build-an-image-specify-dockerfile-location.md create mode 100644 _docs/example-catalog/build-an-image-with-build-arguments.md create mode 100644 _docs/example-catalog/build-an-image-with-the-dockerfile-in-root-directory.md create mode 100644 _docs/example-catalog/build-and-push-an-image.md create mode 100644 _docs/example-catalog/call-child-pipelines.md create mode 100644 _docs/example-catalog/cc/c-make.md create mode 100644 _docs/example-catalog/cc/cpp-cmake.md create mode 100644 _docs/example-catalog/ci-examples/cc.md create mode 100644 _docs/example-catalog/ci-examples/general.md create mode 100644 _docs/example-catalog/ci-examples/general/selenium-test.md create mode 100644 _docs/example-catalog/ci-examples/golang.md create mode 100644 _docs/example-catalog/ci-examples/java.md create mode 100644 _docs/example-catalog/ci-examples/mobile/android.md create mode 100644 _docs/example-catalog/ci-examples/nodejs.md create mode 100644 _docs/example-catalog/ci-examples/python.md create mode 100644 _docs/example-catalog/ci-examples/scala.md create mode 100644 _docs/example-catalog/codacy-testing.md create mode 100644 _docs/example-catalog/codecov-testing.md create mode 100644 _docs/example-catalog/coveralls-testing.md create mode 100644 _docs/example-catalog/decryption-with-mozilla-sops.md create mode 100644 _docs/example-catalog/deploy-to-heroku.md create mode 100644 _docs/example-catalog/deploy-to-tomcat-via-scp.md create mode 100644 _docs/example-catalog/deploy-with-kustomize.md create mode 100644 _docs/example-catalog/docker-swarm.md create mode 100644 _docs/example-catalog/dotnet.md create mode 100644 _docs/example-catalog/elastic-beanstalk.md create mode 100644 _docs/example-catalog/examples.md create mode 100644 _docs/example-catalog/fan-in-fan-out.md create mode 100644 _docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process.md create mode 100644 _docs/example-catalog/git-checkout-custom.md create mode 100644 _docs/example-catalog/git-checkout.md create mode 100644 _docs/example-catalog/gitops-secrets.md create mode 100644 _docs/example-catalog/golang/golang-hello-world.md create mode 100644 _docs/example-catalog/golang/goreleaser.md create mode 100644 _docs/example-catalog/helm.md create mode 100644 _docs/example-catalog/import-data-to-mongodb.md create mode 100644 _docs/example-catalog/integration-tests-with-mongo.md create mode 100644 _docs/example-catalog/integration-tests-with-mysql.md create mode 100644 _docs/example-catalog/integration-tests-with-postgres.md create mode 100644 _docs/example-catalog/integration-tests-with-redis.md create mode 100644 _docs/example-catalog/java/gradle.md create mode 100644 _docs/example-catalog/java/publish-jar.md create mode 100644 _docs/example-catalog/java/spring-boot-2.md create mode 100644 _docs/example-catalog/launch-composition.md create mode 100644 _docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md create mode 100644 _docs/example-catalog/mobile.md create mode 100644 _docs/example-catalog/nodejs-angular2-mongodb.md create mode 100644 _docs/example-catalog/nodejs/lets-chat.md create mode 100644 _docs/example-catalog/nodejs/react.md create mode 100644 _docs/example-catalog/nodejs/voting-app.md create mode 100644 _docs/example-catalog/nomad.md create mode 100644 _docs/example-catalog/non-git-checkout.md create mode 100644 _docs/example-catalog/packer-gcloud.md create mode 100644 _docs/example-catalog/php.md create mode 100644 _docs/example-catalog/populate-a-database-with-existing-data.md create mode 100644 _docs/example-catalog/pulumi.md create mode 100644 _docs/example-catalog/python/django.md create mode 100644 _docs/example-catalog/python/voting-app.md create mode 100644 _docs/example-catalog/ruby.md create mode 100644 _docs/example-catalog/run-integration-tests.md create mode 100644 _docs/example-catalog/run-unit-tests.md create mode 100644 _docs/example-catalog/rust.md create mode 100644 _docs/example-catalog/scala/scala-hello-world.md create mode 100644 _docs/example-catalog/secure-a-docker-container-using-http-basic-auth.md create mode 100644 _docs/example-catalog/sending-the-notification-to-jira.md create mode 100644 _docs/example-catalog/sending-the-notification-to-slack.md create mode 100644 _docs/example-catalog/shared-volumes-between-builds.md create mode 100644 _docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md create mode 100644 _docs/example-catalog/spring-boot-kafka-zookeeper.md create mode 100644 _docs/example-catalog/terraform.md create mode 100644 _docs/example-catalog/transferring-php-ftp.md create mode 100644 _docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry.md create mode 100644 _docs/example-catalog/uploading-or-downloading-from-gs.md create mode 100644 _docs/example-catalog/use-kubectl-as-part-of-freestyle-step.md create mode 100644 _docs/example-catalog/vault-secrets-in-the-pipeline.md create mode 100644 _docs/example-catalog/web-terminal.md diff --git a/_docs/example-catalog/amazon-ecs.md b/_docs/example-catalog/amazon-ecs.md new file mode 100644 index 00000000..b4bdc8bd --- /dev/null +++ b/_docs/example-catalog/amazon-ecs.md @@ -0,0 +1,155 @@ +--- +title: "Amazon ECS/Fargate" +description: "How to use Codefresh to deploy Docker containers to ECS/Fargate" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/amazon-ecs/ + - /docs/deploy-your-containers/ + - /docs/deploy-your-containers/amazon-ecs/ +toc: true +--- +Codefresh can deploy to any ECS or Fargate cluster created in Amazon. + +{% include image.html +lightbox="true" +file="/images/examples/amazon-ecs/ecs-pipeline-deployment.png" +url="/images/examples/amazon-ecs/ecs-pipeline-deployment.png" +alt="Deploying to Amazon ECS" +caption="Deploying to Amazon ECS" +max-width="100%" +%} + +## Prerequisites + + +1. Configure an ECS (or Fargate) Cluster with at least one running instance. +1. Configure an ECS Service and Task Definition with a reference to **the image that you are going to build and push.** See [the official amazon docs](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) for more details. +1. Connect your [ECR to Codefresh]({{site.baseurl}}/docs/docker-registries/external-docker-registries/amazon-ec2-container-registry/) so that it can be used by name in Codefresh pipelines. +1. Verify you have AWS Credentials (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`), with the following privileges: + + `JSON` +{% highlight json %} +{% raw %} +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "Stmt1479146904000", + "Effect": "Allow", + "Action": [ + "ecs:DescribeServices", + "ecs:DescribeTaskDefinition", + "ecs:DescribeTasks", + "ecs:ListClusters", + "ecs:ListServices", + "ecs:ListTasks", + "ecs:RegisterTaskDefinition", + "ecs:UpdateService" + ], + "Resource": [ + "*" + ] + } + ] +} +{% endraw %} +{% endhighlight %} + + + +## Create a CI/CD pipeline for ECS/Fargate + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - "clone" + - "build" + - "deploy" +steps: + main_clone: + type: "git-clone" + description: "Cloning main repository..." + repo: "${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}" + revision: "${{CF_BRANCH}}" + stage: "clone" + git: github + BuildingDockerImage: + stage: "build" + title: Building Docker Image + type: build + image_name: ${{IMAGE}} + tag: '${{CF_SHORT_REVISION}}' + dockerfile: Dockerfile.multistage + Push: + title: "Pushing image to ECR" + stage: "deploy" + type: "push" + tag: '${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}}' + registry: "ecr" + candidate: "${{BuildingDockerImage}}" + DeployToFargate: + stage: "deploy" + image: codefreshplugins/cf-deploy-ecs + commands: + - cfecs-update ${{REGION}} ${{ECS_CLUSTER_NAME}} ${{ECS_SERVICE_NAME}} --image-name ${{IMAGE_PREFIX}}/${{IMAGE}} --image-tag '${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}}' + environment: + - AWS_ACCESS_KEY_ID=${{AWS_ACCESS_KEY_ID}} + - AWS_SECRET_ACCESS_KEY=${{AWS_SECRET_ACCESS_KEY}} + +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. Uses a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) to create a Docker image +1. Uses a [push step]({{site.baseurl}}/docs/codefresh-yaml/steps/push/) to push the docker image to ECR. The registry was previously [connected in Codefresh]({{site.baseurl}}/docs/docker-registries/external-docker-registries/) with the `ecr` identifier. +1. Runs `codefreshplugins/cf-deploy-ecs` to perform the actual deployment + + +The pipeline needs [environment variables]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/#pipeline-settings) that hold all the required parameters + +{% include image.html +lightbox="true" +file="/images/examples/amazon-ecs/ecs-variables.png" +url="/images/examples/amazon-ecs/ecs-variables.png" +alt="ECS environment variables" +caption="ECS environment variables" +max-width="80%" +%} + + + + +Note that the **`--image-name`** and **`--image-tag`** pair should comprise the **full name** of the image that was pushed to the registry (including the registry name) in order to be correctly referred by the corresponding Task Definition. + + + +## Deployment Flow + +The `codefreshplugins/cf-deploy-ecs` step performs the following: + + +1. Gets the ECS service by specified `aws-region`, `ecs-cluster`, and `service-names`. +1. Creates a new revision from the current task definition of the service. If `--image-name` and `--image-tag` are provided, it replaces the image tag. +1. Runs the `update-service` command with the new task definition revision. +1. Waits for the deployment to complete. + * Deployment is successfully completed if `runningCount == desiredCount` for PRIMARY deployment - see `aws ecs describe-services` + * The `cfecs-update` command exits with a timeout error if after --timeout (default = 900s) `runningCount` does not equal `desiredCount` + * The `cfecs-update` exits with an error if --max-failed (default = 2) or more ECS tasks were stopped with error for the task definition that you are deploying. ECS continuously retries failed tasks. + +You can also find the same step in the form of a [Codefresh plugin](https://codefresh.io/steps/step/ecs-deploy). + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [External Registries]({{site.baseurl}}/docs/docker-registries/external-docker-registries/) + + diff --git a/_docs/example-catalog/build-an-image-from-a-different-git-repository.md b/_docs/example-catalog/build-an-image-from-a-different-git-repository.md new file mode 100644 index 00000000..736b030c --- /dev/null +++ b/_docs/example-catalog/build-an-image-from-a-different-git-repository.md @@ -0,0 +1,94 @@ +--- +title: "Build an Image from a Different Git Repository" +description: "Build microservices from other repositories" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/build-an-image-from-a-different-git-repository/ +toc: true +--- + +In most cases, your Codefresh pipeline will checkout a single Git repository. Codefresh also has great support for [Monorepos]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/git-triggers/#using-the-modified-files-field-to-constrain-triggers-to-specific-folderfiles) if you have placed all your applications in a single repository. + +A Codefresh pipeline is not really tied to a specific git repository, which means that by [checking out multiple git repositories]({{site.baseurl}}/docs/yaml-examples/examples/git-checkout/#cloning-multiple-repositories) you can build docker images from other unrelated repositories in a single pipeline if you wish to do so. + +## Building Docker images from other Git repositories + + +Here is a Codefresh pipeline that checks out two micro-services from two separate Git repositories. + +{% include image.html +lightbox="true" +file="/images/examples/docker-build/build-from-other-git-repo.png" +url="/images/examples/docker-build/build-from-other-git-repo.png" +alt="Checkout and build docker images" +caption="Checkout and build docker images" +max-width="100%" +%} + +And here is the [pipeline definition]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/). + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - 'clone phase' + - 'build phase' +steps: + checkoutApp1: + title: 'Cloning first repository...' + type: git-clone + repo: kostis-codefresh/example_nodejs_postgres + revision: experiment1 + git: github + stage: 'clone phase' + checkoutApp2: + title: 'Cloning second repository...' + type: git-clone + repo: kostis-codefresh/trivial-go-web + revision: master + git: github + stage: 'clone phase' + myFirstDockerImage: + title: 'Building Microservice A' + type: build + dockerfile: Dockerfile + image_name: my-nodejs-image + tag: from-develop-branch + working_directory: './example_nodejs_postgres' + stage: 'build phase' + mySecondDockerImage: + title: 'Building Microservice B' + type: build + dockerfile: Dockerfile + working_directory: './trivial-go-web' + image_name: my-app-image + tag: from-master-branch + stage: 'build phase' +{% endraw %} +{% endhighlight %} + +The pipeline first checks out two different Git repositories (which themselves contain Dockerfiles). Then it creates a Docker image for each one using the respective Dockerfile. + +You can see both images in the [Docker image dashboard]({{site.baseurl}}/docs/docker-registries/working-with-docker-registries/#viewing-docker-images) . + +{% include image.html +lightbox="true" +file="/images/examples/docker-build/two-docker-images.png" +url="/images/examples/docker-build/two-docker-images.png" +alt="Docker images from other Git repos" +caption="Docker images from other Git repos" +max-width="100%" +%} + + +Notice that there are no explicit push steps in the pipeline, as all successful Codefresh pipelines automatically push to the private Docker registry. + + +## What to read next + +- [Git Clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +- [Build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) +- [Build and Push an image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image/) +- [Parallel pipelines]({{site.baseurl}}/docs/codefresh-yaml/advanced-workflows/) diff --git a/_docs/example-catalog/build-an-image-specify-dockerfile-location.md b/_docs/example-catalog/build-an-image-specify-dockerfile-location.md new file mode 100644 index 00000000..d8126780 --- /dev/null +++ b/_docs/example-catalog/build-an-image-specify-dockerfile-location.md @@ -0,0 +1,74 @@ +--- +title: "Build an Image - Specify Dockerfile Location" +description: "How to choose a Dockerfile to build with Codefresh pipelines" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/build-an-image-specify-dockerfile-location/ +toc: true +--- + +Sometimes you have a project where the Dockerfile is **not** in the root folder of the project. Maybe the repository has multiple projects inside (each with its own Dockerfile) or you simply want to use a different folder for the Docker context + +>The source code of the repository is located at [https://github.com/codefreshdemo/cf-example-dockerfile-other-location](https://github.com/codefreshdemo/cf-example-dockerfile-other-location). Feel free to fork it if you want to follow along. + +If you don't already have a Codefresh account, you can easily create a free one from the [sign-up page]({{site.baseurl}}/docs/getting-started/create-a-codefresh-account/). + + +## Building a Dockerfile from a different folder + +By default docker uses the Dockerfile of the current folder if you run a single command like: + +``` +docker build . -t my-web-app +``` + +If your Dockerfile is in another folder then you need to specify it explicitly with: + +``` +docker build . -t my-web-app -f subfolder/Dockerfile +``` + +Codefresh supports a similar syntax as well. The `dockerfile` property of the [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) can accept a full path. + +Here is the full pipeline: + + `codefresh.yml` +{% highlight yaml %} +version: '1.0' +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: 'codefreshdemo/cf-example-dockerfile-other-location' + revision: 'master' + git: github + build_my_app: + title: Building Node.Js Docker Image + type: build + image_name: my-app + working_directory: '.' + tag: 'master' + dockerfile: docker/Dockerfile +{% endhighlight %} + +This pipeline checks out the source code of the repository and then builds a dockerfile found at the subfolder `docker` while still keeping as Docker context the root directory. + +{% include image.html +lightbox="true" +file="/images/examples/docker-build/build-spefify-dockerfile.png" +url="/images/examples/docker-build/build-spefify-dockerfile.png" +alt="Building a Docker image with specific Dockerfile" +caption="Building a Docker image with specific Dockerfile" +max-width="100%" +%} + +You could also change the Docker build context by editing the `working_directory` property. By default it is looking at the root folder of the project, but any subfolder path is also valid. + +## What to read next + +- [Pipeline Build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) +- [Build an Image with the Dockerfile in Root Directory]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-dockerfile-in-root-directory/) +- [Build an Image from a Different Git Repository]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-from-a-different-git-repository) +- [Build and Push an Image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image) +- [Build an Image With Build Arguments]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-with-build-arguments) \ No newline at end of file diff --git a/_docs/example-catalog/build-an-image-with-build-arguments.md b/_docs/example-catalog/build-an-image-with-build-arguments.md new file mode 100644 index 00000000..d198733a --- /dev/null +++ b/_docs/example-catalog/build-an-image-with-build-arguments.md @@ -0,0 +1,133 @@ +--- +title: "Build an Image with Build Arguments" +description: "Use docker argument in Codefresh pipelines" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/build-an-image-with-build-arguments/ +toc: true +--- + +Building a Docker image that requires build arguments is very easy with Codefresh pipelines. + +>The source code of the repository is located at [https://github.com/codefreshdemo/cf-example-build-arguments](https://github.com/codefreshdemo/cf-example-build-arguments). Feel free to fork it if you want to follow along. + +If you don't already have a Codefresh account, you can easily create a free one from the [sign-up page]({{site.baseurl}}/docs/getting-started/create-a-codefresh-account/). + +## Using Docker build arguments + +The example application is a very simple NodeJS application with the following dockerfile: + +`Dockerfile` +{% highlight docker %} +{% raw %} +ARG NODE_VERSION +FROM node:$NODE_VERSION + +ARG APP_DIR + +RUN mkdir -p $APP_DIR + +WORKDIR $APP_DIR + +COPY package.json . +RUN npm install --silent +COPY . . +EXPOSE 3000 + +ENV PORT 3000 + +CMD [ "npm", "start" ] +{% endraw %} +{% endhighlight %} + +This Dockerfile expects two [build arguments](https://docs.docker.com/engine/reference/builder/#/arg): + +* `NODE_VERSION` is the version of Node image to use as base +* `APP_DIR` is the source directory to be used inside the container + +## Building a Dockerfile passing values for build arguments + +When you build an image locally on your workstation you can define build arguments with the `--build-arg` syntax: + +``` +docker build . -t my-node-app --build-arg NODE_VERSION=8 --build-arg APP_DIR=/usr/src/app +``` + +The same thing can also be achieved within a Codefresh pipeline: + + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: 'codefreshdemo/cf-example-build-arguments' + revision: 'master' + git: github + build_my_app: + title: Building Node.Js Docker Image + type: build + image_name: my-app + working_directory: '.' + tag: 'master' + dockerfile: Dockerfile + build_arguments: + - NODE_VERSION=8 + - APP_DIR=/usr/src/app +{% endraw %} +{% endhighlight %} + +This pipeline checks out the source code of the repository and then builds the Dockerfile by passing the values `8` and `/usr/src/app` to the two arguments. + +{% include image.html +lightbox="true" +file="/images/examples/docker-build/docker-build-arguments.png" +url="/images/examples/docker-build/docker-build-arguments.png" +alt="Using Docker build arguments in a pipeline" +caption="Using Docker build arguments in a pipeline" +max-width="100%" +%} + +## Using Codefresh variables as build arguments + +In the previous pipeline the docker build arguments are defined in the pipeline itself, but you could also use [pipeline variables]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/#creating-new-pipelines), [shared configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/) or any other standard mechanism you already have in place. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: 'codefreshdemo/cf-example-build-arguments' + revision: 'master' + git: github + build_my_app: + title: Building Node.Js Docker Image + type: build + image_name: my-app + working_directory: '.' + tag: 'master' + dockerfile: Dockerfile + build_arguments: + - NODE_VERSION=${{NODE_VERSION_FROM_SHARED_CONFIG}} + - APP_DIR=${{APP_DIR_PIPELINE_VARIABLE}} +{% endraw %} +{% endhighlight %} + +In this case you can also use any of the built-in [Codefresh variables]({{site.baseurl}}/docs/codefresh-yaml/variables/). + + +## What to read next + +- [Pipeline Build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) +- [Build an Image with the Dockerfile in Root Directory]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-dockerfile-in-root-directory/) +- [Build an Image by Specifying the Dockerfile Location]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-specify-dockerfile-location) +- [Build an Image from a Different Git Repository]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-from-a-different-git-repository) +- [Build and Push an Image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image) + diff --git a/_docs/example-catalog/build-an-image-with-the-dockerfile-in-root-directory.md b/_docs/example-catalog/build-an-image-with-the-dockerfile-in-root-directory.md new file mode 100644 index 00000000..65565d21 --- /dev/null +++ b/_docs/example-catalog/build-an-image-with-the-dockerfile-in-root-directory.md @@ -0,0 +1,70 @@ +--- +title: "Build an Image with the Dockerfile in Root Directory" +description: "Get started quickly with building Docker images" +group: yaml-examples +sub_group: examples +permalink: /:collection/yaml-examples/examples/build-an-image-dockerfile-in-root-directory/ +redirect_from: + - /docs/build-an-image-dockerfile-in-root-directory/ + - /docs/deploy-to-kubernetes/get-ready-to-deploy/build-an-image/ +toc: true +--- +Building a Docker image is one of the basic operations in Codefresh pipelines. + +>The source code of the repository is located at [https://github.com/codefreshdemo/cf-yml-example-build-dockerfile-inroot](https://github.com/codefreshdemo/cf-yml-example-build-dockerfile-inroot). Feel free to fork it if you want to follow along. + +If you don't already have a Codefresh account, you can easily create a free one from the [sign-up page]({{site.baseurl}}/docs/getting-started/create-a-codefresh-account/). + + +## Building a Dockerfile from the root folder + +By default docker uses the Dockerfile of the current folder if you run a single command like: + +``` +docker build . -t my-web-app +``` + +The same thing can also be achieved within a Codefresh pipeline: + + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: 'codefreshdemo/cf-yml-example-build-dockerfile-inroot' + revision: 'master' + git: github + build_my_app: + title: Building Node.Js Docker Image + type: build + image_name: my-app + working_directory: '${{main_clone}}' + tag: 'master' + dockerfile: Dockerfile +{% endraw %} +{% endhighlight %} + +This pipeline checks out the source code of the repository and then builds a dockerfile found at the root folder of the project. + +{% include image.html +lightbox="true" +file="/images/examples/docker-build/build-dockerfile-root.png" +url="/images/examples/docker-build/build-dockerfile-root.png" +alt="Building a Docker image with a default Dockerfile" +caption="Building a Docker image with a default Dockerfile" +max-width="100%" +%} + +You could also change the Docker build context by editing the `working_directory` property. By default it is looking at the root folder of the project, but any subfolder path is also valid. + +## What to read next + +- [Pipeline Build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) +- [Build an Image by Specifying the Dockerfile Location]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-specify-dockerfile-location) +- [Build an Image from a Different Git Repository]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-from-a-different-git-repository) +- [Build and Push an Image]({{site.baseurl}}/docs/yaml-examples/examples/build-and-push-an-image) +- [Build an Image With Build Arguments]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-with-build-arguments) \ No newline at end of file diff --git a/_docs/example-catalog/build-and-push-an-image.md b/_docs/example-catalog/build-and-push-an-image.md new file mode 100644 index 00000000..5c978e80 --- /dev/null +++ b/_docs/example-catalog/build-and-push-an-image.md @@ -0,0 +1,135 @@ +--- +title: "Build and Push an Image" +description: "How to build Docker images and push them to registries with Codefresh" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/build-and-push-an-image/ + - /docs/docker-registries/push-image-to-a-docker-registry/ +toc: true +--- + +Building a Docker image and then pushing it to a registry is one of the most basic scenarios for creating a Pipeline. +In this example we will use a demo Node.js application that will be packaged in a Docker image. + +>The source code of the repository is located at [https://github.com/codefreshdemo/cf-example-build-and-push](https://github.com/codefreshdemo/cf-example-build-and-push). Feel free to fork it if you want to follow along. + +If you don't already have a Codefresh account, you can easily create a free one from the [sign-up page]({{site.baseurl}}/docs/getting-started/create-a-codefresh-account/). + + +## Building a Docker image and pushing to your default registry + +Building a Docker image with Codefresh is easy, and only requires a simple step. In addition, all successful pipelines in Codefresh automatically push to [your default Docker registry](https://codefresh.io/docs/docs/docker-registries/external-docker-registries/#the-default-registry) without any other configuration, as long as you have that. + +Here is the most basic pipeline that clones a repo and builds an image: + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: +- checkout +- build +steps: + clone: + title: Cloning main repository... + type: git-clone + stage: checkout + repo: 'codefreshdemo/cf-example-build-and-push' + revision: 'master' + git: github + build_my_app: + title: Building Node.Js Docker Image + type: build + stage: build + image_name: my-node-js-app + working_directory: {{clone}} + tag: 'master' + dockerfile: Dockerfile +{% endraw %} +{% endhighlight %} + +## Building a Docker image and pushing it to any registry. + +You can push your image to any [Registry]({{site.baseurl}}/docs/docker-registries/external-docker-registries/). First you need to connect your external registry in the integrations page. Here are the instructions for: + + * [Docker Hub]({{site.baseurl}}/docs/docker-registries/external-docker-registries/docker-hub/) + * [Google Container Registry]({{site.baseurl}}/docs/docker-registries/external-docker-registries/google-container-registry/) + * [Amazon EC2 Container Registry]({{site.baseurl}}/docs/docker-registries/external-docker-registries/amazon-ec2-container-registry/) + * [Bintray.io]({{site.baseurl}}/docs/docker-registries/external-docker-registries/bintray-io/) + * [Quay.io]({{site.baseurl}}/docs/docker-registries/external-docker-registries/quay-io/) + * [Other Registries]({{site.baseurl}}/docs/docker-registries/external-docker-registries/other-registries/) + +Once that is done, you only need to add a [push step]({{site.baseurl}}/docs/codefresh-yaml/steps/push/) in your pipeline and use the registry name of your integration. + +Here is the full example: + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: +- checkout +- build +- push +steps: + clone: + title: Cloning main repository... + type: git-clone + stage: checkout + repo: 'codefreshdemo/cf-example-build-and-push' + revision: 'master' + git: github + build_my_app: + title: Building Node.Js Docker Image + type: build + stage: build + image_name: my-node-js-app + working_directory: {{clone}} + tag: 'master' + dockerfile: Dockerfile + push_to_my_registry: + stage: 'push' + type: push + title: Pushing to a registry + candidate: ${{build_my_app}} + tag: 'v1.0.0' + registry: dockerhub + image_name: kkapelon/my-node-js-app +{% endraw %} +{% endhighlight %} + +Here we use a specific tag - `v1.0.0` but +Codefresh has several other variables that can be used for tagging images. Common examples that you can use are `CF_BRANCH_TAG_NORMALIZED`, `CF_SHORT_REVISION` or `CF_BUILD_ID`. See the [variables page]({{site.baseurl}}/docs/codefresh-yaml/variables/) for more information. + +{% include image.html + lightbox="true" + file="/images/examples/docker-build/build-and-push-pipeline.png" + url="/images/examples/docker-build/build-and-push-pipeline.png" + alt="Pushing image to external registry" + caption="Pushing image to external registry" + max-width="100%" + %} + + +If you run the pipeline the Docker image will be pushed *both* to the private Docker regisry (by the build step) *and* the external docker registry (by the push step) + + +## More options for push + +Codefresh has several more options when it comes to pushing: + +* You can specify multiple tags to be pushed +* You can use directly ECR registries +* You can embed credentials in the push steps + +See the [push step documentation]({{site.baseurl}}/docs/codefresh-yaml/steps/push/) for more details. + +## What to read next + +- [Pipeline Build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) +- [Pipeline Push step]({{site.baseurl}}/docs/codefresh-yaml/steps/push/) +- [Build an Image with the Dockerfile in Root Directory]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-dockerfile-in-root-directory/) +- [Build an Image by Specifying the Dockerfile Location]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-specify-dockerfile-location) +- [Build an Image from a Different Git Repository]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-from-a-different-git-repository) +- [Build an Image With Build Arguments]({{site.baseurl}}/docs/yaml-examples/examples/build-an-image-with-build-arguments) diff --git a/_docs/example-catalog/call-child-pipelines.md b/_docs/example-catalog/call-child-pipelines.md new file mode 100644 index 00000000..f672849a --- /dev/null +++ b/_docs/example-catalog/call-child-pipelines.md @@ -0,0 +1,108 @@ +--- +title: "Calling a CD pipeline from a CI pipeline" +description: "Learn how to call children pipelines from a parent pipeline" +group: yaml-examples +sub_group: examples +toc: true +--- + +In Codefresh you can easily create nested pipelines by calling other pipelines from within an existing pipeline. This is easily accomplished with the [codefresh-run plugin](https://codefresh.io/steps/step/codefresh-run) that allows you to launch another pipeline and optionally wait for its completion. + +{% include image.html +lightbox="true" +file="/images/examples/nested-pipelines/call-other-pipeline.png" +url="/images/examples/nested-pipelines/call-other-pipeline.png" +alt="Parent and child pipelines" +caption="Parent and child pipelines" +max-width="80%" +%} + +A very common pattern in Codefresh is to have a parent pipeline responsible for Continuous Integration (packaging code) that calls a child pipeline for Continuous Delivery (taking care of deployment). + +## The example Project + +You can see the example project at [https://github.com/codefresh-contrib/call-child-pipeline-sample-app](https://github.com/codefresh-contrib/call-child-pipeline-sample-app). The repository contains a NodeJs app as well as 3 pipelines (one parent and two children). + +## Create a pipeline that calls other pipelines + +Here is the definition of the parent pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - package + - deploy +steps: + main_clone: + title: 'Cloning main repository...' + type: git-clone + repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}' + revision: '${{CF_REVISION}}' + git: github + stage: prepare + read_my_app_version: + title: Reading Application version + stage: prepare + image: node:latest + commands: + - export PACKAGE_VERSION=$(node -p "require('./package.json').version") + - cf_export PACKAGE_VERSION + build_my_docker_image: + title: 'Building My Docker Image' + stage: package + type: build + dockerfile: Dockerfile + image_name: my-app-image + tag: ${{PACKAGE_VERSION}} + call_qa_pipeline: + title: Deploy to QA + stage: deploy + type: codefresh-run + arguments: + PIPELINE_ID: child-pipelines/qa-pipeline + VARIABLE: + - CF_BRANCH=${{CF_BRANCH}} + - CF_REVISION=${{CF_REVISION}} + - APP_VERSION=${{PACKAGE_VERSION}} + when: + branch: + only: + - develop + call_prod_pipeline: + title: Deploy to Prod + stage: deploy + type: codefresh-run + arguments: + PIPELINE_ID: child-pipelines/prod-pipeline + VARIABLE: + - CF_BRANCH=${{CF_BRANCH}} + - CF_REVISION=${{CF_REVISION}} + - APP_VERSION=${{PACKAGE_VERSION}} + when: + branch: + only: + - /^release.*/i + + +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. Uses [cf_export]({{site.baseurl}}/docs/codefresh-yaml/variables/#exporting-environment-variables-from-a-freestyle-step) to create a variable that contains the Application version as specified in `package.json`. +1. Builds a docker image tagged with the Application version using a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) +1. Optionally runs the downstream QA pipeline if the branch is named `develop`. It also passes several environment variables to the child pipeline (including the Application version) +1. Optionally runs the downstream Prod pipeline if the branch name starts with `release`. It also passes several environment variables to the child pipeline (including the Application version) + +The last two steps use [pipeline conditionals]({{site.baseurl}}/docs/codefresh-yaml/conditional-execution-of-steps/) to decide if they will run or not. + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [Pipeline plugins](https://codefresh.io/steps/) \ No newline at end of file diff --git a/_docs/example-catalog/cc/c-make.md b/_docs/example-catalog/cc/c-make.md new file mode 100644 index 00000000..8dd0cc59 --- /dev/null +++ b/_docs/example-catalog/cc/c-make.md @@ -0,0 +1,75 @@ +--- +title: "Compile and test a C application" +description: "Using Codefresh pipelines" +group: learn-by-example +sub_group: cc +toc: true +--- + +Codefresh can work with any C/C++ application very easily as both `gcc` and `g++` are already offered in Dockerhub. There is also another example available with [C++ and cmake]({{site.baseurl}}/docs/learn-by-example/cc/cpp-cmake). + +## The example C project + +You can see the example project at [https://github.com/codefresh-contrib/c-sample-app](https://github.com/codefresh-contrib/c-sample-app). The repository contains a C starter project with a `Makefile` and several targets: + +* `make` compiles the code. +* `make test` runs unit tests +* `make clean` removes artifacts and binaries. + +There are also extra targets for `tags` and `etags`. + +## Create a CI pipeline for C applications + +Creating a CI/CD pipeline for C is very easy, because Codefresh can run any [gcc image](https://hub.docker.com/_/gcc/) that you wish. Gcc docker images already contain the `make` utility. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/cc/c-make-pipeline.png" +url="/images/learn-by-example/cc/c-make-pipeline.png" +alt="Compiling a C application in a pipeline" +caption="Compiling a C application in a pipeline" +max-width="80%" +%} + +Here is the [full pipeline](https://github.com/codefresh-contrib/c-sample-app/blob/master/codefresh.yml) that compiles the application after checking out the code. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - build +steps: + main_clone: + title: Cloning main repository... + stage: checkout + type: git-clone + repo: 'codefresh-contrib/c-sample-app' + revision: master + git: github + compile_my_sources: + title: Compile + stage: build + image: gcc + commands: + - make + run_my_tests: + title: Test + stage: build + image: gcc + commands: + - make test +{% endraw %} +{% endhighlight %} + +This pipeline clones the source code, compiles the code and runs unit tests. In all cases we use the public Docker image of Gcc that also contains `make`. + + +## What to read next + +* [C++ example]({{site.baseurl}}/docs/learn-by-example/cc/cpp-cmake/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) \ No newline at end of file diff --git a/_docs/example-catalog/cc/cpp-cmake.md b/_docs/example-catalog/cc/cpp-cmake.md new file mode 100644 index 00000000..4af30731 --- /dev/null +++ b/_docs/example-catalog/cc/cpp-cmake.md @@ -0,0 +1,126 @@ +--- +title: "Compile and test a C++ application" +description: "Using Codefresh pipelines" +group: learn-by-example +sub_group: cc +toc: true +--- + +Codefresh can work with any C/C++ application very easily as both `gcc` and `g++` are already offered in Dockerhub. There is also another example available with [C and make]({{site.baseurl}}/docs/learn-by-example/cc/c-make). + +## The example C++ project + +You can see the example project at [https://github.com/codefresh-contrib/cpp-sample-app](https://github.com/codefresh-contrib/cpp-sample-app). The repository contains a C++ starter project with a `CMakeLists.txt` file: + +* `cmake .` creates the makefiles. +* `make test` runs unit tests +* `make` compiles the code + +The project is also using the [boost testing libraries](https://www.boost.org/). + +## Cmake, g++ and Docker + +Creating a CI/CD pipeline for C is very easy, because Codefresh can run any [gcc image](https://hub.docker.com/_/gcc/) that you wish. Gcc docker images already contain the `make` utility but not the the `cmake` one. Therefore we will first create a Dockerfile that has `g++`, cmake and the boost libraries. You can follow the same pattern for other development tools that you use. + + +Here is the Dockerfile: + + `Dockerfile` +{% highlight docker %} +{% raw %} +FROM gcc:9.2 + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update && apt-get install -y cmake libgtest-dev libboost-test-dev && rm -rf /var/lib/apt/lists/* + +CMD ["cmake"] + +{% endraw %} +{% endhighlight %} + +This docker build does the following: + +1. Starts from the GCC image +1. Installs cmake and boost +1. Sets cmake as the default command + +## Create a CI pipeline for C++ applications + +We can now use the custom Docker image in order to compile/test the C++ application: + +{% include image.html +lightbox="true" +file="/images/learn-by-example/cc/cpp-cmake-pipeline.png" +url="/images/learn-by-example/cc/cpp-cmake-pipeline.png" +alt="Compiling a C++ application in a pipeline" +caption="Compiling a C++ application in a pipeline" +max-width="80%" +%} + +Here is the [full pipeline](https://github.com/codefresh-contrib/cpp-sample-app/blob/master/codefresh.yml) that compiles the application after checking out the code. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - prepare + - build +steps: + main_clone: + title: Cloning main repository... + stage: checkout + type: git-clone + repo: 'codefresh-contrib/cpp-sample-app' + revision: master + git: github + build_dev_image: + title: Building Dev Image + stage: prepare + type: build + image_name: cmake + working_directory: ./dev/ + tag: 'latest' + dockerfile: Dockerfile + create_makefiles: + title: Create Makefiles + stage: prepare + image: ${{build_dev_image}} + commands: + - cmake . + compile_my_sources: + title: Compile + stage: build + image: ${{build_dev_image}} + commands: + - make + run_my_tests: + title: Test + stage: build + image: ${{build_dev_image}} + commands: + - make test +{% endraw %} +{% endhighlight %} + +This pipeline: + +1. clones the source code +1. Creates a development docker image that has g++, cmake and boost +1. Runs cmake on the source code to create the make files +1. Compiles the source code +1. Runs unit tests + +You can add additional tools in the pipeline by extending the Dockerfile mentioned in the previous section. You can also +change the version of Gcc/g++ by starting from a different public or private Docker image. + + +## What to read next + +* [C example]({{site.baseurl}}/docs/learn-by-example/cc/c-make/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) \ No newline at end of file diff --git a/_docs/example-catalog/ci-examples/cc.md b/_docs/example-catalog/ci-examples/cc.md new file mode 100644 index 00000000..3a94ff95 --- /dev/null +++ b/_docs/example-catalog/ci-examples/cc.md @@ -0,0 +1,10 @@ +--- +title: "C/C++" +description: "How to build C/C++ applications with Codefresh CI/CD pipelines" +group: learn-by-example +toc: true +--- +This section contains Codefresh examples based on C and C++. + +- [C Example with make]({{site.baseurl}}/docs/learn-by-example/cc/c-make) +- [C++ Example with cmake]({{site.baseurl}}/docs/learn-by-example/cc/cpp-cmake) \ No newline at end of file diff --git a/_docs/example-catalog/ci-examples/general.md b/_docs/example-catalog/ci-examples/general.md new file mode 100644 index 00000000..20d5bd50 --- /dev/null +++ b/_docs/example-catalog/ci-examples/general.md @@ -0,0 +1,16 @@ +--- +title: "General" +description: "" +group: learn-by-example +redirect_from: + - /docs/learn-by-example/general/ +toc: true +--- +This section contains Codefresh examples based on other technologies. +{% comment %} +links not available in base documentation +- [How to trigger the another pipeline using cf-cli](doc:how-to-trigger-another-pipeline-using-cf-cli) +- [How to run composition using cf-cli](doc:how-to-run-composition-using-cf-cli-1) +- [How to spin up image using cf-cli](doc:how-to-spin-up-image-using-cf-cli) +{% endcomment %} +- [Selenium test]({{site.baseurl}}/docs/learn-by-example/general/selenium-test/) diff --git a/_docs/example-catalog/ci-examples/general/selenium-test.md b/_docs/example-catalog/ci-examples/general/selenium-test.md new file mode 100644 index 00000000..be3d80b2 --- /dev/null +++ b/_docs/example-catalog/ci-examples/general/selenium-test.md @@ -0,0 +1,75 @@ +--- +title: "Selenium test" +description: "" +excerpt: "" +group: learn-by-example +sub_group: general +redirect_from: + - /docs/general/selenium-test/ +toc: true +--- +Using this repository, we'll help you get up to speed with basic functionality such as: compiling, testing and building Docker images. + +This project uses `JavaScript, Selenium, Protractor` to build an application which will eventually become a distributable Docker image. + +## Looking around +In the root of this repository you'll find a file named codefresh.yml, this is our build descriptor and it describes the different steps that comprise our process. Let's quickly review the contents of this file: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + build_image: + title: Building Image + type: build + dockerfile: Dockerfile + image_name: codefresh/selenium-test + + unit_test: + title: Unit Tests + type: composition + composition: + version: '2' + services: + selenium: + image: selenium/standalone-chrome:2.46.0 + ports: + - 4444:4444 + composition_candidates: + test: + image: ${{build_image}} + volumes: + - /dev/shm:/dev/shm + environment: + GITHUB_ACCOUNT: ${{GITHUB_ACCOUNT}} + GITHUB_PASSWORD: ${{GITHUB_PASSWORD}} + URL: 'https://codefresh.io' + SUITE: 'login' + command: bash -c '/protractor/run-tests.sh' + on_success: + metadata: + set: + - ${{build_image.imageId}}: + - CF_QUALITY: true + on_fail: + metadata: + set: + - ${{build_image.imageId}}: + - CF_QUALITY: false +{% endraw %} +{% endhighlight %} + +{% include image.html +lightbox="true" +file="/images/d0cb57c-codefresh_selenium_env_vars.png" +url="/images/d0cb57c-codefresh_selenium_env_vars.png" +alt="codefresh selenium env vars" +max-width="40%" +%} + +{{site.data.callout.callout_info}} +##### Example + +Just head over to the example [__repository__](https://github.com/codefreshdemo/cf-example-selenium-test){:target="_blank"} in GitHub and follow the instructions there. +{{site.data.callout.end}} diff --git a/_docs/example-catalog/ci-examples/golang.md b/_docs/example-catalog/ci-examples/golang.md new file mode 100644 index 00000000..71a0f869 --- /dev/null +++ b/_docs/example-catalog/ci-examples/golang.md @@ -0,0 +1,13 @@ +--- +title: "Go" +description: "How to build Golang applications with Codefresh CI/CD pipelines" +group: learn-by-example +redirect_from: + - /docs/go/ + - /docs/golang/ +toc: true +--- +This section contains Codefresh examples based on Go. + +- [Golang Docker Example]({{site.baseurl}}/docs/learn-by-example/golang/golang-hello-world/) +- [Golang with goreleaser]({{site.baseurl}}/docs/learn-by-example/golang/goreleaser/) \ No newline at end of file diff --git a/_docs/example-catalog/ci-examples/java.md b/_docs/example-catalog/ci-examples/java.md new file mode 100644 index 00000000..2229280b --- /dev/null +++ b/_docs/example-catalog/ci-examples/java.md @@ -0,0 +1,15 @@ +--- +title: "Java" +description: "" +group: learn-by-example +redirect_from: + - /docs/java/ +toc: true +--- +This section contains Codefresh examples based on Java: + +- [Spring Boot 2 with Maven]({{site.baseurl}}/docs/learn-by-example/java/spring-boot-2/) +- [Gradle]({{site.baseurl}}/docs/learn-by-example/java/gradle/) +- [Publish a JAR]({{site.baseurl}}/docs/learn-by-example/java/publish-jar/) +- [Spring MVC JDBC Template]({{site.baseurl}}/docs/learn-by-example/java/spring-mvc-jdbc-template/) + diff --git a/_docs/example-catalog/ci-examples/mobile/android.md b/_docs/example-catalog/ci-examples/mobile/android.md new file mode 100644 index 00000000..6d0b01e9 --- /dev/null +++ b/_docs/example-catalog/ci-examples/mobile/android.md @@ -0,0 +1,81 @@ +--- +title: "Compile and package an Android application" +description: "Using Codefresh pipelines" +group: learn-by-example +sub_group: mobile +toc: true +--- + +Android applications are using Java/Gradle for their build system. Because Codefresh already supports [Gradle]({{site.baseurl}}/docs/learn-by-example/java/gradle/) it is also very easy to build Android projects. + +Any Gradle command can run inside a Docker image that contains the Android SDK. As an example, we will use a [Nextcloud](https://hub.docker.com/r/nextcloudci/android) image from Dockerhub. + + +## The example project + +You can see the example project at [https://github.com/codefresh-contrib/android-sample-app](https://github.com/codefresh-contrib/android-sample-app). The repository contains a Hello World Android project with the following tasks: + +* `./gradlew test` runs unit tests +* `./gradlew build` builds the application + + +## Create a CI pipeline that compiles/releases Android + +In most cases you would create a similar pipeline to a Gradle project. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/mobile/android-ci-pipeline.png" +url="/images/learn-by-example/mobile/android-ci-pipeline.png" +alt="Building and Testing an Android app" +caption="Building and Testing an Android app" +max-width="80%" +%} + +Here is the [full pipeline](https://github.com/codefresh-contrib/android-sample-app/blob/master/codefresh.yml) that uses a Docker image with the Android SDK in order to run Gradle. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - test + - build +steps: + main_clone: + title: Cloning main repository... + stage: prepare + type: git-clone + repo: 'codefresh-contrib/android-sample-app' + revision: master + git: github + TestIt: + title: Running Tests + stage: test + image: nextcloudci/android:android-48 + commands: + - chmod +x ./gradlew + - ./gradlew test --no-daemon --gradle-user-home=/codefresh/volume/.gradle + BuildIt: + title: Packaging Android App + stage: build + image: nextcloudci/android:android-48 + commands: + - ./gradlew build --no-daemon --gradle-user-home=/codefresh/volume/.gradle +{% endraw %} +{% endhighlight %} + +This pipeline clones the source code, runs unit tests and finally builds the Android application. + +Codefresh is smart enough that [caches automatically]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/#how-caching-works-in-codefresh) for us the workspace of a build (`/codefresh/volume`). This works great for build tools that keep their cache in the project folder, but not for Maven/Gradle which keep their cache externally. By changing the location of the Gradle cache we make sure that Codefresh will cache automatically the Gradle libraries resulting in much faster builds. + + + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) + diff --git a/_docs/example-catalog/ci-examples/nodejs.md b/_docs/example-catalog/ci-examples/nodejs.md new file mode 100644 index 00000000..0f5cc4fe --- /dev/null +++ b/_docs/example-catalog/ci-examples/nodejs.md @@ -0,0 +1,14 @@ +--- +title: "Node.js" +description: "" +group: learn-by-example +redirect_from: + - /docs/nodejs/ +toc: true +--- + +This section contains Codefresh examples based on Node.js: + +- [Let's Chat]({{site.baseurl}}/docs/learn-by-example/nodejs/lets-chat/) - Express.js + Mongo Example +- [Voting app]({{site.baseurl}}/docs/learn-by-example/nodejs/voting-app/) - Microservices app with multiple programming languages +- [React JS app]({{site.baseurl}}/docs/learn-by-example/nodejs/react/) - React.JS + multi stage Docker build example \ No newline at end of file diff --git a/_docs/example-catalog/ci-examples/python.md b/_docs/example-catalog/ci-examples/python.md new file mode 100644 index 00000000..76f5c347 --- /dev/null +++ b/_docs/example-catalog/ci-examples/python.md @@ -0,0 +1,11 @@ +--- +title: "Python" +description: "" +group: learn-by-example +redirect_from: + - /docs/python/ +toc: true +--- +This section contains Codefresh examples based on Python. +- [Voting app]({{ site.baseurl }}/docs/learn-by-example/python/voting-app/) +- [Django]({{ site.baseurl }}/docs/learn-by-example/python/django/) diff --git a/_docs/example-catalog/ci-examples/scala.md b/_docs/example-catalog/ci-examples/scala.md new file mode 100644 index 00000000..5a0991f4 --- /dev/null +++ b/_docs/example-catalog/ci-examples/scala.md @@ -0,0 +1,10 @@ +--- +title: "Scala" +description: "" +group: learn-by-example +redirect_from: + - /docs/scala/ +toc: true +--- +This section contains Codefresh examples based on Scala. +- [Scala: Hello World]({{site.baseurl}}/docs/learn-by-example/scala/scala-hello-world/) diff --git a/_docs/example-catalog/codacy-testing.md b/_docs/example-catalog/codacy-testing.md new file mode 100644 index 00000000..bda8c5e5 --- /dev/null +++ b/_docs/example-catalog/codacy-testing.md @@ -0,0 +1,173 @@ +--- +title: "Codacy Coverage Reports" +description: "How to forward coverage reports to Codacy" +group: yaml-examples +toc: true +--- + +[Codacy](https://www.codacy.com/) is a code review tool that allows for automatic analysis, code coverage tracking, and extensive reports to allow you and your team to improve your code quality over time. + +Analysis reports displayed within Codacy dashboard: +{% include image.html +lightbox="true" +file="/images/testing/codacy/codacy-report.png" +url="/images/testing/codacy/codacy-report.png" +alt="Codacy UI with coverage reports" +max-width="100%" +%} + +## Prerequisites for using Codacy + +* A simple [Codefresh pipeline up and running](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +* A [Codacy account](https://www.codacy.com/) (free, pro or enterprise) +* A testing tool added to your project that produces coverage reports + +Codacy supports over [30 different language integrations](https://docs.codacy.com/getting-started/supported-languages-and-tools/). Depending on the programming language used, it requires little to no set-up. + +You could try it out by cloning our [node example application](https://github.com/codefresh-contrib/codacy-sample-app) that utilises [jest](https://jestjs.io/). + +## Create an Account with Codacy +[Codacy has a free version](https://www.codacy.com/), a pro version, and an on-premises version. The latter two have a free trial, which allows you to test all features over the course of two weeks. You can sign-up via GitHub, Bitbucket, or GitLab. + +When you log into Codacy for the first time, it will ask you to provide access to a repository. At this stage, Codacy will not download any code from your repository but merely access its names. You can then either provide access to selective repositories or your entire git account. + +{% include image.html +lightbox="true" +file="/images/testing/codacy/codacy-add-repo.png" +url="/images/testing/codacy/codacy-add-repo.png" +alt="Add repository to codacy" +max-width="80%" +%} + +## Generate Project API token +To use Codacy, we need a project API token. To generate the token, select your project => go to settings => integrations => add integration => select “Project API”. Make sure that you select the API token from here and not your general project settings. + +{% include image.html +lightbox="true" +file="/images/testing/codacy/create-api-token.png" +url="/images/testing/codacy/create-api-token.png" +alt="Create Project API token" +max-width="80%" +%} + +## Codefresh Pipeline + +In case the project that you want to use Codacy in does not have a pipeline, [create a new pipeline](https://codefresh.io/docs/docs/getting-started/create-a-basic-pipeline/). + +{% include image.html +lightbox="true" +file="/images/testing/codacy/create-codacy-pipeline.png" +url="/images/testing/codacy/create-codacy-pipeline.png" +alt="Create Codacy Pipeline" +max-width="80%" +%} + +**Setting-up step** + +This step is based on our [TypeScript application](https://github.com/codefresh-contrib/codacy-sample-app). Before we are going to set-up our pipeline, we are going to add our Project API token as our environment variable. Note that we have specified our token in the variables section on the right, like displayed in the following screenshot. + +{% include image.html +lightbox="true" +file="/images/testing/codacy/codacy-variable.png" +url="/images/testing/codacy/codacy-variable.png" +alt="Provide Codacy ENV variable" +max-width="80%" +%} + +Once the variable is called through the [Codefresh yml syntax](https://codefresh.io/docs/docs/codefresh-yaml/variables/), it will automatically use the value provided within the variables section. If you are using this example as your pipeline, please delete anything in your pipeline. We can then add the following pipeline to our Inline YAML within the Workflow section in our UI: + +{% highlight yaml %} +{% raw %} +version: "1.0" +# Stages can help you organize your steps in stages +stages: + - "clone" + - "build" + - "test" + +steps: + clone: + title: "Cloning repository" + type: "git-clone" + repo: "anais-codefresh/codacy-sample-app" + # 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: "anaisurlichs/codacy-sample-app" + working_directory: "${{clone}}" + tag: "${{CF_BRANCH_TAG_NORMALIZED}}" + dockerfile: "Dockerfile" + stage: "build" + registry: "dockerhub" + + tests: + title: "Running test" + type: "freestyle" + working_directory: '${{clone}}' + arguments: + image: 'node:15.2' + commands: + - "npm install --save-dev jest" + - "npm run test" + stage: "test" + + codacy: + title: "Pushing reports to codacy" + type: "freestyle" + working_directory: '${{clone}}' + arguments: + image: 'alpine:3.8' + commands: + - "export CODACY_PROJECT_TOKEN=${{CODACY_PROJECT_TOKEN}}" + - "wget -qO - https://coverage.codacy.com/get.sh | sh" + stage: "test" +{% endraw %} +{% endhighlight %} + +The last two steps, ’tests’ and ’codacy’, are used to run our tests, create our coverage reports and forward those to Codacy. If you are using your own project and existing pipeline, add those two steps to your pipeline. In case you are using your own application, make sure to adapt the commands within the test step to run the tests of your application. Additionally, ensure that both the ’repo’ and the ’image_name’ point to your integrations. + +Once you run the pipeline the steps will create the coverage report and forward it to Codacy. + +{% include image.html +lightbox="true" +file="/images/testing/codacy/codacy-pipeline.png" +url="/images/testing/codacy/codacy-pipeline.png" +alt="Pipeline with Codacy step" +max-width="80%" +%} + +## View reports + +This will allow you to view the updated coverage reports within Codacy's UI every time you make a commit and/or run the Codefresh pipeline directly. + +{% include image.html +lightbox="true" +file="/images/testing/codacy/codacy-report.png" +url="/images/testing/codacy/codacy-report.png" +alt="Codacy UI Analysis Dashboard" +max-width="80%" +%} + +You can access further information on the coverage report by opening the file tab and accessing a specific file from your repository. + +{% include image.html +lightbox="true" +file="/images/testing/codacy/file-analysis.png" +url="/images/testing/codacy/file-analysis.png" +alt="Codacy report details" +max-width="90%" +%} + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Unit tests]({{site.baseurl}}/docs/testing/unit-tests/) +* [Integration tests]({{site.baseurl}}/docs/testing/integration-tests/) +* [Sonarqube Integration]({{site.baseurl}}/docs/testing/sonarqube-integration/) \ No newline at end of file diff --git a/_docs/example-catalog/codecov-testing.md b/_docs/example-catalog/codecov-testing.md new file mode 100644 index 00000000..a0855bd9 --- /dev/null +++ b/_docs/example-catalog/codecov-testing.md @@ -0,0 +1,126 @@ +--- +title: "Codecov Coverage Reports" +description: "How to forward coverage reports to Codecov" +group: yaml-examples +toc: true +--- + +[Codecov account](https://codecov.io/) is a code analysis tool with which users can group, merge, archive, and compare coverage reports. Code coverage describes which lines of code were executed by the test suite and which ones were not. However, this is not to be confused with a testing tool. + +Analysis reports displayed within the Codecov dashboard: +{% include image.html +lightbox="true" +file="/images/testing/codecov/analysis-report.png" +url="/images/testing/codecov/analysis-report.png" +alt="Codecov UI Analysis reports" +max-width="50%" +%} + +## Prerequisites for using Codecov + +* A simple [Codefresh pipeline up and running](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +* A [Codecov account](https://codecov.io/) (free or enterprise) +* A testing tool added to your project that produces coverage reports + +Note that reports should ideally be written in .json, .xml, or txt. To be sure, please double check that your coverage [report format](https://docs.codecov.io/docs/supported-report-formats) is supported. You can find a variety of examples for different programming languages and suggestions for respective testing tools in the [Codecov docs](https://docs.codecov.io/docs/supported-languages). + +To test Codecov and follow along with the next section, you can clone our [Codecov sample app](https://github.com/codefresh-contrib/codecov-sample-app). + +## Create a Codecov Account + +Once you sign-up to Codecov, you can add a new repository. The UI will then provide you with an access token to the repository. While it is recommended that you take note of the token, you will still be able to access it within the **Settings** tap. + +{% include image.html +lightbox="true" +file="/images/testing/codecov/codecov-interface.png" +url="/images/testing/codecov/codecov-interface.png" +alt="Codecov Project Repository UI" +max-width="50%" +%} + +## Codefresh Pipeline + +In this case, we have divided the testing and connecting Codefresh to Codecov into two different steps. If they can be run within the same image, you could also connect them. + +**Testing step** +Will run the command(s) for our testing tool. This will generate the code coverage report upon running the pipeline. Please refer to the Codecov documentation for [supported testing frameworks](https://docs.codecov.io/docs/supported-report-formats). The [README of each example](https://docs.codecov.io/docs/supported-languages) refers to possible frameworks that can be used. + +In general, ensure that the framework you use for testing and generating code coverage reports: +* Produce code coverage reports in the supported file format +* Is compatible with the programming language that your program is written in + +{% highlight yaml %} +{% raw %} + test: + title: "Running test" + type: "freestyle" # Run any command + image: "node:14.19.0" # The image in which command will be executed + working_directory: "${{clone}}" # Running command where code cloned + commands: + - "npm install --save-dev jest" + - "npx jest --coverage" + stage: "test" +{% endraw %} +{% endhighlight %} + +**Codecov step** + +{% highlight yaml %} +{% raw %} +upload: + title: "Running test" + type: "freestyle" # Run any command + image: "node:14.19.0" # The image in which command will be executed + working_directory: "${{clone}}" # Running command where code cloned + commands: + - "ci_env=`curl -s https://codecov.io/env`" + - "npm install codecov -g" + - "codecov -t ${{CODECOV_TOKEN}} -f ./coverage/clover.xml" + stage: "upload" +{% endraw %} +{% endhighlight %} + +The commands run inside of the node Docker image: +* `ci_env= curl -s https://codecov.io/env` -- Here we set the CI environment variable to take note that we are using Codefresh +* `npm install codecov -g` -- This installs the odecov CLI +* `codecov -t ${{CODECOV_TOKEN}} -f ./coverage/clover.xml` -- Here we set the Codevoc access token provided in the UI when we connect to a new git repository and point to the file that contains our coverage report. + +Once you run the pipeline the steps will create the coverage report and forward it to Codecov. + +{% include image.html +lightbox="true" +file="/images/testing/codecov/codecov-pipeline.png" +url="/images/testing/codecov/codecov-pipeline.png" +alt="Pipeline with codecov step" +max-width="50%" +%} + +## View reports + +This will allow you to view the updated coverage reports within the Codecov UI every time you make a commit and/or run the Codefresh pipeline directly. + +{% include image.html +lightbox="true" +file="/images/testing/codecov/codecov-report.png" +url="/images/testing/codecov/codecov-report.png" +alt="Pipeline with codecov step" +max-width="50%" +%} + +You can access further information on the coverage report by opening the link to the file displayed in the table. + +{% include image.html +lightbox="true" +file="/images/testing/codecov/codecov-report-details.png" +url="/images/testing/codecov/codecov-report-details.png" +alt="Codecov report details" +max-width="50%" +%} + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Unit tests]({{site.baseurl}}/docs/testing/unit-tests/) +* [Integration tests]({{site.baseurl}}/docs/testing/integration-tests/) +* [Sonarqube Integration]({{site.baseurl}}/docs/testing/sonarqube-integration/) diff --git a/_docs/example-catalog/coveralls-testing.md b/_docs/example-catalog/coveralls-testing.md new file mode 100644 index 00000000..bd0b3f30 --- /dev/null +++ b/_docs/example-catalog/coveralls-testing.md @@ -0,0 +1,218 @@ +--- +title: "Coveralls Coverage Reports" +description: "How to forward coverage reports to Coveralls" +group: yaml-examples +toc: true +--- + +[Coveralls](https://coveralls.io/) is a web service that allows users to track the code coverage of their application over time in order to optimize the effectiveness of their unit tests. This section details how coverage reports can be generated and forwarded to Coveralls with every Codefresh build. + +Analysis reports displayed within Coveralls dashboard: +{% include image.html +lightbox="true" +file="/images/testing/coveralls/coveralls-sample-app.png" +url="/images/testing/coveralls/coveralls-sample-app.png" +alt="Coveralls UI Analysis reports" +max-width="80%" +%} + +## Prerequisites for using Coveralls + +* A simple [Codefresh pipeline up and running](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +* A [Coveralls account](https://coveralls.io/) (free or enterprise) -- Note that all open-source projects are free on Coveralls +* A testing tool added to your project that produces coverage reports + +Coveralls supports [22 different language integrations](https://docs.coveralls.io/about-coveralls). Each example provided in the official documentation suggests several coverage report tools that can be used in combination with Coveralls. + +You could try it out by cloning our [node example application](https://github.com/codefresh-contrib/coveralls-sample-app) that utilises [jest](https://jestjs.io/). + +## Prepare your Repository + +If you are using your own application as an example, you have to make a few modifications to the repository. Please have a look at the Coveralls example section for other languages. + +First, install Coveralls in your project: +{% highlight yaml %} +{% raw %} +npm install coveralls --save-dev +{% endraw %} +{% endhighlight %} + +Coveralls requires a [script](https://github.com/nickmerwin/node-coveralls) that takes standard input and sends it to coveralls.io to report your code coverage. Depending on the framework that you are using, you will have to add a different script to your application. + +Any coverage reports can be forwarded that are within a [lcov data format](http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php) (including [mocha's LCOV reporter](https://www.npmjs.com/package/mocha-lcov-reporter)). For this, we are going to set-up a “bin” folder, and within the folder a coveralls.js file that contains the following content: + +{% highlight yaml %} +{% raw %} +#!/usr/bin/env node + +'use strict'; + +const { handleInput } = require('..'); + +process.stdin.resume(); +process.stdin.setEncoding('utf8'); + +let input = ''; + +process.stdin.on('data', chunk => { + input += chunk; +}); + +process.stdin.on('end', () => { + handleInput(input, err => { + if (err) { + throw err; + } + }); +}); +{% endraw %} +{% endhighlight %} + +## Create an Account with Coveralls + +Once you sign-up to Coveralls, you can add a new repository. The UI will then provide you with an access token to the repository. Take note of the token since it will be required in the next sections. + +{% include image.html +lightbox="true" +file="/images/testing/coveralls/add-repository.png" +url="/images/testing/coveralls/add-repository.png" +alt="Coveralls repository" +max-width="80%" +%} + +## Codefresh Pipeline + +In case the project that you want to use Coveralls in does not have a pipeline, [create a new pipeline](https://codefresh.io/docs/docs/getting-started/create-a-basic-pipeline/). + +{% include image.html +lightbox="true" +file="/images/testing/coveralls/create-coveralls-pipeline.png" +url="/images/testing/coveralls/create-coveralls-pipeline.png" +alt="Create Coveralls Pipeline" +max-width="80%" +%} + +Once you ’create’ the pipeline, a standard codefresh.yml file is generated with three steps: +* The first step will clone your repository; +* The second step will both, build and push your repository to the container registry that you have connected with Codefresh; +* And the third step currently does not do much. +In the next section, we will modify the testing step. + +**Testing step** + +The testing step requires three different environment variables to connect to Coveralls: +* `export COVERALLS_SERVICE_NAME="codefresh"` +* `export COVERALLS_GIT_BRANCH="insert the branch that you will be using with your application"` +* `export COVERALLS_REPO_TOKEN="insert the secret repo token from coveralls.io"` + +{% highlight yaml %} +{% raw %} + test: + title: "Running test" + type: "freestyle" # Run any command + image: "node:15.2" # The image in which command will be executed + working_directory: "${{clone}}" # Running command where code cloned + commands: + - "export COVERALLS_SERVICE_NAME=${{COVERALLS_SERVICE_NAME}}" + - "export COVERALLS_GIT_BRANCH=${{CF_BRANCH}}" + - "export COVERALLS_REPO_TOKEN=${{COVERALLS_REPO_TOKEN}}" + - "npm install --save-dev jest" + - "npm run test" + stage: "test" +{% endraw %} +{% endhighlight %} + +We specify several variables within this step. Those, which start with ’CF’ are [Codefresh-specific steps](https://codefresh.io/docs/docs/codefresh-yaml/variables/) and the value is automatically provided by Codefresh once you run the pipeline. Our entire codefresh.yml will look as such: + +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: + - "clone" + - "build" + - "test" + +steps: + clone: + title: "Cloning repository" + type: "git-clone" + repo: "anais-codefresh/coveralls-sample-app" + # 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: "anaisurlichs/coveralls-sample-app" + working_directory: "${{clone}}" + tag: "${{CF_BRANCH_TAG_NORMALIZED}}" + dockerfile: "Dockerfile" + stage: "build" + registry: "dockerhub" + + test: + title: "Running test" + type: "freestyle" # Run any command + image: "node:15.2" # The image in which command will be executed + working_directory: "${{clone}}" # Running command where code cloned + commands: + - "export COVERALLS_SERVICE_NAME=${{COVERALLS_SERVICE_NAME}}" + - "export COVERALLS_GIT_BRANCH=${{CF_BRANCH}}" + - "export COVERALLS_REPO_TOKEN=${{COVERALLS_REPO_TOKEN}}" + - "npm install --save-dev jest" + - "npm run test" + stage: "test" +{% endraw %} +{% endhighlight %} + +Once you run the pipeline the steps will create the coverage report and forward it to Coveralls. + +{% include image.html +lightbox="true" +file="/images/testing/coveralls/coveralls-pipeline.png" +url="/images/testing/coveralls/coveralls-pipeline.png" +alt="Pipeline with Coveralls step" +max-width="80%" +%} + +## View reports + +This will allow you to view the updated coverage reports within Coveralls UI every time you make a commit and/or run the Codefresh pipeline directly. + +{% include image.html +lightbox="true" +file="/images/testing/coveralls/coveralls-sample-app.png" +url="/images/testing/coveralls/coveralls-sample-app.png" +alt="Coveralls UI Analysis reports" +max-width="80%" +%} + +You can access further information on the coverage report by opening the link to the file displayed in the table. + +{% include image.html +lightbox="true" +file="/images/testing/coveralls/coveralls-specific-report.png" +url="/images/testing/coveralls/coveralls-specific-report.png" +alt="Coveralls report details" +max-width="80%" +%} + +And view a the code coverage of a specific file: +{% include image.html +lightbox="true" +file="/images/testing/coveralls/coveralls-coverage.png" +url="/images/testing/coveralls/coveralls-coverage.png" +alt="Coveralls report details" +max-width="80%" +%} + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Unit tests]({{site.baseurl}}/docs/testing/unit-tests/) +* [Integration tests]({{site.baseurl}}/docs/testing/integration-tests/) +* [Sonarqube Integration]({{site.baseurl}}/docs/testing/sonarqube-integration/) \ No newline at end of file diff --git a/_docs/example-catalog/decryption-with-mozilla-sops.md b/_docs/example-catalog/decryption-with-mozilla-sops.md new file mode 100644 index 00000000..495e1785 --- /dev/null +++ b/_docs/example-catalog/decryption-with-mozilla-sops.md @@ -0,0 +1,179 @@ +--- +title: "Decryption with Mozilla SOPS" +description: "Store secrets in your repository and decrypt them using Mozilla SOPS" +group: yaml-examples +sub_group: examples +toc: true +--- + +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +- A public and private GnuGP key pair +- A credentials yaml, that is encrypted using Mozilla SOPS, and stored in your repository + +## The Example Java Application + +You can find the example project on [GitHub](https://github.com/codefresh-contrib/mozilla-sops-app). + +The example application retrieves the system variable "password," from the pipeline and uses it to authenticate to a Redis database, but you are free to use any type of database of your choosing. + +```java + String password = System.getenv("password"); + String host = System.getProperty("server.host"); + + RedisClient redisClient = new RedisClient( + RedisURI.create("redis://" + password + "@" + host + ":6379")); + RedisConnection connection = redisClient.connect(); +``` + +Also in the example application is a simple unit test that ensures we are able to read and write data to the database. + +An encrypted credentials file is stored in the repository (along with a public key): + +`credentials.yaml` +```yaml +password: ENC[AES256_GCM,data:Jsth2tY8GhLgj6Jct27l,iv:3vcKVoD5ms29R5SWHiFhDhSAvvJTRzjn9lA6woroUQ8=,tag:OjkLvcHxE4m5RSCV7ej+FA==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + lastmodified: '2020-03-30T19:12:49Z' + mac: ENC[AES256_GCM,data:jGMTkFhXjgGMdWBpaSWjGZP6fta3UuYjEsnqziNELQZ2cLScT9v+GKg/c8iJYv1Gfiz3aw4ivYYrWzwmZehIbPHaw3/XBv/VRCQhzRWYKaf6pPFUXIS7XALSf9L9VbGOXL/CGPRae3t3HpaOor+knd6iQk2WR3K9kSeib4RBSCE=,iv:WSP8hBwaBv3ymTGltBOaVVC1sT08IG4hwqESlG8rN9w=,tag:3hZvCuql+ASWe/Mm5Bl7xg==,type:str] + pgp: + - created_at: '2020-03-30T19:12:49Z' + enc: | + -----BEGIN PGP MESSAGE----- + hQGMA9TqgBq6RQVRAQv/UouNaHfxkJ5PwXLvda97Fgj/2ew2VXPAlAnLvoGvTsb2 + U4GXcaE7c4mYf7wSKF9k/F0FZTUEnd3CRji/OqjrNyvj5zI/9KGRABCKvzjsx+ZG + JolVnDifHl78Mor1CUPQ4JXasHKbVSlNLMGgDHIsvpeC7f7pIi8YDUDIa3/zXhFK + jcKzz4nlrW1Ph8zukmQk49Xvv6+DFj2NTptOB3U6mh79RCdnyCSRHxA3f0X00Pi5 + g0p5x46S5E04uC2wXrZv8i/gyQbLHxwjmdbLq+P1Peu4/i9eSZZOpx0mc1KJ2mjr + oKRvgnUFz3xuYrSNzjC1vM01UbuSytlwx+S3J7VVLPSZRso1sbgv2+ylUOAHS+gZ + 64uL0j/BZrF4wZI8y8zr0nJ6cZLiiF3LeXhfcuWJJ7+5p1OBEvfO+sWorLahIZTw + pogYPDpz4rGnrJRKBkNsVlYuUG8aNerIfhEBr6n//VJtt7QXTEXraLCTt4a6z/Fl + R6YSeNCKWQlURrTfm4Kv0lwBzMTLUb+Fg3HO8ShhiE9/2dKTSJkRJMVXRDp22Fm1 + vO/wMFUjg6Dkrj1LVqQ9zcXc5QElgc4mF/V7SazacbQ7/g67tVtUrTit9LXgR9A0 + k7wU5iT5oWLJtWwpkA== + =Il2p + -----END PGP MESSAGE----- + fp: C70833A85193F72C2D72CB9DBC109AFC69E0185D + encrypted_regex: password + version: 3.5.0 +``` +You cannot run the application locally, as it needs to run in the pipeline in order to use our environment variables to connect. + +## Create the Pipeline + +Our pipeline will contain four stages: + +- A stage for cloning +- A stage for importing the private/public keypair +- A stage for decrypting the credentials file +- A stage for packaging our jar and running unit tests + +{% include image.html +lightbox="true" +file="/images/examples/secrets/mozilla-sops-pipeline.png" +url="/images/examples/secrets/mozilla-sops-pipeline.png" +alt="Codefresh UI Pipeline View" +caption="Codefresh UI Pipeline View" +max-width="90%" +%} + +First, you will need to add a pipeline variable, `PRIV_KEY`, for your private key. You can do that in the UI by navigating to the in-line YAML editor and to the right-hand side, you will find the **Variables** tab: + +{% include image.html +lightbox="true" +file="/images/examples/secrets/mozilla-sops-pipeline-vars.png" +url="/images/examples/secrets/mozilla-sops-pipeline-vars.png" +alt="Mozilla SOPS Pipeline Variables" +caption="Pipeline Variables" +max-width="90%" +%} + +You can also add this [directly in the YAML itself]({{site.baseurl}}/docs/how-to-guides/migrating-from-travis-ci/#environment-variables). + +Here is the entire pipeline: + +`codefresh.yaml` +{% highlight yaml %} +{% raw %} +# More examples of Codefresh YAML can be found at +# https://codefresh.io/docs/docs/yaml-examples/examples/ + +version: "1.0" +# Stages can help you organize your steps in stages +stages: + - "clone" + - "import" + - "decrypt" + - "package" + +steps: + clone: + title: "Cloning repository..." + type: "git-clone" + stage: "clone" + arguments: + repo: "codefresh-contrib/mozilla-sops-app" + revision: "master" + + import_keys: + title: "Importing gpg keys..." + type: "freestyle" + stage: "import" + working_directory: '${{clone}}' + arguments: + image: "vladgh/gpg" + commands: + - gpg --import public.key + - echo -e "${{PRIV_KEY}}" > private.key + - gpg --allow-secret-key-import --import private.key + + decrypt_password: + title: "Decrypting password..." + type: "freestyle" + working_directory: "${{clone}}" + stage: "decrypt" + arguments: + image: "mozilla/sops" + commands: + - cp -r /codefresh/volume/.gnupg /root/.gnupg + - cf_export password=$(sops --decrypt --extract '["password"]' credentials.yaml) + + package_jar: + title: "Packaging jar and running unit tests..." + working_directory: ${{clone}} + stage: "package" + arguments: + image: "maven:3.5.2-jdk-8-alpine" + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository -Dserver.host=my-redis-db-host clean package + services: + composition: + my-redis-db-host: + image: 'redis:4-alpine' + command: 'redis-server --requirepass $password' + ports: + - 6379 +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. A [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step that clones the main repository +2. A [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that uses a GPG image and imports the public and private key pair +3. A freestyle step that decrypts the credentials file. At this step, SOPS is looking for the .gnupg directory (where the keyring is stored) under /root. We need to copy it from the [Codefresh Volume]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/#custom-volumes), as /root is not saved between containers. +4. The last step, `package_jar`, does a few special things to take note of: + - Spins up a [Service Container]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) running Redis on port 6379 , and sets the password to the database using our exported environment variable + - Sets `maven.repo.local` to cache Maven dependencies into the local codefresh volume to [speed up builds]({{site.baseurl}}/docs/example-catalog/java/spring-boot-2/#caching-the-maven-dependencies) + - Runs unit tests and packages the jar. Note how you can directly refer to the service container's name (`my-redis-db-host`) when we set `server.host` + +## What to Read Next + +- [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +- [Git-clone Step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +- [Freestyle Step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) +- [Vault Secrets in the Pipeline]({{site.baseurl}}/docs/yaml-examples/examples/vault-secrets-in-the-pipeline/) + diff --git a/_docs/example-catalog/deploy-to-heroku.md b/_docs/example-catalog/deploy-to-heroku.md new file mode 100644 index 00000000..d724a90f --- /dev/null +++ b/_docs/example-catalog/deploy-to-heroku.md @@ -0,0 +1,213 @@ +--- +title: "Deploy to Heroku" +description: "Deploying your application or image to Heroku" +group: yaml-examples +sub_group: examples +toc: true +--- + +Heroku is a container-based cloud PaaS software that allows you to deploy, run, and manage your applications. Built on top of AWS, it supports Ruby, Node.js, Java, Python, Clojure, Scala, Go and PHP. + +This tutorial will cover two examples, depending on your use case. If you are not using containers, your use case is covered using the Codefresh heroku-deployer plugin ([Example #1](#pipeline-example-1-deploying-source-code-to-heroku-using-the-codefresh-heroku-plugin)). If you are using containers, you can achieve deployment by using a combination of build, push, and freestyle steps ([Example #2](#pipeline-example-2-deploy-a-docker-image-to-heroku)). + +## The Example Django Application + +You can find the example project on [GitHub](https://github.com/codefresh-contrib/heroku-python-django-sample-app). + +The repository contains a Django starter project with the following commands: + +- `pip install -r requirements.txt` to install dependencies. +- `python -m unittest composeexample.utils` runs unit tests. +- `python manage.py runserver 0.0.0.0:8000` to start the application locally. + +Once launched the application presents the Django starter page at localhost:8000. + +## Pipeline Example #1: Deploying Source Code to Heroku Using the Codefresh Heroku Plugin + +### Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +- A [free Heroku account](https://signup.heroku.com) +- A Heroku API token (you can find this under **Account Settings** and then scrolling down, you will find the API Key) + +### Create the Pipeline + +This pipeline will have three stages: clone, test, and deploy. + +{% include image.html +lightbox="true" +file="/images/examples/deployments/heroku-deployer-pipeline.png" +url="/images/examples/deployments/heroku-deployer-pipeline.png" +alt="Codefresh UI Pipeline View" +caption="Codefresh UI Pipeline View" +max-width="100%" +%} + +You should be able to copy and paste this YAML in the in-line editor of the Codefresh UI. It will automatically clone the project for you. + +Note that you need to change the environment variables in the deploy stage to your respective values. You can do this directly [in the YAML itself]({{site.baseurl}}/docs/how-to-guides/migrating-from-travis-ci/#environment-variables), or through the Codefresh UI. Navigate to the in-line editor, and to the right you will find a tab lebeled **Variables**. + +{% include image.html +lightbox="true" +file="/images/examples/deployments/heroku-deployer-variables2.png" +url="/images/examples/deployments/heroku-deployer-variables2.png" +alt="Codefresh UI Pipeline Variables View" +caption="Codefresh UI Pipeline Variables View" +max-width="100%" +%} + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - clone + - test + - deploy +steps: + clone: + title: "Cloning main repository..." + stage: "clone" + type: "git-clone" + arguments: + repo: "codefresh-contrib/heroku-python-django-sample-app" + revision: "master" + git: "github" + run_unit_tests: + title: "Running unit tests..." + stage: "test" + type: "freestyle" + working_directory: "${{clone}}" + arguments: + image: "python:3.6-slim" + commands: + - "pip install -r requirements.txt --cache-dir=/codefresh/volume/pip-cache" + - "python -m unittest composeexample.utils" + deploy_to_heroku: + title: "Deploying to Heroku..." + stage: "deploy" + type: "heroku-deployer" + arguments: + APP_NAME: $APP_NAME + EMAIL: $EMAIL + API_TOKEN: $API_TOKEN +{% endraw %} +{% endhighlight %} + +The above pipeline does the following: + +1. A [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step that clones the main repository +2. A [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that installs dependencies and runs the unit tests +3. A freestyle step that deploys the application to Heroku using the heroku-deployer plugin from the [Step Marketplace](https://codefresh.io/steps/step/heroku-deployer) + +## Pipeline Example #2: Deploy a Docker Image to Heroku + +This example differs from the plugin usage, as it will deploy a built Docker image to Heroku. + +Note that you need to change the environment variables to your respective values. You can do this directly [in the YAML itself]({{site.baseurl}}/docs/how-to-guides/migrating-from-travis-ci/#environment-variables), or through the Codefresh UI. Navigate to the in-line editor, and to the right you will find a tab lebeled **Variables**. + +{% include image.html +lightbox="true" +file="/images/examples/deployments/heroku-deployer-variables.png" +url="/images/examples/deployments/heroku-deployer-variables.png" +alt="Codefresh UI Pipeline Variables View" +caption="Codefresh UI Pipeline Variables View" +max-width="100%" +%} + +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +- A [free Heroku account](https://signup.heroku.com) +- An empty repository already created in Heroku using the `heroku create ` command +- A Heroku registry [connected to Codefresh]({{site.baseurl}}/docs/docker-registries/external-docker-registries/other-registries/#heroku-registries) +- A Heroku API token (you can find this under **Account Settings** and then scrolling down, you will find the API Key) + +### Create the Pipeline + +This pipeline will have five stages: clone, build, test, push, and release. + +{% include image.html +lightbox="true" +file="/images/examples/deployments/heroku-vanilla-push-pipeline.png" +url="/images/examples/deployments/heroku-vanilla-push-pipeline.png" +alt="Codefresh UI Pipeline View" +caption="Codefresh UI Pipeline View" +max-width="100%" +%} + +You should be able to copy and paste this YAML in the in-line editor of the Codefresh UI. It will automatically clone the project for you. + +`codefresh-heroku-push-image.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +version: '1.0' +stages: + - clone + - build + - test + - push + - release +steps: + clone: + title: "Cloning main repository..." + stage: "clone" + type: "git-clone" + arguments: + repo: "codefresh-contrib/heroku-python-django-sample-app" + revision: "master" + git: "github" + build: + title: "Building Docker Image..." + stage: "build" + type: "build" + working_directory: "./heroku-python-django-sample-app" + arguments: + image_name: "${{IMAGE_NAME}}" + tag: "master" + dockerfile: "Dockerfile" + run_unit_tests: + title: "Running unit tests..." + stage: "test" + type: "freestyle" + working_directory: "./heroku-python-django-sample-app" + arguments: + image: '${{build}}' + commands: + - "python -m unittest composeexample.utils" + push_image: + title: "Pushing image to Heroku..." + stage: "push" + type: "push" + arguments: + candidate: '${{build}}' + image_name: "${{IMAGE_NAME}}/web" + registry: "heroku" + release_image: + title: "Releasing image..." + stage: "release" + type: "freestyle" + arguments: + image: "nazarcodefresh/heroku-cli:alpine" + commands: + - >- + printf "machine api.heroku.com\n login $EMAIL\n password + $API_TOKEN\nmachine git.heroku.com\n login $EMAIL\n password + $API_TOKEN\n" > ~/.netrc + - "heroku container:release --app $IMAGE_NAME web" +{% endraw %} +{% endhighlight %} + +1. A [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step that clones the main repository +2. A [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that builds our Docker image +3. A freestyle step that runs unit tests on our Docker image +3. A [push]({{site.baseurl}}/docs/codefresh-yaml/steps/push/) step that pushes to the Heroku registry +4. A freestyle step that releases the Docker image + + +## What to Read Next + +- [Git-clone Step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +- [Freestyle Step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) +- [Push Step]({{site.baseurl}}/docs/codefresh-yaml/steps/push/) diff --git a/_docs/example-catalog/deploy-to-tomcat-via-scp.md b/_docs/example-catalog/deploy-to-tomcat-via-scp.md new file mode 100644 index 00000000..320d0e5b --- /dev/null +++ b/_docs/example-catalog/deploy-to-tomcat-via-scp.md @@ -0,0 +1,123 @@ +--- +title: "Deploy to a VM via SCP" +description: "Deploying your application to Tomcat using SCP" +group: yaml-examples +sub_group: examples +toc: true +--- + +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +- A distribution of [Tomcat](https://tomcat.apache.org/download-90.cgi) setup on a remote server (running with port 8080 exposed) + +## The Example Java Application + +You can find the example project on [GitHub](https://github.com/codefresh-contrib/scp-war-app). + +The example application is a simple Hello World Java application using the [Spark Java framework](http://sparkjava.com/): + +{% include image.html +lightbox="true" +file="/images/examples/deployments/scp-hello-world.png" +url="/images/examples/deployments/scp-hello-world.png" +alt="Hello World!" +caption="Hello World!" +max-width="100%" +%} + + +```java + @Override + public void init() { + get("/hello", (req, res) -> "Hello World"); + } +``` + +## Create the Pipeline + +Our pipeline will have three stages: clone, package, and transfer. + +{% include image.html +lightbox="true" +file="/images/examples/deployments/scp-pipeline.png" +url="/images/examples/deployments/scp-pipeline.png" +alt="SCP pipeline" +caption="Codefresh UI Pipeline View" +max-width="100%" +%} + +You should be able to copy and paste this YAML in the in-line editor of the Codefresh UI. It will automatically clone the project for you. + +Note that you need to change the environment variables under the `transfer` step to your respective values. + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +# More examples of Codefresh YAML can be found at +# https://codefresh.io/docs/docs/yaml-examples/examples/ + +version: "1.0" +# Stages can help you organize your steps in stages +stages: + - "clone" + - "package" + - "transfer" + +steps: + clone: + title: "Cloning repository..." + type: "git-clone" + stage: "clone" + arguments: + repo: "codefresh-contrib/scp-war-app" + + package: + title: "Packaging war..." + type: "freestyle" + stage: "package" + arguments: + image: "maven:3.5.2-jdk-8-alpine" + working_directory: "${{clone}}" + commands: + - "mvn -Dmaven.repo.local=/codefresh/volume/m2_repository clean package" + + transfer: + title: "Transferring war to Tomcat..." + type: "freestyle" + stage: "transfer" + arguments: + image: "ictu/sshpass:latest" + working_directory: "${{package}}/target" + environment: + - USER= + - HOST= + - PASSWORD= + - TOMCAT_DIR= + commands: + - "echo | ssh-keygen -P '' -t rsa" + - "sshpass -p $PASSWORD ssh-copy-id -i /root/.ssh/id_rsa.pub -o StrictHostKeyChecking=no $USER@$HOST" + - "scp sparkjava-hello-world-1.0.war $USER@$HOST:$TOMCAT_DIR" +{% endraw %} +{% endhighlight %} + +The above pipeline does the following: + +1. A [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step that clones the main repository +2. A [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that installs the dependencies via Maven and packages our war file +3. A freestyle step that transfers our application via scp to a Tomcat server. Note that you will need to change the listed environment variables accordingly, either through the YAML itself, or through your pipeline settings: + +{% include image.html +lightbox="true" +file="/images/examples/deployments/scp-variables.png" +url="/images/examples/deployments/scp-variables.png" +alt="Pipeline variables" +caption="Pipeline variables" +max-width="100%" +%} + +## What to Read Next + +- [Git-clone Step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +- [Freestyle Step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) +- [Deploying to a VM using FTP]({{site.baseurl}}/docs/yaml-examples/examples/transferring-php-ftp/) diff --git a/_docs/example-catalog/deploy-with-kustomize.md b/_docs/example-catalog/deploy-with-kustomize.md new file mode 100644 index 00000000..8b5dac97 --- /dev/null +++ b/_docs/example-catalog/deploy-with-kustomize.md @@ -0,0 +1,248 @@ +--- +title: "Deploy to Kubernetes with Kustomize" +description: "Deploy your services to Kubernetes using Kustomize" +group: yaml-examples +sub_group: examples +toc: true +--- + +[Kustomize](https://kustomize.io) is a tool included with kubectl 1.14 that "lets you customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as is." + +Kustomize is more of an overlay engine, as opposed to a templating engine. You create a base configuration and overlays. Your overlays contain a *kustomization.yaml* file, and any variants/changes are applied over top of the base configuration. Kustomize does not use templates at all. + +While it is good for simple scenarios, we suggest that you use Helm for managing your Kubernetes applications. Helm is a full package manager for Kubernetes manifests that also provides templating capabilities. See [this example]({{site.baseurl}}/docs/yaml-examples/examples/helm/) for more information. + +## The Example Application + +You can find the example project on [GitHub](https://github.com/codefresh-contrib/kustomize-sample-app). + +The sample application is a simple Spring Boot web app, that displays an environment variable, `MY_MYSQL_DB` on the page: + +```java +public class HelloController { + + String my_sql_db = System.getenv("MY_MYSQL_DB"); + + @RequestMapping("/") + public String index() { + return my_sql_db; + } +``` + +The project contains a [base](https://github.com/kubernetes-sigs/kustomize/blob/master/docs/glossary.md#base) and two [overlays](https://github.com/kubernetes-sigs/kustomize/blob/master/docs/glossary.md#overlay), one for a staging environment and one for production. + +The base manifest holds a dummy variable for `MY_MYSQL_DB` which will be overlayed once we call the kustomize command in our pipeline. + +`base/deployment.yaml` +```yaml +... + env: + - name: MY_MYSQL_DB + valueFrom: + configMapKeyRef: + name: the-map + key: mysqlDB +``` + +We will overlay on top of the manifests a different value for `MY_MYSQL_DB` for the staging environment and production environment. + +`overlays/staging/config-map.yaml` +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: the-map +data: + mysqlDB: "staging-mysql.example.com:3306" +``` + +`overlays/production/config-map.yaml` +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: the-map +data: + mysqlDB: "prod-mysql.example.com:3306" +``` + +In addition, for the production environment, the number of replicas will be overlayed to 3 instead of 1 (as [defined in the base deployment](https://github.com/codefresh-contrib/kustomize-sample-app/blob/32e683f82940de0bf2de2da40fa6b150e2b24b23/base/deployment.yaml#L8)). + +`overlays/production/deployment.yaml` +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: the-deployment +spec: + replicas: 3 +``` + +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +- A Kubernetes cluster [connected to your Codefresh account](https://codefresh.io/docs/docs/deploy-to-kubernetes/add-kubernetes-cluster/) + +## Create the Staging Environment Pipeline + +This pipeline will have two stages: clone and deploy. + +{% include image.html +lightbox="true" +file="/images/examples/deployments/k8s-kustomize-staging-pipeline.png" +url="/images/examples/deployments/k8s-kustomize-staging-pipeline.png" +alt="Codefresh UI Pipeline View" +caption="Codefresh UI Pipeline View" +max-width="100%" +%} + +You should be able to copy and paste this YAML in the in-line pipeline editor of the Codefresh UI. However, make sure to replace cluster context for the kubectl command under the arguments section with your own that you integrated with Codefresh. It will automatically clone the project for you and deploy. + +`staging-codefresh.yml` +{% highlight yaml %} +{% raw %} +# More examples of Codefresh YAML can be found at +# https://codefresh.io/docs/docs/yaml-examples/examples/ + +version: "1.0" +# Stages can help you organize your steps in stages + +stages: + - clone + - deploy + +steps: + clone: + title: Cloning main repository... + type: git-clone + stage: clone + arguments: + repo: https://github.com/codefresh-contrib/kustomize-sample-app.git + git: github + revision: master + + deploy: + title: Deploying to Staging using Kustomize... + type: freestyle + stage: deploy + working_directory: ${{clone}} + arguments: + image: codefresh/kubectl:1.14.9 + commands: + - kubectl config use-context anna-sandbox@codefresh-support + - kubectl apply -k overlays/staging +{% endraw %} +{% endhighlight %} + +The above pipeline does the following: + +1. A [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step that clones the main repository +2. A [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that: + - Uses kubectl to connect to our Kubernetes cluster we have integrated with Codefresh + - Using Kustomize (the -k flag), deploys the application as a staging environment with the appropriate value for `MY_MYSQL_DB` as defined in our configMap + +>Note that if you are using kubectl prior to 1.14, you can use the following command to deploy with Kustomize: +>`kustomize build overlays/production | kubectl apply -f` + +## Create the Production Environment Pipeline + +Likewise, this pipeline will have two stages: clone and deploy. + +{% include image.html +lightbox="true" +file="/images/examples/deployments/k8s-kustomize-prod-pipeline.png" +url="/images/examples/deployments/k8s-kustomize-prod-pipeline.png" +alt="Codefresh UI Pipeline View" +caption="Codefresh UI Pipeline View" +max-width="100%" +%} + +You should be able to copy and paste this YAML in the in-line editor of the Codefresh UI and remember to replace cluster context for the kubectl command again with your own. Click Save and Run and it will automatically clone the project for you. + +`prod-codefresh.yml` +{% highlight yaml %} +{% raw %} +# More examples of Codefresh YAML can be found at +# https://codefresh.io/docs/docs/yaml-examples/examples/ + +version: "1.0" +# Stages can help you organize your steps in stages + +stages: + - clone + - deploy + +steps: + clone: + title: Cloning main repository... + type: git-clone + stage: clone + arguments: + repo: https://github.com/codefresh-contrib/kustomize-sample-app.git + git: github + revision: master + + deploy: + title: Deploying to Production using Kustomize... + type: freestyle + stage: deploy + working_directory: ${{clone}} + arguments: + image: codefresh/kubectl:1.14.9 + commands: + - kubectl config use-context anna-sandbox@codefresh-support + - kubectl apply -k overlays/production +{% endraw %} +{% endhighlight %} + +The above pipeline does the following: + +1. A [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step that clones the main repository +2. A [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that: + - Uses kubectl to connect to our Kubernetes cluster we have integrated with Codefresh + - Using Kustomize (the -k flag), deploys the application as a production environment with the appropriate value for `MY_MYSQL_DB` as defined in our configMap + +>Note that if you are using kubectl prior to 1.14, you can use the following command to deploy with Kustomize: +>`kustomize build overlays/production | kubectl apply -f` + +## Verification + +After you run these pipelines, your deployments will be visible from the [Kubernetes dashboard]({{site.baseurl}}/docs/deploy-to-kubernetes/manage-kubernetes/#accessing-the-kubernetes-dashboard). + +{% include image.html +lightbox="true" +file="/images/examples/deployments/k8s-kustomize-dashboard.png" +url="/images/examples/deployments/k8s-kustomize-dashboard.png" +alt="Codefresh Kubernetes Deployments" +caption="Codefresh Kubernetes Deployments" +max-width="100%" +%} + +You can test that the application deployed correctly to both environments by accessing the endpoints: + +{% include image.html +lightbox="true" +file="/images/examples/deployments/k8s-kustomize-staging-endpoint.png" +url="/images/examples/deployments/k8s-kustomize-staging-endpoint.png" +alt="Staging endpoint" +caption="Staging endpoint" +max-width="100%" +%} + +{% include image.html +lightbox="true" +file="/images/examples/deployments/k8s-kustomize-prod-endpoint.png" +url="/images/examples/deployments/k8s-kustomize-prod-endpoint.png" +alt="Production endpoint" +caption="Production endpoint" +max-width="100%" +%} + + +## What to Read Next + +- [Git-clone Step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +- [Freestyle Step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) +- [Deployment options to Kubernetes]({{site.baseurl}}/docs/deploy-to-kubernetes/deployment-options-to-kubernetes) +- [Running custom kubectl commands]({{site.baseurl}}/docs/deploy-to-kubernetes/custom-kubectl-commands/) +- [Deploy with Helm]({{site.baseurl}}/docs/yaml-examples/examples/helm/) diff --git a/_docs/example-catalog/docker-swarm.md b/_docs/example-catalog/docker-swarm.md new file mode 100644 index 00000000..3075f406 --- /dev/null +++ b/_docs/example-catalog/docker-swarm.md @@ -0,0 +1,227 @@ +--- +title: "Docker SWARM" +description: "How to deploy to Docker Swarm with Codefresh" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/docker-swarm/ + - /docs/deploy-to-docker-swarm/ + - /docs/deploy-your-containers/docker-swarm/ +toc: true +--- + +Codefresh can easily deploy your application to [Docker Swarm](https://docs.docker.com/engine/swarm/) using [Codefresh pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/). + +You will need to provide: + +1. The `docker-stack.yml` that contains the definition of the application +1. The host where your Docker Swarm is running +1. An SSH key that Codefresh can use to access remotely the Docker Swarm host +1. The stack name that will be used once the application is deployed + +All this information will be passed to the pipeline in the form of build parameters. + + +## Example application + +An example Docker Swarm application can be found at [https://github.com/codefreshdemo/example-voting-app](https://github.com/codefreshdemo/example-voting-app) + +To launch it locally you need to download [Docker](https://www.docker.com/products/overview). If you are on Mac or Windows, [Docker Compose](https://docs.docker.com/compose) will be automatically installed. On Linux, make sure you have the latest version of [Compose](https://docs.docker.com/compose/install/). + + +Run in this root directory: + +{% highlight bash %} +{% raw %} + +docker-compose up + +{% endraw %} +{% endhighlight %} + +The app will be running at [http://localhost:5000](http://localhost:5000), and the results will be at [http://localhost:5001](http://localhost:5001). + +Alternately, if you want to run it on a Docker Swarm, first make sure you have a swarm. If you don't, run: + +{% highlight bash %} +{% raw %} + +docker swarm init + +{% endraw %} +{% endhighlight %} + +Once you have your swarm, in this directory run: + +{% highlight bash %} +{% raw %} + +docker stack deploy --compose-file docker-stack.yml vote + +{% endraw %} +{% endhighlight %} + +{{site.data.callout.callout_warning}} +The swarm master must have Python installed. +{{site.data.callout.end}} + +## Deploy to Remote Swarm with Codefresh + +First you need to setup the following environment variables in your Codefresh pipeline + +{: .table .table-bordered .table-hover} +| `RDOCKER_HOST` | remote Docker swarm master machine, accessible over SSH (for example, ubuntu@ec2-public-ip) | +| `STACK_NAME` | is new Docker stack name (use \"vote\", for example) | +| `SSH_KEY` | private SSH key, used to access Docker swarm master machine | +| `SPLIT_CHAR` | split character, you've used to replace `newline` in SSH key. Recommendation: use `,` (`comma` character). | + +The `SSH_KEY` variable has the contents of the [SSH key](https://www.ssh.com/ssh/public-key-authentication) that can access the Docker swarm host. Currently in order to pass SSH key through Codefresh UI, you need to convert it to single line string (replacing `newline` with `comma`), like this: + +{% highlight bash %} +{% raw %} +SSH_KEY=$(cat ~/.ssh/my_ssh_key_file | tr '\n' ',') +{% endraw %} +{% endhighlight %} + +The `SPLIT_CHAR` variable should hold the replacement character that was used for the SSH key (in the example above it is the comma character) + +{% include image.html +lightbox="true" +file="/images/2f1884a-codefresh_env_vars.png" +url="/images/2f1884a-codefresh_env_vars.png" +alt="Docker Swarm build parameters" +caption="Docker Swarm build parameters" +max-width="70%" +%} + + +## Deploy to Docker Swarm with a YML step + +Once all the variables are set you can use the following [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) to deploy to your cluster. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} + +deploy_to_swarm: + image: codefresh/remote-docker + working_directory: ${{main_clone}} + commands: + - rdocker ${{RDOCKER_HOST}} docker stack deploy --compose-file docker-stack.yml ${{STACK_NAME}} + environment: + - SSH_KEY=${{SSH_KEY}} + when: + branch: + only: + - master + +{% endraw %} +{% endhighlight %} + +You can also pass custom credentials like this: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} + +deploy_to_swarm: + image: codefresh/remote-docker + working_directory: ${{main_clone}} + commands: + - rdocker ${{RDOCKER_HOST}} docker login ${{MY_REGISTRY}} -u ${{MY_REGISTRY_USER}} -p ${{MY_REGISTRY_PASSWORD}} \&\& docker stack deploy --compose-file docker-compose.yml --with-registry-auth ${{STACK_NAME}} + environment: + - SSH_KEY=${{SSH_KEY}} + when: + branch: + only: + - master +{% endraw %} +{% endhighlight %} + + + + + + +## Create a CI/CD pipeine for Docker swarm + +Here is the full pipeline: + +{% include +image.html +lightbox="true" +file="/images/examples/docker-swarm/docker-swarm-pipeline.png" +url="/images/examples/docker-swarm/docker-swarm-pipeline.png" +alt="Docker Swarm pipeline" +caption="Docker Swarm pipeline" +max-width="100%" +%} + +And here is the pipeline definition: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - build + - deploy +steps: + main_clone: + title: Cloning main repository... + stage: prepare + type: git-clone + repo: 'codefreshdemo/example-voting-app' + revision: master + git: github-1 + MyResultDockerImage: + title: Building Result Docker Image + stage: build + type: build + image_name: resultApp + working_directory: ./result/ + tag: master + dockerfile: Dockerfile + MyVoteDockerImage: + title: Building Vote Docker Image + stage: build + type: build + image_name: voteApp + working_directory: ./vote/ + tag: master + dockerfile: Dockerfile + MyWorkerDockerImage: + title: Building Worker Docker Image + stage: build + type: build + image_name: workedApp + working_directory: ./worker/ + tag: master + dockerfile: Dockerfile + DeployToSwarmNow: + image: codefresh/remote-docker + working_directory: ${{main_clone}} + stage: deploy + commands: + - rdocker ${{RDOCKER_HOST}} docker login ${{MY_REGISTRY}} -u ${{MY_REGISTRY_USER}} -p ${{MY_REGISTRY_PASSWORD}} \&\& docker stack deploy --compose-file docker-compose.yml --with-registry-auth ${{STACK_NAME}} + environment: + - SSH_KEY=${{SSH_KEY}} +{% endraw %} +{% endhighlight %} + +The values of `MY_REGISTRY`, `MY_REGISTRY_USER` and `MY_REGISTRY_PASSWORD` depend upon the type of [your connected registry]({{site.baseurl}}/docs/docker-registries/external-docker-registries/). + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) + + + + + + + diff --git a/_docs/example-catalog/dotnet.md b/_docs/example-catalog/dotnet.md new file mode 100644 index 00000000..9862e0c6 --- /dev/null +++ b/_docs/example-catalog/dotnet.md @@ -0,0 +1,115 @@ +--- +title: "C# on .NET Core" +description: "How to build a C# project in Codefresh" +group: learn-by-example +toc: true +--- + +Codefresh can work with any .NET core application very easily as there are official [Docker images from Microsoft](https://hub.docker.com/_/microsoft-dotnet-core). + +## The example C# project + +You can see the example project at [https://github.com/dotnet-architecture/eShopOnWeb](https://github.com/dotnet-architecture/eShopOnWeb). The repository contains a C# Web project with 3 kinds of tests. It has different tags for each version of .NET Core and has + +* a `docker-compose.yml` file for local development +* a `tests` directory with all types of tests +* a Dockerfile at `/src/Web` + +There are also previous releases at [https://github.com/dotnet-architecture/eShopOnWeb/releases](https://github.com/dotnet-architecture/eShopOnWeb/releases). + +### Create a CI pipeline for C# applications + +Creating a CI/CD pipeline for C# is very easy, because Codefresh can run any SDK image version that you wish. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/dotnet/dotnetcore-pipeline.png" +url="/images/learn-by-example/dotnet/dotnetcore-pipeline.png" +alt="Compiling a C# application in a pipeline" +caption="Compiling a C# application in a pipeline" +max-width="80%" +%} + +Here is the full pipeline that compiles the application after checking out the code. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - test + - build +steps: + main_clone: + title: Cloning main repository... + stage: checkout + type: git-clone + repo: 'dotnet-architecture/eShopOnWeb' + revision: 'netcore3.0' + git: github-1 + my_unit_tests: + title: Unit tests + stage: test + image: mcr.microsoft.com/dotnet/core/sdk:3.0 + working_directory: './tests/UnitTests/' + commands: + - dotnet test + my_integration_tests: + title: Integration tests + stage: test + image: mcr.microsoft.com/dotnet/core/sdk:3.0 + working_directory: './tests/IntegrationTests/' + commands: + - dotnet test + my_functional_tests: + title: Fuctional tests + stage: test + image: mcr.microsoft.com/dotnet/core/sdk:3.0 + working_directory: './tests/FunctionalTests/' + commands: + - dotnet test + my_app_docker_image: + title: Building Docker Image + type: build + stage: build + image_name: dotnetcore-eshop + working_directory: ./ + tag: latest + dockerfile: src/Web/Dockerfile +{% endraw %} +{% endhighlight %} + +This pipeline: + +1. clones the source code +1. Uses the official `mcr.microsoft.com/dotnet/core/sdk:3.0` image to run unit/integration/functional tests in 3 different folders +1. Builds the application docker image using the root folder as Docker context but with the Dockerfile located at `./src/Web` + +You can see the resulting image in the [image dashboard]({{site.baseurl}}/docs/docker-registries/working-with-docker-registries/#viewing-docker-images): + +{% include image.html +lightbox="true" +file="/images/learn-by-example/dotnet/dotnetcore-image.png" +url="/images/learn-by-example/dotnet/dotnetcore-image.png" +alt="Building a .NET core docker image" +caption="Building a .NET core docker image" +max-width="80%" +%} + + + + +## What to read next + +* [C/C++ examples]({{site.baseurl}}/docs/learn-by-example/cc/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) + + + + + + diff --git a/_docs/example-catalog/elastic-beanstalk.md b/_docs/example-catalog/elastic-beanstalk.md new file mode 100644 index 00000000..3df5a510 --- /dev/null +++ b/_docs/example-catalog/elastic-beanstalk.md @@ -0,0 +1,137 @@ +--- +title: "Elastic Beanstalk" +description: "" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/elastic-beanstalk/ + - /docs/deploy-your-containers/elastic-beanstalk/ +toc: true +--- + +## Deployment to Elastic Beanstalk + +{:.text-secondary} +### Prerequisites + +- Configured Application in Elastic Beanstalk service
    + See: [http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.html](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.html){:target="_blank"} + +{:.text-secondary} +### Deployment with Codefresh +- Add encrypted environment variables for AWS credentials: + * `AWS_ACCESS_KEY_ID` + * `AWS_SECRET_ACCESS_KEY` + +- Provide the following environment variables: + * `AWS_REGION` + * `AWS_ENV_NAME` + * `AWS_VERSION` + * `AWS_BRANCH` + +{% include +image.html +lightbox="true" +file="/images/bcf4a57-codefresh_eb_env_vars.png" +url="/images/bcf4a57-codefresh_eb_env_vars.png" +alt="codefresh_eb_env_vars.png" +max-width="40%" +%} + +{{site.data.callout.callout_info}} +{% raw %} +The ``${{AWS_VERSION}}`` of application you can find in the Elastic Beanstalk service. +{% endraw %} +{{site.data.callout.end}} + +{% include +image.html +lightbox="true" +file="/images/c4e5ea2-codefresh_eb_version_label.png" +url="/images/c4e5ea2-codefresh_eb_version_label.png" +alt="codefresh_eb_version_label.png" +max-width="40%" +%} + +{{site.data.callout.callout_info}} +{% raw %} +The ``${{AWS_ENV_NAME}}`` of application you can find in the Elastic Beanstalk service. +{% endraw %} +{{site.data.callout.end}} + +{% include +image.html +lightbox="true" +file="/images/f326437-codefresh_eb_environment.png" +url="/images/f326437-codefresh_eb_environment.png" +alt="codefresh_eb_environment.png" +max-width="40%" +%} + +Add the following step to codefresh.yml: + + `deploy_step` +{% highlight yaml %} +{% raw %} +deploy-elastic-beanstalk: + fail-fast: false + image: garland/aws-cli-docker:latest + commands: + - sh -c "aws configure set region '${{AWS_REGION}}' && aws elasticbeanstalk update-environment --environment-name '${{AWS_ENV_NAME}}' --version-label '${{AWS_VERSION}}' " + when: + condition: + all: + masterBranch: "'${{CF_BRANCH}}' == '${{AWS_BRANCH}}'" +{% endraw %} +{% endhighlight %} + +{:.text-secondary} +### Deployment Flow +- Go to the Elastic Beanstalk service and create an application and environment. + + +{% include +image.html +lightbox="true" +file="/images/0cd9b90-codefresh_eb_environment.png" +url="/images/0cd9b90-codefresh_eb_environment.png" +alt="codefresh_eb_environment.png" +max-width="40%" +%} + +- Perform the following commands from root of your project: + * eb init + * eb create {% raw %}`${{AWS_ENV_NAME}}`{% endraw %} + +{{site.data.callout.callout_info}} +{% raw %} +##### Note: + +If you don't have awsebcli - install EB CLI [http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html){:target="_blank"}. +{% endraw %} +{{site.data.callout.end}} + +{% include +image.html +lightbox="true" +file="/images/c1335ec-codefresh_eb_health.png" +url="/images/c1335ec-codefresh_eb_health.png" +alt="codefresh_eb_health.png" +max-width="40%" +%} + +- Add this repository to Codefresh, provide the necessary environments variables and build this service + +{% include +image.html +lightbox="true" +file="/images/648e324-codefresh_eb_cf_step_deploy.png" +url="/images/648e324-codefresh_eb_cf_step_deploy.png" +alt="codefresh_eb_cf_step_deploy.png" +max-width="40%" +%} + +## Example + +* [cf-example-deploy-elasticbeanstalk](https://github.com/codefreshdemo/cf-example-deploy-elasticbeanstalk){:target="_blank"} + diff --git a/_docs/example-catalog/examples.md b/_docs/example-catalog/examples.md new file mode 100644 index 00000000..d1d968ca --- /dev/null +++ b/_docs/example-catalog/examples.md @@ -0,0 +1,119 @@ +--- +title: "CI/CD pipeline examples" +description: "A collection of examples for Codefresh pipelines" +group: yaml-examples +redirect_from: + - /docs/examples-v01/ + - examples.html + - /docs/catalog-examples/ + - /docs/examples/ + - /docs/codefresh-yaml-examples/ + - /docs/codefresh-yaml/codefresh-yaml-examples/ +toc: true +--- +Codefresh enables you to define the steps of your pipeline in a [YAML file]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/). By default, the file is named `codefresh.yml`, and is located in the root directory of the repository. + +## Programming-language specific examples + +Codefresh is agnostic as far as programming languages are concerned. All major programming languages are supported: + +- [Go Web App]({{site.baseurl}}/docs/example-catalog/golang/golang-hello-world/) or [Go CLI]({{site.baseurl}}/docs/example-catalog/golang/goreleaser) +- [Spring Java app with Maven]({{site.baseurl}}/docs/example-catalog/java/spring-boot-2/) or [Gradle]({{site.baseurl}}/docs/example-catalog/java/gradle/). Also how to [upload JAR to Nexus/Artifactory]({{site.baseurl}}/docs/example-catalog/java/publish-jar/) +- Node [Express.js App]({{site.baseurl}}/docs/example-catalog/nodejs/lets-chat/) or [React.js App]({{site.baseurl}}/docs/example-catalog/nodejs/react/) +- [Php App]({{site.baseurl}}/docs/example-catalog/php) +- [Python Django App]({{site.baseurl}}/docs/example-catalog/python/django/) +- [Ruby On Rails App]({{site.baseurl}}/docs/example-catalog/ruby/) +- [C]({{site.baseurl}}/docs/example-catalog/cc/c-make/) or [C++]({{site.baseurl}}/docs/example-catalog/cc/cpp-cmake) +- [Rust]({{site.baseurl}}/docs/example-catalog/rust/) +- [C# .NET core]({{site.baseurl}}/docs/example-catalog/dotnet/) +- [Scala App]({{site.baseurl}}/docs/example-catalog/scala/scala-hello-world/) +- [Android (Mobile)]({{site.baseurl}}/docs/example-catalog/mobile/android/) + +## Source code checkout examples + +You can check out code from one or more repositories in any pipeline phase. Codefresh includes [built-in GIT integration]({{site.baseurl}}/docs/integrations/git-providers/) with all the popular GIT providers and can be used with [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) steps. + +- [Cloning Git repositories using the built-in integration]({{site.baseurl}}/docs/example-catalog/git-checkout/) +- [Cloning Git repositories using manual Git commands]({{site.baseurl}}/docs/example-catalog/git-checkout-custom/) +- [Checking out from Subversion, Perforce, Mercurial, etc ]({{site.baseurl}}/docs/example-catalog/non-git-checkout/) + +## Build/push examples + +Codefresh has native support for [building]({{site.baseurl}}/docs/pipelines/steps/build/) and [pushing]({{site.baseurl}}/docs/pipelines/steps/push/) Docker containers. +You can also compile traditional applications that are not Dockerized yet. + +- [Build an Image with the Dockerfile in root directory]({{site.baseurl}}/docs/example-catalog/build-an-image-dockerfile-in-root-directory/) +- [Build an Image by specifying the Dockerfile location]({{site.baseurl}}/docs/example-catalog/build-an-image-specify-dockerfile-location) +- [Build an Image from a different Git repository]({{site.baseurl}}/docs/example-catalog/build-an-image-from-a-different-git-repository) +- [Build and Push an Image]({{site.baseurl}}/docs/example-catalog/build-and-push-an-image) +- [Build an Image with build arguments]({{site.baseurl}}/docs/example-catalog/build-an-image-with-build-arguments) +- [Share data between steps]({{site.baseurl}}/docs/example-catalog/shared-volumes-between-builds) +- [Upload or download from a Google Storage Bucket]({{site.baseurl}}/docs/example-catalog/uploading-or-downloading-from-gs/) +- [Get Short SHA ID and use it in a CI process]({{site.baseurl}}/docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process) +- [Call a CD pipeline from a CI pipeline]({{site.baseurl}}/docs/example-catalog/call-child-pipelines) +- [Trigger a Kubernetes Deployment from a Dockerhub Push Event]({{site.baseurl}}/docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry/) + +## Unit and integration test examples + +Codefresh has support for both [unit]({{site.baseurl}}/docs/testing/unit-tests/) and [integration tests]({{site.baseurl}}/docs/testing/integration-tests/) as well as [test reporting]({{site.baseurl}}/docs/testing/test-reports/). + +- [Run unit tests]({{site.baseurl}}/docs/example-catalog/run-unit-tests) +- [Run integration tests]({{site.baseurl}}/docs/example-catalog/run-integration-tests/) +- [Run integration tests with MongoDB]({{site.baseurl}}/docs/example-catalog/integration-tests-with-mongo/) +- [Run integration tests with MySQL]({{site.baseurl}}/docs/example-catalog/integration-tests-with-mysql/) +- [Run integration tests with PostgreSQL]({{site.baseurl}}/docs/example-catalog/integration-tests-with-postgres/) +- [Run integration tests with Redis]({{site.baseurl}}/docs/example-catalog/integration-tests-with-redis/) +- [Populate a database with existing data]({{site.baseurl}}/docs/example-catalog/populate-a-database-with-existing-data) + +- [Shared volumes of service from composition step for other yml steps]({{site.baseurl}}/docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps) +- [Launch Composition]({{site.baseurl}}/docs/example-catalog/launch-composition) +- [Launch Composition and define Service Environment variables using a file]({{site.baseurl}}/docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file) +- [Run multiple kinds of unit tests using fan-in-fan-out parallel pipeline]({{site.baseurl}}/docs/example-catalog/fan-in-fan-out) + +## Code coverage examples + +- [Run coverage reports with Codecov]({{site.baseurl}}/docs/example-catalog/codecov-testing) +- [Run coverage reports with Coveralls]({{site.baseurl}}/docs/example-catalog/coveralls-testing) +- [Run coverage reports with Codacy]({{site.baseurl}}/docs/example-catalog/codacy-testing) + +## Secrets examples + +Codefresh can automatically export secret key-value pairs using the Vault plugin from the [Step Marketplace](https://codefresh.io/steps/step/vault). + +- [Vault secrets in the Pipeline]({{site.baseurl}}/docs/example-catalog/vault-secrets-in-the-pipeline) +- [Decryption with Mozilla SOPS]({{site.baseurl}}/docs/example-catalog/decryption-with-mozilla-sops) +- [GitOps with Bitnami sealed secrets]({{site.baseurl}}/docs/example-catalog/gitops-secrets) + +## Preview environment examples + +Codefresh can automatically launch environments (powered by Docker swarm) to [preview a Pull Reqest or feature]({{site.baseurl}}/docs/getting-started/on-demand-environments/). The definition of the environment can come from an [existing composition]({{site.baseurl}}/docs/testing/create-composition/), a docker-compose file or an inline YAML. Preview environments can be launched manually or [automatically from pipelines]({{site.baseurl}}/docs/pipelines/steps/launch-composition/). + +- [MongoDB preload data]({{site.baseurl}}/docs/example-catalog/import-data-to-mongodb/) +- [NodeJS + Angular2 + MongoDB]({{site.baseurl}}/docs/example-catalog/nodejs-angular2-mongodb/) +- [NGINX Basic Auth]({{site.baseurl}}/docs/example-catalog/secure-a-docker-container-using-http-basic-auth/) +- [Spring Boot + Kafka + Zookeeper]({{site.baseurl}}/docs/example-catalog/spring-boot-kafka-zookeeper/) +- [Web terminal]({{site.baseurl}}/docs/example-catalog/web-terminal/) + +## Deployment examples + +Codefresh can deploy to any platform such as VMs, FTP/SSH/S3 sites, app servers, but of course it has great support for [Kubernetes clusters]({{site.baseurl}}/docs/deploy-to-kubernetes/deployment-options-to-kubernetes/) and [Helm releases]({{site.baseurl}}/docs/new-helm/helm-releases-management/): + +- [Deploy to a VM with packer]({{site.baseurl}}/docs/example-catalog/packer-gcloud/) +- [Deploy to a VM with FTP]({{site.baseurl}}/docs/example-catalog/transferring-php-ftp) +- [Deploy to Tomcat using SCP]({{site.baseurl}}/docs/example-catalog/deploy-to-tomcat-via-scp) +- [Deploy Demochat to a Kubernetes cluster]({{site.baseurl}}/docs/deploy-to-kubernetes/codefresh-kubernetes-integration-demochat-example/) +- [Use kubectl as part of freestyle step]({{site.baseurl}}/docs/example-catalog/use-kubectl-as-part-of-freestyle-step) +- [Deploy with Kustomize]({{site.baseurl}}/docs/example-catalog/deploy-with-kustomize) +- [Deploy with Helm]({{site.baseurl}}/docs/example-catalog/helm) +- [Deploy with Terraform]({{site.baseurl}}/docs/example-catalog/terraform) +- [Deploy with Pulumi]({{site.baseurl}}/docs/example-catalog/pulumi) +- [Deploy to Nomad]({{site.baseurl}}/docs/example-catalog/nomad) +- [Deploy to Heroku]({{site.baseurl}}/docs/example-catalog/deploy-to-heroku/) +- [Deploy to Docker swarm]({{site.baseurl}}/docs/example-catalog/docker-swarm/) +- [Deploy to Elastic Beanstalk]({{site.baseurl}}/docs/example-catalog/elastic-beanstalk/) +- [Deploy to Amazon ECS/Fargate]({{site.baseurl}}/docs/example-catalog/amazon-ecs/) + +## Notification examples + +- [Send notification to Slack]({{site.baseurl}}/docs/example-catalog/sending-the-notification-to-slack) +- [Send notification to Jira]({{site.baseurl}}/docs/example-catalog/sending-the-notification-to-jira) diff --git a/_docs/example-catalog/fan-in-fan-out.md b/_docs/example-catalog/fan-in-fan-out.md new file mode 100644 index 00000000..59d9775d --- /dev/null +++ b/_docs/example-catalog/fan-in-fan-out.md @@ -0,0 +1,206 @@ +--- +title: "Fan-out-fan-in Pipeline" +description: "Use parallel mode to fan-in and fan-out your step dependencies" +group: yaml-examples +sub_group: examples +toc: true +--- + +In pipelines, the concept of fan-in/fan-out is depicted in the diagram below. This pipeline offers parallel sub-flows in a single pipeline. Fan-out refers to spreading a task to multiple destinations in parallel, and fan-in is the opposite, where we spread multiple different tasks to the same destination. + +{% include image.html +lightbox="true" +file="/images/examples/unit-tests/parallel-pipeline-examples.png" +url="/images/examples/unit-tests/parallel-pipeline-examples.png" +alt="parallel pipeline diagraam" +caption="Parallel Mode Diagram" +max-width="100%" +%} + +As you can see by the diagram, Step1 fans out to Step2 and Step4 (which run in parallel), while Step3 and Step4 fan-in to Step5. + +You can achieve parallelism in your Codefresh pipelines by using the following: + +- Simple parallel jobs ([inserting parallel steps into a sequential pipeline]({{site.baseurl}}/docs/codefresh-yaml/advanced-workflows/#inserting-parallel-steps-in-a-sequential-pipeline)) +- [Full parallel mode]({{site.baseurl}}/docs/codefresh-yaml/advanced-workflows/#parallel-pipeline-mode) +- Fan-out/fan-in parallel pipelines, as covered here + +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) + +## The Example Project + +You can find the example Spring boot application on [GitHub](https://github.com/codefresh-contrib/fan-out-fan-in-sample-app.git). It is a simple Hello World application that has several different types of tests we will be using to run using Codefresh's parallel mode. + +## Create the Pipeline + +Our pipeline will have five stages: setup, start, web-tests, smoke, and end: + +{% include image.html +lightbox="true" +file="/images/examples/unit-tests/fan-in-fan-out-pipeline.png" +url="/images/examples/unit-tests/fan-in-fan-out-pipeline.png" +alt="fan-in-fan-out UI pipeline view" +caption="Codefresh UI Pipeline View" +max-width="100%" +%} + +You should be able to copy and paste this YAML in the in-line editor of the Codefresh UI. It will automatically clone the project for you. + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +mode: parallel +stages: +- setup +- start +- web-tests +- smoke +- end +steps: + Clone: + title: Cloning main repository... + stage: setup + type: git-clone + arguments: + repo: codefresh-contrib/fan-out-fan-in-sample-app + git: github + revision: master + Build_image: + title: Building Docker Image... + type: build + stage: setup + working_directory: ${{Clone}} + arguments: + image_name: spring-backend + tag: latest + dockerfile: Dockerfile + when: + steps: + - name: Clone + on: + - success + Step1: + title: Running unit tests... + stage: start + working_directory: ${{Clone}}/complete + arguments: + image: maven:3.5.2-jdk-8-alpine + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository -Dgroups="unit" test + when: + steps: + - name: Build_image + on: + - success + services: + composition: + spring_backend: + image: ${{Build_image}} + ports: + - 8080 + Step2: + title: Running web mock test... + stage: web-tests + working_directory: ${{Clone}}/complete + arguments: + image: maven:3.5.2-jdk-8-alpine + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository -Dgroups="web-mock" test + when: + steps: + - name: Step1 + on: + - success + services: + composition: + spring_backend: + image: ${{Build_image}} + ports: + - 8080 + Step3: + title: Running smoke test... + stage: smoke + working_directory: ${{Clone}}/complete + arguments: + image: maven:3.5.2-jdk-8-alpine + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository -Dgroups="smoke" test + when: + steps: + - name: Step2 + on: + - success + services: + composition: + spring_backend: + image: ${{Build_image}} + ports: + - 8080 + Step4: + title: Running web layer tests... + stage: web-tests + working_directory: ${{Clone}}/complete + arguments: + image: maven:3.5.2-jdk-8-alpine + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository -Dgroups="web-layer" test + when: + steps: + - name: Step1 + on: + - success + services: + composition: + spring_backend: + image: ${{Build_image}} + ports: + - 8080 + Step5: + title: Running integration tests... + stage: end + working_directory: ${{Clone}}/complete + arguments: + image: maven:3.5.2-jdk-8-alpine + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository -Dgroups="integration" test + when: + steps: + - name: Step3 + on: + - success + - name: Step4 + on: + - success + services: + composition: + spring_backend: + image: ${{Build_image}} + ports: + - 8080 +{% endraw %} +{% endhighlight %} + +Note the special use of `mode: parallel` declared at the root of our yaml. This syntax makes the pipeline use the full parallel mode. +The order of your build steps doesn't matter in this case, each step is executed according to its [conditionals](https://codefresh.io/docs/docs/codefresh-yaml/conditional-execution-of-steps/). + +- Step1 (unit tests) fans out to Step2 and Step4 (web tests), which run in parallel +- Step3 (smoke tests) does not execute until Step2 is completed +- Step3 and Step4 fan in to the final step, Step5 (integration tests) + +This pipeline consists of the following: + +1. A [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step that clones the main repository +2. A [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) that builds the cloned source code into a Docker image +3. 5 [freestyle steps]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that: + - Runs unit tests according to their respective @Tags + - Uses the image built in the second step as a [Service container]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) + +## What to Read Next + + - [Git-clone Step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) + - [Freestyle Step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) + - [Service Containers]({{site.baseurl}}//docs/codefresh-yaml/service-containers/) + - [Parallel Mode]({{site.baseurl}}/docs/codefresh-yaml/advanced-workflows/#parallel-pipeline-mode) diff --git a/_docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process.md b/_docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process.md new file mode 100644 index 00000000..bc96d9f6 --- /dev/null +++ b/_docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process.md @@ -0,0 +1,69 @@ +--- +title: "Get Short SHA ID and Use it in a CI Process" +description: "" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/how-to-guides/ + - /docs/how-get-first-8-digits-of-sha/ +toc: true +old_url: /docs/how-get-first-8-digits-of-sha +--- + +## Get the short SHA ID +Put the following variable in your script + +{{site.data.callout.callout_info}} +{% highlight text %} +{% raw %} +${{CF_SHORT_REVISION}} +{% endraw %} +{% endhighlight %} +{{site.data.callout.end}} + +## Use the SHA ID in a tag + +{{site.data.callout.callout_info}} +{% highlight text %} +{% raw %} +tag: ${{CF_SHORT_REVISION}} +{% endraw %} +{% endhighlight %} +{{site.data.callout.end}} + +## YAML example + +{% highlight yaml %} +{% raw %} +step-name: + type: build + description: Free text description + working-directory: ${{clone-step-name}} + dockerfile: path/to/Dockerfile + image-name: owner/new-image-name + tag: ${{CF_SHORT_REVISION}} + build-arguments: + - key=value + fail-fast: false +{% endraw %} +{% endhighlight %} + +## Result in [hub.docker](https://hub.docker.com){:target="_blank"} + +{% include image.html +lightbox="true" +file="/images/b694c19-2016-10-18_17-42-38.png" +url="/images/b694c19-2016-10-18_17-42-38.png" +alt="2016-10-18_17-42-38.png" +max-width="40%" +%} + +## Result in Codefresh + +{% include image.html +lightbox="true" +file="/images/de17013-2016-10-18_17-49-22.png" +url="/images/de17013-2016-10-18_17-49-22.png" +alt="2016-10-18_17-49-22.png" +max-width="40%" +%} diff --git a/_docs/example-catalog/git-checkout-custom.md b/_docs/example-catalog/git-checkout-custom.md new file mode 100644 index 00000000..c7e01e10 --- /dev/null +++ b/_docs/example-catalog/git-checkout-custom.md @@ -0,0 +1,105 @@ +--- +title: "Using Custom Git commands" +description: "Clone manually git repositories" +group: yaml-examples +sub_group: git +redirect_from: + - /docs/git-clone-private-repository-using-freestyle-step/ + - /docs/yaml-examples/examples/git-clone-private-repository-using-freestyle-step/ +toc: true +--- + +>Notice that running git commands manually is an advanced technique. For most use cases you should use the [Native Git checkout]({{site.baseurl}}/docs/yaml-examples/examples/git-checkout/) offered by Codefresh. + +If you want to do complex cloning, you can still use custom clone commands in a freestyle step. Notice however that in this case +you lose the native Codefresh integration such as git authentication and automatic workdir setup. Use custom clone commands only as a last resort. + + +## Cloning with the git executable + +It is very easy to run custom git commands in a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). Pass any parameters to the git clone step as you would pass them on your local workstation. + +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + myCustomClone: + title: Performing swallow clone + image: alpine/git:latest + commands: + - rm -rf ruby-on-rails-sample-app + - git clone --depth 1 https://github.com/codefresh-contrib/ruby-on-rails-sample-app.git + PrintFileList: + title: 'Listing files' + image: alpine:latest + working_directory: './ruby-on-rails-sample-app' + commands: + - 'ls -l' +{% endraw %} +{% endhighlight %} + +Notice the `rm` command before the clone step. This makes sure that every time the pipeline will run the `git clone` step will happen in an empty directory. Otherwise the `git clone` command will fail (git will refuse to clone on an existing directory). + +You can enter your own git username/password or [reuse the credentials]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/#reuse-a-git-token-from-codefresh-integrations) from the Codefresh integration. + +## Running Git commands manually + +Once you understand that you can run manually git commands in Codefresh pipelines, it is easy to see that any git workflow is possible. +Here is an example where an application is packaged in a Docker container, after merging `master` to a specific branch. + +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + myCustomClone: + title: Performing swallow clone + image: alpine/git:latest + commands: + - rm -rf example_nodejs_postgres + - git clone https://github.com/kostis-codefresh/example_nodejs_postgres + - cd example_nodejs_postgres + - git checkout experiment1 + - git merge master + - git status + myDockerImage: + title: 'BuildingDockerImage' + type: build + dockerfile: Dockerfile + working_directory: './example_nodejs_postgres' + image_name: my-app-image + tag: from-master-branch +{% endraw %} +{% endhighlight %} + +If there are any errors with the merge the pipeline will automatically fail. Codefresh will automatically stop any pipeline that shows an error in a step. + +## Other forms of cloning + +There is nothing special about running GIT it in a freestyle step. In fact, you can checkout code with any other command that you would run locally in your terminal. + +Here is an example with Golang. + +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + myCustomClone: + title: Download example + image: golang:1.11-alpine + commands: + - apk add --no-cache git + - go get github.com/golang/example/hello +{% endraw %} +{% endhighlight %} + +If you run this pipeline you will see git used as part of the `go get` mechanism. + +More examples such as using SSH keys and working with GIT submodules can be found in the [clone step documentation]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/). + + +## What to read next + +* [Native Git checkout]({{site.baseurl}}/docs/yaml-examples/examples/git-checkout/) +* [Native Git integration]({{site.baseurl}}/docs/integrations/git-providers/) +* [Freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) +* [Git Clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) diff --git a/_docs/example-catalog/git-checkout.md b/_docs/example-catalog/git-checkout.md new file mode 100644 index 00000000..e4de0cff --- /dev/null +++ b/_docs/example-catalog/git-checkout.md @@ -0,0 +1,204 @@ +--- +title: "Checking out Git repositories" +description: "Using the Codefresh native GIT integration" +group: yaml-examples +sub_group: examples +toc: true +--- + +Codefresh has native support for GIT repositories and Git triggers. First you need to setup a [GIT integration]({{site.baseurl}}/docs/integrations/git-providers/) (Your administrator might also have done this for you already). + +{% include image.html +lightbox="true" +file="/images/integrations/git/git-integrations.png" +url="/images/integrations/git/git-integrations.png" +alt="GIT integrations" +caption="GIT integrations" +max-width="70%" +%} + +You can add new integration for any cloud provider or even [on-premises]({{site.baseurl}}/docs/enterprise/behind-the-firewall/) ones. By default you will also have a provider setup if you used one for Codefresh signup (GitHub, GitLab or Bitbucket). + +For each Git Integration, make sure that you note down its name, as you will use in your pipeline inside a [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step. + + +## Cloning a specific repository + +The simplest way to clone using your git provider is by specifying the exact repository details. +Here is a pipeline that clones a git repository and creates a Docker image from a Dockerfile: + + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + main_clone: + title: 'Cloning main repository...' + type: git-clone + repo: kostis-codefresh/example_nodejs_postgres + revision: master + git: github-1 + myDockerImage: + title: 'Building My Docker Image' + type: build + dockerfile: Dockerfile + image_name: my-app-image + tag: from-master-branch +{% endraw %} +{% endhighlight %} + +This syntax is very simple to use, but it has the disadvantage that ties your pipeline to a specific repository. This makes +the pipeline impossible to re-use among different micro-services (that are built in a similar manner). + +## Cloning the triggered repository (recommended) + +The proper way to use git-clone steps is to make them trigger specific. Instead of hard-coding the git repository that is checked-out, it is best to checkout the same one that [triggered the pipeline]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/git-triggers/). This is what you want in most scenarios anyway. + +This can be achieved by using Codefresh [variables]({{site.baseurl}}/docs/codefresh-yaml/variables/) to refer to the trigger. +Here is the same pipeline as before, written in a generic way: + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + main_clone: + title: 'Cloning main repository...' + type: git-clone + repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}' + revision: '${{CF_REVISION}}' + git: github-1 + myDockerImage: + title: 'Building My Docker Image' + type: build + dockerfile: Dockerfile + image_name: my-app-image + tag: ${{CF_BRANCH_TAG_NORMALIZED}} +{% endraw %} +{% endhighlight %} + +The big advantage of this pipeline is that it can be reused for *ALL* your projects that follow the same pattern of having a Dockerfile in the root of the git repository. + +{% include image.html +lightbox="true" +file="/images/examples/checkout/add-new-microservice.png" +url="/images/examples/checkout/add-new-microservice.png" +alt="Reusing a pipeline between microservices" +caption="Reusing a pipeline between microservices" +max-width="50%" +%} + +Thus you can have a single pipeline and when you want to enable it for a new micro-service you can simply add a new [git trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/git-triggers/) for it. + +You still run the pipeline manually if you wish. In this case you will be asked which trigger you want to "simulate" so that the variable pipelines are correctly replaced by Codefresh. + +{% include image.html +lightbox="true" +file="/images/examples/checkout/simulate-trigger.png" +url="/images/examples/checkout/simulate-trigger.png" +alt="Simulating a GIT trigger" +caption="Simulating a GIT trigger" +max-width="50%" +%} + +This is the recommended way of creating re-usable pipelines in Codefresh. + +## Cloning a repository using the Codefresh runner + +If you are using the [Hybrid version]({{site.baseurl}}/docs/enterprise/installation-security/#hybrid-installation) of Codefresh and a have a [Codefresh runner]({{site.baseurl}}/docs/enterprise/codefresh-runner/) installed, you need to use +the fully qualified path of the git repository: + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + main_clone: + title: 'Cloning main repository...' + type: git-clone + repo: https://github-internal.example.com/my-username/my-app + revision: '${{CF_REVISION}}' + git: my-internal-git-provider + PrintFileList: + title: 'Listing files' + image: alpine:latest + commands: + - 'ls -l' +{% endraw %} +{% endhighlight %} + +More details can be found in the [private Git instructions page]({{site.baseurl}}/docs/enterprise/behind-the-firewall/#checking-out-code-from-a-private-git-repository). + + +## Working inside the cloned directory + +Normally each [pipeline step]({{site.baseurl}}/docs/codefresh-yaml/steps/) in Codefresh can be named as you want. Specifically, for the git-clone step however the name `main_clone` is special. + +If you name your clone step as `main_clone` the Codefresh will automatically change the working directory for all the next (non git-clone) pipeline steps, to be the same as the project that was just checked out. This only applies to [built-in]({{site.baseurl}}/docs/codefresh-yaml/steps/#built-in-steps) Codefresh steps and not [custom plugins]({{site.baseurl}}/docs/codefresh-yaml/steps/#creating-a-typed-codefresh-plugin). + +{% include +image.html +lightbox="true" +file="/images/pipeline/introduction/checkout.png" +url="/images/pipeline/introduction/checkout.png" +alt="Checkout structure" +caption="Checkout structure" +max-width="50%" +%} + +This is probably what you want anyway, so make sure that you name your git-clone steps as `main_clone`. If you use any other name, then the working folder will be the parent of the checked-out project which is the [shared Codefresh volume]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/#sharing-the-workspace-between-build-steps) at `/codefresh/volume`. + +If you have more then one clone steps in a pipeline it is recommended to define the working directory explicitly (see next example), instead +of depending on the `main_clone` naming convention, which is best used in pipelines with a single clone step. + +## Cloning multiple repositories + +You can use as many clone steps as you want and at any position in the pipeline. They don't have to be the first step. + +Here is an example where two repositories are checked out and two docker images are then built. + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + checkoutApp1: + title: 'Cloning first repository...' + type: git-clone + repo: kostis-codefresh/example_nodejs_postgres + revision: experiment1 + git: github + myFirstDockerImage: + title: 'Building First Docker Image' + type: build + dockerfile: Dockerfile + image_name: my-nodejs-image + tag: from-develop-branch + working_directory: './example_nodejs_postgres' + checkoutApp2: + title: 'Cloning second repository...' + type: git-clone + repo: kostis-codefresh/trivial-go-web + revision: master + git: github + mySecondDockerImage: + title: 'Building Second Docker Image' + type: build + dockerfile: Dockerfile + working_directory: './trivial-go-web' + image_name: my-app-image + tag: from-master-branch +{% endraw %} +{% endhighlight %} + +Notice that in this case the git-clone steps are **not** named `main_clone` and therefore we specify exactly what is the working directory for each one. + + +## What to read next + +* [Git integrations]({{site.baseurl}}/docs/integrations/git-providers/) +* [Git triggers]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/git-triggers/) +* [Git Clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +* [Build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) +* [Custom git commands]({{site.baseurl}}/docs/yaml-examples/examples/git-checkout-custom/) \ No newline at end of file diff --git a/_docs/example-catalog/gitops-secrets.md b/_docs/example-catalog/gitops-secrets.md new file mode 100644 index 00000000..84c05726 --- /dev/null +++ b/_docs/example-catalog/gitops-secrets.md @@ -0,0 +1,232 @@ +--- +title: "Using secrets with GitOps" +description: "Store secrets in Git with Bitnami sealed secrets" +group: yaml-examples +sub_group: examples +toc: true +--- + +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +- A Kubernetes cluster +- The [Codefresh GitOps agent]({{site.baseurl}}/docs/integrations/argocd/) installed on the cluster + +## Using the Bitnami Sealed secrets controller + +If you follow [GitOps](https://codefresh.io/gitops/), then you should already know that everything should be placed under source control, and Git is to be used as the single source of truth. + +This presents a challenge with secrets that are needed by the application, as they must never be stored in Git in clear text under any circumstance. + +To solve this issue, we can use the [Bitnami Sealed secrets controller](https://github.com/bitnami-labs/sealed-secrets). This is a Kubernetes controller +that can be used to encrypt/decrypt your application secrets in a secure way. + +The order of events is the following: + +1. You install the Bitnami Sealed secrets controller in the cluster. It generates a public and private key. The private key stays in the cluster and never gets out +1. You take a raw secret and use the `kubeseal` utility to encrypt it. Encryption happens with the public key of the cluster that you can give to anybody. +1. The encrypted secrets are stored in Git. There are safe to be committed and nobody can decrypt them without direct access to the cluster +1. During runtime you deploy the sealed secret like any other Kubernetes manifest. The controller converts them to [plain Kubernetes secrets](https://kubernetes.io/docs/concepts/configuration/secret/) on the fly using the private key of the cluster +1. Your application reads the secrets like any other Kubernetes secret. Your application doesn't need to know anything about the sealed secrets controller or how the encryption decryption works. + + +To use the controller first install it in your cluster + +``` +helm repo add sealed-secrets https://bitnami-labs.github.io/sealed-secrets +helm repo update +helm install sealed-secrets-controller sealed-secrets/sealed-secrets +``` + +By default the controller will be installed at the `kube-system` namespace. The namespace +and release name are important, since if you change the defaults, you need to set them up +with `kubeseal` as well as you work with secrets + +Download the `kubeseal` CLI. + +``` +wget https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.16.0/kubeseal-linux-amd64 -O kubeseal +sudo install -m 755 kubeseal /usr/local/bin/kubeseal +``` + +## The example application + +You can find the example project at [https://github.com/codefresh-contrib/gitops-secrets-sample-app](https://github.com/codefresh-contrib/gitops-secrets-sample-app). + +It is a web application that prints out several secrets which are [read from the filesystem](https://github.com/codefresh-contrib/gitops-secrets-sample-app/blob/main/settings.ini): + +`settings.ini` +```ini +[security] +# Path to key pair +private_key = /secrets/sign/key.private +public_key= /secrets/sign/key.pub + +[paypal] +paypal_url = https://development.paypal.example.com +paypal_cert=/secrets/ssl/paypal.crt + +[mysql] +db_con= /secrets/mysql/connection +db_user = /secrets/mysql/username +db_password = /secrets/mysql/password +``` + +The application itself knows nothing about Kubernetes secrets, mounted volumes or any other cluster resource. It only reads its own filesystem at `/secrets` + +This folder is populated inside the pod with [secret mounting](https://github.com/codefresh-contrib/gitops-secrets-sample-app/blob/main/manifests/deployment.yml): + +```yaml +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: gitops-secrets-deploy +spec: + replicas: 1 + selector: + matchLabels: + app: gitops-secrets-app + template: + metadata: + labels: + app: gitops-secrets-app + spec: + containers: + - name: gitops-secrets-app + image: docker.io/kostiscodefresh/gitops-secrets-sample-app:latest + imagePullPolicy: Always + ports: + - containerPort: 8080 + volumeMounts: + - name: mysql + mountPath: "/secrets/mysql" + readOnly: true + - name: paypal + mountPath: "/secrets/ssl" + readOnly: true + - name: sign-keys + mountPath: "/secrets/sign/" + readOnly: true + livenessProbe: + httpGet: + path: /health + port: 8080 + readinessProbe: + httpGet: + path: /health + port: 8080 + volumes: + - name: mysql + secret: + secretName: mysql-credentials + - name: paypal + secret: + secretName: paypal-cert + - name: sign-keys + projected: + sources: + - secret: + name: key-private + - secret: + name: key-public + +``` + +This way there is a clear separation of concerns. + + + +You can find the secrets themselves at [https://github.com/codefresh-contrib/gitops-secrets-sample-app/tree/main/never-commit-to-git/unsealed_secrets](https://github.com/codefresh-contrib/gitops-secrets-sample-app/tree/main/never-commit-to-git/unsealed_secrets). There are encoded with base64 so they are **NOT** safe to commit in Git. + +>Note that for demonstration reasons the Git repository contains raw secrets so that you can encrypt them yourself. In a production application the Git repository must only contain sealed/encrypted secrets + +## Preparing the secrets + +The critical point of this application is to encrypt all the secrets and place them in Git. +By default, the sealed secrets controller will encrypt a secret according to a specific namespace (this behavior is configurable) so you need to decide in advance what namespace wil host the application. + +Then encrypt all secrets as below: + +``` +kubectl create ns git-secrets +cd safe-to-commit/sealed_secrets +kubeseal -n git-secrets < ../../never-commit-to-git/unsealed_secrets/db-creds.yml > db-creds.json +kubeseal -n git-secrets < ../../never-commit-to-git/unsealed_secrets/key-private.yml > key-private.json +kubeseal -n git-secrets < ../../never-commit-to-git/unsealed_secrets/key-public.yml > key-public.json +kubeseal -n git-secrets < ../../never-commit-to-git/unsealed_secrets/paypal-cert.yml > paypal-cert.json +kubectl apply -f . -n git-secrets + +``` + +You now have encrypted your plain secrets. These files are safe to commit to Git. +You can see that they have been converted automatically to plain secrets with the command + +``` +kubectl get secrets -n git-secrets +``` + +## Deploying manually the application + +Note that the application requires all secrets to be present: + +``` +cd safe-to-commit/manifests +kubectl apply -f . -n git-secrets +``` + +You can now visit the application url to see how it has access to all the secrets. + + +## Deploying the application with Codefresh GitOps + +Of course the big advantage of having everything committed into Git, is the ability to adopt GitOps +for the whole application (including secrets). + +This means that you can simply [point Codefresh GitOps to your repository]({{site.baseurl}}/docs/integrations/argocd/#creating-argocd-applications) and have the application +automatically deploy in the cluster. + +{% include image.html +lightbox="true" +file="/images/examples/sealed-secrets/add-app.png" +url="/images/examples/sealed-secrets/add-app.png" +alt="Creating a GitOps application" +caption="Creating a GitOps application" +max-width="50%" +%} + +You can then see the application in the GitOps dashboard: + +{% include image.html +lightbox="true" +file="/images/examples/sealed-secrets/current-state.png" +url="/images/examples/sealed-secrets/current-state.png" +alt="GitOps dashboard" +caption="GitOps dashboard" +max-width="90%" +%} + +If you visit its URL you will +see the loading of secrets: + +{% include image.html +lightbox="true" +file="/images/examples/sealed-secrets/app-secrets.png" +url="/images/examples/sealed-secrets/app-secrets.png" +alt="Application using secrets" +caption="Application using secrets" +max-width="90%" +%} + + +>Note that for simplicity reasons the same Git repository holds both the application source code and its +manifests. In a real application you should have two Git repositories (one of the source code only and one of the manifests). + + +## What to Read Next + +- [Codefresh GitOps]({{site.baseurl}}/docs/ci-cd-guides/gitops-deployments/) +- [Using secrets]({{site.baseurl}}/docs/configure-ci-cd-pipeline/secrets-store/) +- [Secrets with Mozilla Sops]({{site.baseurl}}/docs/yaml-examples/examples/decryption-with-mozilla-sops/) +- [Vault Secrets in the Pipeline]({{site.baseurl}}/docs/yaml-examples/examples/vault-secrets-in-the-pipeline/) + diff --git a/_docs/example-catalog/golang/golang-hello-world.md b/_docs/example-catalog/golang/golang-hello-world.md new file mode 100644 index 00000000..665c43ab --- /dev/null +++ b/_docs/example-catalog/golang/golang-hello-world.md @@ -0,0 +1,268 @@ +--- +title: "Create a Docker image for GO" +description: "Using Codefresh pipelines" +group: learn-by-example +sub_group: golang +redirect_from: + - /docs/go/cf-example-golang-hello-world/ +toc: true +--- + +Codefresh can work with Go projects of any version using built-in modules or any other dependency mechanism. + +## The example golang project + +You can see the example project at [https://github.com/codefresh-contrib/golang-sample-app](https://github.com/codefresh-contrib/golang-sample-app). The repository contains a simple Golang web application including unit tests. There are 3 Dockerfiles available: + +* [Simple Dockerfile](https://github.com/codefresh-contrib/golang-sample-app/blob/master/Dockerfile) (with old Go version that requires `GOPATH` building) +* [Dockerfile with Go modules](https://github.com/codefresh-contrib/golang-sample-app/blob/master/Dockerfile.mod) (optimized for Docker caching) +* [Multi-stage Dockerfile](https://github.com/codefresh-contrib/golang-sample-app/blob/master/Dockerfile.multistage) (with Go modules and unit tests) + +Let's see these workflows in order. + +## Simple Docker image pipeline + +The most [simple pipeline](https://github.com/codefresh-contrib/golang-sample-app/blob/master/codefresh.yml) that you can create is just two [steps]({{site.baseurl}}/docs/codefresh-yaml/steps/). A [clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) to fetch the code and a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) to create a Docker image. + + `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: full + dockerfile: Dockerfile +{% endraw %} +{% endhighlight %} + +Once you run this pipeline Codefresh will create a Docker image for the Golang application: + +{% include image.html +lightbox="true" +file="/images/learn-by-example/golang/golang-simple-pipeline.png" +url="/images/learn-by-example/golang/golang-simple-pipeline.png" +alt="Simple pipeline for Golang" +caption="Simple pipeline for Golang" +max-width="80%" +%} + +The big advantage of this workflow is that the Dockerfile you use can define any Go version and dependency tool. As long as the Dockerfile is self-contained (i.e. it compiles GO on its own), the pipeline will work as expected. + +In the example application, the simple (unoptimized) Dockerfile has an old Go version that still requires `GOPATH` folders. + +`Dockerfile` +{% highlight docker %} +{% raw %} +FROM golang:1.10 + +# Set the Current Working Directory inside the container +WORKDIR $GOPATH/src/github.com/codefresh-contrib/go-sample-app + +# Copy everything from the current directory to the PWD (Present Working Directory) inside the container +COPY . . + +# Download all the dependencies +RUN go get -d -v ./... + +# Install the package +RUN go install -v ./... + +# This container exposes port 8080 to the outside world +EXPOSE 8080 + +# Run the executable +CMD ["go-sample-app"] +{% endraw %} +{% endhighlight %} + + +## Run unit tests as part of the pipeline + +If you want to run Go specific steps in your pipeline, you can use [freestyle]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) steps with any GO image that you want. If your GO application is using GO modules, this is even easier as you don't need to place the application into a specific GOPATH compliant directory first. + +This [pipeline](https://github.com/codefresh-contrib/golang-sample-app/blob/master/codefresh-gomod.yml) is running unit tests as a separate step and then builds the docker image. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - test + - build +steps: + main_clone: + title: Cloning main repository... + type: git-clone + stage: checkout + repo: 'codefresh-contrib/golang-sample-app' + revision: master + git: github + MyUnitTests: + title: Unit test + stage: test + image: 'golang:1.12' + commands: + - go test -v + MyAppDockerImage: + title: Building Docker Image + type: build + stage: build + image_name: my-golang-image + working_directory: ./ + tag: modules + dockerfile: Dockerfile.mod +{% endraw %} +{% endhighlight %} + +If the unit tests fail, then the docker image will never be created (Codefresh automatically stops a pipeline when there is an error). + +{% include image.html +lightbox="true" +file="/images/learn-by-example/golang/golang-ci-pipeline.png" +url="/images/learn-by-example/golang/golang-ci-pipeline.png" +alt="Golang pipeline with unit tests" +caption="Golang pipeline with unit tests" +max-width="80%" +%} + +Notice that in this case we have added module support in the Go application. The new Dockerfile is the following: + +`Dockerfile` +{% highlight docker %} +{% raw %} +FROM golang:1.12-alpine + +RUN apk add --no-cache git + +# Set the Current Working Directory inside the container +WORKDIR /app/go-sample-app + +# We want to populate the module cache based on the go.{mod,sum} files. +COPY go.mod . +COPY go.sum . + +RUN go mod download + +COPY . . + +# Build the Go app +RUN go build -o ./out/go-sample-app . + + +# This container exposes port 8080 to the outside world +EXPOSE 8080 + +# Run the binary program produced by `go install` +CMD ["./out/go-sample-app"] +{% endraw %} +{% endhighlight %} + +The Dockerfile will also automatically take advantage of the Codefresh distributed docker cache. + + + +## Create a multi-stage Docker image for GO + +Especially with Go applications, the recommended way to create Docker images is with [multi-stage builds](https://docs.docker.com/develop/develop-images/multistage-build/). This makes the resulting Docker image as compact as possible. + +You can also embed unit tests in the Docker creation process, which guarantee the correctness of image (integration tests are best kept in the pipeline). + +Here is the new Dockerfile: + +`Dockerfile` +{% highlight docker %} +{% raw %} +FROM golang:1.12-alpine AS build_base + +RUN apk add --no-cache git + +# Set the Current Working Directory inside the container +WORKDIR /tmp/go-sample-app + +# We want to populate the module cache based on the go.{mod,sum} files. +COPY go.mod . +COPY go.sum . + +RUN go mod download + +COPY . . + +# Unit tests +RUN CGO_ENABLED=0 go test -v + +# Build the Go app +RUN go build -o ./out/go-sample-app . + +# Start fresh from a smaller image +FROM alpine:3.9 +RUN apk add ca-certificates + +COPY --from=build_base /tmp/go-sample-app/out/go-sample-app /app/go-sample-app + +# This container exposes port 8080 to the outside world +EXPOSE 8080 + +# Run the binary program produced by `go install` +CMD ["/app/go-sample-app"] +{% endraw %} +{% endhighlight %} + +Codefresh has native support for multi-stage builds. The [pipeline](https://github.com/codefresh-contrib/golang-sample-app/blob/master/codefresh-multi-stage.yml) is the same as the first one with just two steps. + + `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 Multi-stage Image + type: build + image_name: my-golang-image + working_directory: ./ + tag: multi-stage + dockerfile: Dockerfile.multistage +{% endraw %} +{% endhighlight %} + +You should see a much smaller Docker image at the end. + + +## Viewing Docker images + +If you look at your [Docker registry dashboard]({{site.baseurl}}/docs/docker-registries/working-with-docker-registries/#viewing-docker-images) created the advantages of the multi-stage build are very clear: + +{% include image.html +lightbox="true" +file="/images/learn-by-example/golang/golang-image-size.png" +url="/images/learn-by-example/golang/golang-image-size.png" +alt="Creating different Docker images" +caption="Creating different Docker images" +max-width="80%" +%} + +We recommend using Go modules and multi-stage builds in your Go projects. + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) + diff --git a/_docs/example-catalog/golang/goreleaser.md b/_docs/example-catalog/golang/goreleaser.md new file mode 100644 index 00000000..aa6e955d --- /dev/null +++ b/_docs/example-catalog/golang/goreleaser.md @@ -0,0 +1,121 @@ +--- +title: "Compile and release a Go application" +description: "Using Codefresh pipelines" +group: learn-by-example +sub_group: golang +toc: true +--- + +[Goreleaser](https://github.com/goreleaser/goreleaser) is a helper utility that allows you to easily create: + +* Binary packages for each OS/arch +* Archives +* GitHub releases +* Docker images +* Snap/RPM/deb/Homebrew + +for Go applications. + +Codefresh can also create Docker images on its own, but Goreleaser is still useful for the binary artifact creation capability. + + +## Run Goreleaser with docker + +You can see the example project at [https://github.com/codefresh-contrib/goreleaser-sample-app](https://github.com/codefresh-contrib/goreleaser-sample-app). The repository contains a simple Golang web application with a [goreleaser configuration](https://github.com/codefresh-contrib/goreleaser-sample-app/blob/master/.goreleaser.yml) + + +There is already a [Docker image for Goreleaser](https://hub.docker.com/r/goreleaser/goreleaser/) so it is very easy to use it in Codefresh pipeline. +In the most simple case you case run goreleaser in a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). + + `YAML` +{% highlight yaml %} +{% raw %} + ReleaseMyApp: + title: Creating packages + stage: release + image: 'goreleaser/goreleaser' + commands: + - goreleaser --snapshot --skip-publish --rm-dist +{% endraw %} +{% endhighlight %} + +More typically however you also need to provide a GitHub token so that GitHub releases are also available. There are two ways to do that. + + +## Create a CI pipeline that compiles/releases Go + +In most cases you want to just reuse the Git integration already defined in Codefresh. +This [pipeline](https://github.com/codefresh-contrib/goreleaser-sample-app/blob/master/codefresh.yml) is using the GitHub token from [Git integration]({{site.baseurl}}/docs/integrations/git-providers/) in order to allow github access. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - build + - release +steps: + main_clone: + title: 'Cloning main repository...' + type: git-clone + repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}' + revision: '${{CF_REVISION}}' + stage: prepare + BuildMyApp: + title: Compiling go code + stage: build + image: 'golang:1.12' + commands: + - go build + GetGitToken: + title: Reading GitHub token + stage: release + image: codefresh/cli + commands: + - cf_export GITHUB_TOKEN=$(codefresh get context github-1 --decrypt -o yaml | yq -y .spec.data.auth.password) + ReleaseMyApp: + title: Creating packages + stage: release + image: 'goreleaser/goreleaser' + commands: + - goreleaser --rm-dist +{% endraw %} +{% endhighlight %} + +Note that GoReleaser [requires a GitHub API token](https://goreleaser.com/environment/) (`GITHUB_TOKEN`) with the `repo` scope to deploy artifacts to GitHub. +Here we use [cf_export]({{site.baseurl}}/docs/codefresh-yaml/variables/#exporting-environment-variables-from-a-freestyle-step) and the [codefresh CLI](https://codefresh-io.github.io/cli/) in order to ask Codefresh about the existing token (that was used in git integrations). In your case you need to change `github-1` with the name of your [GitHub integration]({{site.baseurl}}/docs/integrations/git-providers/). + +It also possible to pass a GITHUB_TOKEN directly in the pipeline, if you don't want to re-use the existing one. This is an alternative way of allowing Goreleaser to create GitHub releases. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/golang/github-token.png" +url="/images/learn-by-example/golang/github-token.png" +alt="Passing a specific github token in the pipeline" +caption="Passing a specific github token in the pipeline" +max-width="70%" +%} + +You could also store the token in [shared configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/). +Regardless of the way you choose to pass the GitHub token, the final step is to make sure that your pipeline is only executed for tag events. + + +{% include image.html +lightbox="true" +file="/images/learn-by-example/golang/tags-only-trigger.png" +url="/images/learn-by-example/golang/tags-only-trigger.png" +alt="Run pipeline only on tag creation" +caption="Run pipeline only on tag creation" +max-width="80%" +%} + +This means that this pipeline will not run on normal commits. It is also possible to use [step conditionals]({{site.baseurl}}/docs/codefresh-yaml/conditional-execution-of-steps/) for more complex cases. + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) + diff --git a/_docs/example-catalog/helm.md b/_docs/example-catalog/helm.md new file mode 100644 index 00000000..ba32dae4 --- /dev/null +++ b/_docs/example-catalog/helm.md @@ -0,0 +1,225 @@ +--- +title: "Deploy with Helm" +description: "Use Helm in a Codefresh pipeline" +group: yaml-examples +sub_group: examples +toc: true +--- + +[Helm](https://helm.sh/) is the package manager for Kubernetes. Codefresh has comprehensive support for Helm: + +* You get a free [built-in Helm repository]({{site.baseurl}}/docs/new-helm/managed-helm-repository/) with each Codefresh account. +* You can track your charts in the [Helm chart dashboard]({{site.baseurl}}/docs/new-helm/add-helm-repository/). +* You can view your deployments in your [Helm Release dashboard]({{site.baseurl}}/docs/new-helm/helm-releases-management/). +* You can view Helm releases in the [Environment dashsboard]({{site.baseurl}}/docs/deploy-to-kubernetes/environment-dashboard/). +* You can promote Helm releases in your [Helm promotion dashboard]({{site.baseurl}}/docs/new-helm/helm-environment-promotion/). +* You can add any external Helm repository on any other cloud provider. + +Codefresh also provides a [pipeline step]({{site.baseurl}}/docs/new-helm/using-helm-in-codefresh-pipeline/) for deploying with Helm. + +For more insights on Helm charts see also our [Helm best practices]({{site.baseurl}}/docs/new-helm/helm-best-practices/) guide. + + +## The example Helm project + +You can see the example project at [https://github.com/codefresh-contrib/helm-sample-app](https://github.com/codefresh-contrib/helm-sample-app). The repository contains a simple Go application, a Dockerfile and an example chart. + + +## Prerequisites + +You need to have [added at least one Kubernetes cluster]({{site.baseurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/) in your Codefresh account. + +>Notice that if you still use Helm 2 you should also have installed the server side of Helm 2 (Tiller) using `helm init`. This command is best run from the cloud console of your cluster. The respective pipelines of this guide are in the [helm-2 branch](https://github.com/codefresh-contrib/helm-sample-app/tree/helm-2). + + + +## CI/CD pipeline with Helm deployment + +It is possible to deploy directly a Helm chart as it exists on the filesystem. This is not the recommended way to use Helm, because you are bypassing the Helm chart repository, but it is certainly the simplest Helm pipeline possible. + +{% include image.html +lightbox="true" +file="/images/examples/helm/helm-deploy-pipeline.png" +url="/images/examples/helm/helm-deploy-pipeline.png" +alt="Pipeline for Helm deployment" +caption="Pipeline for Helm deployment" +max-width="100%" +%} + +Here is the whole pipeline: + + `codefresh-do-not-store.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - build + - deploy +steps: + clone: + title: Cloning main repository... + stage: prepare + type: git-clone + arguments: + repo: codefresh-contrib/helm-sample-app + revision: master + git: github + build: + title: Building Docker Image + stage: build + type: build + working_directory: ./helm-sample-app + arguments: + image_name: helm-sample-app-go + tag: multi-stage + dockerfile: Dockerfile + deploy: + title: Deploying Helm Chart + type: helm + stage: deploy + working_directory: ./helm-sample-app + arguments: + action: install + chart_name: charts/helm-example + release_name: my-go-chart-prod + helm_version: 3.0.2 + kube_context: my-demo-k8s-cluster + custom_values: + - 'buildID=${{CF_BUILD_ID}}' + - 'image_pullPolicy=Always' + - 'image_tag=multi-stage' + - 'replicaCount=3' + - 'image_pullSecret=codefresh-generated-r.cfcr.io-cfcr-default' +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. Builds a docker image using a [Build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) +1. Deploys the Helm chart to a cluster named `my-demo-k8s-cluster` using the Helm step [from the Step Marketplace](https://codefresh.io/steps/step/helm). + +Note that in this example `charts/helm-example` refers to the [filesystem location in the code](https://github.com/codefresh-contrib/helm-sample-app/tree/master/charts/helm-example) that was just checked out. + +The deployment will be visible in the [Helm releases dashboard]({{site.baseurl}}/docs/new-helm/helm-releases-management/). + +{% include image.html +lightbox="true" +file="/images/examples/helm/helm-release.png" +url="/images/examples/helm/helm-release.png" +alt="Helm release view" +caption="Helm release view" +max-width="100%" +%} + +If you want to run this example yourself, make sure to edit the chart and put your own values there for the Docker image. + +## CI/CD pipeline with Helm deployment that also stores the chart + +It is recommended to use a Helm repository to store your chart before deploying it. This way you know what is deployed in your clusters +and you can also reuse charts in other installations. + +First of all you need to import in your pipeline from the [shared configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/) the settings for the internal Helm repository (or any other external repository that you have setup in Codefresh). + This will make available the internal Helm repository to your pipeline so that it can push/pull Helm charts from it. + + {% include image.html + lightbox="true" + file="/images/examples/helm/import-helm-configuration.png" + url="/images/examples/helm/import-helm-configuration.png" + alt="Using the default Helm repository in a Pipeline" + caption="Using the default Helm repository in a Pipeline" + max-width="40%" + %} + +Once that is done you can change your pipeline to also store the chart first and *then* deploy it. + + +{% include image.html +lightbox="true" +file="/images/examples/helm/helm-push-and-deploy-pipeline.png" +url="/images/examples/helm/helm-push-and-deploy-pipeline.png" +alt="Pipeline for Helm deployment that stores chart" +caption="Pipeline for Helm deployment that stores chart" +max-width="100%" +%} + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - build + - store + - deploy +steps: + clone: + title: Cloning main repository... + stage: prepare + type: git-clone + arguments: + repo: codefresh-contrib/helm-sample-app + revision: master + git: github + build: + title: Building Docker Image + stage: build + type: build + working_directory: ./helm-sample-app + arguments: + image_name: helm-sample-app-go + tag: multi-stage + dockerfile: Dockerfile + store: + title: Storing Helm Chart + type: helm + stage: store + working_directory: ./helm-sample-app + arguments: + action: push + chart_name: charts/helm-example + kube_context: my-demo-k8s-cluster + deploy: + type: helm + stage: deploy + working_directory: ./helm-sample-app + arguments: + action: install + chart_name: charts/helm-example + release_name: my-go-chart-prod + helm_version: 3.0.2 + kube_context: my-demo-k8s-cluster + custom_values: + - 'buildID=${{CF_BUILD_ID}}' + - 'image_pullPolicy=Always' + - 'image_tag=multi-stage' + - 'replicaCount=3' + - 'image_pullSecret=codefresh-generated-r.cfcr.io-cfcr-default' +{% endraw %} +{% endhighlight %} + + +After you finish running your pipeline, not only the deployment will take place, but you will also see your chart in your [Helm Chart dashboard]({{site.baseurl}}/docs/new-helm/add-helm-repository/): + +{% include image.html +lightbox="true" +file="/images/examples/helm/helm-chart.png" +url="/images/examples/helm/helm-chart.png" +alt="Stored Helm chart" +caption="Stored Helm chart" +max-width="80%" +%} + +It is also possible to [run your own Helm commands]({{site.baseurl}}/docs/new-helm/using-helm-in-codefresh-pipeline/#example-custom-helm-commands) in a Codefresh pipeline. + + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) +* [Using Helm in Codefresh pipelines]({{site.baseurl}}/docs/new-helm/using-helm-in-codefresh-pipeline/) diff --git a/_docs/example-catalog/import-data-to-mongodb.md b/_docs/example-catalog/import-data-to-mongodb.md new file mode 100644 index 00000000..96c826ae --- /dev/null +++ b/_docs/example-catalog/import-data-to-mongodb.md @@ -0,0 +1,57 @@ +--- + +title: "Import data to MongoDB" +description: "" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/import-data-to-mongodb-in-composition/ + - /docs/on-demand-test-environment/example-compositions/import-data-to-mongodb/ +toc: true +--- + +If you want to import/restore or to do something else before using mongo db in your application, you can look at the following example. + +You just need to create Dockerfile for mongo seed service and provide the command to prepare mongo db. In this case it's command `mongoimport` + + `Dockerfile mongo_seed` +{% highlight docker %} +FROM mongo +COPY init.json /init.json +CMD mongoimport --host mongodb --db exampleDb --collection contacts --type json --file /init.json --jsonArray +{% endhighlight %} + +## Looking around +In the root of this repository you'll find a file named `docker-compose.yml`. +Let's quickly review the contents of this file: + + `docker-compose.yml` +{% highlight yaml %} +{% raw %} +version: '3' +services: + mongodb: + image: mongo + command: mongod --smallfiles + ports: + - 27017 + + mongo_seed: + image: ${{mongo_seed}} + links: + - mongodb + + client: + image: ${{build_prj}} + links: + - mongodb + ports: + - 9000 + environment: + - MONGO_URI=mongodb:27017/exampleDb +{% endraw %} +{% endhighlight %} + +{{site.data.callout.callout_info}} +You can add the following example to your GitHub or Bitbucket account, and build the [example](https://github.com/codefreshdemo/cf-example-manage-mongodb){:target="_blank"}. +{{site.data.callout.end}} diff --git a/_docs/example-catalog/integration-tests-with-mongo.md b/_docs/example-catalog/integration-tests-with-mongo.md new file mode 100644 index 00000000..e11fd4eb --- /dev/null +++ b/_docs/example-catalog/integration-tests-with-mongo.md @@ -0,0 +1,101 @@ +--- +title: "Integration Tests with Mongo" +description: "Launching a MongoDB service container" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/nodejsmongo/ + - /docs/testing/unit-tests/unit-tests-with-mongo/ +toc: true +--- + +In this example we will see a NodeJS project that is using MongoDB for data storage. For the integration test phase we will launch an instance of MongoDB in order to run a set of [Mocha tests](https://mochajs.org/). + +{% include image.html +lightbox="true" +file="/images/examples/integration-tests/mongodb-integration-tests.png" +url="/images/examples/integration-tests/mongodb-integration-tests.png" +alt="MongoDB integration tests with Codefresh" +caption="MongoDB integration tests with Codefresh" +max-width="90%" +%} + +The Mocha tests are looking for a MongoDB connection at `mongo:27017`. + +## The example NodeJS project + +You can see the example project at [https://github.com/codefreshdemo/example_nodejs_mongo](https://github.com/codefreshdemo/example_nodejs_mongo). The repository contains the NodeJS source code and the Mocha tests. + +You can play with it locally by using Docker compose to launch both the application and the MongoDB datastore. + +## Create a pipeline with MongoDB integration tests + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: + - prepare + - build + - test +steps: + main_clone: + type: "git-clone" + description: "Cloning main repository..." + repo: "codefreshdemo/example_nodejs_mongo" + revision: "master" + git: github + stage: prepare + build_app_image: + title: "Building Docker Image" + type: "build" + image_name: "node-mongo-app" + tag: "master" + dockerfile: "Dockerfile" + stage: build + run_integration_tests: + title: "Running integration tests" + stage: test + image: '${{build_app_image}}' + environment: + - MONGO_PORT=27017 + commands: + # MongoDB is certainly up at this point + - cd /src + - npm test + services: + composition: + mongo: + image: mongo:latest + ports: + - 27017 + readiness: + timeoutSeconds: 30 + periodSeconds: 15 + image: '${{build_app_image}}' + commands: + - "nslookup mongo" + - "nc -z mongo 27017" +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. [Builds a Docker image]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) with the application source code as well as the Mocha tests +1. Runs mocha tests while launching a [service container]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) for an active MongoDB instance + +Notice that we also use the `readiness` property in the testing phase so that we can verify MongoDB is ready and listening, before running the tests. + +## What to read next + +- [Service Containers]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) +- [Integration test example]({{site.baseurl}}/docs/yaml-examples/examples/run-integration-tests/) +- [Integration Tests with Postgres]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-postgres/) +- [Integration Tests with MySQL]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-mysql/) +- [Integration Tests with Redis]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-redis/) + + + diff --git a/_docs/example-catalog/integration-tests-with-mysql.md b/_docs/example-catalog/integration-tests-with-mysql.md new file mode 100644 index 00000000..e08ee064 --- /dev/null +++ b/_docs/example-catalog/integration-tests-with-mysql.md @@ -0,0 +1,113 @@ +--- +title: "Integration Tests with MySQL" +description: "Launching a MySQL service container" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/nodejsmysql/ + - /docs/testing/unit-tests/unit-tests-with-mysql/ + - /docs/setup-unit-tests/ + - /docs/testing/unit-tests/unit-tests-with-composition/ + - /docs/run-unit-tests-with-composition/ + - /docs/unit-tests-with-database/ + - /docs/testing/unit-tests/unit-tests-with-database/ + - /docs/yaml-examples/examples/integration-tests-with-database/ +toc: true +--- + +In this example we will see a NodeJS project that is using MySQL for data storage. For the integration test phase we will launch an instance of MySQL in order to run a simple integration test. + +{% include image.html +lightbox="true" +file="/images/examples/integration-tests/mysql-integration-tests.png" +url="/images/examples/integration-tests/mysql-integration-tests.png" +alt="MySQL integration tests with Codefresh" +caption="MySQL integration tests with Codefresh" +max-width="90%" +%} + +The Integration tests are looking for a MySQL connection at `test_mysql_db:3306`. + +## The example NodeJS project + +You can see the example project at [https://github.com/codefreshdemo/cf-example-unit-tests-with-composition](https://github.com/codefreshdemo/cf-example-unit-tests-with-composition). The repository contains the NodeJS source code and the simple integration test. + +You can play with it locally by using Docker compose to launch both the application and the MySQL Database. + +## Create a pipeline with MySQL integration tests + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: + - prepare + - build + - test +steps: + main_clone: + type: "git-clone" + description: "Cloning main repository..." + repo: "codefreshdemo/cf-example-unit-tests-with-composition" + revision: "master" + git: github + stage: prepare + build_test_image: + title: "Building Test Docker Image" + type: "build" + image_name: "mysql-tests" + tag: "master" + dockerfile: "Dockerfile" + stage: build + run_integration_tests: + title: "Running integration tests" + stage: test + image: '${{build_test_image}}' + environment: &test_mysql_vars + - MYSQL_ROOT_PASSWORD=admin + - MYSQL_USER=my_user + - MYSQL_PASSWORD=admin + - MYSQL_DATABASE=nodejs + - MYSQL_HOST=test_mysql_db + commands: + # MySQL is certainly up at this point + - cd /usr/src/app + - npm test + services: + composition: + test_mysql_db: + image: mysql:5.7 + ports: + - 3306 + environment: *test_mysql_vars # Same MYSQL_HOST, MYSQL_USER etc. + readiness: + timeoutSeconds: 30 + periodSeconds: 15 + image: '${{build_test_image}}' + commands: + - "nslookup test_mysql_db" + - "nc -z test_mysql_db 3306" +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/). +1. [Builds a Docker image]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) with the integration test. +1. Runs the tests while launching a [service container]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) for an active MySQL instance passing the required environment variables (that match what the test is expecting). + +Notice that both the DB as well as the tests share a set of variables (`MYSQL_PASSWORD`, `MYSQL_USER` etc.) and thus we use [YAML anchors]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/#using-yaml-anchors-to-avoid-repetition) to avoid duplication. + +Notice that we also use the `readiness` property in the testing phase so that we can verify MySQL is ready and listening, before running the tests. + +## What to read next + +- [Service Containers]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) +- [Integration test example]({{site.baseurl}}/docs/yaml-examples/examples/run-integration-tests/) +- [Integration Tests with Postgres]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-postgres/) +- [Integration Tests with Redis]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-redis/) +- [Integration Tests with Mongo]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-mongo/) + + diff --git a/_docs/example-catalog/integration-tests-with-postgres.md b/_docs/example-catalog/integration-tests-with-postgres.md new file mode 100644 index 00000000..43e419f8 --- /dev/null +++ b/_docs/example-catalog/integration-tests-with-postgres.md @@ -0,0 +1,99 @@ +--- +title: "Integration Tests with Postgres" +description: "Launching a PostgreSQL service container" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/unit-tests-with-postgres/ + - /docs/testing/unit-tests/unit-tests-with-postgres/ +toc: true +--- + +In this example we will see a NodeJS project that is using PostgreSQL for data storage. For the integration test phase we will launch an instance of PostgreSQL in order to run a simple integration test. + +{% include image.html +lightbox="true" +file="/images/examples/integration-tests/postgresql-integration-tests.png" +url="/images/examples/integration-tests/postgresql-integration-tests.png" +alt="PostgreSQL integration tests with Codefresh" +caption="PostgreSQL integration tests with Codefresh" +max-width="90%" +%} + +The Integration tests are looking for a PostgreSQL connection at `postgres:5432`. + +## The example NodeJS project + +You can see the example project at [https://github.com/codefreshdemo/example_nodejs_postgres](https://github.com/codefreshdemo/example_nodejs_postgres). The repository contains the NodeJS source code and the simple integration test. + +You can play with it locally by using Docker compose to launch both the application and the PostgreSQL Database. + +## Create a pipeline with PostgreSQL integration tests + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: + - prepare + - build + - test +steps: + main_clone: + type: "git-clone" + description: "Cloning main repository..." + repo: "codefreshdemo/example_nodejs_postgres" + revision: "master" + git: github + stage: prepare + run_integration_tests: + title: "Running integration tests" + stage: test + image: node:6.9.1 + environment: &test_postgresql_vars + - POSTGRES_USER=user + - POSTGRES_PASSWORD=admin + - POSTGRES_DB=todo + commands: + # PostgreSQL is certainly up at this point + - npm install -g gulp + - npm install + - npm test + services: + composition: + postgres: + image: postgres:11.5 + ports: + - 5432 + environment: *test_postgresql_vars # Same POSTGRES_USER, POSTGRES_PASSWORD etc. + readiness: + timeoutSeconds: 30 + periodSeconds: 15 + image: postgres:11.5 + commands: + - "pg_isready -h postgres" + +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/). +1. Runs the tests while launching a [service container]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) for an active PostgreSQL instance passing the required environment variables (that match what the test is expecting). + +Notice that both the DB as well as the tests share a set of variables (`POSTGRES_USER`, `POSTGRES_PASSWORD` etc.) and thus we use [YAML anchors]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/#using-yaml-anchors-to-avoid-repetition) to avoid duplication. + +Notice that we also use the `readiness` property in the testing phase so that we can verify PostgreSQL is ready and listening, before running the tests. + +## What to read next + +- [Service Containers]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) +- [Integration test example]({{site.baseurl}}/docs/yaml-examples/examples/run-integration-tests/) +- [Integration Tests with MySQL]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-mysql/) +- [Integration Tests with Redis]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-redis/) +- [Integration Tests with Mongo]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-mongo/) +- [Preload a DB with tests data]({{site.baseurl}}/docs/yaml-examples/examples/populate-a-database-with-existing-data/) + + diff --git a/_docs/example-catalog/integration-tests-with-redis.md b/_docs/example-catalog/integration-tests-with-redis.md new file mode 100644 index 00000000..45d21884 --- /dev/null +++ b/_docs/example-catalog/integration-tests-with-redis.md @@ -0,0 +1,129 @@ +--- +title: "Integration Tests with Redis" +description: "Launching a Redis service container" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/python-redis/ + - /docs/testing/unit-tests/unit-tests-with-redis/ +toc: true +--- + +In this example we will see a Python project that is using Redis for storing a web counter. For the integration test phase we will launch both the application and an instance of Redis in order to run a simple integration test. + +{% include image.html +lightbox="true" +file="/images/examples/integration-tests/redis-integration-tests.png" +url="/images/examples/integration-tests/redis-integration-tests.png" +alt="Redis integration tests with Codefresh" +caption="Redis integration tests with Codefresh" +max-width="90%" +%} + +The application will be launched with a hostname `web` while Redis will be at `redis:6379`. + +## The example Python project + +You can see the example project at [https://github.com/codefreshdemo/example_python_redis](https://github.com/codefreshdemo/example_python_redis). The repository contains the Python source code and a test script. + +You can play with it locally by using Docker compose to launch both the application and the Redis datastore. + +## Create a pipeline with Redis integration tests + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: + - prepare + - build + - test +steps: + main_clone: + type: "git-clone" + description: "Cloning main repository..." + repo: "codefreshdemo/example_python_redis" + revision: "master" + git: github + stage: prepare + build_app_image: + title: "Building Docker Image" + type: "build" + image_name: "python-redis-app" + tag: "latest" + dockerfile: "Dockerfile" + stage: build + build_test_image: + title: "Building Docker Test Image" + type: "build" + image_name: "python-redis-app-tests" + tag: "latest" + dockerfile: "Dockerfile.test" + stage: test + run_integration_tests: + title: "Running integration tests" + stage: test + image: '${{build_test_image}}' + commands: + # Redis and app are certainly up at this point + - sh ./test.sh + services: + composition: + redis: + image: redis:latest + ports: + - 6379 + web: + image: '${{build_app_image}}' + ports: + - 80 + readiness: + timeoutSeconds: 30 + periodSeconds: 15 + image: '${{build_test_image}}' + commands: + - "nslookup redis" + - "nslookup web" + - "nc -z redis 6379" + - "nc -z web 80" +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. [Builds a Docker image]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) with the application itself +1. Builds a helper image that contains `nc` and `curl` that will be used for the integration tests +1. Runs the test script while launching two [service containers]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) (one for the app and one for Redis) + +Notice that we also use the `readiness` property in the testing phase so that we can verify that both the application +as well as Redis are up, before running the tests. + +## The integration test script + +The integration test is very simple. It just uses `curl` to hit the Python endpoint and `grep` to check for a well known string. + + `test.sh` +{% highlight sh %} +#!bin/bash + +if curl web | grep -q 'Visits: '; then + echo "Tests passed!" + exit 0 +else + echo "Tests failed!" + exit 1 +fi +{% endhighlight %} + +Notice that we use the helper image both for running the test (because of `curl`) and for testing the readiness (because of `nc`). In a more complex application these could be two completely different images. + +## What to read next + +- [Service Containers]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) +- [Integration test example]({{site.baseurl}}/docs/yaml-examples/examples/run-integration-tests/) +- [Integration Tests with Postgres]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-postgres/) +- [Integration Tests with MySQL]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-mysql/) +- [Integration Tests with Mongo]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-mongo/) diff --git a/_docs/example-catalog/java/gradle.md b/_docs/example-catalog/java/gradle.md new file mode 100644 index 00000000..76697af5 --- /dev/null +++ b/_docs/example-catalog/java/gradle.md @@ -0,0 +1,208 @@ +--- +title: "Java Example with Gradle and Docker" +description: "Create Docker images for Spring/Gradle" +excerpt: "" +group: learn-by-example +sub_group: java +redirect_from: + - /docs/java/gradle/ +toc: true +--- + +Codefresh can work with Gradle builds in a similar manner as with [Maven builds]({{site.baseurl}}/docs/learn-by-example/java/spring-boot-2/). + +## The example Gradle project + +You can see the example project at [https://github.com/codefresh-contrib/gradle-sample-app](https://github.com/codefresh-contrib/gradle-sample-app). The repository contains a Spring Boot 2 project built with Gradle with the following tasks: + +* `gradle test` runs unit tests. +* `gradle build` creates a self-contained jar file (using Spring boot). + +Once launched the application presents a simple message at localhost:8080 and also at the various `/actuator/health` endpoints. + +## Gradle and Docker (multi-stage builds) + +The easiest way to use Gradle is with [multi-stage builds](https://blog.docker.com/2017/07/multi-stage-builds/). With multi-stage builds a Docker build can use one base image for compilation/packaging/unit tests and a different one that will hold the runtime of the application. This makes the final image more secure and smaller in size (as it does not contain any development/debugging tools). + +In the case of Gradle, you can use a base image that has the full JDK and Gradle itself, while the final image has the JRE and nothing else. + +The example project is actually using multi-stage builds by default. + +Here is the multi-stage Dockerfile: + + `Dockerfile` +{% highlight docker %} +{% raw %} +FROM gradle:4.7.0-jdk8-alpine AS build +COPY --chown=gradle:gradle . /home/gradle/src +WORKDIR /home/gradle/src +RUN gradle build --no-daemon + +FROM openjdk:8-jre-slim + +EXPOSE 8080 + +RUN mkdir /app + +COPY --from=build /home/gradle/src/build/libs/*.jar /app/spring-boot-application.jar + +ENTRYPOINT ["java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app/spring-boot-application.jar"] +{% endraw %} +{% endhighlight %} + +This docker build does the following: + +1. Starts from the Gradle image +1. Copies the Java source code inside the container +1. Compiles the code and runs unit tests (with `Gradle build`) +1. Discards the Gradle image with all the compiled classes/unit test results etc. +1. Starts again from the JRE image and copies **only** the JAR file created before + +We start Gradle without the long-running daemon, as the deamon is best used during local development only and not in CI/CD pipelines. + +### Create a CI pipeline for Gradle (multi-stage Docker builds) + +Because in multi-stage builds Docker itself handles most of the build process, moving the project to Codefresh is straightforward. We just need [a single step](https://github.com/codefresh-contrib/gradle-sample-app/blob/master/codefresh.yml) that creates the Docker image after checking out the code. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - build +steps: + main_clone: + title: Cloning main repository... + stage: prepare + type: git-clone + repo: 'codefresh-contrib/gradle-sample-app' + revision: master + git: github + BuildingDockerImage: + title: Building Docker Image + stage: build + type: build + image_name: gradle-sample-app + working_directory: ./ + tag: 'multi-stage' + dockerfile: Dockerfile +{% endraw %} +{% endhighlight %} + +This will compile/test/package the Gradle application and create a Docker image. + + +{% include image.html +lightbox="true" +file="/images/learn-by-example/java/gradle-multistage.png" +url="/images/learn-by-example/java/gradle-multistage.png" +alt="Gradle Multi-stage Docker build" +caption="Gradle Multi-stage Docker build" +max-width="80%" +%} + +Codefresh is automatically caching +Docker layers (it uses the Docker image of a previous build as a cache for the next) and therefore builds will become +much faster after the first one finishes. + + +## Packaging an existing Jar in a Docker image + +It also possible to have a simpler Dockerfile that only packages the final jar which was already created in the CI/CD pipeline (i.e. outside of Docker). + +A [simpler Dockerfile](https://github.com/codefresh-contrib/gradle-sample-app/blob/master/Dockerfile.only-package) is also provided at the same repository. It uses the base JRE image and just copies the JAR file inside the container. + + `Dockerfile.only-package` +{% highlight docker %} +{% raw %} +FROM openjdk:8-jre-slim + +EXPOSE 8080 + +RUN mkdir /app + +COPY build/libs/*.jar /app/spring-boot-application.jar + +ENTRYPOINT ["java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app/spring-boot-application.jar"] +{% endraw %} +{% endhighlight %} + +This means that _before_ building the Docker image, the compilation step (`gradle build`) is expected to be finished already. Therefore, in the `codefresh.yml` file we need at least two steps. The first one should prepare the JAR file and the second +one should create the Docker image. + +### Create a CI pipeline for a Gradle JAR + +The repository also contains a premade [Codefresh YAML file](https://github.com/codefresh-contrib/gradle-sample-app/blob/master/codefresh-package-only.yml) that creates a JAR file first and then packages it in a Docker image. + +Here are the full contents of the file. + + `codefresh-package-only.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - test + - package + - build +steps: + main_clone: + title: Cloning main repository... + stage: prepare + type: git-clone + repo: 'codefresh-contrib/gradle-sample-app' + revision: master + git: github + MyUnitTests: + title: Compile/Unit test + stage: test + image: gradle:4.7.0-jdk8-alpine + commands: + - gradle test --no-daemon --build-cache --gradle-user-home=/codefresh/volume/.gradle -Dmaven.repo.local=/codefresh/volume/m2 + BuildMyJar: + title: Packaging Jar file + stage: package + image: gradle:4.7.0-jdk8-alpine + commands: + - gradle build --no-daemon --build-cache --gradle-user-home=/codefresh/volume/.gradle -Dmaven.repo.local=/codefresh/volume/m2 + MyAppDockerImage: + title: Building Docker Image + type: build + stage: build + image_name: gradle-sample-app + working_directory: ./ + tag: 'non-multi-stage' + dockerfile: Dockerfile.only-package +{% endraw %} +{% endhighlight %} + +The pipeline starts by checking out the code using a [git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/). The next two steps are [freestyle]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/), while the last one is a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/). + +{% include image.html +lightbox="true" +file="/images/learn-by-example/java/gradle-ci-pipeline.png" +url="/images/learn-by-example/java/gradle-ci-pipeline.png" +alt="Gradle pipeline" +caption="Gradle pipeline" +max-width="80%" +%} + +After checking out the code we use the standard [Gradle Docker image](https://hub.docker.com/_/gradle/) to run unit tests. We also pass parameters that disable the Gradle daemon, enable the build cache and also change the cache folder to reside in the Codefresh volume. + +### Using the Gradle cache in Codefresh + +Codefresh is smart enough that [caches automatically]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/#how-caching-works-in-codefresh) for us the workspace of a build (`/codefresh/volume`). This works great for build tools that keep their cache in the project folder, but not for Maven/Gradle which keep their cache externally. By changing the location of the Gradle cache we make sure that Codefresh will cache automatically the Gradle libraries resulting in much faster builds. We also place in the shared volume the local maven repo so that all jars that are created by Gradle (i.e. with an `install` task) are also available to the next pipeline stage. + +The next step is similar to the previous one, but this time we actually build the JAR file. We define again a custom cache folder so when you run the build you will see that Gradle will automatically pick the cache from the previous step. All Codefresh steps in a pipeline [run on the same workspace]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/#sharing-the-workspace-between-build-steps), so the build results from one step are visible to the next. + +The last step is a Docker build. We name our image **gradle-sample-app** and tag it with a string `non-multi-stage` but of course you can use any other tag name that you wish. +Once the pipeline is finished you will see the Spring Boot 2 Docker image your [Docker image dashboard]({{site.baseurl}}/docs/docker-registries/working-with-docker-registries/#viewing-docker-images). + +## What to read next + +* [Spring Maven example]({{site.baseurl}}/docs/learn-by-example/java/spring-boot-2/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) diff --git a/_docs/example-catalog/java/publish-jar.md b/_docs/example-catalog/java/publish-jar.md new file mode 100644 index 00000000..c5f8929a --- /dev/null +++ b/_docs/example-catalog/java/publish-jar.md @@ -0,0 +1,117 @@ +--- +title: "Publish Jar" +description: "How to upload a JAR file to Nexus or artifactory" +excerpt: "" +group: learn-by-example +sub_group: java +toc: true +--- + +Even though Codefresh has great support for containers, it can still be used for traditional JAR uploads of libraries or applications that are not dockerized yet. In this example we will compile a JAR and upload it to Nexus. The process is the same for Artifactory or any other package manager. + +For a Java application with Docker, see the [Gradle]({{site.baseurl}}/docs/learn-by-example/java/gradle/) or + [Maven example]({{site.baseurl}}/docs/learn-by-example/java/spring-boot-2/). + +## The example Java library project + +You can see the example project at [https://github.com/codefresh-contrib/plain-jar-sample-lib](https://github.com/codefresh-contrib/plain-jar-sample-lib). The repository contains a simple Java library built with Maven with the following goals: + +* `mvn package` creates a jar file of the library. It also runs unit tests. +* `mvn upload` uploads the jar to a package manager such as Nexus or Artifactory. + +We use Nexus for this example. To upload the Jar manually first edit the `pom.xml` with the URL of the package manager. The project also includes a [settings.xml](https://github.com/codefresh-contrib/plain-jar-sample-lib/blob/master/settings.xml) with parameterized credential. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/java/nexus-browser.png" +url="/images/learn-by-example/java/nexus-browser.png" +alt="The Nexus package manager" +caption="The Nexus package manager" +max-width="80%" +%} + +From your workstation you can upload the jar manually with: + + +``` +mvn -s settings.xml -Dserver.password=my-nexus-user -Dserver.username=my-nexus-pass deploy +``` +If you then visit Nexus you should see your JAR file in the snapshots repository. + +## Create a CI pipeline for publishing a JAR file + +[Create a new pipeline]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) in Codefresh and define as parameters your Nexus credentials. You could also use [shared configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/) or any other credential mechanism you already use in your other pipelines. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/java/nexus-credentials.png" +url="/images/learn-by-example/java/nexus-credentials.png" +alt="Parameters for Nexus" +caption="Parameters for Nexus" +max-width="50%" +%} + +Then copy/paste the [Codefresh YAML file](https://github.com/codefresh-contrib/plain-jar-sample-lib/blob/master/codefresh.yml) in the pipeline editor. +Here are the full contents of the file: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: 'codefresh-contrib/plain-jar-sample-lib' + revision: master + git: github + publish_jar: + title: Upload to nexus + image: 'maven:3.5.2-jdk-8-alpine' + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository -s settings.xml -Dserver.password=${{NEXUS_PASS}} -Dserver.username=${{NEXUS_USER}} deploy +{% endraw %} +{% endhighlight %} + +The pipeline starts by checking out the code using a [git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/). The next step is a [freestyle]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) one and packages the jar file. We also use the [Codefresh volume for caching]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipeline-caching/#traditional-build-caching). + +You can define the version of Maven/JDK you want to use by picking the appropriate image from Dockerhub, or using any of your own images (even from [external registries]({{site.baseurl}}/docs/docker-registries/external-docker-registries/)). + +Note the use of the two user-defined environment variables passed to `server.password` and `server.username`. You will need to define those yourself. See the documentation on [User Procided Variables]({{site.baseurl}}/docs/codefresh-yaml/variables/#user-provided-variables). +{% include image.html +lightbox="true" +file="/images/learn-by-example/java/publish-jar-pipeline.png" +url="/images/learn-by-example/java/publish-jar-pipeline.png" +alt="Publish JAR pipeline" +caption="Publish JAR pipeline" +max-width="100%" +%} + +Once the pipeline has finished you should see the JAR file in the Nexus browser UI. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/java/nexus-upload.png" +url="/images/learn-by-example/java/nexus-upload.png" +alt="Upload finished" +caption="Upload finished" +max-width="70%" +%} + +You can use the same pipeline for Artifactory or any other compliant Java package registry. + + + + + +## What to read next + +* [Gradle example]({{site.baseurl}}/docs/learn-by-example/java/gradle/) +* [Spring boot example]({{site.baseurl}}/docs/learn-by-example/java/spring-boot-2/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) + + + diff --git a/_docs/example-catalog/java/spring-boot-2.md b/_docs/example-catalog/java/spring-boot-2.md new file mode 100644 index 00000000..5078714c --- /dev/null +++ b/_docs/example-catalog/java/spring-boot-2.md @@ -0,0 +1,256 @@ +--- +title: "Spring Boot 2/Maven" +description: "Create Docker images for Spring/Maven" +excerpt: "" +group: learn-by-example +sub_group: java +redirect_from: + - /docs/spring-boot-2/ + - /docs/java/spring-boot-2/ +toc: true +--- + +Spring Boot is quickly becoming a very popular choice for building Java back-end applications, and is a bit different compared to traditional application servers, since it includes a servlet container in the final JAR file allowing +for self-contained Java Archives (JAR files). + +Codefresh can easily handle Spring Boot applications that are dockerized either in the traditional way or using multi-stage builds. + +## The example Java project + +You can see the example project at [https://github.com/codefresh-contrib/spring-boot-2-sample-app](https://github.com/codefresh-contrib/spring-boot-2-sample-app). The repository contains a Spring Boot 2 project built with Maven with the following goals: + +* `mvn package` creates a jar file that can be run on its own (exposes port 8080). It also runs unit tests. +* `mvn verify` runs integration tests as well. The application is launched locally as part of the Maven lifecycle. + +Once launched the application presents a simple message at localhost:8080 and also at the various `/actuator/health` endpoints. You can use the standard `spring-boot:run` command to run it locally (without Docker). + +## Spring Boot 2 and Docker (package only) + +A Dockerfile is also provided at the same repository. It uses the base JRE image and just copies the JAR file inside the container. + + `Dockerfile.only-package` +{% highlight docker %} +{% raw %} +FROM java:8-jre-alpine + +EXPOSE 8080 + +RUN mkdir /app +COPY target/*.jar /app/spring-boot-application.jar + +ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/spring-boot-application.jar"] + +HEALTHCHECK --interval=1m --timeout=3s CMD wget -q -T 3 -s http://localhost:8080/actuator/health/ || exit 1 + +{% endraw %} +{% endhighlight %} + +This means that _before_ building the Docker image, the compilation step (`mvn package`) is expected to be finished already. Therefore, in the `codefresh.yml` file we need at least two steps. The first one should prepare the JAR file and the second +one should create the Docker image. + +### Create a CI pipeline for Spring + +The repository also contains a premade [Codefresh YAML file]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) that you can use as a starting point in your own Spring Boot 2 projects. + +Here are the full contents of the file. + + `codefresh-package-only.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - test + - build + - 'integration test' +steps: + main_clone: + title: Cloning main repository... + stage: prepare + type: git-clone + repo: 'codefresh-contrib/spring-boot-2-sample-app' + revision: master + git: github + run_unit_tests: + title: Compile/Unit test + stage: test + image: 'maven:3.5.2-jdk-8-alpine' + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository package + build_app_image: + title: Building Docker Image + type: build + stage: build + image_name: spring-boot-2-sample-app + working_directory: ./ + tag: 'non-multi-stage' + dockerfile: Dockerfile.only-package + run_integration_tests: + title: Integration test + stage: 'integration test' + image: maven:3.5.2-jdk-8-alpine + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository verify -Dserver.host=http://my-spring-app + services: + composition: + my-spring-app: + image: '${{build_app_image}}' + ports: + - 8080 + readiness: + timeoutSeconds: 30 + periodSeconds: 15 + image: byrnedo/alpine-curl + commands: + - "curl http://my-spring-app:8080/" +{% endraw %} +{% endhighlight %} + +The pipeline starts by checking out the code using a [git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/). The next step is a [freestyle]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) one and packages the jar file. Next we have a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) that creates the docker image. Finally we have another freestyle +step that uses [service containers]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) to run integration tests. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/java/spring-boot-steps.png" +url="/images/learn-by-example/java/spring-boot-steps.png" +alt="Spring boot pipeline" +caption="Spring boot pipeline" +max-width="80%" +%} + +After checking out the code we use the standard [Maven Docker image](https://hub.docker.com/_/maven/) to compile the Spring Boot source code and create a JAR file. We also pass a parameter that changes the Maven cache location folder. The reason for this parameter is that the default Maven location is `/root/.m2` which is defined as a volume (and thus discarded after each build). + +### Caching the Maven dependencies + +Codefresh is smart enough that [caches automatically]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipeline-caching/) for us the workspace of a build (`/codefresh/volume`). This works great for build tools that keep their cache in the project folder, but not for Maven/Gradle which keep their cache externally. By changing the location of the Maven repo on the project folder (the `m2_repository` name is arbitrary) we make sure that Codefresh will cache automatically the Maven libraries resulting in much faster builds. + +The next step is a Docker build. We name our image **spring-boot-2-sample-app** and tag it with a string `non-multi-stage` but of course you can use any other tag name that you wish. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/java/spring-boot-docker-image.png" +url="/images/learn-by-example/java/spring-boot-docker-image.png" +alt="Spring Boot Docker image" +caption="Spring Boot Docker image" +max-width="80%" +%} + +Once the pipeline is finished you will see the Spring Boot 2 Docker image your [Docker image dashboard]({{site.baseurl}}/docs/docker-registries/working-with-docker-registries/#viewing-docker-images). + +The last step is similar to the unit tests, but this time we run integration tests. We define again a custom cache folder so when you run the build you will see that Maven will automatically pick the cache from the previous step. All Codefresh steps in a pipeline [run on the same workspace]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/#sharing-the-workspace-between-build-steps), so the build results from one step are visible to the next. + +>Notice that because the [Maven lifecycle](https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html) also executes the previous steps in a build, the `mvn verify` command essentially will run `mvn package` as well. In theory we could just have the _Integration_ step in this pipeline on its own. That step would build the code, run unit and integration tests all in one stage. For demonstration purposes however, we include two steps so that you can see the correct usage of Maven cache. + + +## Spring Boot 2 and Docker (multi-stage builds) + +Docker added [multi-stage builds](https://blog.docker.com/2017/07/multi-stage-builds/) at version 17.05. With multi-stage builds a Docker build can use one base image for compilation/packaging/unit tests and a different one that will hold the runtime of the application. This makes the final image more secure and smaller in size (as it does not contain any development/debugging tools). + +In the case of Java, multistage builds allow for the compilation itself to happen during the build process, even though the final Docker image will not contain a full JDK. + + +Here is the multi-stage build definition: + + `Dockerfile` +{% highlight docker %} +{% raw %} +FROM maven:3.5.2-jdk-8-alpine AS MAVEN_TOOL_CHAIN +COPY pom.xml /tmp/ +RUN mvn -B dependency:go-offline -f /tmp/pom.xml -s /usr/share/maven/ref/settings-docker.xml +COPY src /tmp/src/ +WORKDIR /tmp/ +RUN mvn -B -s /usr/share/maven/ref/settings-docker.xml package + +FROM java:8-jre-alpine + +EXPOSE 8080 + +RUN mkdir /app +COPY --from=MAVEN_TOOL_CHAIN /tmp/target/*.jar /app/spring-boot-application.jar + +ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/spring-boot-application.jar"] + +{% endraw %} +{% endhighlight %} + +This docker build does the following: + +1. Starts from the standard Maven Docker image +1. Copies only the `pom.xml` file inside the container +1. Runs a mvn command to download all dependencies found in the `pom.xml` +1. Copies the rest of the source code in the container +1. Compiles the code and runs unit tests (with `mvn package`) +1. Discards the Maven image with all the compiled classes/unit test results etc +1. Starts again from the JRE image and copies **only** the JAR file created before + +The order of the steps is tuned so that it takes advantage of the layer caching built-in to Docker. +If you change something in the source code Docker already has a layer with Maven dependencies so they +will not be re-downloaded again. Only if you change the `pom.xml` file itself, Docker will start again from the lowest layer. + +Again, we define a custom location for the Maven cache (using the `settings-docker.xml` file). This way the Maven dependencies are placed inside the container and they will be cached automatically with the respective layer (Read more about this technique [at the official documentation](https://github.com/carlossg/docker-maven#packaging-a-local-repository-with-the-image)). + +### Create a CI pipeline for Spring (multi-stage Docker builds) + +Because in multi-stage builds Docker itself handles most of the build process, moving the project to Codefresh is straightforward. We just need [a single step](https://github.com/codefresh-contrib/spring-boot-2-sample-app/blob/master/codefresh.yml) that creates the Docker image after checking out the code. The integration test step is the same as before. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - test + - build + - 'integration test' +steps: + main_clone: + title: Cloning main repository... + stage: prepare + type: git-clone + repo: 'codefresh-contrib/spring-boot-2-sample-app' + revision: master + git: github + build_app_image: + title: Building Docker Image + type: build + stage: build + image_name: spring-boot-2-sample-app + working_directory: ./ + tag: 'multi-stage' + dockerfile: Dockerfile + run_integration_tests: + title: Integration test + stage: 'integration test' + image: maven:3.5.2-jdk-8-alpine + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository verify -Dserver.host=http://my-spring-app + services: + composition: + my-spring-app: + image: '${{build_app_image}}' + ports: + - 8080 + readiness: + timeoutSeconds: 30 + periodSeconds: 15 + image: byrnedo/alpine-curl + commands: + - "curl http://my-spring-app:8080/" +{% endraw %} +{% endhighlight %} + +This will compile/test/package the Spring Boot application and create a Docker image. Codefresh is automatically caching +Docker layers (it uses the Docker image of a previous build as a cache for the next) and therefore builds will become +much faster after the first one finishes. + + +## What to read next + +* [Gradle example]({{site.baseurl}}/docs/learn-by-example/java/gradle/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) + + + diff --git a/_docs/example-catalog/launch-composition.md b/_docs/example-catalog/launch-composition.md new file mode 100644 index 00000000..83a616f5 --- /dev/null +++ b/_docs/example-catalog/launch-composition.md @@ -0,0 +1,87 @@ +--- +title: "Launch Composition" +description: "Create a dynamic environment to preview your feature" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/launch-composition-1/ +toc: true +--- +Using this repository, we will help you get up to speed with basic functionality such as: building Docker images and launching compositions. +This project uses `Node JS` to build an application which will eventually become a distributable Docker image. + +## Looking around + +In the root of this repository you'll find a file named `codefresh.yml`, this is our [pipeline definition]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) and it describes the different steps that comprise our process. Let's quickly review the contents of this file: + + `codefresh.yml` +{% highlight yaml %} +version: '1.0' +stages: + - prepare + - package + - launch +steps: + main_clone: + title: 'Cloning main repository...' + type: git-clone + repo: codefreshdemo/cf-example-launch-composition + revision: 'master' + git: github + stage: prepare + build_image: + title: Building Image + type: build + #Important: rename this image to to a valid repository in your registry. For example: myUserName/vote + image_name: example-launch-compose + #Dockerfile location should be relative to the working directory + dockerfile: Dockerfile + tag: master + stage: package + launch_composition: + title: Launch Composition + type: launch-composition + composition: + version: '2' + services: + app: + image: example-launch-compose:master + ports: + - 3000 + environment_name: 'cf-example-launch-composition' + entry_point: app + fail_fast: false + stage: launch +{% endhighlight %} + +The pipeline clones the source code, builds a docker image and then + [creates a preview environment]({{site.baseurl}}/docs/codefresh-yaml/steps/launch-composition/) with that image. + + +{{site.data.callout.callout_warning}} +##### Your environments are limited +Be aware that the number of environments you can run is limited. When using the same environment name the old one would terminate before launching the new environment. That way you can control the number of environments running in your account. +{{site.data.callout.end}} + +{{site.data.callout.callout_info}} +##### Example + +Just head over to the example [**repository**](https://github.com/codefreshdemo/cf-example-launch-composition) in GitHub and follow the instructions there. +{{site.data.callout.end}} + +Here is the end result: + +{% include image.html +lightbox="true" +file="/images/examples/composition/launch-composition-example.png" +url="/images/examples/composition/launch-composition-example.png" +alt="Launch composition example" +caption="Launch composition example" +max-width="90%" +%} + +## What to read next + +* [Unit tests]({{site.baseurl}}/docs/yaml-examples/examples/run-integration-tests/) +* [Integration tests]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-database/) +* [Preview environments]({{site.baseurl}}/docs/getting-started/on-demand-environments/) \ No newline at end of file diff --git a/_docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md b/_docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md new file mode 100644 index 00000000..af5f36f9 --- /dev/null +++ b/_docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md @@ -0,0 +1,57 @@ +--- +title: "Launching a composition and defining a service environment variable using a file" +description: "" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/launching-a-composition-and-passing-a-service-environment-variable-using-a-file/ +toc: true +old_url: /docs/launching-a-composition-and-passing-a-service-environment-variable-using-a-file +--- +Sometimes when launching a composition there is a need to pass many environment variables to a specific service. +In order to do that you can use docker-compose 'env_file' field on any service and use files from the current working directory from which the composition is being launched. +This will work for both 'composition' and 'launch-composition' step types. + +{{site.data.callout.callout_info}} +##### Using env_file will not work in case you are launching a composition directly from the Compositions view because it is being launched in an empty working directory. + +Consider moving the composition launch as part of a usual pipeline which will give you ability to use files from your cloned repository. +{{site.data.callout.end}} + +## Examples +Compositions are being launch inside a working directory, which is the cloned repository by default. +This means that you can always reference an 'env_file' exactly like you would reference a docker-compose file. + + `Inline Composition` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + + inline_composition: + title: Launch inline composition + type: launch-composition + environment_name: 'environment name' + composition: + version: '3' + services: + service: + image: alpine + env_file: ./env-file +{% endraw %} +{% endhighlight %} + + + `Composition from file` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + + composition_from_file: + title: Launch composition from file + type: launch-composition + composition: './docker-compose.yml' + environment_name: 'environment name' +{% endraw %} +{% endhighlight %} diff --git a/_docs/example-catalog/mobile.md b/_docs/example-catalog/mobile.md new file mode 100644 index 00000000..70f7a777 --- /dev/null +++ b/_docs/example-catalog/mobile.md @@ -0,0 +1,9 @@ +--- +title: "Mobile Apps" +description: "How to build Mobile applications with Codefresh CI/CD pipelines" +group: learn-by-example +toc: true +--- +This section contains Codefresh examples for Mobile application. + +- [Android]({{site.baseurl}}/docs/learn-by-example/mobile/android/) diff --git a/_docs/example-catalog/nodejs-angular2-mongodb.md b/_docs/example-catalog/nodejs-angular2-mongodb.md new file mode 100644 index 00000000..aa5b679a --- /dev/null +++ b/_docs/example-catalog/nodejs-angular2-mongodb.md @@ -0,0 +1,50 @@ +--- +title: "NodeJS + Angular2 + MongoDB" +description: "" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/nodejs-angular2-mongodb/ + - /docs/on-demand-test-environment/example-compositions/nodejs-angular2-mongodb/ +toc: true +--- +This tutorial will walk you through the process of adding the following: + +- Build client +- Build server +- Launch composition + +## Looking around +In the root of this repository you'll find a file named `docker-compose.yml`. +Let's quickly review the contents of this file: + + `docker-compose.yml` +{% highlight yaml %} +{% raw %} +version: '3' +services: + mongodb: + image: mongo + ports: + - 28017 + server: + image: ${{build_server}} + environment: + - MONGO_URI=mongodb://mongodb/exampleDb + links: + - mongodb + ports: + - 9000 + client: + image: ${{build_client}} + ports: + - 3000 +{% endraw %} +{% endhighlight %} + +{{site.data.callout.callout_info}} +##### Example + +Just head over to the example [__repository__](https://github.com/codefreshdemo/nodejs-angular2-mongo){:target="_blank"} in GitHub and follow the instructions there. +{{site.data.callout.end}} + diff --git a/_docs/example-catalog/nodejs/lets-chat.md b/_docs/example-catalog/nodejs/lets-chat.md new file mode 100644 index 00000000..649f5cf3 --- /dev/null +++ b/_docs/example-catalog/nodejs/lets-chat.md @@ -0,0 +1,119 @@ +--- +title: "Let's Chat example" +description: "Create Docker images for Node/Express.js applications" +group: learn-by-example +sub_group: nodejs +redirect_from: + - /docs/lets-chat/ +toc: true +--- + +Let’s Chat is self-hosted chat app for small to big teams. + +## The example Node.JS project + +You can see the example project at [https://github.com/codefreshdemo/demochat](https://github.com/codefreshdemo/demochat). The repository contains the source code of the project along with two Dockerfiles (one for unit tests) and various docker-compose configurations + +The project requires a Mongo Database to work and by default it uses port 5000 for its web interface. + +## Create a CI pipeline for Node.js + +Creating a CI/CD pipeline for NodeJS is very easy, because Codefresh has built-in steps for creating Docker images and running commands with containers. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/nodejs/nodejs-pipeline.png" +url="/images/learn-by-example/nodejs/nodejs-pipeline.png" +alt="Building and testing a Node.js application" +caption="Building and testing a Node.js application" +max-width="100%" +%} + +Here is the [full pipeline](https://github.com/codefreshdemo/demochat/blob/master/codefresh.yml) that creates the Docker image after checking out the code. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: + - "clone" + - "unit" + - "build" + - "integration" + +steps: + clone: + title: "Cloning repository" + type: "git-clone" + repo: "codefreshdemo/demochat" + revision: "master" + stage: "clone" + + build_dev_image: + title: "Building Dev image" + type: "build" + image_name: "codefreshdemo/demochat" + working_directory: "${{clone}}" + tag: "dev" + dockerfile: "Dockerfile.dev" + stage: "unit" + + test: + title: "Running test" + type: "freestyle" + image: ${{build_dev_image}} + working_directory: /root/demochat + commands: + - 'npm run test' + stage: "unit" + + build_image: + title: "Building App image" + type: "build" + image_name: "codefreshdemo/demochat" + working_directory: "${{clone}}" + tag: "dev" + dockerfile: "Dockerfile" + stage: "build" + + integration_step: + type: composition + stage: 'integration' + composition: + version: '2' + services: + app: + image: ${{build_image}} + links: + - mongo + ports: + - 5000 + mongo: + image: mongo + composition-candidates: + main: + image: nhoag/curl + command: bash -c "sleep 30 && curl http://app:5000/" | echo 'works' + +{% endraw %} +{% endhighlight %} + +> Note that you should change `codefreshdemo` in the clone step with your own Github account if you fork the repository. Also in both build steps you should change `codefreshdemo/demochat` with your own image name that is compliant to your Dockerhub account or other connected registry. + +This pipeline has 4 [stages]({{site.baseurl}}/docs/codefresh-yaml/stages/) and performs the following: + + 1. clones the source code using the [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step + 1. Builds a Docker image for unit tests with the [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) + 1. Runs [unit tests]({{site.baseurl}}/docs/testing/unit-tests/) in the Docker image that was just created with a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) + 1. Building a Docker image for the final application + 1. Runs [integration tests]({{site.baseurl}}/docs/testing/integration-tests/) using a [composition step]({{site.baseurl}}/docs/codefresh-yaml/steps/composition/) + +If you run the pipeline multiple times, you will also see the [Codefresh caching mechanisms]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipeline-caching/) in action for faster build times. + +## What to read next + +* [Voting app example]({{site.baseurl}}/docs/learn-by-example/nodejs/voting-app/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) \ No newline at end of file diff --git a/_docs/example-catalog/nodejs/react.md b/_docs/example-catalog/nodejs/react.md new file mode 100644 index 00000000..e79b7a5b --- /dev/null +++ b/_docs/example-catalog/nodejs/react.md @@ -0,0 +1,174 @@ +--- +title: "React example with Yarn" +description: "Create Docker images for React applications" +group: learn-by-example +sub_group: nodejs +toc: true +--- + +Codefresh can work with React projects as with any [Node.js project]({{site.baseurl}}/docs/learn-by-example/nodejs/). + +## The example React project + +You can see the example project at [https://github.com/codefresh-contrib/react-sample-app](https://github.com/codefresh-contrib/react-sample-app). The repository contains a React starter project with the following tasks: + +* `yarn test` runs unit tests. +* `yarn start` to start the application locally. +* `yarn build` to create a production deployment. + +Once launched the application presents a simple page at localhost:3000. + +## React and Docker (multi-stage builds) + +The easiest way to build a React.JS application is with [multi-stage builds](https://blog.docker.com/2017/07/multi-stage-builds/). With multi-stage builds a Docker build can use one base image for packaging/unit tests and a different one that will hold the runtime of the application. This makes the final image more secure and smaller in size (as it does not contain any development/debugging tools). + +In the case of React, you can use a base image that has Node and all testing utilities, while the final image has your server (e.g. nginx) with the static content and nothing else. + +The example project is actually using multi-stage builds by default. + +Here is the multi-stage Dockerfile: + + `Dockerfile` +{% highlight docker %} +{% raw %} +FROM node:8.16 as build-deps +WORKDIR /usr/src/app +COPY package.json yarn.lock ./ +RUN yarn +COPY . ./ +RUN yarn build + +FROM nginx:1.12-alpine +COPY --from=build-deps /usr/src/app/build /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] +{% endraw %} +{% endhighlight %} + +This docker build does the following: + +1. Starts from the Node/Yarn image +1. Copies the dependencies inside the container +1. Copies the source code and creates all static files +1. Discards the Node.js image with all the JavaScript libraries +1. Starts again from the nginx image and copies **static build result** created before + +The resulting is very small, as it contains only packaged/minified files. + +## Create a CI pipeline for React.js (Docker build) + +Creating a CI/CD pipeline for React is very easy, because Codefresh can run any [node image](https://hub.docker.com/_/node/) that you wish. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/nodejs/react-pipeline-docker.png" +url="/images/learn-by-example/nodejs/react-pipeline-docker.png" +alt="Creating a Docker image for react.js" +caption="Creating a Docker image for react.js" +max-width="80%" +%} + +Here is the [full pipeline](https://github.com/codefresh-contrib/gradle-sample-app/blob/master/codefresh.yml) that creates the Docker image after checking out the code. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - test + - build +steps: + main_clone: + title: Cloning main repository... + stage: prepare + type: git-clone + repo: 'codefresh-contrib/react-sample-app' + revision: master + git: github + MyUnitTests: + title: Unit test + stage: test + image: node:8.16 + commands: + - yarn install + - yarn test + environment: + - CI=true + MyAppDockerImage: + title: Building Docker Image + type: build + stage: build + image_name: react-sample-app + working_directory: ./ + tag: 'with-nginx' + dockerfile: Dockerfile +{% endraw %} +{% endhighlight %} + +This pipeline clones the source code, runs unit tests and finally creates a Docker image. Codefresh is automatically caching +Docker layers (it uses the Docker image of a previous build as a cache for the next) and therefore builds will become +much faster after the first one finishes. + + +## Building a React.Js application without Docker + +If your application is not dockerized yet, you can still create a pipeline that runs any command that you would run locally. You can also choose which Node version is used for each step of the pipeline by defining a different docker image for each step. + + +{% include image.html +lightbox="true" +file="/images/learn-by-example/nodejs/react-pipeline-build.png" +url="/images/learn-by-example/nodejs/react-pipeline-build.png" +alt="Building a Reach.js application" +caption="Building a Reach.js application" +max-width="80%" +%} + +Here is the [full pipeline](https://github.com/codefresh-contrib/react-sample-app/blob/master/codefresh-only-build.yml) that creates a production deployment of all files. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - test + - build +steps: + main_clone: + title: Cloning main repository... + stage: prepare + type: git-clone + repo: 'codefresh-contrib/react-sample-app' + revision: master + git: github + MyUnitTests: + title: Unit test + stage: test + image: node:11.0 + commands: + - yarn install + - yarn test + environment: + - CI=true + MyReactBuild: + title: Packaging application + stage: build + image: node:8.16 + commands: + - yarn build +{% endraw %} +{% endhighlight %} + +Notice that for demonstration purposes we uses node 11 for the tests, and node 8 for the packaging. Normally you should use the same version of node/Yarn for all your steps, but Codefresh pipelines are flexible on version of tools. + +Even when you don't create a Docker image, Codefresh still caches your workspace volume. This means that `node_modules` are downloaded only once. All subsequent builds will be much faster. + +## What to read next + +* [Node examples]({{site.baseurl}}/docs/learn-by-example/nodejs/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) diff --git a/_docs/example-catalog/nodejs/voting-app.md b/_docs/example-catalog/nodejs/voting-app.md new file mode 100644 index 00000000..48c5da61 --- /dev/null +++ b/_docs/example-catalog/nodejs/voting-app.md @@ -0,0 +1,88 @@ +--- +title: "Voting app" +description: "" +excerpt: "" +group: learn-by-example +sub_group: nodejs +redirect_from: + - /docs/voting-app/ + - /docs/nodejs/voting-app/ +toc: true +--- +This voting application is a demo with which you can build an advanced composition that uses `Python, Redis, Postgres, Node.js, and .Net`. + +The demo shows how to create a complex, micro-services application and push images to your docker registry. + +## Looking around +In the root of this repository you'll find a file named codefresh.yml, this is our build descriptor and it describes the different steps that comprise our process. Let's quickly review the contents of this file: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: +#build all the images + build_image_vote: + title: Building Voting Image + type: build + #Important: rename this image to a valid repository in your registry. For example: myUserName/vote + image_name: containers101/vote + #The directory should be relative to git repository that is used for cloning + working_directory: ./vote/ + #Dockerfile location should be relative to the working directory + dockerfile: Dockerfile + + build_image_result: + title: Building Result Image + type: build + image_name: containers101/result + working_directory: ./result/ + dockerfile: Dockerfile + + build_image_worker: + title: Building Worker Image + type: build + image_name: containers101/worker + working_directory: ./worker/ + dockerfile: Dockerfile + + +#Push all the images + push_to_registry_vote: + title: Pushing to Vote Docker Registry + type: push + + #A candidate is the image that we want to push to registry + candidate: '${{build_image_vote}}' + + # You can push the image with whatever tag you want. In our example we use CF_BRANCH, which is a variable in + # the build process, accessible throughout the entire flow. + tag: '${{CF_BRANCH}}' + + push_to_registry_result: + title: Pushing to Result Docker Registry + type: push + candidate: '${{build_image_result}}' + tag: '${{CF_BRANCH}}' + + push_to_registry_worker: + title: Pushing to Worker Docker Registry + type: push + candidate: '${{build_image_worker}}' + tag: '${{CF_BRANCH}}' +{% endraw %} +{% endhighlight %} + +{{site.data.callout.callout_info}} +##### Example + +Just head over to the example [__repository__](https://github.com/containers101/voting-app){:target="_blank"} in GitHub and follow the instructions there. +{{site.data.callout.end}} + +## What to read next + +* [React example]({{site.baseurl}}/docs/learn-by-example/nodejs/react/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) \ No newline at end of file diff --git a/_docs/example-catalog/nomad.md b/_docs/example-catalog/nomad.md new file mode 100644 index 00000000..fbe6821a --- /dev/null +++ b/_docs/example-catalog/nomad.md @@ -0,0 +1,226 @@ +--- +title: "Deploy to Nomad" +description: "Deploy Docker images to a Nomad cluster with Codefresh" +group: yaml-examples +sub_group: examples +toc: true +--- + +Even though Codefresh has great support for Kubernetes and Helm deployments, there is no lock-in on using just Kubernetes. Codefresh can deploy on any infrastructure. + + +[Nomad](https://www.nomadproject.io/) is an alternative scheduling platform from Hashicorp. It supports docker containers (like Kubernetes) but you can also use Nomad to schedule VMs, Java apps, Go apps or any other standalone executable. + +There are several public Docker Images with Nomad, so it is very easy to use Codefresh pipelines to deploy to a Nomad cluster. + + +{% include image.html +lightbox="true" +file="/images/examples/nomad/nomad-ci-pipeline.png" +url="/images/examples/nomad/nomad-ci-pipeline.png" +alt="Deploying to Nomad with Codefresh" +caption="Deploying to Nomad with Codefresh" +max-width="80%" +%} + +In this example we are going to use the image at [https://hub.docker.com/r/djenriquez/nomad](https://hub.docker.com/r/djenriquez/nomad). + +## The example Nomad project + +You can see the example project at [https://github.com/codefresh-contrib/nomad-sample-app](https://github.com/codefresh-contrib/nomad-sample-app). The repository contains a simple job specification that deploys a docker container on nomad cluster. + + +Here is the whole job file: + + `docker-job.hcl` +{% highlight hcl %} +{% raw %} +job "example-job" { + # Specify this job should run in the region named "us". Regions + # are defined by the Nomad servers' configuration. + #region = "us" + + # Spread the tasks in this job between us-west-1 and us-east-1. + datacenters = ["dc1"] + + # Run this job as a "service" type. Each job type has different + # properties. See the documentation below for more examples. + type = "service" + + # Specify this job to have rolling updates, two-at-a-time, with + # 30 second intervals. + update { + stagger = "30s" + max_parallel = 1 + } + + # A group defines a series of tasks that should be co-located + # on the same client (host). All tasks within a group will be + # placed on the same host. + group "example-group" { + # Specify the number of these tasks we want. + count = 3 + + # Create an individual task (unit of work). This particular + # task utilizes a Docker container to front a web application. + task "example-task" { + # Specify the driver to be "docker". Nomad supports + # multiple drivers. + driver = "docker" + + # Configuration is specific to each driver. + config { + image = "r.cfcr.io/$CF_ACCOUNT/$CF_REPO_NAME:$CF_BRANCH_TAG_NORMALIZED" + + auth { + username = "$CF_ACCOUNT" + password = "$CFCR_LOGIN_TOKEN" + server_address = "r.cfcr.io" + } + + port_map { + http = 8080 + } + } + + # The service block tells Nomad how to register this service + # with Consul for service discovery and monitoring. + service { + # This tells Consul to monitor the service on the port + # labelled "http". Since Nomad allocates high dynamic port + # numbers, we use labels to refer to them. + port = "http" + + check { + type = "http" + path = "/" + interval = "10s" + timeout = "2s" + } + } + + # Specify the maximum resources required to run the task, + # include CPU, memory, and bandwidth. + resources { + cpu = 500 # MHz + memory = 128 # MB + + network { + mbits = 100 + + + port "http" {} + + + + } + } + } + } +} + +{% endraw %} +{% endhighlight %} + +Notice that the job specification has several [Codefresh variables]({{site.baseurl}}/docs/codefresh-yaml/variables/) embedded. We will use [envsubst](https://www.gnu.org/software/gettext/manual/html_node/envsubst-Invocation.html) in our pipeline to replace +them with the correct values. + +## Prerequisites + +You need to create a Codefresh account and have a Nomad cluster running. You need to decide on how Codefresh will communicate +with the nomad cluster. In this simple example we just use the `NOMAD_ADDR` variable to point the nomad client to our cluster. In a production environment you should use proper [ACL](https://www.nomadproject.io/guides/security/acl.html) and [certificate](https://www.nomadproject.io/guides/security/securing-nomad.html) variables as well. + + +In this example the Nomad cluster is already setup on a VM at Google cloud. + +You also need to create a [token for the Docker registry]({{site.baseurl}}/docs/docker-registries/external-docker-registries/) so that Nomad can pull your private images on the cluster. + +## Create a CI/CD pipeline for Nomad deployments + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: + - "clone" + - "build" + - "deploy" +steps: + main_clone: + type: "git-clone" + title: "Clone main repository..." + repo: "codefresh-contrib/nomad-sample-app" + revision: "${{CF_BRANCH}}" + stage: "clone" + build: + title: "Building Docker Image" + type: "build" + image_name: "nomad-sample-app" + tag: "${{CF_BRANCH_TAG_NORMALIZED}}" + dockerfile: "Dockerfile" + stage: "build" + prepareJob: + title: "Preparing Nomad job" + image: bhgedigital/envsubst + stage: deploy + commands: + - envsubst < docker-job.hcl > docker-job-export.hcl + - cat docker-job-export.hcl + runJob: + title: "Deploying Nomad job" + image: djenriquez/nomad + stage: deploy + commands: + - nomad run docker-job-export.hcl +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. Uses a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) to create a Docker image for a simple Go application. The image is automatically pushed to the default Docker registry +1. Runs `envsubst` to replace all variables in the job spec. These include: + * the Registry token so that Nomad can access the default Docker registry + * The docker image name and tag to be deployed +1. Runs the job with another [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) (i.e. Deploys the image to Nomad) + + +Run the pipeline and see your deployment succeed. + +Here are the environment variables defined for this pipeline. + +{% include image.html +lightbox="true" +file="/images/examples/nomad/nomad-variables.png" +url="/images/examples/nomad/nomad-variables.png" +alt="Pipeline variables for Nomad deployments" +caption="Pipeline variables for Nomad deployments" +max-width="50%" +%} + + +The `NOMAD_ADDR` variable is holding the URL of the cluster. The `CFCR_LOGIN_TOKEN` variable holds authentication for the Codefresh Docker registry. + +## Verify the deployment + +Nomad also comes with its own UI that can show you the result of a deployment. + +{% include image.html +lightbox="true" +file="/images/examples/nomad/nomad-ui-deployment.png" +url="/images/examples/nomad/nomad-ui-deployment.png" +alt="Nomad UI deployment" +caption="Nomad UI deployment" +max-width="80%" +%} + +You can also use [Terraform]({{site.baseurl}}/docs/yaml-examples/examples/terraform/) in Codefresh pipelines. + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) \ No newline at end of file diff --git a/_docs/example-catalog/non-git-checkout.md b/_docs/example-catalog/non-git-checkout.md new file mode 100644 index 00000000..dec584ef --- /dev/null +++ b/_docs/example-catalog/non-git-checkout.md @@ -0,0 +1,101 @@ +--- +title: "Checking out from other Source Control systems" +description: "Work with non-git repositories" +group: yaml-examples +sub_group: examples +toc: true +--- + +Codefresh has [Native Git support]({{site.baseurl}}/docs/yaml-examples/examples/git-checkout/) but you can still use any other version control system such as SVN, CVS, hg, etc. + +The only requirement is that you find or create a Docker image that contains the client for that source control system and then use a +[freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) to run it. + +## Checking out Subversion code + +There is already a public [Docker image with the svn client](https://hub.docker.com/r/jgsqware/svn-client/), so it is very easy to run it in a Codefresh pipeline. + +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + myCustomCheckout: + title: Performing SVN checkout + image: jgsqware/svn-client + commands: + - pwd + - rm -rf audacity-svn + - svn checkout https://svn.code.sf.net/p/audacity/svn/ audacity-svn + PrintFileList: + title: 'Listing files' + image: alpine:latest + commands: + - 'ls -l /codefresh/volume/' +{% endraw %} +{% endhighlight %} + +Notice the `rm` command before the clone step. This makes sure that every time the pipeline will run the `svn checkout` step will happen in an empty directory. + + + +## Checking out Mercurial or CVS Code + +It is very simple to use any other Source control system in a Codefresh pipeline. The easiest way is to just call the respective executable. Here are two examples: + +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + myHgStep: + title: Using HG + image: alpine:latest + commands: + - apk add --no-cache mercurial + - hg --version + - hg clone https://www.mercurial-scm.org/repo/hg mercurial-repo + myCvsStep: + title: Using CVS + image: alpine:latest + commands: + - apk add --no-cache cvs + - cvs --version + - cvs -d :pserver:anonymous@cvs.project-open.net:/home/cvsroot checkout -c +{% endraw %} +{% endhighlight %} + +A much faster way is to create your own Dockerfile that includes the client you need and then mention that image directly in the freestyle step. + + +## Checking out Perforce code + +Codefresh has created a [Perforce plugin](https://hub.docker.com/r/codefresh/cf-p4-plugin/tags) which packs the p4 client into a Docker image in order to be used from Codefresh pipelines: + +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + myCustomCheckout: + title: Performing Perforce checkout + image: codefresh/cf-p4-plugin:latest + commands: + - mkdir -p /codefresh/volume/p4repo/ + - p4 client -o | grep -v '#' | sed '/Root:/c\Root:/codefresh/volume/p4repo/' | p4 client -i + - cd /codefresh/volume/p4repo/ && p4 rec + - 'ls -la' + environment: + - P4PORT=serveradress:serverport + - P4CLIENT=clientname + - P4USER=username + - P4PASSWD=password +{% endraw %} +{% endhighlight %} + +The environments variables should be defined in [Codefresh shared configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/). + + +## What to read next + +* [Native Git checkout]({{site.baseurl}}/docs/yaml-examples/examples/git-checkout/) +* [Running custom git commands]({{site.baseurl}}/docs/yaml-examples/examples/git-checkout-custom/) +* [Freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) +* [Git Clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) diff --git a/_docs/example-catalog/packer-gcloud.md b/_docs/example-catalog/packer-gcloud.md new file mode 100644 index 00000000..5e543064 --- /dev/null +++ b/_docs/example-catalog/packer-gcloud.md @@ -0,0 +1,134 @@ +--- +title: "Deploy to a Virtual Machine" +description: "Deploy to Google Cloud in a Codefresh pipeline with Packer" +group: yaml-examples +sub_group: examples +toc: true +--- + +Even though Codefresh is Kubernetes-native and designed for containers, it can still deploy traditional applications in the form of Virtual Machines to any Cloud provider. + +In this example we will use +[Packer](http://www.packer.io/) to package an application into a VM disk image that will then be launched in Google Cloud. +Because Packer itself is already offered [in a Docker container](https://hub.docker.com/r/hashicorp/packer/), it is very easy to run Packer in a Codefresh pipeline. + +Google also offers a [Docker image for GCloud](https://hub.docker.com/r/google/cloud-sdk/) making the launching of the VM straightforward in a Codefresh pipeline. + + +{% include image.html +lightbox="true" +file="/images/examples/packer-gcloud/packer-codefresh-pipeline.png" +url="/images/examples/packer-gcloud/packer-codefresh-pipeline.png" +alt="Running Packer inside Codefresh" +caption="Running Packer inside Codefresh" +max-width="80%" +%} + +This Codefresh pipeline creates a VM image and then uses it to launch a Google Compute instance. + + +## The example Packer/Gcloud project + +You can see the example project at [https://github.com/codefresh-contrib/vm-packer-sample-app](https://github.com/codefresh-contrib/vm-packer-sample-app). The repository contains a simple Go application as well as a packer template. + +You can play with it locally after installing the `packer` and `gcloud` executables. + +## Prerequisites + +You need to create a Codefresh account and a Google account first. Then you need to create a [Service account Key](https://cloud.google.com/iam/docs/creating-managing-service-account-keys) which will allow `packer` and `gcloud` to communicate with Google cloud. + + +Add your service account json as a pipeline variable called `SERVICE_ACCOUNT`. The content of this variable will be used +in order to authenticate to Google cloud. + +{% include image.html +lightbox="true" +file="/images/examples/packer-gcloud/service-account-variable.png" +url="/images/examples/packer-gcloud/service-account-variable.png" +alt="Using a Service Account JSON in Codefresh" +caption="Using a Service Account JSON in Codefresh" +max-width="50%" +%} + +## Create a CI/CD pipeline for Packer/GCloud + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - build + - deploy +steps: + main_clone: + title: 'Cloning main repository...' + type: git-clone + repo: 'codefresh-contrib/vm-packer-sample-app' + git: github + revision: 'master' + stage: prepare + SetupAuth: + title: 'Setup GCloud Auth' + image: 'alpine' + stage: prepare + commands: + - echo $SERVICE_ACCOUNT > account.json + BuildMyApp: + title: Compiling App code + stage: build + image: 'golang:1.12' + commands: + - go build -o sample src/sample/trivial-web-server.go + CreatePackerImage: + title: Baking VM image + stage: build + image: 'hashicorp/packer' + commands: + - packer validate my-google-cloud-example.json + - packer build -force my-google-cloud-example.json + DeployToVM: + title: Deploying to VM + stage: deploy + image: 'google/cloud-sdk' + commands: + - gcloud auth activate-service-account --key-file=account.json + - gcloud config set project firstkubernetes-176201 + - gcloud compute instances create packer-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 %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. Saves the content of the variable that holds the Google account as a file called `account.json` +1. Compiles the Go application with a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) +1. Runs `packer` to create a VM image based on Ubuntu that also contains the simple Go application +1. Runs `gcloud` to launch a VM with the image that was just created + + +Run the pipeline and see your deployment succeed. You can customize the image by editing the [Packer template](https://github.com/codefresh-contrib/vm-packer-sample-app/blob/master/my-google-cloud-example.json). + +Once the VM has finished launching you can access it with your web browser. + +{% include image.html +lightbox="true" +file="/images/examples/packer-gcloud/web-app-url.png" +url="/images/examples/packer-gcloud/web-app-url.png" +alt="Accessing the VM application" +caption="Accessing the VM application" +max-width="70%" +%} + + +You can follow the same procedure for any other cloud that has an API/CLI (such as AWS, Azure, Digital Ocean etc). + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) \ No newline at end of file diff --git a/_docs/example-catalog/php.md b/_docs/example-catalog/php.md new file mode 100644 index 00000000..219b7224 --- /dev/null +++ b/_docs/example-catalog/php.md @@ -0,0 +1,132 @@ +--- +title: "Create a Docker image for Php" +description: "Using Codefresh pipelines" +group: learn-by-example +toc: true +--- + +Codefresh can work with Php projects using any of the popular frameworks (Laravel, Symphony, CakePHp etc.) + +## The example php project + +You can see the example project at [https://github.com/codefresh-contrib/php-composer-sample-app](https://github.com/codefresh-contrib/php-composer-sample-app). The repository contains a simple Php project that uses [composer](https://getcomposer.org/) as a package manager. + +The dockerfile uses [multi-stage builds](https://docs.docker.com/develop/develop-images/multistage-build/) to minimize the size of the docker image. + +`Dockerfile` +{% highlight docker %} +{% raw %} +FROM composer:1.9.3 as vendor + +WORKDIR /tmp/ + +COPY composer.json composer.json +COPY composer.lock composer.lock + +RUN composer install \ + --ignore-platform-reqs \ + --no-interaction \ + --no-plugins \ + --no-scripts \ + --prefer-dist + + +FROM php:7.2-apache-stretch + +COPY . /var/www/html +COPY --from=vendor /tmp/vendor/ /var/www/html/vendor/ +{% endraw %} +{% endhighlight %} + + +## Create a Docker image for Php project + +An [example pipeline](https://github.com/codefresh-contrib/php-composer-sample-app/blob/master/codefresh.yml) is also offered in the git repository. +It contains just two [steps]({{site.baseurl}}/docs/codefresh-yaml/steps/). A [clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) to fetch the code and a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) to create a Docker image. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: 'codefresh-contrib/php-composer-sample-app' + revision: master + git: github + MyAppDockerImage: + title: Building Docker Image + type: build + image_name: my-php-image + working_directory: ./ + tag: master + dockerfile: Dockerfile +{% endraw %} +{% endhighlight %} + +Once you run this pipeline Codefresh will create a Docker image for the Php application: + +{% include image.html +lightbox="true" +file="/images/learn-by-example/php/php-cicd-pipeline.png" +url="/images/learn-by-example/php/php-cicd-pipeline.png" +alt="Creating a docker image for php" +caption="Creating a docker image for php" +max-width="80%" +%} + +Notice that all dependencies are downloaded when the dockerfile is created. + + + + +## Launch Docker images + +Codefresh can also launch Docker images (using Docker swarm behind the scenes). With each Codefresh account you get access to a limited number of Docker environments that can host any Docker image or Docker compose file. + +First find your images in the [Docker image dashboard]({{site.baseurl}}/docs/docker-registries/working-with-docker-registries/#viewing-docker-images). + +{% include image.html +lightbox="true" +file="/images/learn-by-example/php/launch-docker-image.png" +url="/images/learn-by-example/php/launch-docker-image.png" +alt="Launching a Docker image" +caption="Launching a Docker image" +max-width="80%" +%} + +Click on the launch button and a new pipeline will run for deployment: + +{% include image.html +lightbox="true" +file="/images/learn-by-example/php/test-environment-url.png" +url="/images/learn-by-example/php/test-environment-url.png" +alt="Getting the environment url" +caption="Getting the environment url" +max-width="80%" +%} + +Notice that the pipeline logs show the dynamic URL of the application. Simply visit it with your browser +and you will see the result. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/php/test-environment.png" +url="/images/learn-by-example/php/test-environment.png" +alt="Application preview" +caption="Application preview" +max-width="80%" +%} + +Notice that these environments are only for testing and previewing your application as it is developed. They are **NOT** for production purposes. + + + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) + diff --git a/_docs/example-catalog/populate-a-database-with-existing-data.md b/_docs/example-catalog/populate-a-database-with-existing-data.md new file mode 100644 index 00000000..ae477c0a --- /dev/null +++ b/_docs/example-catalog/populate-a-database-with-existing-data.md @@ -0,0 +1,153 @@ +--- +title: "Populate a database with existing data" +description: "Preloading test data before integration tests" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/populate-a-database-with-existing-data-copied/ +toc: true +old_url: /docs/populate-a-database-with-existing-data-copied +was_hidden: true +--- +In an another example we have seen how you can run [integration tests with a database]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-postgres/) such as PostgreSQL. Sometimes however, the integration tests require the database to already have some test data beforehand. With Codefresh you can use the [setup block]({{site.baseurl}}/docs/codefresh-yaml/service-containers/#preloading-data-to-databases) in service containers to preload data to a db. + + +{% include image.html +lightbox="true" +file="/images/examples/integration-tests/preload-data-to-db.png" +url="/images/examples/integration-tests/preload-data-to-db.png" +alt="Preloading test data to a DB" +caption="Preloading test data to a DB" +max-width="90%" +%} + +In this pipeline the database is populated with data from an SQL file. + +## The example PostgreSQL project + +You can see the example project at [https://github.com/codefresh-contrib/preload-db-integration-tests](https://github.com/codefresh-contrib/preload-db-integration-tests). The repository contains a simple integration test and an SQL file that inserts test data. + +The SQL file creates a single table in the db: + + `preload.sql` +{% highlight sql %} +{% raw %} +CREATE TABLE link ( + ID serial PRIMARY KEY, + url VARCHAR (255) NOT NULL, + name VARCHAR (255) NOT NULL, + description VARCHAR (255), + rel VARCHAR (50) +); + +INSERT INTO link (url, name) +VALUES + ('http://www.google.com','Google'), + ('http://www.azure.microsoft.com','Azure'), + ('http://www.codefresh.io','Codefresh'); +{% endraw %} +{% endhighlight %} + + +To work with the project locally, you need to have `docker`, `golang` and `postgres-client` installed on your workstation first. + +``` +$ docker run -p 5432:5432 postgres:11.5 +``` + +Then open another terminal and load the test data: + +``` +$ psql -h localhost -U postgres < testdata/preload.sql +``` + +A Postgres instance is now running at `localhost:5432` and you can run the tests with: + +``` +$ go test -v +``` + + +## Create a pipeline the preloads test data to PostgreSQL + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: +- prepare +- package +- test +steps: + main_clone: + type: "git-clone" + description: "Cloning main repository..." + repo: "codefresh-contrib/preload-db-integration-tests" + revision: "master" + title: "Checking out source code" + git: github + stage: prepare + package_my_app: + stage: package + image: 'golang:1.13' + title: "Compile code" + commands: + - 'go build' + run_my_db_tests: + stage: test + image: 'golang:1.13' + title: "Running integration tests" + commands: + - 'go test -v' + environment: + - POSTGRES_HOST=my_postgresql_db + services: + composition: + my_postgresql_db: + image: postgres:11.5 + ports: + - 5432 + readiness: + timeoutSeconds: 30 + initialDelaySeconds: 10 + periodSeconds: 15 + image: 'postgres:11.5' + commands: + - "pg_isready -h my_postgresql_db -U postgres" + setup: + image: 'postgres:11.5' + commands: + - "psql -h my_postgresql_db -U postgres < /codefresh/volume/preload-db-integration-tests/testdata/preload.sql" +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/). +1. Compiles the code with a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that runs `go build` +1. Runs the tests while launching a [service container]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) for an active PostgreSQL instance. Before tests are run we launch another container with the `psql` executable to load db data + + +> In this simple example we use `psql` to preload the database. In a production application you might also use dedicated db tools such as [liquibase](https://hub.docker.com/r/liquibase/liquibase) or [flyway](https://hub.docker.com/r/flyway/flyway) or other command line tools that communicate with your database. + +Notice that we also use the `readiness` property in the testing phase so that we can verify PostgreSQL is ready and listening, before running the tests. The exact order of events is: + +1. Codefresh launches `postgres:11.5` at port 5432. +1. It then launches another container in the same network with `pg_isready` in order to wait for the DB to be up. +1. Then it launches a third container with `psql` to preload data. +1. Finally it launches a container with `golang:1.13` to run the actual tests. + +All containers are discarded after the pipeline has finished. + +## What to read next + +- [Service Containers]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) +- [Integration Tests with Postgres]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-postgres/) +- [Integration Tests with MySQL]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-mysql/) +- [Integration Tests with Redis]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-redis/) +- [Integration Tests with Mongo]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-mongo/) +- [Integration test example]({{site.baseurl}}/docs/yaml-examples/examples/run-integration-tests/) + + diff --git a/_docs/example-catalog/pulumi.md b/_docs/example-catalog/pulumi.md new file mode 100644 index 00000000..ef90bb89 --- /dev/null +++ b/_docs/example-catalog/pulumi.md @@ -0,0 +1,117 @@ +--- +title: "Deploy with Pulumi" +description: "Use Pulumi in a Codefresh pipeline with Docker" +group: yaml-examples +sub_group: examples +toc: true +--- + +[Pulumi](https://pulumi.io/) is a platform for *Infrastructure as Code*. It works like Terraform but allows you to use a proper programming language (TypeScript, Python, Go) in order to describe your infrastructure (instead of a configuration language). + +You can use Pulumi to deploy to Kubernetes or any other supported cloud platform. Because Pulumi itself is already offered [in a Docker container](https://hub.docker.com/r/pulumi/pulumi), it is very easy to run Pulumi in a Codefresh pipeline. + + +{% include image.html +lightbox="true" +file="/images/examples/pulumi/pulumi-pipeline.png" +url="/images/examples/pulumi/pulumi-pipeline.png" +alt="Running Pulumi inside Codefresh" +caption="Running Pulumi inside Codefresh" +max-width="80%" +%} + +## The example Pulumi project + +You can see the example project at [https://github.com/codefresh-contrib/pulumi-sample-app](https://github.com/codefresh-contrib/pulumi-sample-app). The repository contains a simple Pulumi stack based on Kubernetes and TypeScript. + +You can play with it locally after installing the `pulumi` executable. + +## Prerequisites + +You need to create a Codefresh account and a Pulumi account first. Then you need to create a [Pulumi token](https://app.pulumi.com/account/tokens) which will allows Codefresh to communicate with Pulumi. + +[Add a Kubernetes cluster]({{site.baseurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/) in your Codefresh account from any cloud provider. + +Codefresh automatically creates a kubeconfig in any [Freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) with all your clusters. This is the same way that Pulumi communicated with Kubernetes, so the integration between Codefresh and Pulumi is ready out of the box. + +Create a [stack](https://pulumi.io/reference/stack.html) in Pulumi or use the one provided in the example. + +Finally add you Pulumi token as a pipeline variable called `PULUMI_ACCESS_TOKEN`. All freestyle steps have automatic access to all pipeline variables, and Pulumi will search for a token by default with this name when logging in. + + +## Create a CI/CD pipeline for Pulumi + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - build + - deploy +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}' + revision: '${{CF_REVISION}}' + stage: prepare + git: github-1 + BuildProject: + title: Build project + stage: build + image: pulumi/pulumi + commands: + - yarn install + SelectMyCluster: + title: Select K8s cluster + stage: deploy + image: codefresh/kubectl:1.13.3 + commands: + - kubectl config get-contexts + - kubectl config use-context "kostis-demo@FirstKubernetes" + RunPulumi: + title: Deploying + stage: deploy + image: pulumi/pulumi + commands: + - pulumi stack select dev --non-interactive + - pulumi stack --non-interactive + - pulumi up --non-interactive +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. Runs `yarn install` to download dependencies. In this example we use TypeScript, but Go and Python would work as well (or any other language supported by Pulumi) +1. Chooses the cluster that will be used for deployments (if you have more than one). Use your own cluster name as seen in the [Kubernetes dashboard]({{site.baseurl}}/docs/deploy-to-kubernetes/manage-kubernetes/) of Codefresh +1. Runs `pulumi up` with the same target cluster + +The pipeline needs a [single environment variable]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/#pipeline-settings) that holds the content of your Pulumi Token. + + +{% include image.html +lightbox="true" +file="/images/examples/pulumi/pulumi-access-token.png" +url="/images/examples/pulumi/pulumi-access-token.png" +alt="Passing the Pulumi Token in the pipeline parameters" +caption="Passing the Pulumi Token in the pipeline parameters" +max-width="60%" +%} + +Run the pipeline and see your deployment succeed. + +## Handling Pull requests + +You can easily use the same pipeline or a different one for pull requests. In this case replace the `pulumi up` command with `pulumi preview`. Even better you can add an [approval step]({{site.baseurl}}/docs/codefresh-yaml/steps/approval/) to allows humans to inspect the pipeline first. + + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) diff --git a/_docs/example-catalog/python/django.md b/_docs/example-catalog/python/django.md new file mode 100644 index 00000000..92ba1375 --- /dev/null +++ b/_docs/example-catalog/python/django.md @@ -0,0 +1,175 @@ +--- +title: "Python Django example" +description: "Create Docker images for Python applications" +excerpt: "" +group: learn-by-example +sub_group: python +redirect_from: + - /docs/django/ + - /docs/python/django/ +toc: true +--- +Codefresh can work with Python projects using any of the popular frameworks. In this page we will see Django. For a Flask example see the [quick start guide]({{site.baseurl}}/docs/getting-started/create-a-basic-pipeline/). + +## The example Django project + +You can see the example project at [https://github.com/codefreshdemo/cf-example-python-django](https://github.com/codefreshdemo/cf-example-python-django). The repository contains a Django starter project with the following commands: + +* `pip install -r requirements.txt` install dependencies. +* `python -m unittest composeexample.utils` runs unit tests. +* `python manage.py runserver 0.0.0.0:8000` to start the application locally. + + +Once launched the application presents the Django starter page at localhost:8000. + +## Django and Docker + +The easiest way to build a Django application is with a Dockerfile that contains everything. This is very convenient as the Docker image can contain everything you need (i.e. app plus test frameworks) inside a pipeline. + + +Here is the Dockerfile: + + `Dockerfile` +{% highlight docker %} +{% raw %} +FROM python:3.6-slim + +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 +RUN mkdir /code +WORKDIR /code +RUN pip install --upgrade pip +COPY requirements.txt /code/ + +RUN pip install -r requirements.txt +COPY . /code/ + +EXPOSE 8000 + +CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] +{% endraw %} +{% endhighlight %} + +This docker build does the following: + +1. Starts from the Python image +1. Sets some environment variables +1. Copies the dependencies file inside the container +1. Upgrades pip and installs all dependencies +1. Copies the rest of the source code +1. Starts the Django app + +You can build this image locally on your workstation and then launch it to test the application. + +### Create a CI pipeline for Python/Django + +Creating a CI/CD pipeline for Django is very easy if you already have the Dockerfile with all required dependencies. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/python/python-build-test.png" +url="/images/learn-by-example/python/python-build-test.png" +alt="Creating a Docker image for Python" +caption="Creating a Docker image for Python" +max-width="80%" +%} + +Here is the [full pipeline](https://github.com/codefresh-contrib/gradle-sample-app/blob/master/codefresh.yml) that creates the Docker image after checking out the code. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - build + - test +steps: + main_clone: + title: Cloning main repository... + stage: prepare + type: git-clone + repo: 'codefreshdemo/cf-example-python-django' + revision: master + git: github + build_my_image: + title: Building Docker Image + stage: build + type: build + image_name: my-django-image + working_directory: ./ + tag: master + dockerfile: Dockerfile + test_my_image: + title: Running unit tests + stage: test + image: '${{build_my_image}}' + commands: + - python -m unittest composeexample.utils +{% endraw %} +{% endhighlight %} + +This pipeline clones the source code, creates a Docker image and then uses the same image to run unit tests. Codefresh is automatically caching +Docker layers (it uses the Docker image of a previous build as a cache for the next) and therefore builds will become +much faster after the first one finishes. + + +### Running tests before building the docker image + +Sometimes if you have a complex application you might want to run integration tests (or other Python commands), *before* building the Docker image. This scenario is also supported natively by Codefresh. + + +{% include image.html +lightbox="true" +file="/images/learn-by-example/python/python-test-build.png" +url="/images/learn-by-example/python/python-test-build.png" +alt="Building the image after tests have run" +caption="Building the image after tests have run" +max-width="80%" +%} + +Here is the [full pipeline](https://github.com/codefreshdemo/cf-example-python-django/blob/master/codefresh-build-after-test.yml) builds the docker image after tests have already executed. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - test + - build +steps: + main_clone: + title: Cloning main repository... + stage: prepare + type: git-clone + repo: 'codefreshdemo/cf-example-python-django' + revision: master + git: github + test_the_code: + title: Run unit tests + stage: test + image: python:3.6-slim + commands: + - pip install -r requirements.txt --cache-dir=/codefresh/volume/pip-cache + - python -m unittest composeexample.utils + build_my_image: + title: Building Docker Image + stage: build + type: build + image_name: my-django-image + working_directory: ./ + tag: full + dockerfile: Dockerfile +{% endraw %} +{% endhighlight %} + +Codefresh is smart enough that [caches automatically]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipeline-caching/) for us the workspace of a build (`/codefresh/volume`). This works great for build tools that keep their cache in the project folder, but not for pip which keeps its cache externally (e.g. `~/.cache/pip`). By changing the location of the Pip cache on the project folder (the `pip-cache` name is arbitrary) we make sure that Codefresh will cache automatically the Pip libraries resulting in much faster builds. + +## What to read next + +* [Python examples]({{site.baseurl}}/docs/learn-by-example/python/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) \ No newline at end of file diff --git a/_docs/example-catalog/python/voting-app.md b/_docs/example-catalog/python/voting-app.md new file mode 100644 index 00000000..bce847bc --- /dev/null +++ b/_docs/example-catalog/python/voting-app.md @@ -0,0 +1,90 @@ +--- +title: "Voting app" +description: "" +excerpt: "" +group: learn-by-example +sub_group: python +redirect_from: + - /docs/voting-app-1/ + - /docs/python/voting-app/ +toc: true +--- +This voting application is a demo with which you can build an advanced composition that uses `Python, Redis, Postgres, Node.js, and .Net`. + +## Looking around +In the root of this repository you'll find a file named codefresh.yml, this is our build descriptor and it describes the different steps that comprise our process. Let's quickly review the contents of this file: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + unit-tests: + image: codefresh/buildpacks:nodejs-5 + working-directory : ${{initial-clone}} + commands: + - echo Installing npm modules silent + - npm install + - gulp test + - echo $(date) + + build-step: + #title: Build My Image #Display name for the step + type: build + image-name: containers101/cf-example-result + tag: ${{CF_BRANCH}} + build_arguments: + - OPTION_A=${{OPTION_A}} + - OPTION_B=${{OPTION_B}} + + push-to-registry: + type: push + #candidate: the image from the build step + candidate: ${{build-step}} + tag: ${{CF_BRANCH}} + + integration-tests-step: + type: composition + #location of the compostion on the filesystem of the cloned image + composition: './cf-compositions/voting-app-full.yml' + #run integration only when pushing to master + when: + branch: + only: + - master #can also be regex + composition-candidates: + #this will be the image that we will test + integ-test: + image: containers101/cf-example-tests:master + command: ./tests.sh + composition-variables: + - VOTING_OPTION_A=${{OPTION_A}} + - VOTING_OPTION_B=${{OPTION_B}} + + launch-composition: + type: launch-composition + environment-name: 'Test composition after build' + composition: './cf-compositions/voting-app-full.yml' + composition-variables: + - VOTING_OPTION_A=${{OPTION_A}} + - VOTING_OPTION_B=${{OPTION_B}} + + deploy to ecs: + image: codefresh/cf-deploy-ecs + commands: + - cfecs-update --image-name containers101/cf-example-result --image-tag ${{CF_BRANCH}} eu-west-1 vote-app result + environment: + - AWS_ACCESS_KEY_ID=${{AWS_ACCESS_KEY_ID}} + - AWS_SECRET_ACCESS_KEY=${{AWS_SECRET_ACCESS_KEY}} + when: + condition: + all: + pushCommit: 'includes(lower("${{CF_COMMIT_MESSAGE}}"), "[deploy]") == true' +{% endraw %} +{% endhighlight %} + +{{site.data.callout.callout_info}} +##### Example + +Just head over to the example [__repository__](https://github.com/containers101/cf-example-result){:target="_blank"} in GitHub and follow the instructions there. +{{site.data.callout.end}} diff --git a/_docs/example-catalog/ruby.md b/_docs/example-catalog/ruby.md new file mode 100644 index 00000000..cfc42bc7 --- /dev/null +++ b/_docs/example-catalog/ruby.md @@ -0,0 +1,182 @@ +--- +title: "Ruby" +description: "How to build a Ruby On Rails project in Codefresh" +group: learn-by-example +toc: true +--- +Ruby on Rails is a very popular development framework that combines ease of use and a great amount of programming languages. In Codefresh, ROR projects behave like any other web application. You can easily build them, run [integration tests]({{site.baseurl}}/docs/testing/integration-tests/) and launch them on [demo environments]({{site.baseurl}}/docs/getting-started/on-demand-environments/). + +The example application is located at [https://github.com/codefresh-contrib/ruby-on-rails-sample-app](https://github.com/codefresh-contrib/ruby-on-rails-sample-app). + + + +## Dockerize your Ruby on Rails project + +The first step should be to write a [Dockerfile](https://github.com/codefresh-contrib/ruby-on-rails-sample-app/blob/master/Dockerfile) for your Rails project. As an example we will use the following: + + + +`Dockerfile` +{% highlight docker %} +FROM ruby:2.3.1-slim + +RUN apt-get update && \ + apt-get install -y build-essential libcurl4-openssl-dev libxml2-dev libsqlite3-dev libpq-dev nodejs postgresql-client sqlite3 --no-install-recommends && \ + apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# throw errors if Gemfile has been modified since Gemfile.lock +RUN bundle config --global frozen 1 + +ENV APP_PATH /usr/src/app + +RUN mkdir -p $APP_PATH + +COPY Gemfile $APP_PATH +COPY Gemfile.lock $APP_PATH + +WORKDIR $APP_PATH + +RUN bundle install + +COPY . $APP_PATH + +ENV RAILS_ENV development + +RUN bin/rake db:migrate + +RUN bin/rake assets:precompile + +EXPOSE 3000 + +CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"] + +{% endhighlight %} + +Notice the order of commands and especially the fact that we copy the `Gemfile` on its own first, so that we take advantage of the Docker layer caching. + +>Codefresh also supports multi-stage docker builds. You can use one parent docker image for preparing your gem modules and another one for actually deployment the application. + +Once you have a Dockerfile, [creating a pipeline in Codefresh]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) is very easy either from the GUI or with the yaml syntax. + +## Simple pipeline with Docker image and unit tests + +A very simple pipeline is one that has only two steps: + +1. Build the docker image +1. Run the tests inside the docker image that was just build + +Here is the example [codefresh.yml](https://github.com/codefresh-contrib/ruby-on-rails-sample-app/blob/master/codefresh.yml) file. + + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: 'codefresh-contrib/ruby-on-rails-sample-app' + revision: master + git: github + BuildingDockerImage: + title: Building Docker Image + type: build + image_name: ruby-on-rails-sample-app + working_directory: ./ + tag: '${{CF_BRANCH_TAG_NORMALIZED}}' + dockerfile: Dockerfile + RunningUnitTests: + title: Running Unit Tests + image: '${{BuildingDockerImage}}' + commands: + - rails db:migrate + - rails test +{% endraw %} +{% endhighlight %} + +The first step is a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) named `BuildingDockerImage`. It reads the Dockerfile and creates a Docker image out of it. The second step is a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) called `RunningUnitTests`. It uses the image mentioned in the first step and executes custom commands inside it. + + +## Inspecting your Docker image + +You can see all your latest [Docker artifacts]({{site.baseurl}}/docs/docker-registries/working-with-docker-registries/#viewing-docker-images) by selecting *Images* from the left sidebar. + + +{% include image.html +lightbox="true" +file="/images/learn-by-example/ruby/images.png" +url="/images/learn-by-example/ruby/images.png" +alt="Codefresh built-in Registry" +caption="Codefresh built-in Registry" +max-width="80%" +%} + +You can click on the image and get extra details. One of the tabs contains a visual explanation of the layers contained in the image. This view can be helpful when you are trying to make your Docker images smaller (which is a recommended practice) + +{% include image.html +lightbox="true" +file="/images/learn-by-example/ruby/layers.png" +url="/images/learn-by-example/ruby/layers.png" +alt="Ruby On Rails image filesystem layers" +caption="Ruby On Rails Image filesystem layers" +max-width="70%" +%} + +In Codefresh you can also use any other [external registry]({{site.baseurl}}/docs/docker-registries/external-docker-registries/) such as Dockerhub, Azure, Google etc. + + +## Previewing the Ruby on Rails application in a Demo environment + +Codefresh has the unique capability of launching Docker images within its infrastructure for a quick demonstration (e.g. to customers and colleagues). + +In the example Rails repository, the default development "environment" is self-contained (it uses sqlite for a database). This makes it very easy to preview. + +Launch the environment by clicking at the rocket icon in the images view. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/ruby/launch.png" +url="/images/learn-by-example/ruby/launch.png" +alt="Launching a demo environment" +caption="Launching a demo environment" +max-width="50%" +%} + +A new build will start. Once it is complete your new environment will be created. You can inspect it by clicking in the *Compositions* menu on the left sidebar and then clicking *Running Compositions*. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/ruby/environment.png" +url="/images/learn-by-example/ruby/environment.png" +alt="Inspecting a demo environment" +caption="Inspecting a demo environment" +max-width="70%" +%} + +Click the *Open App* icon on the right and your browser will open a new tab with the environment. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/ruby/preview.png" +url="/images/learn-by-example/ruby/preview.png" +alt="Previewing a demo environment" +caption="Previewing a demo environment" +max-width="50%" +%} + + +You can share this link with other people in your team. + +>Demo environments are not intended for production purposes. Use them only for quick feedback. They also shutdown automatically after a period of inactivity. + + + +## What to read next + +* [Introduction to Pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [On demand environments]({{site.baseurl}}/docs/getting-started/on-demand-environments/) +* [Integration tests]({{site.baseurl}}/docs/testing/integration-tests/) + + diff --git a/_docs/example-catalog/run-integration-tests.md b/_docs/example-catalog/run-integration-tests.md new file mode 100644 index 00000000..0b92e9b0 --- /dev/null +++ b/_docs/example-catalog/run-integration-tests.md @@ -0,0 +1,102 @@ +--- +title: "Integration Tests Example" +description: "Launching separate App and test containers" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/run-integration-tests/ +toc: true +--- +In this example we will see a Java/Tomcat project that is using JUnit for unit tests and Spock for integration tests. For the integration test phase we will launch both the application and the tests in order to run the integration tests against a real web instance (i.e. without mocking). + +{% include image.html +lightbox="true" +file="/images/examples/integration-tests/integration-tests.png" +url="/images/examples/integration-tests/integration-tests.png" +alt="Integration tests with Codefresh" +caption="Integration tests with Codefresh" +max-width="90%" +%} + +The integration tests will look at the application instance at `app:8080`. + +## The example Java/Tomcat/Spring project + +You can see the example project at [https://github.com/codefreshdemo/cf-example-integration-tests](https://github.com/codefreshdemo/cf-example-integration-tests). The repository contains the Java source code and some integration tests. + +You can play with it locally by using Docker compose to launch both the application and the tests. + +## Create a pipeline with separate integration tests + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: + - prepare + - build + - test +steps: + main_clone: + type: "git-clone" + description: "Cloning main repository..." + repo: "codefreshdemo/cf-example-integration-tests" + revision: "master" + git: github + stage: prepare + build_app_image: + title: "Building Docker Image" + type: "build" + image_name: "my-spring-app" + tag: "master" + dockerfile: "Dockerfile" + stage: build + build_test_image: + title: "Building Docker Test Image" + type: "build" + image_name: "my-junit-spock-tests" + tag: "master" + dockerfile: "Dockerfile.testing" + stage: test + run_integration_tests: + title: "Running integration tests" + stage: test + image: '${{build_test_image}}' + commands: + # Tomcat is certainly up at this point + - mvn verify -Dserver.host=app + services: + composition: + app: + image: '${{build_app_image}}' + ports: + - 8080 + readiness: + timeoutSeconds: 30 + periodSeconds: 15 + image: byrnedo/alpine-curl + commands: + - "curl http://app:8080/wizard/" + +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. [Builds a Docker image]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) with only Tomcat and the application WAR +1. Builds a helper image that contains the source code and Maven so that it can run integration tests. +1. Runs the `mvn verify` command in the helper image while launching a [service container]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) with the Tomcat/Java image + +Notice that we also use the `readiness` property in the testing phase so that we can verify that the application +is actually up, before running the tests. + +## What to read next + +- [Service Containers]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) +- [Integration Tests with Postgres]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-postgres/) +- [Integration Tests with MySQL]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-mysql/) +- [Integration Tests with Mongo]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-mongo/) +- [Integration Tests with Redis]({{site.baseurl}}/docs/yaml-examples/examples/integration-tests-with-redis/) \ No newline at end of file diff --git a/_docs/example-catalog/run-unit-tests.md b/_docs/example-catalog/run-unit-tests.md new file mode 100644 index 00000000..9c4c7a79 --- /dev/null +++ b/_docs/example-catalog/run-unit-tests.md @@ -0,0 +1,105 @@ +--- +title: "Run Unit Tests" +description: "Running unit tests in Codefresh pipelines" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/run-unit-tests/ +toc: true +--- + +As we have explained in the [Unit tests page]({{site.baseurl}}/docs/testing/unit-tests/) Codefresh supports several ways of running unit tests. The most usual scenarios are using an existing Docker Hub image (common with compiled languages such as Java and Go) or using the application image itself (common with languages such as JavaScript/Python/Ruby/PHP). + +In this example we will see both ways using two different applications in a single pipeline. + +{% include image.html +lightbox="true" +file="/images/examples/unit-tests/unit-tests-pipeline.png" +url="/images/examples/unit-tests/unit-tests-pipeline.png" +alt="Unit tests with Codefresh" +caption="Unit tests with Codefresh" +max-width="90%" +%} + +In the first case we will run unit tests *before* creating the application docker image, while in the second case we will run unit tests +*inside* the application Docker image. + +## The example Python/Go project + +You can see the example project at [https://github.com/codefreshdemo/cf-example-unit-test](https://github.com/codefreshdemo/cf-example-unit-test). The repository contains two applications (Python and Go) with their respective unit tests. + +You can play with it locally by using Docker commands to package the applications. + +## Create a pipeline with Unit tests + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - prepare + - 'Microservice A' + - 'Microservice B' +steps: + main_clone: + title: Cloning main repository... + type: git-clone + repo: 'codefreshdemo/cf-example-unit-test' + revision: 'master' + git: github + stage: prepare + run_my_tests_before_build: + title: Running Unit tests directly + stage: 'Microservice A' + image: golang:1.12 + working_directory: './golang-app-A' + commands: + - go test -v + build_after_my_tests: + title: Building Go Docker Image + type: build + stage: 'Microservice A' + image_name: my-go-image + working_directory: './golang-app-A' + tag: 'master' + dockerfile: Dockerfile + build_before_my_tests: + title: Building Python Docker Image + type: build + stage: 'Microservice B' + image_name: my-python-image + working_directory: './python-app-B' + tag: 'master' + dockerfile: Dockerfile + run_my_tests_inside_image: + title: Running Unit tests inside App image + stage: 'Microservice B' + image: ${{build_before_my_tests}} + working_directory: '/app' + commands: + - python setup.py test +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. Runs unit test for the GO application using the Dockerhub image `golang:1.12` +1. [Builds the Docker image]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) for the Go application +1. Builds the Docker image for the Python application +1. Runs unit tests for the Python application using as runtime context the application image that was just created. + + +Notice that in the second case the tests run in the context of `build_before_my_tests` which is the name of the step that creates the Docker image for Python. See [context variables]({{site.baseurl}}/docs/codefresh-yaml/variables/#context-related-variables) for more information on this technique. + +We generally recommend the first approach, so that your production Docker image does not contain any unit testing libraries or frameworks, but there is no right or wrong choice regarding the way you run unit tests. + +## What to read next + +- [Unit tests]({{site.baseurl}}/docs/testing/unit-tests/) +- [Integration test example]({{site.baseurl}}/docs/yaml-examples/examples/run-integration-tests/) +- [Service Containers]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) +- [Freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/) + diff --git a/_docs/example-catalog/rust.md b/_docs/example-catalog/rust.md new file mode 100644 index 00000000..08f58445 --- /dev/null +++ b/_docs/example-catalog/rust.md @@ -0,0 +1,83 @@ +--- +title: "Compile and test a Rust application" +description: "Using Codefresh pipelines" +group: learn-by-example +toc: true +--- + +Codefresh can work with any Rust application very easily as both `rustc` and `cargo` are already offered in Dockerhub. + +## The example Rust project + +You can see the example project at [https://github.com/codefresh-contrib/rust-sample-app](https://github.com/codefresh-contrib/rust-sample-app). The repository contains a Rust starter project with a dummy unit test. + +* `cargo build` compiles the code. +* `cargo test` runs unit tests +* `cargo clean` removes artifacts and binaries. + + +## Create a CI pipeline for Rust applications + +Creating a CI/CD pipeline for Rust is very easy, because Codefresh can run any [Rust image](https://hub.docker.com/_/rust) that you wish. Rust docker images already contain the `cargo` package manager. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/rust/rust-pipeline.png" +url="/images/learn-by-example/rust/rust-pipeline.png" +alt="Compiling a Rust application in a pipeline" +caption="Compiling a Rust application in a pipeline" +max-width="80%" +%} + +Here is the [full pipeline](https://github.com/codefresh-contrib/rust-sample-app/blob/master/codefresh.yml) that compiles the application after checking out the code. + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: + - "clone" + - "build" + - "test" +steps: + clone: + title: "Cloning repository" + type: "git-clone" + repo: "codefresh-contrib/rust-sample-app" + revision: "master" + stage: "clone" + compile: + title: "Building Code" + type: "freestyle" + image: "rust:1.44-stretch" + working_directory: "${{clone}}" + environment: + - CARGO_HOME=/codefresh/volume/cargo + commands: + - "cargo build" + stage: "build" + test: + title: "Running tests" + type: "freestyle" + image: "rust:1.44-stretch" + working_directory: "${{clone}}" + environment: + - CARGO_HOME=/codefresh/volume/cargo + commands: + - "cargo test" + stage: "test" + +{% endraw %} +{% endhighlight %} + +This pipeline clones the source code, compiles the code and runs unit tests. In all cases we use the public Docker image of Rust that also contains `cargo`. + +We also pass the `CARGO_HOME` environment variable to place the Cargo cache on the [shared Codefresh volume]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/#sharing-the-workspace-between-build-steps). See the [Caching documentation]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipeline-caching/#traditional-build-caching) for more details. + + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) \ No newline at end of file diff --git a/_docs/example-catalog/scala/scala-hello-world.md b/_docs/example-catalog/scala/scala-hello-world.md new file mode 100644 index 00000000..629da23d --- /dev/null +++ b/_docs/example-catalog/scala/scala-hello-world.md @@ -0,0 +1,185 @@ +--- +title: "Scala: Hello World" +description: "Use Scala and Codefresh to clone, package, and build a Docker image" +excerpt: "" +group: learn-by-example +sub_group: scala +redirect_from: + - /docs/scala-hello-world/ +toc: true +--- + +So, you’ve decided to try Codefresh? Welcome on board! + +We’ll help you get up to speed with basic functionality such as: compiling, building Docker images and launching. + +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) + +## The Example Scala Application + +This project uses `Scala` to build an application which will eventually become a distributable Docker image. + +You can find the example application on [GitHub](https://github.com/codefresh-contrib/scala-hello-world-app). + +There are two pipeline examples provided in this tutorial: + +- Multi-stage Docker build +- Single stage Docker Build + +## Example Pipeline #1: Single stage Docker Build + +This example uses a single stage Docker build. The pipeline will have three stages: + +- A stage for cloning +- A stage for packaging +- A stage for building + +{% include image.html +lightbox="true" +file="/images/examples/scala/single-stage-pipeline.png" +url="/images/examples/scala/single-stage-pipeline.png" +alt="Codefresh UI pipeline view" +caption="Codefresh UI pipeline view" +max-width="100%" +%} + +Here is the Dockerfile used for this example: + +`Dockerfile-single-stage` +```shell +FROM openjdk:8-jre-alpine3.9 + +COPY . . + +CMD ["java", "-cp", "target/scala-2.12/*.jar:scala-library-2.12.2.jar", "HelloWorld"] +``` + +And here is the pipeline. You can copy and paste it in the inline YAML editor in the UI: + + `codefresh-single-stage.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" + +stages: + - clone + - package + - build + +steps: + clone: + title: Cloning repository... + type: git-clone + stage: clone + arguments: + repo: codefresh-contrib/scala-hello-world-app + revision: master + package: + title: Packaging application... + type: freestyle + stage: package + working_directory: ./scala-hello-world-app + arguments: + image: hseeberger/scala-sbt:11.0.6_1.3.9_2.13.1 + commands: + - sbt -Dsbt.ivy.home=/codefresh/volume/ivy_cache clean compile package + - cp /codefresh/volume/ivy_cache/cache/org.scala-lang/scala-library/jars/scala-library-2.12.2.jar . + build_image: + title: Building Docker image... + type: build + working_directory: ${{clone}} + stage: build + arguments: + image_name: codefresh/scala-sample-app + tag: 1.0.0 + dockerfile: Dockerfile-single-stage +{% endraw %} +{% endhighlight %} + +The above pipeline does the following: + +1. A [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step that clones the main repository +2. A [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that uses an SBT image that packages the application (note how `sbt.ivy.home` is set to an arbitrarily named directory that is part of the codefresh volume). This ensures we cache dependencies to [speed up builds]({{site.baseurl}}/docs/learn-by-example/java/spring-boot-2/#caching-the-maven-dependencies), similar to Maven. +3. The last step, `build_image`, is a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) that builds a Docker image using the Dockerfile provided in the repository. + +## Example Pipeline #2: Multi-stage Docker Build + +This example uses a multi stage Docker build. The pipeline will have only two stages this time, as packaging of the app is handled in the Dockerfile itself: + +- A stage for cloning +- A stage for building + +{% include image.html +lightbox="true" +file="/images/examples/scala/multi-stage-pipeline.png" +url="/images/examples/scala/multi-stage-pipeline.png" +alt="Codefresh UI pipeline view" +caption="Codefresh UI pipeline view" +max-width="100%" +%} + +Here, you will find the multi-stage Dockerfile, copying over only the jars we need: + +`Dockerfile-multi-stage` + +```shell +# first stage + +FROM hseeberger/scala-sbt:11.0.6_1.3.9_2.13.1 AS build + +COPY ./ ./ + +RUN sbt compile clean package + +# second stage + +FROM openjdk:8-jre-alpine3.9 + +COPY --from=build /root/target/scala-2.12/*.jar /scala-hello-world-sample-app.jar +COPY --from=build /root/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.12.2.jar /scala-library-2.12.2.jar + +CMD ["java", "-cp", "scala-hello-world-sample-app.jar:scala-library-2.12.2.jar", "HelloWorld"] +``` +Here is the pipeline, you can copy and paste it into the inline YAML editor: + +`codefresh-multi-stage.yml` + +{% highlight yaml %} +{% raw %} +version: "1.0" + +stages: + - clone + - build + +steps: + clone: + title: Cloning repository... + type: git-clone + stage: clone + arguments: + repo: codefresh-contrib/scala-hello-world-app + revision: master + build_image: + title: Building Docker image... + type: build + working_directory: ${{clone}} + stage: build + arguments: + image_name: codefresh/scala-hello-world-app + tag: 1.0.0 + dockerfile: Dockerfile +{% endraw %} +{% endhighlight %} + +1. A [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step that clones the main repository +2. A [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that builds our code into a Docker image using the Dockerfile present in the repository + + +## What to Read Next + +- [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +- [Git-clone Step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +- [Freestyle Step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) diff --git a/_docs/example-catalog/secure-a-docker-container-using-http-basic-auth.md b/_docs/example-catalog/secure-a-docker-container-using-http-basic-auth.md new file mode 100644 index 00000000..301fbe8d --- /dev/null +++ b/_docs/example-catalog/secure-a-docker-container-using-http-basic-auth.md @@ -0,0 +1,86 @@ +--- +title: "Secure a Docker Container Using HTTP Basic Auth" +description: "" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/securing-docker-container-with-http-basic-auth/ + - /docs/on-demand-test-environment/examples-compositions/securing-docker-container-with-http-basic-auth/ + - /docs/on-demand-test-environment/example-compositions/secure-a-docker-container-using-http-basic-auth/ +toc: true +--- +Before making a product publicly available, you might want to restrict access to certain users. These are some options to accomplish this goal: + + - Implement custom authentication within the system + - Configure the server to act as a proxy between the user and the application + - Limit access to specific IP addresses + +This article explains how to secure a container by exposing public ports, using an extra NGINX container to act as a proxy. + +## Expose Web App Public Port + + `webapp` +{% highlight yaml %} +{% raw %} +version: '3' +services: + web: + image: codefreshio/webapp + ports: + - "3000" +{% endraw %} +{% endhighlight %} + +The architecture for this step is displayed in the diagram below. In this step example, Docker is forwarding an internal 3000 port to the host 80 port. + +{% include +image.html +lightbox="true" +file="/images/a65a871-codefresh_webapp_container.png" +url="/images/a65a871-codefresh_webapp_container.png" +alt="codefresh_webapp_container.png" +max-width="40%" +%} + +## Add NGINX Proxy +To secure the web-app we are going to specify these commands in the ```docker-compose.yml``` file. + +1. Remove the port that maps from the web-app (it won't be directly accessible) +2. Add an extra NGINX container with custom configuration (proxy all traffic) +3. Configure NGINX to communicate with the web-app + + `docker-compose.yml` +{% highlight yaml %} +{% raw %} +version: '3' +services: + web: + image: ${{build-prj}} + auth: + image: ${{build-nginx}} + ports: + - 80 + links: + - web + environment: + USER: ${{USERNAME}} + PASS: ${{PASSWORD}} +{% endraw %} +{% endhighlight %} + +The architecture for the ```docker-compose.yml``` file is displayed in the diagram below. + +{% include +image.html +lightbox="true" +file="/images/72a8d7a-codefresh_nginx_container.png" +url="/images/72a8d7a-codefresh_nginx_container.png" +alt="codefresh_nginx_container.png" +max-width="40%" +%} + +{{site.data.callout.callout_info}} +##### Example + +Just head over to the example [__repository__](https://github.com/codefreshdemo/cf-example-basic-auth-container){:target="_blank"} in GitHub and follow the instructions there. +{{site.data.callout.end}} diff --git a/_docs/example-catalog/sending-the-notification-to-jira.md b/_docs/example-catalog/sending-the-notification-to-jira.md new file mode 100644 index 00000000..f43e7b91 --- /dev/null +++ b/_docs/example-catalog/sending-the-notification-to-jira.md @@ -0,0 +1,88 @@ +--- +title: "Sending the notification to Jira" +description: "" +group: yaml-examples +sub_group: examples +toc: true +--- + +The plugin 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). + +Prerequisites +* [Have a Codefresh Pipeline]({{site.baseurl}}/docs/getting-started/create-a-basic-pipeline/) set-up +* [Have a Jira Account](https://www.atlassian.com/software/jira) + +This documentation is using the following [example](https://github.com/codefresh-contrib/jira-demo-app). You can either use the example provided to try out the Jira integration or follow along with your own application. + +1. You need an issue in your Jira account that you want to link to your Codefresh pipeline. If you do not have one yet, please create an issue. (Note that the project type and who is creating the issue etc. does not matter.) Alternatively, you can also create an issue first with the Jira step. However, this is not explained in this example. + +2. Next, add the following step to your Codefresh pipeline. In case that you are using the example, the [codefresh.yml](https://github.com/codefresh-contrib/jira-demo-app/blob/master/codefresh.yml) file is already added. + +{% highlight yaml %} + JiraCommentCreate: + title: "Add Jira Comment" + type: "jira-issue-manager" + stage: "deploy" + arguments: + JIRA_BASE_URL: '${{JIRA_BASE_URL}}' + JIRA_USERNAME: '${{JIRA_USERNAME}}' + JIRA_API_KEY: '${{JIRA_API_KEY}}' + JIRA_ISSUE_SOURCE_FIELD: '${{JIRA_ISSUE_SOURCE_FIELD}}' + ACTION: "comment_create" + COMMENT_BODY: "Build number ${{CF_BUILD_URL}} finished in Codefresh" +{% endhighlight yaml %} + +Let's look in detail at this step. +- Everything up to the arguments is similar to other Codefresh steps. + +These arguments are required to use the step: +- `JIRA_BASE_URL`: This is the url of your organisation e.g. 'https://company-name.atlassian.net' +- `JIRA_USERNAME`: This is usually the e-mail that you are logged in with at Jira +- `JIRA_API_KEY`: Note that you will have to create this key. The official [Atlassian documentation](https://confluence.atlassian.com/cloud/api-tokens-938839638.html) details how it can be created. + +Then we added these arguments for our specific step: +- `JIRA_ISSUE_SOURCE_FIELD`: This is the tag that identifies your issue e.g. MKTG-102 +- Within the comment, we are using a [Codefresh native variable](https://codefresh.io/docs/docs/codefresh-yaml/variables/) `CF_BUILD_URL`, which will reference your pipeline build and will allow you to search for your pipeline. + +All variables use the Codefresh specific variable notation ${% raw %}`{{MY_VARIABLE_EXAMPLE}}`{% endraw %}`. + +Since it is a new stage in your Codefresh pipeline, you want to add it at the top to your stages, e.g.: + +{% highlight yaml %} + stages: + - "clone" + - "build" + - "JiraCommentCreate" +{% endhighlight yaml %} + +Note that you can [provide the variables]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/) needed for the Jira step directly in the shared configuration. The benefits are: +* You do not have to post sensitive information, such as the API key, directly in the codefresh.yml. +* If you use the same step across multiple pipelines, you don't have to copy-paste the same variables. + +Once you run the pipeline, you should be able to see the following output or similar + +{% include image.html +lightbox="true" +file="/images/integrations/jira/codefreshpipeline.png" +url="/images/integrations/jira/codefreshpipeline.png" +alt="Pipeline with Jira integration" +max-width="80%" +%} + +And the comment, including the URL to the pipeline, should be added to your Jira issue: + +{% include image.html +lightbox="true" +file="/images/integrations/jira/jira-comment.png" +url="/images/integrations/jira/jira-comment.png" +alt="Comment in Jira" +max-width="80%" +%} + +## What to read next + +* [Sending notifications to Slack]({{site.baseurl}}/docs/yaml-examples/examples/sending-the-notification-to-slack/) +* Have a look at other things that you can do with your Codefresh Pipeline in the [example section]({{site.baseurl}}/docs/yaml-examples/examples/) +* [Create a pipeline]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) diff --git a/_docs/example-catalog/sending-the-notification-to-slack.md b/_docs/example-catalog/sending-the-notification-to-slack.md new file mode 100644 index 00000000..63e1254b --- /dev/null +++ b/_docs/example-catalog/sending-the-notification-to-slack.md @@ -0,0 +1,45 @@ +--- +title: "Sending a notification to Slack" +description: "Connect your Codefresh pipelines to Slack" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/sending-the-notification-to-slack/ +toc: true +--- + +There are many ways to integrate slack with Codefresh + +1. You can use the [global slack integration]({{site.baseurl}}/docs/integrations/notifications/slack-integration/) +1. You can use individual pipeline plugins such [slack-message-sender](https://codefresh.io/steps/step/slack-message-sender) and [slack-notifier](https://codefresh.io/steps/step/slack-notifier) +1. You use can simple POST requests with Curl (explained in this page) + +## Custom webhook to Slack + +Use a container image with a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) such as `byrnedo/alpine-curl` to send a notification to a Slack channel. + +{:start="1"} +1. Get the {% raw %}```${{SLACK_WEB_URL}}```{% endraw %} and put it in the Environment Variables or use [shared configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/) + +{{site.data.callout.callout_info}} +You can find how to integrate with slack here [https://api.slack.com/incoming-webhooks](https://api.slack.com/incoming-webhooks){:target="_blank"} +{{site.data.callout.end}} + +{:start="2"} +2. Add the following step to your `codefresh.yml`: + + `slack step` +{% highlight yaml %} +slack_notify: + image: byrnedo/alpine-curl # curlimages/curl, or any other curl image + commands: + - curl -X POST --data-urlencode 'payload={"text":"Test slack integration via yaml"}' {% raw %}${{SLACK_WEB_URL}}{% endraw %} +{% endhighlight %} + + +## What to read next + +* [Global Slack Integration]({{site.baseurl}}/docs/integrations/notifications/slack-integration/) +* [Advanced Workflows]({{site.baseurl}}/docs/codefresh-yaml/advanced-workflows/) +* [Pipeline Hooks]({{site.baseurl}}/docs/codefresh-yaml/hooks/) +* [Shared Configuration]({{site.baseurl}}/docs/configure-ci-cd-pipeline/shared-configuration/) \ No newline at end of file diff --git a/_docs/example-catalog/shared-volumes-between-builds.md b/_docs/example-catalog/shared-volumes-between-builds.md new file mode 100644 index 00000000..9658a27e --- /dev/null +++ b/_docs/example-catalog/shared-volumes-between-builds.md @@ -0,0 +1,117 @@ +--- +title: "Sharing data between pipeline steps" +description: "How to cache folders between steps and builds" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/shared-volumes-between-builds/ +toc: true +--- + +Codefresh creates a [shared volume]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/#sharing-the-workspace-between-build-steps) in each pipeline that is automatically shared on all freestyle steps. + +{% include +image.html +lightbox="true" +file="/images/pipeline/introduction/codefresh-volume.png" +url="/images/pipeline/introduction/codefresh-volume.png" +alt="Codefresh volume" +caption="All steps share the same volume" +max-width="90%" +%} + +This volume exists at `/codefresh/volume` by default. You can simply copy files there to have them available in all Codefresh steps (as well as subsequent builds of the same pipeline) + +>Notice that the [git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) will delete any files **not** mentioned in `.gitignore`. Therefore if you want to cache a folder that exists in your project directory (such as `node_modules`) you also need to add it to `.gitignore` + +## Using the shared volume + +You can see the example project at [https://github.com/codefreshdemo/cf-example-shared-volumes-between-builds](https://github.com/codefreshdemo/cf-example-shared-volumes-between-builds). The repository contains a simple application, a Dockerfile and an example pipeline that saves/reads a dummy file to the Codefresh volume + + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" +stages: + - "clone" + - "build" + - "shared-volume" + +steps: + clone: + title: "Cloning repository" + type: "git-clone" + repo: "codefreshdemo/cf-example-shared-volumes-between-builds" + revision: "master" + stage: "clone" + + build_image: + title: "Building image" + type: "build" + image_name: "sample-app" + working_directory: "${{clone}}" + tag: "demo" + dockerfile: "Dockerfile" + stage: "build" + + copy_to_shared_volume: + title: "Copy file to shared volume" + type: "freestyle" + image: alpine:3.9 + working_directory: "${{clone}}" + commands: + - ls -l /codefresh/volume/ + - cp ./artifact/artifact.example /codefresh/volume/artifact.example + stage: "shared-volume" + + list_shared_volume: + title: "List shared volume files" + type: "freestyle" + image: alpine:3.9 + working_directory: "${{clone}}" + commands: + - pwd + - ls -l /codefresh/volume + stage: "shared-volume" +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. Builds a docker image using a [Build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) +1. Copies the file `artifact.example` to the volume with a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) +1. Reads the contents of the volume in a different [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) + +If you run the pipeline you will see the file contents in the fourth step: + +{% include +image.html +lightbox="true" +file="/images/examples/shared-workspace/volume-list.png" +url="/images/examples/shared-workspace/volume-list.png" +alt="Listing volume contents" +caption="Listing volume contents" +max-width="80%" +%} + + +If you also run the pipeline a second time, you will see the dummy file in all steps (as the volume is automatically cached for subsequent builds as well). + + +## Caching build dependencies and Docker layers + +More information about caching build dependencies can be found in the [caching documentation page]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipeline-caching/) as well as [in this blog post](https://codefresh.io/blog/caching-build-dependencies-codefresh-volumes/). + + +## What to read next + +* [Introduction to Codefresh pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) +* [Pipeline caching]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipeline-caching/) +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) + + diff --git a/_docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md b/_docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md new file mode 100644 index 00000000..63e98467 --- /dev/null +++ b/_docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md @@ -0,0 +1,52 @@ +--- +title: "Shared volumes of service from composition step for other yml steps" +description: "How to share data in compositions" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/shared-volumes-of-service-from-composition-step-for-other-yml-steps/ +toc: true +--- +Using this repository, we'll help you get up to speed with basic functionality such as: building Docker images and use the shared volumes feature. + +This project uses Node Js to build an application which will eventually become a distributable Docker image. +If you want to share volumes of service in composition step for other yml steps you can use the variable {% raw %}```${{CF_VOLUME_NAME}}```{% endraw %}. It will refer to the volume that was generated for the specific flow. Can be used in conjunction with a composition to provide access to your cloned repository. + +{{site.data.callout.callout_info}} +##### Caching build dependencies + +More information about caching build dependencies you can find +[**HERE**](https://codefresh.io/blog/caching-build-dependencies-codefresh-volumes/){:target="_blank"} +{{site.data.callout.end}} + +## Looking around +In the root of this repository you'll find a file named codefresh.yml, this is our build descriptor and it describes the different steps that comprise our process. Let's quickly review the contents of this file: + + `codefresh.yml` +{% highlight yaml %} +step_file_generation: + type: composition + composition: + version: '2' + services: + service1: + volumes: + - {% raw %}${{CF_VOLUME_NAME}}{% endraw %}:/codefresh/volume + image: {% raw %}${{build_step}}{% endraw %} + command: bash -c "echo hello > /codefresh/volume/myfile.txt" + composition_candidates: + test: + image: {% raw %}${{build_step}}{% endraw %} + command: echo hello +{% endhighlight %} + +{{site.data.callout.callout_info}} +##### Example + +Just head over to the example [**repository**](https://github.com/codefreshdemo/cf-example-shared-volumes-composition-step){:target="_blank"} in GitHub and follow the instructions there. +{{site.data.callout.end}} + +{{site.data.callout.callout_warning}} +The way the volume is shared between builds is that upon build completion we create an image of the volume state to be used in the next builds. If you run 2 builds in parallel from the same pipeline and at the same time, each will use the same last volume image, but it’ll run separately on both. The volume image you’ll get upon completion is the state of the build that finished last. +{{site.data.callout.end}} + diff --git a/_docs/example-catalog/spring-boot-kafka-zookeeper.md b/_docs/example-catalog/spring-boot-kafka-zookeeper.md new file mode 100644 index 00000000..675a1a5e --- /dev/null +++ b/_docs/example-catalog/spring-boot-kafka-zookeeper.md @@ -0,0 +1,198 @@ +--- +title: "Spring Boot + Kafka + Zookeeper" +description: "" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/spring-boot-kafka-zookeeper/ + - /docs/on-demand-test-environment/example-compositions/spring-boot-kafka-zookeeper/ +toc: true +--- +This project uses `Java, Spring Boot, Kafka, Zookeeper` to show you how to integrate these services in the composition. + +{{site.data.callout.callout_info}} +##### Example + +Just head over to the example [__repository__](https://github.com/codefreshdemo/example-springboot-kafka){:target="_blank"} in GitHub and follow the instructions there. +{{site.data.callout.end}} + +## Zookeeper Docker image + +Kafka uses ZooKeeper so you need to first start a ZooKeeper server if you don't already have one + + `docker-compose.yml` +{% highlight yaml %} +{% raw %} + zookeeper: + image: wurstmeister/zookeeper + ports: + - "2181:2181" +{% endraw %} +{% endhighlight %} + +## Kafka Docker image +Now start the Kafka server. In the `docker-compose.yml` it can be something like this + + `docker-compose.yml` +{% highlight yaml %} +{% raw %} + kafka: + build: + context: kafka + dockerfile: Dockerfile + links: + - zookeeper:zk + ports: + - "9092:9092" + environment: + KAFKA_ADVERTISED_HOST_NAME: $CF_HOST_IP + KAFKA_ZOOKEEPER_CONNECT: zk:2181 + KAFKA_MESSAGE_MAX_BYTES: 2000000 + KAFKA_CREATE_TOPICS: "Topic1:1:1" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + depends_on: + - zookeeper +{% endraw %} +{% endhighlight %} + +To start the Kafka server with the certain per-configuration, you need to use Environment variables. Below, you can see which Environment variables are available for this service. + +__Broker IDs__ + +You can configure the broker id in different ways: + +1. Explicitly, using ```KAFKA_BROKER_ID``` +2. Via a command, using ```BROKER_ID_COMMAND```, e.g. ```BROKER_ID_COMMAND: "hostname | awk -F'-' '{print $2}'"``` + +If you don't specify a broker id in your docker-compose file, it will automatically be generated (see [https://issues.apache.org/jira/browse/KAFKA-1070](https://issues.apache.org/jira/browse/KAFKA-1070){:target="_blank"}. This allows scaling up and down. In this case it is recommended to use the ```--no-recreate``` option of docker-compose to ensure that containers are not re-created and thus keep their names and ids. + + +__Automatically create topics__ + +If you want to have kafka-docker automatically create topics in Kafka during +creation, a ```KAFKA_CREATE_TOPICS``` environment variable can be +added in ```docker-compose.yml```. + +Here is an example snippet from ```docker-compose.yml```: + + environment: + KAFKA_CREATE_TOPICS: "Topic1:1:3,Topic2:1:1:compact" + +```Topic 1``` will have 1 partition and 3 replicas, ```Topic 2``` will have 1 partition, 1 replica and a `cleanup.policy` set to `compact`. + +__Advertised hostname__ + +You can configure the advertised hostname in different ways: + +1. Explicitly, using ```KAFKA_ADVERTISED_HOST_NAME``` +2. Via a command, using ```HOSTNAME_COMMAND```, e.g. ```HOSTNAME_COMMAND: "route -n | awk '/UG[ \t]/{print $$2}'"``` + +When using commands, make sure you review the "Variable Substitution" section in [https://docs.docker.com/compose/compose-file/](https://docs.docker.com/compose/compose-file/){:target="_blank"} + +If ```KAFKA_ADVERTISED_HOST_NAME``` is specified, it takes precedence over ```HOSTNAME_COMMAND``` + +For AWS deployment, you can use the Metadata service to get the container host's IP: +``` +HOSTNAME_COMMAND=wget -t3 -T2 -qO- http://169.254.169.254/latest/meta-data/local-ipv4 +``` +Reference: [http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html){:target="_blank"} + +__JMX__ + +For monitoring purposes, you may wish to configure JMX. Additional to the standard JMX parameters, problems could arise from the underlying RMI protocol used to connect + +* java.rmi.server.hostname - interface to bind listening port. +* com.sun.management.jmxremote.rmi.port - the port to service RMI requests. + +For example, to connect to a kafka running locally (assumes exposing port 1099) + + KAFKA_JMX_OPTS: "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.rmi.port=1099" + JMX_PORT: 1099 + +## Spring Boot + Kafka +Then grab the spring-kafka JAR and all of its dependencies - the easiest way to do that is to declare a dependency in your build tool, e.g. for Maven: + + `Text` +{% highlight xml %} +{% raw %} + + org.springframework.kafka + spring-kafka + ${spring-kafka.version} + + + org.springframework.kafka + spring-kafka-test + ${spring-kafka.version} + test + +{% endraw %} +{% endhighlight %} + +Using plain Java to send and receive a message: + + `Java` +{% highlight java %} +{% raw %} +private static String BOOT_TOPIC = "boot.t"; + +@Autowired +private Sender sender; + +@Autowired +private Receiver receiver; + +@ClassRule +public static KafkaEmbedded embeddedKafka = new KafkaEmbedded(1, true, BOOT_TOPIC); + +@BeforeClass +public static void setUpBeforeClass() throws Exception { + System.setProperty("spring.kafka.bootstrap-servers", embeddedKafka.getBrokersAsString()); +} + +@Test +public void testReceive() throws Exception { + sender.send(BOOT_TOPIC, "Hello Boot!"); + + receiver.getLatch().await(10000, TimeUnit.MILLISECONDS); + assertThat(receiver.getLatch().getCount()).isEqualTo(0); +} +{% endraw %} +{% endhighlight %} + +Maven will download the needed dependencies, compile the code and run the unit test case. The result should be a successful build during which following logs are generated: + + `Java` +{% highlight java %} +{% raw %} +. ____ _ __ _ _ + /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ + \\/ ___)| |_)| | | | | || (_| | ) ) ) ) + ' |____| .__|_| |_|_| |_\__, | / / / / + =========|_|==============|___/=/_/_/_/ + :: Spring Boot :: (v1.5.2.RELEASE) + +08:36:56.175 [main] INFO c.c.kafka.SpringKafkaApplicationTest - Starting SpringKafkaApplicationTest on cnf-pc with PID 700 (started by CodeNotFound in c:\code\st\spring-kafka\spring-kafka-avro) +08:36:56.175 [main] INFO c.c.kafka.SpringKafkaApplicationTest - No active profile set, falling back to default profiles: default +08:36:56.889 [main] INFO c.c.kafka.SpringKafkaApplicationTest - Started SpringKafkaApplicationTest in 1.068 seconds (JVM running for 5.293) +08:36:58.223 [main] INFO c.codenotfound.kafka.producer.Sender - sending user='{"name": "John Doe", "favorite_number": null, "favorite_color": "green"}' +08:36:58.271 [org.springframework.kafka.KafkaListenerEndpointContainer#0-0-L-1] INFO c.c.kafka.consumer.Receiver - received user='{"name": "John Doe", "favorite_number": null, "favorite_color": "green"}' +08:37:00.240 [main] ERROR o.a.zookeeper.server.ZooKeeperServer - ZKShutdownHandler is not registered, so ZooKeeper server won't take any action on ERROR or SHUTDOWN server state changes +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.871 sec - in com.codenotfound.kafka.SpringKafkaApplicationTest + +Results: + +Tests run: 3, Failures: 0, Errors: 0, Skipped: 0 + +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 41.632 s +[INFO] Finished at: 2017-04-17T08:37:31+02:00 +[INFO] Final Memory: 18M/212M +[INFO] ------------------------------------------------------------------------ +{% endraw %} +{% endhighlight %} + diff --git a/_docs/example-catalog/terraform.md b/_docs/example-catalog/terraform.md new file mode 100644 index 00000000..40de1d73 --- /dev/null +++ b/_docs/example-catalog/terraform.md @@ -0,0 +1,114 @@ +--- +title: "Deploy with Terraform" +description: "Use Terraform in a Codefresh pipeline with Docker" +group: yaml-examples +sub_group: examples +toc: true +--- + +[Terraform](https://www.terraform.io/) is a platform for *Infrastructure as Code*. It allows you to describe your cloud infrastructure in a declarative manner. + +You can use Terraform to deploy to Kubernetes or any other supported cloud platform. Because Terraform itself is already offered [in a Docker container](https://hub.docker.com/r/hashicorp/terraform/), it is very easy to run Terraform in a Codefresh pipeline. + + +{% include image.html +lightbox="true" +file="/images/examples/terraform/terraform-pipeline.png" +url="/images/examples/terraform/terraform-pipeline.png" +alt="Running Terraform inside Codefresh" +caption="Running Terraform inside Codefresh" +max-width="80%" +%} + +## The example Terraform project + +You can see the example project at [https://github.com/codefresh-contrib/terraform-sample-app](https://github.com/codefresh-contrib/terraform-sample-app). The repository contains a simple Terraform definition that creates a VM on Google cloud. + +You can play with it locally after installing the `terraform` executable. + +## Prerequisites + +You need to [create a Codefresh account]({{site.baseurl}}/docs/getting-started/create-a-codefresh-account/) and a Google account first. Then you need to create a [Service account Key](https://cloud.google.com/iam/docs/creating-managing-service-account-keys) which will allow terraform to communicate with Google cloud. + + +Add your service account json as a pipeline variable called `ACCOUNT_JSON_CONTENT`. The content of this variable will be used +in order to authenticate to Google cloud. + +## Create a CI/CD pipeline for Terraform + +Here is the whole pipeline: + + `codefresh.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' +stages: + - checkout + - prepare + - deploy +steps: + main_clone: + title: Cloning main repository... + stage: checkout + type: git-clone + repo: 'codefresh-contrib/terraform-sample-app' + revision: master + git: github + SetupAuth: + image: alpine:3.9 + title: Setting up Google cloud auth + stage: prepare + commands: + - echo $ACCOUNT_JSON_CONTENT > /codefresh/volume/account.json + - cf_export GOOGLE_CLOUD_KEYFILE_JSON=/codefresh/volume/account.json + DeployWithTerraform: + image: hashicorp/terraform:0.12.0 + title: Deploying Terraform plan + stage: deploy + commands: + - terraform init + - terraform apply -auto-approve + +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +1. Runs [cf_export]({{site.baseurl}}/docs/codefresh-yaml/variables/#exporting-environment-variables-from-a-freestyle-step) to create a pipeline variable with the path of the google service account +1. Runs `terraform init/apply` to create the VM on Google cloud + +>For simplicity, we auto-approve the terraform plan in the example pipeline. In a production pipeline you would instead use an [approval step ]({{site.baseurl}}/docs/codefresh-yaml/steps/approval/) to inspect the plan, before actually applying it. + +The pipeline needs a [single environment variable]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/#pipeline-settings) that holds the content of the service account. + + +{% include image.html +lightbox="true" +file="/images/examples/terraform/google_cloud_json.png" +url="/images/examples/terraform/google_cloud_json.png" +alt="Passing the Google account in the pipeline parameters" +caption="Passing the Google account in the pipeline parameters" +max-width="60%" +%} + + +Run the pipeline and see your deployment succeed. + + +Note that in a production pipeline you should also handle the [Terraform state](https://www.terraform.io/docs/state/) in a proper manner. The example provided is using a file for [state storage](https://www.terraform.io/docs/backends/index.html) which is not appropriate when using Terraform in a team environment. Instead you should use one of the [storage backends](https://www.terraform.io/docs/backends/types/index.html) that support High Availability and Locking. + + + + +## Handling Pull requests + +You can easily use the same pipeline or a different one for pull requests. In this case replace the `terraform apply` command with `terraform plan`. Even better, you can add an [approval step]({{site.baseurl}}/docs/codefresh-yaml/steps/approval/) to allow humans to inspect the pipeline first. + + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) diff --git a/_docs/example-catalog/transferring-php-ftp.md b/_docs/example-catalog/transferring-php-ftp.md new file mode 100644 index 00000000..5b8d513f --- /dev/null +++ b/_docs/example-catalog/transferring-php-ftp.md @@ -0,0 +1,118 @@ +--- +title: "Transferring Applications via FTP" +description: "Deploying a Php Application to a VM using FTP" +group: yaml-examples +sub_group: examples +toc: true +redirect_from: + - /docs//learn-by-example/java/spring-mvc-jdbc-template/ +--- + +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +- A remote machine with an ftp server and ssh setup (ensure that your ftp directory, I.e., `/srv/ftp/pub` has the proper write permissions for the ftp user) + +>Note that as you may already know, FTP is extremely insecure as it relies on plain-text passwords and usernames, making data very vulnerable to sniffing. A more secure solution would be to use SFTP or SCP. + +## The Example Php Project + +The example project can be found on [GitHub](https://github.com/codefresh-contrib/ftp-php-app). The application is a simple Php application that displays an example timer. + +{% include image.html +lightbox="true" +file="/images/learn-by-example/php/test-environment.png" +url="/images/learn-by-example/php/test-environment.png" +alt="Example Php Application" +caption="Example Php Application" +max-width="90%" +%} + +## Create the Pipeline + +Our pipeline will contain four stages: + +- A stage for cloning +- A stage for packaging +- A stage for transferring files + +{% include image.html +lightbox="true" +file="/images/examples/php-file-transfer/pipeline.png" +url="/images/examples/php-file-transfer/pipeline.png" +alt="Codefresh UI Pipeline View" +caption="Codefresh UI Pipeline View" +max-width="90%" +%} + +Here is the entire pipeline: + +`codefresh.yml` +{% highlight yaml %} +{% raw %} +# More examples of Codefresh YAML can be found at +# https://codefresh.io/docs/docs/yaml-examples/examples/ + +version: "1.0" +# Stages can help you organize your steps in stages +stages: + - "clone" + - "install" + - "transfer" +steps: + clone: + title: "Cloning main repository..." + type: "git-clone" + arguments: + repo: "codefresh-contrib/ftp-php-app" + git: "github" + stage: "clone" + install_dependencies: + title: "Collecting Php dependencies..." + type: "freestyle" + working_directory: "./ftp-php-app" + arguments: + image: "composer:1.9.3" + commands: + - "composer install --ignore-platform-reqs --no-interaction --no-plugins --no-scripts --prefer-dist" + stage: "install" + steps: + ftp_transfer: + title: "Transferring application to VM via ftp..." + type: "freestyle" + working_directory: "./ftp-php-app" + arguments: + image: "dockito/lftp-client:latest" + environment: + - USER= + - PASSWORD= + - HOST= + - PUB_FTP_DIR= + commands: + - lftp -e "set ftp:use-site-utime2 false; mirror -x ^\.git/$ -X flat-logo.png -p -R ftp-php-ap $PUB_FTP_DIR/ftp-php-app; exit" -u $USER,$PASSWORD $HOST + stage: "transfer" +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. A [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step that clones the main repository +2. A [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that installs the necessary Php dependencies for our application +3. A freestyle step that transfers our application via ftp. Note that you will need to change the environment variables to your respective values, either in the YAML itself (above), or through the pipeline settings: + +{% include image.html +lightbox="true" +file="/images/examples/php-file-transfer/variables.png" +url="/images/examples/php-file-transfer/variables.png" +alt="Codefresh Enbironment Variables" +caption="Codefresh Enbironment Variables" +max-width="90%" +%} + +## What to Read Next + +- [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +- [Git-clone Step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +- [Freestyle Step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) + + diff --git a/_docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry.md b/_docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry.md new file mode 100644 index 00000000..95f914eb --- /dev/null +++ b/_docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry.md @@ -0,0 +1,135 @@ +--- +title: "Trigger a Kubernetes Deployment from a Dockerhub Push Event" +description: "Learn how to trigger a Kubernetes deployment when an image is updated" +group: yaml-examples +sub_group: examples +toc: true +--- + +In this example, we will cover how to trigger a Kubernetes deployment from a Dockerhub Push event using a Dockerhub [registry trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/dockerhub-triggers/#create-a-new-dockerhub-trigger). + +Our example will have two pipelines. One that is responsible for packaging code (CI), and the other will be responsible for deploying code (CD). + +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +- A DockerHub registry [connected to your Codefresh account]({{site.baseurl}}/docs/docker-registries/external-docker-registries/docker-hub/) +- A Kubernetes cluster [connected to your Codefresh account]({{site.baeurl}}/docs/deploy-to-kubernetes/add-kubernetes-cluster/) +- A service for your application [deployed to your cluster]({{site.baseurl}}/docs/deploy-to-kubernetes/manage-kubernetes/#viewing-your-kubernetes-services) + +## The Example Project + +You can see the example project on [GitHub](https://github.com/codefresh-contrib/registry-trigger-sample-app/tree/master). The repository contains a simple Hello World NodeJs app as well as 2 pipelines. + +## Create the CI Pipeline + +As mentioned before, our first pipeline will handle the CI process. There will be 3 stages: + +- A stage for cloning +- A stage for building the image +- A stage for pushing the image to DockerHub + +{% include image.html +lightbox="true" +file="/images/examples/deployments/k8s-deployment-ci-pipeline.png" +url="/images/examples/deployments/k8s-deployment-ci-pipeline.png" +alt="Codefresh UI CI Pipeline View" +caption="Codefresh UI CI Pipeline View" +max-width="90%" +%} + + `codefresh-CI-pipeline.yml` +{% highlight yaml %} +{% raw %} +version: '1.0' + +stages: +- checkout +- build +- push + +steps: + clone: + title: Cloning main repository... + type: git-clone + stage: checkout + arguments: + repo: 'codefresh-contrib/registry-trigger-sample-app' + revision: 'master' + git: github + build_my_app: + title: Building image... + type: build + stage: build + arguments: + image_name: registry-trigger-sample-app + working_directory: ${{clone}} + tag: 'master' + dockerfile: Dockerfile + push_to_my_registry: + stage: 'push' + type: push + title: Pushing to Dockerhub... + arguments: + candidate: ${{build_my_app}} + tag: 'latest' + registry: dockerhub + image_name: annabaker/registry-trigger-sample-app +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +2. Builds a docker image tagged with the Application version using a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) +3. Pushes the Docker image using a [Push step](https://codefresh.io/docs/docs/codefresh-yaml/steps/push/) to the DockerHub registry you have integrated with Codefresh. + +## Create the CD Pipeline + +This pipeline will only contain one stage/step, for deploying. + +{% include image.html +lightbox="true" +file="/images/examples/deployments/k8s-deployment-CD-pipeline.png" +url="/images/examples/deployments/k8s-deployment-CD-pipeline.png" +alt="Codefresh UI CD Pipeline View" +caption="Codefresh UI CD Pipeline View" +max-width="90%" +%} + +Note that for the trigger mechanism to take place, you will need to [add a DockerHub registry trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/dockerhub-triggers/#create-a-new-dockerhub-trigger) to the pipeline. + + `codefresh-CD-pipeline.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" + +stages: + - "deploy" + +steps: + deploy_to_k8s: + title: Running Deploy Script... + type: deploy + kind: kubernetes + arguments: + cluster: anna-demo@FirstKubernetes + namespace: default + service: registry-trigger-sample-app + candidate: + image: annabaker/registry-trigger-sample-app:latest + registry: 'dockerhub' +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Uses a [Deploy step]({{site.baseurl}}/docs/codefresh-yaml/steps/deploy/) to deploy the image to Kubernetes. The deploy step uses a [Registry trigger]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/dockerhub-triggers/#create-a-new-dockerhub-trigger) to kick off the pipeline when the updated image is pushed to the registry. + +## What to read next + +* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) +* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) +* [Pipeline plugins](https://codefresh.io/steps/) +* [Triggers]({{site.baseurl}}/docs/configure-ci-cd-pipeline/triggers/) diff --git a/_docs/example-catalog/uploading-or-downloading-from-gs.md b/_docs/example-catalog/uploading-or-downloading-from-gs.md new file mode 100644 index 00000000..a9b00bfd --- /dev/null +++ b/_docs/example-catalog/uploading-or-downloading-from-gs.md @@ -0,0 +1,153 @@ +--- +title: "Uploading/Downloading Files to/from Google Storage" +description: "Upload and download a jar from Google Storage from within a pipeline" +group: yaml-examples +sub_group: examples +toc: true +--- + +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +- A [Google Storage Bucket](https://cloud.google.com/storage/docs/creating-buckets) with public read access +- A private key [downloaded](https://cloud.google.com/storage/docs/authentication#gsutilauth) for the existing service account associated with your bucket (for this example, we base64 encoded the key for ease of use in a pipeline variable using `base64 key_file.json > key_file.b64`) + +## The Example Project + +The example project can be found on [GitHub](https://github.com/codefresh-contrib/gcloud-storage-sample-app.git). The application is a simple Scala Hello World application contained in a jar, with a dependency on a scala-library jar which we will download from the bucket and package into a Docker image. + +Our project will contain two pipelines, one for uploading the dependency jar to our bucket, and the other for downloading the jar from the bucket. + +## Create the First Pipeline + +The first pipeline will contain one stage/step, a step for uploading the jar to the Google Storage Bucket. + +{% include image.html +lightbox="true" +file="/images/examples/gs/gs-upload-pipeline.png" +url="/images/examples/gs/gs-upload-pipeline.png" +alt="Codefresh UI Pipeline View" +caption="Codefresh UI Pipeline View" +max-width="90%" +%} + +You will need to define a pipeline variable, KEY_FILE, in the pipeline settings: + +{% include image.html +lightbox="true" +file="/images/examples/gs/gs-pipeline-vars.png" +url="/images/examples/gs/gs-pipeline-vars.png" +alt="Codefresh UI Pipeline Variables" +caption="Codefresh UI Pipeline Variables" +max-width="90%" +%} + +Here is the first pipeline: + +`codefresh-upload.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" + +stages: + - "upload" + +steps: + upload: + title: "Uploading library jar to GS..." + type: "freestyle" + stage: "upload" + arguments: + image: "google/cloud-sdk:slim" + commands: + - echo $KEY_FILE | base64 --decode > key_file.json + - gcloud auth activate-service-account --key-file=key_file.json + - curl https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.2/scala-library-2.12.2.jar | gsutil cp - gs://anna-demo-bucket/scala-library-2.12.2.jar +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. A [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that uploads a jar from Maven into our Google Storage bucket. + +## Create the Second Pipeline + +Our second pipeline will have four stages: + +- A stage for cloning the repository +- A stage for downloading the jar from the bucket +- A stage for building the image +- A stage for pushing the image to the repository + +{% include image.html +lightbox="true" +file="/images/examples/gs/gs-download-pipeline.png" +url="/images/examples/gs/gs-download-pipeline.png" +alt="Codefresh UI Pipeline View" +caption="Codefresh UI Pipeline View" +max-width="90%" +%} + +Here is the YAML for the second pipeline: + +`codefresh-download.yml` +{% highlight yaml %} +{% raw %} +version: "1.0" + +stages: + - "clone" + - "download" + - "build" + - "push" + +steps: + clone: + title: "Cloning main repository..." + type: "git-clone" + stage: "clone" + arguments: + repo: "codefresh-contrib/gcloud-storage-sample-app" + git: "github" + revision: "master" + download: + title: "Downloading dependency lib from GS..." + type: "freestyle" + stage: "download" + working_directory: ${{clone}} + arguments: + image: "google/cloud-sdk:slim" + commands: + - gsutil cp gs://anna-demo-bucket/scala-library-2.12.2.jar . + build: + title: "Building docker image..." + type: "build" + stage: "build" + working_directory: ${{clone}} + arguments: + image_name: "annabaker/gcloud-storage-sample-app" + tag: "master" + push_to_my_registry: + stage: "push" + type: "push" + title: "Pushing to external registry..." + arguments: + candidate: ${{build}} + tag: '1.0.0' + registry: "dockerhub" +{% endraw %} +{% endhighlight %} + +This pipeline does the following: + +1. Clones the source code with a [Git clone step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/). +2. A [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) that downloads the dependency jar from our publicly-accessible Google Storage bucket. +3. Builds a docker image using a [build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/). +4. Pushes the Docker image using a [Push step](https://codefresh.io/docs/docs/codefresh-yaml/steps/push/) to the DockerHub registry you have integrated with Codefresh. + +## What to Read Next + +- [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) +- [Git-clone Step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +- [Freestyle Step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) +- [Build step]({{site.baseurl}}/docs/codefresh-yaml/steps/build/) diff --git a/_docs/example-catalog/use-kubectl-as-part-of-freestyle-step.md b/_docs/example-catalog/use-kubectl-as-part-of-freestyle-step.md new file mode 100644 index 00000000..4a09761d --- /dev/null +++ b/_docs/example-catalog/use-kubectl-as-part-of-freestyle-step.md @@ -0,0 +1,36 @@ +--- +title: "Use kubectl as part of Freestyle step" +description: "How to run manually kubectl in a Codefresh pipeline" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/use-kubectl-as-part-of-freestyle-step/ +toc: true +--- + + +Running Kubernetes commands in Codefresh as part of the workflow is very easy. + + +Codefresh is adding all your clusters into the workflow ready to be used as part of your CI/CD pipeline. +The context remains the same as it appears in the [Codefresh Kubernetes dashboard]({{site.baseurl}}/docs/deploy-to-kubernetes/manage-kubernetes/). + +>If your cluster name includes spaces then make sure that you use quotes in the `kubectl` command. + +* Use image: `codefresh/kubectl` +* Add your commands: + * `kubectl config get-contexts`. Will print the cluster that we added to the workflow + * `kubectl config use-context "my-cluster-name"`. The name is the same as in `Account settings` → `Integrations` → `Kubernetes` + * `kubectl get po -owide` + * `kubectl get nodes` + + +## Follow the example + +* Add this [Git repo](https://github.com/Codefresh-Examples/kubectl-in-freestyle-step){:target="_blank"} to your account +* Change the pipeline configuration to use `codefresh.yml`. +* Build. + +## Running parallel steps with kubectl + +More complex examples can be found in the [custom kubectl commands]({{site.baseurl}}/docs/deploy-to-kubernetes/custom-kubectl-commands/) documentation page. diff --git a/_docs/example-catalog/vault-secrets-in-the-pipeline.md b/_docs/example-catalog/vault-secrets-in-the-pipeline.md new file mode 100644 index 00000000..7344ce06 --- /dev/null +++ b/_docs/example-catalog/vault-secrets-in-the-pipeline.md @@ -0,0 +1,116 @@ +--- +title: "Vault Secrets in the Pipeline" +description: "Accessing and Referring to Vault Secrets in the Pipeline" +group: yaml-examples +sub_group: examples +toc: true +--- + +Codefresh offers a Vault plugin you may use from the [Step Marketplace](https://codefresh.io/steps/step/vault). The plugin imports key-value pairs from the Vault server, and exports them into the pipeline. +## Prerequisites + +- A [free Codefresh account](https://codefresh.io/docs/docs/getting-started/create-a-codefresh-account/) +- An existing Vault server [already setup](https://learn.hashicorp.com/vault/getting-started/install) +- A secret stored in said Vault server with a key of "password" +- A Vault [authorization token](https://learn.hashicorp.com/vault/getting-started/authentication#tokens) + +## The Example Java Application + +You can find the example project on [GitHub](https://github.com/codefresh-contrib/vault-sample-app). + +The example application retrieves the system variable "password," from the pipeline and uses it to authenticate to a Redis database, but you are free to use any type of database of your choosing. + +```java + String password = System.getenv("password"); + String host = System.getProperty("server.host"); + + RedisClient redisClient = new RedisClient( + RedisURI.create("redis://" + password + "@" + host + ":6379")); + RedisConnection connection = redisClient.connect(); +``` + +Also in the example application is a simple unit test that ensures we are able to read and write data to the database. + +You cannot run the application locally, as it needs to run in the pipeline in order to use our environment variables to connect. + +## Create the Pipeline + +We will be running the following pipeline that contains three step types: a vault step, a [git-clone]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) step, and a [freestyle step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/). + +{% include image.html +lightbox="true" +file="/images/examples/secrets/vault-pipeline.png" +url="/images/examples/secrets/vault-pipeline.png" +alt="Vault pipeline" +caption="Vault Pipeline" +max-width="100%" +%} + +You should be able to copy and paste this YAML in the in-line editor of the Codefresh UI. It will automatically clone the project for you. + +Note that you need to change the `VAULT_ADDR`, `VAULT_AUTH`, and `VAULT_AUTH_TOKEN` arguments under the first step to your respective values. + +`codefresh.yml` +```yaml +version: "1.0" +stages: + - "vault" + - "clone" + - "package" +steps: + vault: + title: Importing vault values... + stage: "vault" + type: vault + arguments: + VAULT_ADDR: 'http://:' + VAULT_PATH: 'path/to/secret' + VAULT_AUTH_TOKEN: '' + clone: + title: Cloning main repository... + type: git-clone + arguments: + repo: 'codefresh-contrib/vault-sample-app' + git: github + stage: clone + package_jar: + title: Packaging jar and running unit tests... + stage: package + working_directory: ${{clone}} + arguments: + image: maven:3.5.2-jdk-8-alpine + commands: + - mvn -Dmaven.repo.local=/codefresh/volume/m2_repository -Dserver.host=my-redis-db-host clean package + services: + composition: + my-redis-db-host: + image: 'redis:4-alpine' + command: 'redis-server --requirepass $password' + ports: + - 6379 +``` + +The above pipeline does the following: + +1. Imports the key-value pairs from the Vault server and exports them into the pipeline under `/meta/env_vars_to_export`. +2. Clones the main repository (note the special use of naming the step `main_clone`). This ensures that all subsequent commands are run [inside the project that was checked out]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/#basic-clone-step-project-based-pipeline). +3. The last step, `package_jar`, does a few special things to take note of: + - Spins up a [Service Container]({{site.baseurl}}/docs/codefresh-yaml/service-containers/) running Redis on port 6379 , and sets the password to the database using our exported environment variable + - Sets `maven.repo.local` to cache Maven dependencies into the local codefresh volume to [speed up builds]({{site.baseurl}}/docs/learn-by-example/java/spring-boot-2/#caching-the-maven-dependencies) + - Runs unit tests and packages the jar. Note how you can directly refer to the service container's name (`my-redis-db-host`) when we set `server.host` + +You will see that the variable was correctly exported to the pipeline by running a simple `echo` command: + {% include image.html + lightbox="true" + file="/images/examples/secrets/vault-pipeline2.png" + url="/images/examples/secrets/vault-pipeline2.png" + alt="Vault pipeline Variable" + caption="Vault Pipeline Variable" + max-width="100%" + %} + +## What to Read Next + +- [Git-clone Step]({{site.baseurl}}/docs/codefresh-yaml/steps/git-clone/) +- [Freestyle Step]({{site.baseurl}}/docs/codefresh-yaml/steps/freestyle/) +- [Service Containers]({{site.baseurl}}//docs/codefresh-yaml/service-containers/) diff --git a/_docs/example-catalog/web-terminal.md b/_docs/example-catalog/web-terminal.md new file mode 100644 index 00000000..d99308da --- /dev/null +++ b/_docs/example-catalog/web-terminal.md @@ -0,0 +1,42 @@ +--- +title: "Web terminal" +description: "" +group: yaml-examples +sub_group: examples +redirect_from: + - /docs/web-terminal/ + - /docs/on-demand-test-environment/example-compositions/web-terminal/ +toc: true +--- +This example shows you how to access containers running in a Codefresh standup environment. + +## Looking around +In the root of this repository you'll find a file named `docker-compose.yml`. +Here are the contents of this file: + + `Composition.yml` +{% highlight yaml %} +version: '3' +services: + my-service: + image: 'containers101/whomi:master' + volumes: + - my-service:/app + ports: + - '1337' + terminal: + image: 'containers101/cfterminal:master' + ports: + - '8000' + volumes_from: + - my-service +volumes: + my-service: + driver: local +{% endhighlight %} + +{{site.data.callout.callout_info}} +##### Example + +Just head over to the example [__repository__](https://github.com/codefreshdemo/cf-example-web-termial){:target="_blank"} in GitHub and follow the instructions there. +{{site.data.callout.end}} From ff47845fba2262f11e807e1af4e799dc065ec991 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 5 Dec 2022 10:57:47 +0200 Subject: [PATCH 14/43] Update nav and home yamls Added example topics to home and nav yamls --- _data/nav.yml | 136 ++++++++++++++++++ _docs/example-catalog/{ci-examples => }/cc.md | 0 .../{ci-examples => }/general.md | 0 .../general/selenium-test.md | 0 .../{ci-examples => }/golang.md | 0 .../example-catalog/{ci-examples => }/java.md | 0 .../{ci-examples => }/mobile/android.md | 0 .../{ci-examples => }/nodejs.md | 0 .../{ci-examples => }/python.md | 0 .../{ci-examples => }/scala.md | 0 10 files changed, 136 insertions(+) rename _docs/example-catalog/{ci-examples => }/cc.md (100%) rename _docs/example-catalog/{ci-examples => }/general.md (100%) rename _docs/example-catalog/{ci-examples => }/general/selenium-test.md (100%) rename _docs/example-catalog/{ci-examples => }/golang.md (100%) rename _docs/example-catalog/{ci-examples => }/java.md (100%) rename _docs/example-catalog/{ci-examples => }/mobile/android.md (100%) rename _docs/example-catalog/{ci-examples => }/nodejs.md (100%) rename _docs/example-catalog/{ci-examples => }/python.md (100%) rename _docs/example-catalog/{ci-examples => }/scala.md (100%) diff --git a/_data/nav.yml b/_data/nav.yml index dc432643..ee41fe36 100644 --- a/_data/nav.yml +++ b/_data/nav.yml @@ -196,6 +196,142 @@ +- title: "Example catalog" + url: "/examples" + pages: + - title: "Git" + sub-pages: + - title: Checking 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: "Image builds" + sub-pages: + - title: Build an Image with the Dockerfile in Root Directory + url: "/build-an-image-dockerfile-in-root-directory" + - title: Build an Image - Specify 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: Sharing data between steps + url: "/shared-volumes-between-builds" + - title: Uploading/downloading from Google Storage buckets + url: "/uploading-or-downloading-from-gs" + - title: Calling other pipelines + url: "/call-child-pipelines" + - title: Trigger a K8s Deployment from a DockerHub Push Event + url: "/trigger-a-k8s-deployment-from-docker-registry" + - title: "Testing" + url: "/examples" + sub-pages: + - title: Run Unit Tests + url: "/run-unit-tests" + - title: Run Integration Tests + url: "/run-integration-tests" + - title: Fan-in/Fan-out Example with Unit Tests + url: "fan-in-fan-out" + - title: "Code Coverage" + url: "/examples" + sub-pages: + - title: Codecov Coverage Reports + url: "/codecov-testing" + - title: Coveralls Coverage Reports + url: "/coveralls-testing" + - title: Codacy Coverage Reports + url: "/codacy-testing" + - title: "Databases" + url: "/examples" + sub-pages: + - 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: Shared volumes for composition + url: "/shared-volumes-of-service-from-composition-step-for-other-yml-steps" + - title: Import data to MongoDB + url: "/import-data-to-mongodb" + - title: "Deployments" + url: "/examples" + sub-pages: + - title: Deploy to VM + url: "/packer-gcloud" + - title: Deploy to a VM using 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: "Secrets" + url: "/examples" + sub-pages: + - title: Vault Secrets in the Pipeline + url: "/vault-secrets-in-the-pipeline" + - title: Decryption with Mozilla SOPS + url: "/decryption-with-mozilla-sops" + - title: GitOps secrets + url: "/gitops-secrets" + - title: "Compositions" + url: "/examples" + sub-pages: + - title: Launch Composition + url: "/launch-composition" + - title: Use Docker compose + url: "/launching-a-composition-and-defining-a-service-environment-variables-using-a-file" + - title: "Notifications" + url: "/examples" + sub-pages: + - title: Sending the notification to Slack + url: "/sending-the-notification-to-slack" + - title: Sending the notification to Jira + url: "/sending-the-notification-to-jira" + - title: "Security" + url: "/examples" + sub-pages: + - title: Secure a Docker Container Using HTTP Basic Auth + url: "/secure-a-docker-container-using-http-basic-auth" + - title: "General" + url: "/examples" + sub-pages: + - title: NodeJS + Angular2 + MongoDB + url: "/nodejs-angular2-mongodb" + - title: Spring Boot + Kafka + Zookeeper + url: "/spring-boot-kafka-zookeeper" + - title: Web terminal + url: "/web-terminal" + + diff --git a/_docs/example-catalog/ci-examples/cc.md b/_docs/example-catalog/cc.md similarity index 100% rename from _docs/example-catalog/ci-examples/cc.md rename to _docs/example-catalog/cc.md diff --git a/_docs/example-catalog/ci-examples/general.md b/_docs/example-catalog/general.md similarity index 100% rename from _docs/example-catalog/ci-examples/general.md rename to _docs/example-catalog/general.md diff --git a/_docs/example-catalog/ci-examples/general/selenium-test.md b/_docs/example-catalog/general/selenium-test.md similarity index 100% rename from _docs/example-catalog/ci-examples/general/selenium-test.md rename to _docs/example-catalog/general/selenium-test.md diff --git a/_docs/example-catalog/ci-examples/golang.md b/_docs/example-catalog/golang.md similarity index 100% rename from _docs/example-catalog/ci-examples/golang.md rename to _docs/example-catalog/golang.md diff --git a/_docs/example-catalog/ci-examples/java.md b/_docs/example-catalog/java.md similarity index 100% rename from _docs/example-catalog/ci-examples/java.md rename to _docs/example-catalog/java.md diff --git a/_docs/example-catalog/ci-examples/mobile/android.md b/_docs/example-catalog/mobile/android.md similarity index 100% rename from _docs/example-catalog/ci-examples/mobile/android.md rename to _docs/example-catalog/mobile/android.md diff --git a/_docs/example-catalog/ci-examples/nodejs.md b/_docs/example-catalog/nodejs.md similarity index 100% rename from _docs/example-catalog/ci-examples/nodejs.md rename to _docs/example-catalog/nodejs.md diff --git a/_docs/example-catalog/ci-examples/python.md b/_docs/example-catalog/python.md similarity index 100% rename from _docs/example-catalog/ci-examples/python.md rename to _docs/example-catalog/python.md diff --git a/_docs/example-catalog/ci-examples/scala.md b/_docs/example-catalog/scala.md similarity index 100% rename from _docs/example-catalog/ci-examples/scala.md rename to _docs/example-catalog/scala.md From 4d685f0a8ff79a2fe3790012bbc3def808a0a2c8 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 5 Dec 2022 13:58:17 +0200 Subject: [PATCH 15/43] Updates --- _data/nav.yml | 8 ++++---- _docs/example-catalog/amazon-ecs.md | 3 +-- .../build-an-image-from-a-different-git-repository.md | 4 ++-- .../build-an-image-specify-dockerfile-location.md | 2 +- .../build-an-image-with-build-arguments.md | 3 +-- ...uild-an-image-with-the-dockerfile-in-root-directory.md | 2 +- _docs/example-catalog/build-and-push-an-image.md | 2 +- _docs/example-catalog/call-child-pipelines.md | 2 +- _docs/example-catalog/cc.md | 2 +- _docs/example-catalog/cc/c-make.md | 2 +- _docs/example-catalog/cc/cpp-cmake.md | 2 +- _docs/example-catalog/codacy-testing.md | 2 +- _docs/example-catalog/codecov-testing.md | 2 +- _docs/example-catalog/coveralls-testing.md | 2 +- _docs/example-catalog/decryption-with-mozilla-sops.md | 2 +- _docs/example-catalog/deploy-to-heroku.md | 2 +- _docs/example-catalog/deploy-to-tomcat-via-scp.md | 2 +- _docs/example-catalog/deploy-with-kustomize.md | 2 +- _docs/example-catalog/docker-swarm.md | 2 +- _docs/example-catalog/dotnet.md | 2 +- _docs/example-catalog/elastic-beanstalk.md | 2 +- _docs/example-catalog/examples.md | 2 +- _docs/example-catalog/fan-in-fan-out.md | 2 +- _docs/example-catalog/general.md | 2 +- _docs/example-catalog/general/selenium-test.md | 2 +- .../get-short-sha-id-and-use-it-in-a-ci-process.md | 2 +- _docs/example-catalog/git-checkout-custom.md | 2 +- _docs/example-catalog/git-checkout.md | 3 +-- _docs/example-catalog/gitops-secrets.md | 2 +- _docs/example-catalog/golang.md | 2 +- _docs/example-catalog/golang/golang-hello-world.md | 2 +- _docs/example-catalog/golang/goreleaser.md | 2 +- _docs/example-catalog/helm.md | 2 +- _docs/example-catalog/import-data-to-mongodb.md | 2 +- _docs/example-catalog/integration-tests-with-mongo.md | 2 +- _docs/example-catalog/integration-tests-with-mysql.md | 2 +- _docs/example-catalog/integration-tests-with-postgres.md | 2 +- _docs/example-catalog/integration-tests-with-redis.md | 2 +- _docs/example-catalog/java.md | 2 +- _docs/example-catalog/java/gradle.md | 2 +- _docs/example-catalog/java/publish-jar.md | 2 +- _docs/example-catalog/java/spring-boot-2.md | 2 +- _docs/example-catalog/launch-composition.md | 2 +- ...fining-a-service-environment-variables-using-a-file.md | 2 +- _docs/example-catalog/mobile.md | 2 +- _docs/example-catalog/mobile/android.md | 2 +- _docs/example-catalog/nodejs-angular2-mongodb.md | 2 +- _docs/example-catalog/nodejs.md | 2 +- _docs/example-catalog/nodejs/lets-chat.md | 2 +- _docs/example-catalog/nodejs/react.md | 2 +- _docs/example-catalog/nodejs/voting-app.md | 2 +- _docs/example-catalog/nomad.md | 2 +- _docs/example-catalog/non-git-checkout.md | 2 +- _docs/example-catalog/packer-gcloud.md | 2 +- _docs/example-catalog/php.md | 2 +- .../populate-a-database-with-existing-data.md | 2 +- _docs/example-catalog/pulumi.md | 2 +- _docs/example-catalog/python.md | 2 +- _docs/example-catalog/python/django.md | 2 +- _docs/example-catalog/python/voting-app.md | 2 +- _docs/example-catalog/ruby.md | 2 +- _docs/example-catalog/run-integration-tests.md | 2 +- _docs/example-catalog/run-unit-tests.md | 2 +- _docs/example-catalog/rust.md | 2 +- _docs/example-catalog/scala.md | 2 +- _docs/example-catalog/scala/scala-hello-world.md | 2 +- .../secure-a-docker-container-using-http-basic-auth.md | 2 +- _docs/example-catalog/sending-the-notification-to-jira.md | 2 +- .../example-catalog/sending-the-notification-to-slack.md | 2 +- _docs/example-catalog/shared-volumes-between-builds.md | 2 +- ...f-service-from-composition-step-for-other-yml-steps.md | 2 +- _docs/example-catalog/spring-boot-kafka-zookeeper.md | 2 +- _docs/example-catalog/terraform.md | 2 +- _docs/example-catalog/transferring-php-ftp.md | 2 +- .../trigger-a-k8s-deployment-from-docker-registry.md | 2 +- _docs/example-catalog/uploading-or-downloading-from-gs.md | 2 +- .../use-kubectl-as-part-of-freestyle-step.md | 4 ++-- _docs/example-catalog/vault-secrets-in-the-pipeline.md | 2 +- _docs/example-catalog/web-terminal.md | 2 +- 79 files changed, 84 insertions(+), 87 deletions(-) diff --git a/_data/nav.yml b/_data/nav.yml index ee41fe36..222c9ac3 100644 --- a/_data/nav.yml +++ b/_data/nav.yml @@ -197,18 +197,18 @@ - title: "Example catalog" - url: "/examples" + url: "/example-catalog/examples" pages: - title: "Git" sub-pages: - title: Checking out Git repositories url: "/git-checkout" - title: Custom Git commmands - url: "/git-checkout-custom" + url: "/example-catalog/git-checkout-custom" - title: Non-Git checkouts - url: "/non-git-checkout" + url: "example-catalog/non-git-checkout" - title: Use Git Hash in CI - url: "/get-short-sha-id-and-use-it-in-a-ci-process" + url: "example-catalog/get-short-sha-id-and-use-it-in-a-ci-process" - title: "Image builds" sub-pages: - title: Build an Image with the Dockerfile in Root Directory diff --git a/_docs/example-catalog/amazon-ecs.md b/_docs/example-catalog/amazon-ecs.md index b4bdc8bd..a095ab40 100644 --- a/_docs/example-catalog/amazon-ecs.md +++ b/_docs/example-catalog/amazon-ecs.md @@ -1,8 +1,7 @@ --- title: "Amazon ECS/Fargate" description: "How to use Codefresh to deploy Docker containers to ECS/Fargate" -group: yaml-examples -sub_group: examples +group: example-catalog redirect_from: - /docs/amazon-ecs/ - /docs/deploy-your-containers/ diff --git a/_docs/example-catalog/build-an-image-from-a-different-git-repository.md b/_docs/example-catalog/build-an-image-from-a-different-git-repository.md index 736b030c..ef701492 100644 --- a/_docs/example-catalog/build-an-image-from-a-different-git-repository.md +++ b/_docs/example-catalog/build-an-image-from-a-different-git-repository.md @@ -1,8 +1,8 @@ --- title: "Build an Image from a Different Git Repository" description: "Build microservices from other repositories" -group: yaml-examples -sub_group: examples +group: example-catalog +sub_group: redirect_from: - /docs/build-an-image-from-a-different-git-repository/ toc: true diff --git a/_docs/example-catalog/build-an-image-specify-dockerfile-location.md b/_docs/example-catalog/build-an-image-specify-dockerfile-location.md index d8126780..21d3ea57 100644 --- a/_docs/example-catalog/build-an-image-specify-dockerfile-location.md +++ b/_docs/example-catalog/build-an-image-specify-dockerfile-location.md @@ -1,7 +1,7 @@ --- title: "Build an Image - Specify Dockerfile Location" description: "How to choose a Dockerfile to build with Codefresh pipelines" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/build-an-image-specify-dockerfile-location/ diff --git a/_docs/example-catalog/build-an-image-with-build-arguments.md b/_docs/example-catalog/build-an-image-with-build-arguments.md index d198733a..be255d28 100644 --- a/_docs/example-catalog/build-an-image-with-build-arguments.md +++ b/_docs/example-catalog/build-an-image-with-build-arguments.md @@ -1,8 +1,7 @@ --- title: "Build an Image with Build Arguments" description: "Use docker argument in Codefresh pipelines" -group: yaml-examples -sub_group: examples +group: example-catalog redirect_from: - /docs/build-an-image-with-build-arguments/ toc: true diff --git a/_docs/example-catalog/build-an-image-with-the-dockerfile-in-root-directory.md b/_docs/example-catalog/build-an-image-with-the-dockerfile-in-root-directory.md index 65565d21..920d6879 100644 --- a/_docs/example-catalog/build-an-image-with-the-dockerfile-in-root-directory.md +++ b/_docs/example-catalog/build-an-image-with-the-dockerfile-in-root-directory.md @@ -1,7 +1,7 @@ --- title: "Build an Image with the Dockerfile in Root Directory" description: "Get started quickly with building Docker images" -group: yaml-examples +group: example-catalog sub_group: examples permalink: /:collection/yaml-examples/examples/build-an-image-dockerfile-in-root-directory/ redirect_from: diff --git a/_docs/example-catalog/build-and-push-an-image.md b/_docs/example-catalog/build-and-push-an-image.md index 5c978e80..c0c2b910 100644 --- a/_docs/example-catalog/build-and-push-an-image.md +++ b/_docs/example-catalog/build-and-push-an-image.md @@ -1,7 +1,7 @@ --- title: "Build and Push an Image" description: "How to build Docker images and push them to registries with Codefresh" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/build-and-push-an-image/ diff --git a/_docs/example-catalog/call-child-pipelines.md b/_docs/example-catalog/call-child-pipelines.md index f672849a..f7f8d82b 100644 --- a/_docs/example-catalog/call-child-pipelines.md +++ b/_docs/example-catalog/call-child-pipelines.md @@ -1,7 +1,7 @@ --- title: "Calling a CD pipeline from a CI pipeline" description: "Learn how to call children pipelines from a parent pipeline" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/cc.md b/_docs/example-catalog/cc.md index 3a94ff95..c23c08fc 100644 --- a/_docs/example-catalog/cc.md +++ b/_docs/example-catalog/cc.md @@ -1,7 +1,7 @@ --- title: "C/C++" description: "How to build C/C++ applications with Codefresh CI/CD pipelines" -group: learn-by-example +group: example-catalog toc: true --- This section contains Codefresh examples based on C and C++. diff --git a/_docs/example-catalog/cc/c-make.md b/_docs/example-catalog/cc/c-make.md index 8dd0cc59..5d05f7e7 100644 --- a/_docs/example-catalog/cc/c-make.md +++ b/_docs/example-catalog/cc/c-make.md @@ -1,7 +1,7 @@ --- title: "Compile and test a C application" description: "Using Codefresh pipelines" -group: learn-by-example +group: example-catalog sub_group: cc toc: true --- diff --git a/_docs/example-catalog/cc/cpp-cmake.md b/_docs/example-catalog/cc/cpp-cmake.md index 4af30731..af272009 100644 --- a/_docs/example-catalog/cc/cpp-cmake.md +++ b/_docs/example-catalog/cc/cpp-cmake.md @@ -1,7 +1,7 @@ --- title: "Compile and test a C++ application" description: "Using Codefresh pipelines" -group: learn-by-example +group: example-catalog sub_group: cc toc: true --- diff --git a/_docs/example-catalog/codacy-testing.md b/_docs/example-catalog/codacy-testing.md index bda8c5e5..f8463d04 100644 --- a/_docs/example-catalog/codacy-testing.md +++ b/_docs/example-catalog/codacy-testing.md @@ -1,7 +1,7 @@ --- title: "Codacy Coverage Reports" description: "How to forward coverage reports to Codacy" -group: yaml-examples +group: example-catalog toc: true --- diff --git a/_docs/example-catalog/codecov-testing.md b/_docs/example-catalog/codecov-testing.md index a0855bd9..1873be20 100644 --- a/_docs/example-catalog/codecov-testing.md +++ b/_docs/example-catalog/codecov-testing.md @@ -1,7 +1,7 @@ --- title: "Codecov Coverage Reports" description: "How to forward coverage reports to Codecov" -group: yaml-examples +group: example-catalog toc: true --- diff --git a/_docs/example-catalog/coveralls-testing.md b/_docs/example-catalog/coveralls-testing.md index bd0b3f30..9a205601 100644 --- a/_docs/example-catalog/coveralls-testing.md +++ b/_docs/example-catalog/coveralls-testing.md @@ -1,7 +1,7 @@ --- title: "Coveralls Coverage Reports" description: "How to forward coverage reports to Coveralls" -group: yaml-examples +group: example-catalog toc: true --- diff --git a/_docs/example-catalog/decryption-with-mozilla-sops.md b/_docs/example-catalog/decryption-with-mozilla-sops.md index 495e1785..112a6547 100644 --- a/_docs/example-catalog/decryption-with-mozilla-sops.md +++ b/_docs/example-catalog/decryption-with-mozilla-sops.md @@ -1,7 +1,7 @@ --- title: "Decryption with Mozilla SOPS" description: "Store secrets in your repository and decrypt them using Mozilla SOPS" -group: yaml-examples +group: example-catalogog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/deploy-to-heroku.md b/_docs/example-catalog/deploy-to-heroku.md index d724a90f..bf1e600d 100644 --- a/_docs/example-catalog/deploy-to-heroku.md +++ b/_docs/example-catalog/deploy-to-heroku.md @@ -1,7 +1,7 @@ --- title: "Deploy to Heroku" description: "Deploying your application or image to Heroku" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/deploy-to-tomcat-via-scp.md b/_docs/example-catalog/deploy-to-tomcat-via-scp.md index 320d0e5b..de240d38 100644 --- a/_docs/example-catalog/deploy-to-tomcat-via-scp.md +++ b/_docs/example-catalog/deploy-to-tomcat-via-scp.md @@ -1,7 +1,7 @@ --- title: "Deploy to a VM via SCP" description: "Deploying your application to Tomcat using SCP" -group: yaml-examples +group: example-catalogog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/deploy-with-kustomize.md b/_docs/example-catalog/deploy-with-kustomize.md index 8b5dac97..bcc77118 100644 --- a/_docs/example-catalog/deploy-with-kustomize.md +++ b/_docs/example-catalog/deploy-with-kustomize.md @@ -1,7 +1,7 @@ --- title: "Deploy to Kubernetes with Kustomize" description: "Deploy your services to Kubernetes using Kustomize" -group: yaml-examples +group: example-catalogog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/docker-swarm.md b/_docs/example-catalog/docker-swarm.md index 3075f406..ff9e29ff 100644 --- a/_docs/example-catalog/docker-swarm.md +++ b/_docs/example-catalog/docker-swarm.md @@ -1,7 +1,7 @@ --- title: "Docker SWARM" description: "How to deploy to Docker Swarm with Codefresh" -group: yaml-examples +group: example-catalogog sub_group: examples redirect_from: - /docs/docker-swarm/ diff --git a/_docs/example-catalog/dotnet.md b/_docs/example-catalog/dotnet.md index 9862e0c6..09496bd5 100644 --- a/_docs/example-catalog/dotnet.md +++ b/_docs/example-catalog/dotnet.md @@ -1,7 +1,7 @@ --- title: "C# on .NET Core" description: "How to build a C# project in Codefresh" -group: learn-by-example +group: example-catalog toc: true --- diff --git a/_docs/example-catalog/elastic-beanstalk.md b/_docs/example-catalog/elastic-beanstalk.md index 3df5a510..8a02e011 100644 --- a/_docs/example-catalog/elastic-beanstalk.md +++ b/_docs/example-catalog/elastic-beanstalk.md @@ -1,7 +1,7 @@ --- title: "Elastic Beanstalk" description: "" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/elastic-beanstalk/ diff --git a/_docs/example-catalog/examples.md b/_docs/example-catalog/examples.md index d1d968ca..bfd48b3d 100644 --- a/_docs/example-catalog/examples.md +++ b/_docs/example-catalog/examples.md @@ -1,7 +1,7 @@ --- title: "CI/CD pipeline examples" description: "A collection of examples for Codefresh pipelines" -group: yaml-examples +group: example-catalog redirect_from: - /docs/examples-v01/ - examples.html diff --git a/_docs/example-catalog/fan-in-fan-out.md b/_docs/example-catalog/fan-in-fan-out.md index 59d9775d..89532841 100644 --- a/_docs/example-catalog/fan-in-fan-out.md +++ b/_docs/example-catalog/fan-in-fan-out.md @@ -1,7 +1,7 @@ --- title: "Fan-out-fan-in Pipeline" description: "Use parallel mode to fan-in and fan-out your step dependencies" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/general.md b/_docs/example-catalog/general.md index 20d5bd50..3cec98bc 100644 --- a/_docs/example-catalog/general.md +++ b/_docs/example-catalog/general.md @@ -1,7 +1,7 @@ --- title: "General" description: "" -group: learn-by-example +group: example-catalog redirect_from: - /docs/learn-by-example/general/ toc: true diff --git a/_docs/example-catalog/general/selenium-test.md b/_docs/example-catalog/general/selenium-test.md index be3d80b2..424e22db 100644 --- a/_docs/example-catalog/general/selenium-test.md +++ b/_docs/example-catalog/general/selenium-test.md @@ -2,7 +2,7 @@ title: "Selenium test" description: "" excerpt: "" -group: learn-by-example +group: example-catalog sub_group: general redirect_from: - /docs/general/selenium-test/ diff --git a/_docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process.md b/_docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process.md index bc96d9f6..a4d70d59 100644 --- a/_docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process.md +++ b/_docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process.md @@ -1,7 +1,7 @@ --- title: "Get Short SHA ID and Use it in a CI Process" description: "" -group: yaml-examples +group: example-catalogog sub_group: examples redirect_from: - /docs/how-to-guides/ diff --git a/_docs/example-catalog/git-checkout-custom.md b/_docs/example-catalog/git-checkout-custom.md index c7e01e10..6323bd6d 100644 --- a/_docs/example-catalog/git-checkout-custom.md +++ b/_docs/example-catalog/git-checkout-custom.md @@ -1,7 +1,7 @@ --- title: "Using Custom Git commands" description: "Clone manually git repositories" -group: yaml-examples +group: example-catalogogog sub_group: git redirect_from: - /docs/git-clone-private-repository-using-freestyle-step/ diff --git a/_docs/example-catalog/git-checkout.md b/_docs/example-catalog/git-checkout.md index e4de0cff..4b26e7bd 100644 --- a/_docs/example-catalog/git-checkout.md +++ b/_docs/example-catalog/git-checkout.md @@ -1,8 +1,7 @@ --- title: "Checking out Git repositories" description: "Using the Codefresh native GIT integration" -group: yaml-examples -sub_group: examples +group: example-catalog toc: true --- diff --git a/_docs/example-catalog/gitops-secrets.md b/_docs/example-catalog/gitops-secrets.md index 84c05726..97853fe5 100644 --- a/_docs/example-catalog/gitops-secrets.md +++ b/_docs/example-catalog/gitops-secrets.md @@ -1,7 +1,7 @@ --- title: "Using secrets with GitOps" description: "Store secrets in Git with Bitnami sealed secrets" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/golang.md b/_docs/example-catalog/golang.md index 71a0f869..3f9798e6 100644 --- a/_docs/example-catalog/golang.md +++ b/_docs/example-catalog/golang.md @@ -1,7 +1,7 @@ --- title: "Go" description: "How to build Golang applications with Codefresh CI/CD pipelines" -group: learn-by-example +group: example-catalog redirect_from: - /docs/go/ - /docs/golang/ diff --git a/_docs/example-catalog/golang/golang-hello-world.md b/_docs/example-catalog/golang/golang-hello-world.md index 665c43ab..bf639405 100644 --- a/_docs/example-catalog/golang/golang-hello-world.md +++ b/_docs/example-catalog/golang/golang-hello-world.md @@ -1,7 +1,7 @@ --- title: "Create a Docker image for GO" description: "Using Codefresh pipelines" -group: learn-by-example +group: example-catalog sub_group: golang redirect_from: - /docs/go/cf-example-golang-hello-world/ diff --git a/_docs/example-catalog/golang/goreleaser.md b/_docs/example-catalog/golang/goreleaser.md index aa6e955d..56300fbc 100644 --- a/_docs/example-catalog/golang/goreleaser.md +++ b/_docs/example-catalog/golang/goreleaser.md @@ -1,7 +1,7 @@ --- title: "Compile and release a Go application" description: "Using Codefresh pipelines" -group: learn-by-example +group: example-catalog sub_group: golang toc: true --- diff --git a/_docs/example-catalog/helm.md b/_docs/example-catalog/helm.md index ba32dae4..0ccfa6bc 100644 --- a/_docs/example-catalog/helm.md +++ b/_docs/example-catalog/helm.md @@ -1,7 +1,7 @@ --- title: "Deploy with Helm" description: "Use Helm in a Codefresh pipeline" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/import-data-to-mongodb.md b/_docs/example-catalog/import-data-to-mongodb.md index 96c826ae..263a5111 100644 --- a/_docs/example-catalog/import-data-to-mongodb.md +++ b/_docs/example-catalog/import-data-to-mongodb.md @@ -2,7 +2,7 @@ title: "Import data to MongoDB" description: "" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/import-data-to-mongodb-in-composition/ diff --git a/_docs/example-catalog/integration-tests-with-mongo.md b/_docs/example-catalog/integration-tests-with-mongo.md index e11fd4eb..5bd5aef1 100644 --- a/_docs/example-catalog/integration-tests-with-mongo.md +++ b/_docs/example-catalog/integration-tests-with-mongo.md @@ -1,7 +1,7 @@ --- title: "Integration Tests with Mongo" description: "Launching a MongoDB service container" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/nodejsmongo/ diff --git a/_docs/example-catalog/integration-tests-with-mysql.md b/_docs/example-catalog/integration-tests-with-mysql.md index e08ee064..8d32674a 100644 --- a/_docs/example-catalog/integration-tests-with-mysql.md +++ b/_docs/example-catalog/integration-tests-with-mysql.md @@ -1,7 +1,7 @@ --- title: "Integration Tests with MySQL" description: "Launching a MySQL service container" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/nodejsmysql/ diff --git a/_docs/example-catalog/integration-tests-with-postgres.md b/_docs/example-catalog/integration-tests-with-postgres.md index 43e419f8..297de364 100644 --- a/_docs/example-catalog/integration-tests-with-postgres.md +++ b/_docs/example-catalog/integration-tests-with-postgres.md @@ -1,7 +1,7 @@ --- title: "Integration Tests with Postgres" description: "Launching a PostgreSQL service container" -group: yaml-examples +group: example-catalogog sub_group: examples redirect_from: - /docs/unit-tests-with-postgres/ diff --git a/_docs/example-catalog/integration-tests-with-redis.md b/_docs/example-catalog/integration-tests-with-redis.md index 45d21884..b8deeba6 100644 --- a/_docs/example-catalog/integration-tests-with-redis.md +++ b/_docs/example-catalog/integration-tests-with-redis.md @@ -1,7 +1,7 @@ --- title: "Integration Tests with Redis" description: "Launching a Redis service container" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/python-redis/ diff --git a/_docs/example-catalog/java.md b/_docs/example-catalog/java.md index 2229280b..c28cd55c 100644 --- a/_docs/example-catalog/java.md +++ b/_docs/example-catalog/java.md @@ -1,7 +1,7 @@ --- title: "Java" description: "" -group: learn-by-example +group: example-catalog redirect_from: - /docs/java/ toc: true diff --git a/_docs/example-catalog/java/gradle.md b/_docs/example-catalog/java/gradle.md index 76697af5..ea0c3daf 100644 --- a/_docs/example-catalog/java/gradle.md +++ b/_docs/example-catalog/java/gradle.md @@ -2,7 +2,7 @@ title: "Java Example with Gradle and Docker" description: "Create Docker images for Spring/Gradle" excerpt: "" -group: learn-by-example +group: example-catalog sub_group: java redirect_from: - /docs/java/gradle/ diff --git a/_docs/example-catalog/java/publish-jar.md b/_docs/example-catalog/java/publish-jar.md index c5f8929a..4a982fe9 100644 --- a/_docs/example-catalog/java/publish-jar.md +++ b/_docs/example-catalog/java/publish-jar.md @@ -2,7 +2,7 @@ title: "Publish Jar" description: "How to upload a JAR file to Nexus or artifactory" excerpt: "" -group: learn-by-example +group: example-catalog sub_group: java toc: true --- diff --git a/_docs/example-catalog/java/spring-boot-2.md b/_docs/example-catalog/java/spring-boot-2.md index 5078714c..a692d920 100644 --- a/_docs/example-catalog/java/spring-boot-2.md +++ b/_docs/example-catalog/java/spring-boot-2.md @@ -2,7 +2,7 @@ title: "Spring Boot 2/Maven" description: "Create Docker images for Spring/Maven" excerpt: "" -group: learn-by-example +group: example-catalog sub_group: java redirect_from: - /docs/spring-boot-2/ diff --git a/_docs/example-catalog/launch-composition.md b/_docs/example-catalog/launch-composition.md index 83a616f5..913ff22b 100644 --- a/_docs/example-catalog/launch-composition.md +++ b/_docs/example-catalog/launch-composition.md @@ -1,7 +1,7 @@ --- title: "Launch Composition" description: "Create a dynamic environment to preview your feature" -group: yaml-examples +group: example-catalogogog sub_group: examples redirect_from: - /docs/launch-composition-1/ diff --git a/_docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md b/_docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md index af5f36f9..df00f4c0 100644 --- a/_docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md +++ b/_docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md @@ -1,7 +1,7 @@ --- title: "Launching a composition and defining a service environment variable using a file" description: "" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/launching-a-composition-and-passing-a-service-environment-variable-using-a-file/ diff --git a/_docs/example-catalog/mobile.md b/_docs/example-catalog/mobile.md index 70f7a777..d05b24b9 100644 --- a/_docs/example-catalog/mobile.md +++ b/_docs/example-catalog/mobile.md @@ -1,7 +1,7 @@ --- title: "Mobile Apps" description: "How to build Mobile applications with Codefresh CI/CD pipelines" -group: learn-by-example +group: example-catalog toc: true --- This section contains Codefresh examples for Mobile application. diff --git a/_docs/example-catalog/mobile/android.md b/_docs/example-catalog/mobile/android.md index 6d0b01e9..2985c31d 100644 --- a/_docs/example-catalog/mobile/android.md +++ b/_docs/example-catalog/mobile/android.md @@ -1,7 +1,7 @@ --- title: "Compile and package an Android application" description: "Using Codefresh pipelines" -group: learn-by-example +group: example-catalog sub_group: mobile toc: true --- diff --git a/_docs/example-catalog/nodejs-angular2-mongodb.md b/_docs/example-catalog/nodejs-angular2-mongodb.md index aa5b679a..7459b31d 100644 --- a/_docs/example-catalog/nodejs-angular2-mongodb.md +++ b/_docs/example-catalog/nodejs-angular2-mongodb.md @@ -1,7 +1,7 @@ --- title: "NodeJS + Angular2 + MongoDB" description: "" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/nodejs-angular2-mongodb/ diff --git a/_docs/example-catalog/nodejs.md b/_docs/example-catalog/nodejs.md index 0f5cc4fe..f057d787 100644 --- a/_docs/example-catalog/nodejs.md +++ b/_docs/example-catalog/nodejs.md @@ -1,7 +1,7 @@ --- title: "Node.js" description: "" -group: learn-by-example +group: example-catalog redirect_from: - /docs/nodejs/ toc: true diff --git a/_docs/example-catalog/nodejs/lets-chat.md b/_docs/example-catalog/nodejs/lets-chat.md index 649f5cf3..9a5dea49 100644 --- a/_docs/example-catalog/nodejs/lets-chat.md +++ b/_docs/example-catalog/nodejs/lets-chat.md @@ -1,7 +1,7 @@ --- title: "Let's Chat example" description: "Create Docker images for Node/Express.js applications" -group: learn-by-example +group: example-catalog sub_group: nodejs redirect_from: - /docs/lets-chat/ diff --git a/_docs/example-catalog/nodejs/react.md b/_docs/example-catalog/nodejs/react.md index e79b7a5b..fd9d0d1f 100644 --- a/_docs/example-catalog/nodejs/react.md +++ b/_docs/example-catalog/nodejs/react.md @@ -1,7 +1,7 @@ --- title: "React example with Yarn" description: "Create Docker images for React applications" -group: learn-by-example +group: example-catalog sub_group: nodejs toc: true --- diff --git a/_docs/example-catalog/nodejs/voting-app.md b/_docs/example-catalog/nodejs/voting-app.md index 48c5da61..32b186e7 100644 --- a/_docs/example-catalog/nodejs/voting-app.md +++ b/_docs/example-catalog/nodejs/voting-app.md @@ -2,7 +2,7 @@ title: "Voting app" description: "" excerpt: "" -group: learn-by-example +group: example-catalog sub_group: nodejs redirect_from: - /docs/voting-app/ diff --git a/_docs/example-catalog/nomad.md b/_docs/example-catalog/nomad.md index fbe6821a..efc1d391 100644 --- a/_docs/example-catalog/nomad.md +++ b/_docs/example-catalog/nomad.md @@ -1,7 +1,7 @@ --- title: "Deploy to Nomad" description: "Deploy Docker images to a Nomad cluster with Codefresh" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/non-git-checkout.md b/_docs/example-catalog/non-git-checkout.md index dec584ef..bf148d8c 100644 --- a/_docs/example-catalog/non-git-checkout.md +++ b/_docs/example-catalog/non-git-checkout.md @@ -1,7 +1,7 @@ --- title: "Checking out from other Source Control systems" description: "Work with non-git repositories" -group: yaml-examples +group: example-catalogog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/packer-gcloud.md b/_docs/example-catalog/packer-gcloud.md index 5e543064..2165a045 100644 --- a/_docs/example-catalog/packer-gcloud.md +++ b/_docs/example-catalog/packer-gcloud.md @@ -1,7 +1,7 @@ --- title: "Deploy to a Virtual Machine" description: "Deploy to Google Cloud in a Codefresh pipeline with Packer" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/php.md b/_docs/example-catalog/php.md index 219b7224..9e16158c 100644 --- a/_docs/example-catalog/php.md +++ b/_docs/example-catalog/php.md @@ -1,7 +1,7 @@ --- title: "Create a Docker image for Php" description: "Using Codefresh pipelines" -group: learn-by-example +group: example-catalog toc: true --- diff --git a/_docs/example-catalog/populate-a-database-with-existing-data.md b/_docs/example-catalog/populate-a-database-with-existing-data.md index ae477c0a..b775c39c 100644 --- a/_docs/example-catalog/populate-a-database-with-existing-data.md +++ b/_docs/example-catalog/populate-a-database-with-existing-data.md @@ -1,7 +1,7 @@ --- title: "Populate a database with existing data" description: "Preloading test data before integration tests" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/populate-a-database-with-existing-data-copied/ diff --git a/_docs/example-catalog/pulumi.md b/_docs/example-catalog/pulumi.md index ef90bb89..b125f5a6 100644 --- a/_docs/example-catalog/pulumi.md +++ b/_docs/example-catalog/pulumi.md @@ -1,7 +1,7 @@ --- title: "Deploy with Pulumi" description: "Use Pulumi in a Codefresh pipeline with Docker" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/python.md b/_docs/example-catalog/python.md index 76f5c347..d80cb991 100644 --- a/_docs/example-catalog/python.md +++ b/_docs/example-catalog/python.md @@ -1,7 +1,7 @@ --- title: "Python" description: "" -group: learn-by-example +group: example-catalog redirect_from: - /docs/python/ toc: true diff --git a/_docs/example-catalog/python/django.md b/_docs/example-catalog/python/django.md index 92ba1375..063bc7a4 100644 --- a/_docs/example-catalog/python/django.md +++ b/_docs/example-catalog/python/django.md @@ -2,7 +2,7 @@ title: "Python Django example" description: "Create Docker images for Python applications" excerpt: "" -group: learn-by-example +group: example-catalog sub_group: python redirect_from: - /docs/django/ diff --git a/_docs/example-catalog/python/voting-app.md b/_docs/example-catalog/python/voting-app.md index bce847bc..fea85e68 100644 --- a/_docs/example-catalog/python/voting-app.md +++ b/_docs/example-catalog/python/voting-app.md @@ -2,7 +2,7 @@ title: "Voting app" description: "" excerpt: "" -group: learn-by-example +group: example-catalog sub_group: python redirect_from: - /docs/voting-app-1/ diff --git a/_docs/example-catalog/ruby.md b/_docs/example-catalog/ruby.md index cfc42bc7..7d717c83 100644 --- a/_docs/example-catalog/ruby.md +++ b/_docs/example-catalog/ruby.md @@ -1,7 +1,7 @@ --- title: "Ruby" description: "How to build a Ruby On Rails project in Codefresh" -group: learn-by-example +group: example-catalog toc: true --- Ruby on Rails is a very popular development framework that combines ease of use and a great amount of programming languages. In Codefresh, ROR projects behave like any other web application. You can easily build them, run [integration tests]({{site.baseurl}}/docs/testing/integration-tests/) and launch them on [demo environments]({{site.baseurl}}/docs/getting-started/on-demand-environments/). diff --git a/_docs/example-catalog/run-integration-tests.md b/_docs/example-catalog/run-integration-tests.md index 0b92e9b0..9d20ea68 100644 --- a/_docs/example-catalog/run-integration-tests.md +++ b/_docs/example-catalog/run-integration-tests.md @@ -1,7 +1,7 @@ --- title: "Integration Tests Example" description: "Launching separate App and test containers" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/run-integration-tests/ diff --git a/_docs/example-catalog/run-unit-tests.md b/_docs/example-catalog/run-unit-tests.md index 9c4c7a79..e4117866 100644 --- a/_docs/example-catalog/run-unit-tests.md +++ b/_docs/example-catalog/run-unit-tests.md @@ -1,7 +1,7 @@ --- title: "Run Unit Tests" description: "Running unit tests in Codefresh pipelines" -group: yaml-examples +group: example-catalogog sub_group: examples redirect_from: - /docs/run-unit-tests/ diff --git a/_docs/example-catalog/rust.md b/_docs/example-catalog/rust.md index 08f58445..ad3cea20 100644 --- a/_docs/example-catalog/rust.md +++ b/_docs/example-catalog/rust.md @@ -1,7 +1,7 @@ --- title: "Compile and test a Rust application" description: "Using Codefresh pipelines" -group: learn-by-example +group: example-catalog toc: true --- diff --git a/_docs/example-catalog/scala.md b/_docs/example-catalog/scala.md index 5a0991f4..7415259d 100644 --- a/_docs/example-catalog/scala.md +++ b/_docs/example-catalog/scala.md @@ -1,7 +1,7 @@ --- title: "Scala" description: "" -group: learn-by-example +group: example-catalog redirect_from: - /docs/scala/ toc: true diff --git a/_docs/example-catalog/scala/scala-hello-world.md b/_docs/example-catalog/scala/scala-hello-world.md index 629da23d..122febc1 100644 --- a/_docs/example-catalog/scala/scala-hello-world.md +++ b/_docs/example-catalog/scala/scala-hello-world.md @@ -2,7 +2,7 @@ title: "Scala: Hello World" description: "Use Scala and Codefresh to clone, package, and build a Docker image" excerpt: "" -group: learn-by-example +group: example-catalog sub_group: scala redirect_from: - /docs/scala-hello-world/ diff --git a/_docs/example-catalog/secure-a-docker-container-using-http-basic-auth.md b/_docs/example-catalog/secure-a-docker-container-using-http-basic-auth.md index 301fbe8d..afa61199 100644 --- a/_docs/example-catalog/secure-a-docker-container-using-http-basic-auth.md +++ b/_docs/example-catalog/secure-a-docker-container-using-http-basic-auth.md @@ -1,7 +1,7 @@ --- title: "Secure a Docker Container Using HTTP Basic Auth" description: "" -group: yaml-examples +group: example-catalogog sub_group: examples redirect_from: - /docs/securing-docker-container-with-http-basic-auth/ diff --git a/_docs/example-catalog/sending-the-notification-to-jira.md b/_docs/example-catalog/sending-the-notification-to-jira.md index f43e7b91..a1be2f9e 100644 --- a/_docs/example-catalog/sending-the-notification-to-jira.md +++ b/_docs/example-catalog/sending-the-notification-to-jira.md @@ -1,7 +1,7 @@ --- title: "Sending the notification to Jira" description: "" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/sending-the-notification-to-slack.md b/_docs/example-catalog/sending-the-notification-to-slack.md index 63e1254b..352cd633 100644 --- a/_docs/example-catalog/sending-the-notification-to-slack.md +++ b/_docs/example-catalog/sending-the-notification-to-slack.md @@ -1,7 +1,7 @@ --- title: "Sending a notification to Slack" description: "Connect your Codefresh pipelines to Slack" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/sending-the-notification-to-slack/ diff --git a/_docs/example-catalog/shared-volumes-between-builds.md b/_docs/example-catalog/shared-volumes-between-builds.md index 9658a27e..e63833df 100644 --- a/_docs/example-catalog/shared-volumes-between-builds.md +++ b/_docs/example-catalog/shared-volumes-between-builds.md @@ -1,7 +1,7 @@ --- title: "Sharing data between pipeline steps" description: "How to cache folders between steps and builds" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/shared-volumes-between-builds/ diff --git a/_docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md b/_docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md index 63e98467..50ca3507 100644 --- a/_docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md +++ b/_docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md @@ -1,7 +1,7 @@ --- title: "Shared volumes of service from composition step for other yml steps" description: "How to share data in compositions" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/shared-volumes-of-service-from-composition-step-for-other-yml-steps/ diff --git a/_docs/example-catalog/spring-boot-kafka-zookeeper.md b/_docs/example-catalog/spring-boot-kafka-zookeeper.md index 675a1a5e..fc48d462 100644 --- a/_docs/example-catalog/spring-boot-kafka-zookeeper.md +++ b/_docs/example-catalog/spring-boot-kafka-zookeeper.md @@ -1,7 +1,7 @@ --- title: "Spring Boot + Kafka + Zookeeper" description: "" -group: yaml-examples +group: example-catalogogog sub_group: examples redirect_from: - /docs/spring-boot-kafka-zookeeper/ diff --git a/_docs/example-catalog/terraform.md b/_docs/example-catalog/terraform.md index 40de1d73..b1642fbc 100644 --- a/_docs/example-catalog/terraform.md +++ b/_docs/example-catalog/terraform.md @@ -1,7 +1,7 @@ --- title: "Deploy with Terraform" description: "Use Terraform in a Codefresh pipeline with Docker" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/transferring-php-ftp.md b/_docs/example-catalog/transferring-php-ftp.md index 5b8d513f..3585193d 100644 --- a/_docs/example-catalog/transferring-php-ftp.md +++ b/_docs/example-catalog/transferring-php-ftp.md @@ -1,7 +1,7 @@ --- title: "Transferring Applications via FTP" description: "Deploying a Php Application to a VM using FTP" -group: yaml-examples +group: example-catalog sub_group: examples toc: true redirect_from: diff --git a/_docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry.md b/_docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry.md index 95f914eb..7d3d3654 100644 --- a/_docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry.md +++ b/_docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry.md @@ -1,7 +1,7 @@ --- title: "Trigger a Kubernetes Deployment from a Dockerhub Push Event" description: "Learn how to trigger a Kubernetes deployment when an image is updated" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/uploading-or-downloading-from-gs.md b/_docs/example-catalog/uploading-or-downloading-from-gs.md index a9b00bfd..ab05aa9a 100644 --- a/_docs/example-catalog/uploading-or-downloading-from-gs.md +++ b/_docs/example-catalog/uploading-or-downloading-from-gs.md @@ -1,7 +1,7 @@ --- title: "Uploading/Downloading Files to/from Google Storage" description: "Upload and download a jar from Google Storage from within a pipeline" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/use-kubectl-as-part-of-freestyle-step.md b/_docs/example-catalog/use-kubectl-as-part-of-freestyle-step.md index 4a09761d..d5c772c0 100644 --- a/_docs/example-catalog/use-kubectl-as-part-of-freestyle-step.md +++ b/_docs/example-catalog/use-kubectl-as-part-of-freestyle-step.md @@ -1,8 +1,8 @@ --- title: "Use kubectl as part of Freestyle step" description: "How to run manually kubectl in a Codefresh pipeline" -group: yaml-examples -sub_group: examples +group: example-catalog +sub_group: redirect_from: - /docs/use-kubectl-as-part-of-freestyle-step/ toc: true diff --git a/_docs/example-catalog/vault-secrets-in-the-pipeline.md b/_docs/example-catalog/vault-secrets-in-the-pipeline.md index 7344ce06..39a38cf0 100644 --- a/_docs/example-catalog/vault-secrets-in-the-pipeline.md +++ b/_docs/example-catalog/vault-secrets-in-the-pipeline.md @@ -1,7 +1,7 @@ --- title: "Vault Secrets in the Pipeline" description: "Accessing and Referring to Vault Secrets in the Pipeline" -group: yaml-examples +group: example-catalog sub_group: examples toc: true --- diff --git a/_docs/example-catalog/web-terminal.md b/_docs/example-catalog/web-terminal.md index d99308da..b2db9321 100644 --- a/_docs/example-catalog/web-terminal.md +++ b/_docs/example-catalog/web-terminal.md @@ -1,7 +1,7 @@ --- title: "Web terminal" description: "" -group: yaml-examples +group: example-catalog sub_group: examples redirect_from: - /docs/web-terminal/ From 1e033d7d253cf3e25c30d06cb3ae6a5bc43d2f73 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 5 Dec 2022 15:44:29 +0200 Subject: [PATCH 16/43] Update example-catalog structure --- _data/nav.yml | 98 ++++++++----------- .../{ => cd-examples}/amazon-ecs.md | 0 .../{ => cd-examples}/deploy-to-heroku.md | 0 .../deploy-to-tomcat-via-scp.md | 0 .../deploy-with-kustomize.md | 0 .../{ => cd-examples}/docker-swarm.md | 0 .../{ => cd-examples}/elastic-beanstalk.md | 0 .../example-catalog/{ => cd-examples}/helm.md | 0 .../import-data-to-mongodb.md | 0 .../nodejs-angular2-mongodb.md | 0 .../{ => cd-examples}/nomad.md | 0 .../{ => cd-examples}/packer-gcloud.md | 0 .../{ => cd-examples}/pulumi.md | 0 ...-docker-container-using-http-basic-auth.md | 0 .../spring-boot-kafka-zookeeper.md | 0 .../{ => cd-examples}/terraform.md | 0 .../{ => cd-examples}/transferring-php-ftp.md | 0 ...r-a-k8s-deployment-from-docker-registry.md | 0 .../use-kubectl-as-part-of-freestyle-step.md | 0 .../{ => cd-examples}/web-terminal.md | 0 .../{mobile => ci-examples}/android.md | 0 ...n-image-from-a-different-git-repository.md | 0 ...ld-an-image-specify-dockerfile-location.md | 0 .../build-an-image-with-build-arguments.md | 0 ...e-with-the-dockerfile-in-root-directory.md | 0 .../build-and-push-an-image.md | 0 .../{cc => ci-examples}/c-make.md | 0 .../{ => ci-examples}/call-child-pipelines.md | 0 _docs/example-catalog/{ => ci-examples}/cc.md | 0 .../{ => ci-examples}/codacy-testing.md | 0 .../{ => ci-examples}/codecov-testing.md | 0 .../{ => ci-examples}/coveralls-testing.md | 0 .../{cc => ci-examples}/cpp-cmake.md | 0 .../decryption-with-mozilla-sops.md | 0 .../{python => ci-examples}/django.md | 0 .../{ => ci-examples}/dotnet.md | 0 .../{ => ci-examples}/examples.md | 0 .../{ => ci-examples}/fan-in-fan-out.md | 0 .../{ => ci-examples}/general.md | 0 ...short-sha-id-and-use-it-in-a-ci-process.md | 0 .../{ => ci-examples}/git-checkout-custom.md | 0 .../{ => ci-examples}/git-checkout.md | 0 .../{ => ci-examples}/gitops-secrets.md | 0 .../golang-hello-world.md | 0 .../{ => ci-examples}/golang.md | 0 .../{golang => ci-examples}/goreleaser.md | 0 .../{java => ci-examples}/gradle.md | 0 .../integration-tests-with-mongo.md | 0 .../integration-tests-with-mysql.md | 0 .../integration-tests-with-postgres.md | 0 .../integration-tests-with-redis.md | 0 .../example-catalog/{ => ci-examples}/java.md | 0 .../{ => ci-examples}/launch-composition.md | 0 ...vice-environment-variables-using-a-file.md | 0 .../{nodejs => ci-examples}/lets-chat.md | 0 .../{ => ci-examples}/mobile.md | 0 .../{ => ci-examples}/nodejs.md | 0 .../{ => ci-examples}/non-git-checkout.md | 0 .../example-catalog/{ => ci-examples}/php.md | 0 .../populate-a-database-with-existing-data.md | 0 .../{java => ci-examples}/publish-jar.md | 0 .../{ => ci-examples}/python.md | 0 .../{nodejs => ci-examples}/react.md | 0 .../example-catalog/{ => ci-examples}/ruby.md | 0 .../run-integration-tests.md | 0 .../{ => ci-examples}/run-unit-tests.md | 0 .../example-catalog/{ => ci-examples}/rust.md | 0 .../scala-hello-world.md | 0 .../{ => ci-examples}/scala.md | 0 .../sending-the-notification-to-jira.md | 0 .../sending-the-notification-to-slack.md | 0 .../shared-volumes-between-builds.md | 0 ...om-composition-step-for-other-yml-steps.md | 0 .../{java => ci-examples}/spring-boot-2.md | 0 .../uploading-or-downloading-from-gs.md | 0 .../vault-secrets-in-the-pipeline.md | 0 .../{python => ci-examples}/voting-app.md | 0 .../example-catalog/general/selenium-test.md | 75 -------------- _docs/example-catalog/nodejs/voting-app.md | 88 ----------------- 79 files changed, 39 insertions(+), 222 deletions(-) rename _docs/example-catalog/{ => cd-examples}/amazon-ecs.md (100%) rename _docs/example-catalog/{ => cd-examples}/deploy-to-heroku.md (100%) rename _docs/example-catalog/{ => cd-examples}/deploy-to-tomcat-via-scp.md (100%) rename _docs/example-catalog/{ => cd-examples}/deploy-with-kustomize.md (100%) rename _docs/example-catalog/{ => cd-examples}/docker-swarm.md (100%) rename _docs/example-catalog/{ => cd-examples}/elastic-beanstalk.md (100%) rename _docs/example-catalog/{ => cd-examples}/helm.md (100%) rename _docs/example-catalog/{ => cd-examples}/import-data-to-mongodb.md (100%) rename _docs/example-catalog/{ => cd-examples}/nodejs-angular2-mongodb.md (100%) rename _docs/example-catalog/{ => cd-examples}/nomad.md (100%) rename _docs/example-catalog/{ => cd-examples}/packer-gcloud.md (100%) rename _docs/example-catalog/{ => cd-examples}/pulumi.md (100%) rename _docs/example-catalog/{ => cd-examples}/secure-a-docker-container-using-http-basic-auth.md (100%) rename _docs/example-catalog/{ => cd-examples}/spring-boot-kafka-zookeeper.md (100%) rename _docs/example-catalog/{ => cd-examples}/terraform.md (100%) rename _docs/example-catalog/{ => cd-examples}/transferring-php-ftp.md (100%) rename _docs/example-catalog/{ => cd-examples}/trigger-a-k8s-deployment-from-docker-registry.md (100%) rename _docs/example-catalog/{ => cd-examples}/use-kubectl-as-part-of-freestyle-step.md (100%) rename _docs/example-catalog/{ => cd-examples}/web-terminal.md (100%) rename _docs/example-catalog/{mobile => ci-examples}/android.md (100%) rename _docs/example-catalog/{ => ci-examples}/build-an-image-from-a-different-git-repository.md (100%) rename _docs/example-catalog/{ => ci-examples}/build-an-image-specify-dockerfile-location.md (100%) rename _docs/example-catalog/{ => ci-examples}/build-an-image-with-build-arguments.md (100%) rename _docs/example-catalog/{ => ci-examples}/build-an-image-with-the-dockerfile-in-root-directory.md (100%) rename _docs/example-catalog/{ => ci-examples}/build-and-push-an-image.md (100%) rename _docs/example-catalog/{cc => ci-examples}/c-make.md (100%) rename _docs/example-catalog/{ => ci-examples}/call-child-pipelines.md (100%) rename _docs/example-catalog/{ => ci-examples}/cc.md (100%) rename _docs/example-catalog/{ => ci-examples}/codacy-testing.md (100%) rename _docs/example-catalog/{ => ci-examples}/codecov-testing.md (100%) rename _docs/example-catalog/{ => ci-examples}/coveralls-testing.md (100%) rename _docs/example-catalog/{cc => ci-examples}/cpp-cmake.md (100%) rename _docs/example-catalog/{ => ci-examples}/decryption-with-mozilla-sops.md (100%) rename _docs/example-catalog/{python => ci-examples}/django.md (100%) rename _docs/example-catalog/{ => ci-examples}/dotnet.md (100%) rename _docs/example-catalog/{ => ci-examples}/examples.md (100%) rename _docs/example-catalog/{ => ci-examples}/fan-in-fan-out.md (100%) rename _docs/example-catalog/{ => ci-examples}/general.md (100%) rename _docs/example-catalog/{ => ci-examples}/get-short-sha-id-and-use-it-in-a-ci-process.md (100%) rename _docs/example-catalog/{ => ci-examples}/git-checkout-custom.md (100%) rename _docs/example-catalog/{ => ci-examples}/git-checkout.md (100%) rename _docs/example-catalog/{ => ci-examples}/gitops-secrets.md (100%) rename _docs/example-catalog/{golang => ci-examples}/golang-hello-world.md (100%) rename _docs/example-catalog/{ => ci-examples}/golang.md (100%) rename _docs/example-catalog/{golang => ci-examples}/goreleaser.md (100%) rename _docs/example-catalog/{java => ci-examples}/gradle.md (100%) rename _docs/example-catalog/{ => ci-examples}/integration-tests-with-mongo.md (100%) rename _docs/example-catalog/{ => ci-examples}/integration-tests-with-mysql.md (100%) rename _docs/example-catalog/{ => ci-examples}/integration-tests-with-postgres.md (100%) rename _docs/example-catalog/{ => ci-examples}/integration-tests-with-redis.md (100%) rename _docs/example-catalog/{ => ci-examples}/java.md (100%) rename _docs/example-catalog/{ => ci-examples}/launch-composition.md (100%) rename _docs/example-catalog/{ => ci-examples}/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md (100%) rename _docs/example-catalog/{nodejs => ci-examples}/lets-chat.md (100%) rename _docs/example-catalog/{ => ci-examples}/mobile.md (100%) rename _docs/example-catalog/{ => ci-examples}/nodejs.md (100%) rename _docs/example-catalog/{ => ci-examples}/non-git-checkout.md (100%) rename _docs/example-catalog/{ => ci-examples}/php.md (100%) rename _docs/example-catalog/{ => ci-examples}/populate-a-database-with-existing-data.md (100%) rename _docs/example-catalog/{java => ci-examples}/publish-jar.md (100%) rename _docs/example-catalog/{ => ci-examples}/python.md (100%) rename _docs/example-catalog/{nodejs => ci-examples}/react.md (100%) rename _docs/example-catalog/{ => ci-examples}/ruby.md (100%) rename _docs/example-catalog/{ => ci-examples}/run-integration-tests.md (100%) rename _docs/example-catalog/{ => ci-examples}/run-unit-tests.md (100%) rename _docs/example-catalog/{ => ci-examples}/rust.md (100%) rename _docs/example-catalog/{scala => ci-examples}/scala-hello-world.md (100%) rename _docs/example-catalog/{ => ci-examples}/scala.md (100%) rename _docs/example-catalog/{ => ci-examples}/sending-the-notification-to-jira.md (100%) rename _docs/example-catalog/{ => ci-examples}/sending-the-notification-to-slack.md (100%) rename _docs/example-catalog/{ => ci-examples}/shared-volumes-between-builds.md (100%) rename _docs/example-catalog/{ => ci-examples}/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md (100%) rename _docs/example-catalog/{java => ci-examples}/spring-boot-2.md (100%) rename _docs/example-catalog/{ => ci-examples}/uploading-or-downloading-from-gs.md (100%) rename _docs/example-catalog/{ => ci-examples}/vault-secrets-in-the-pipeline.md (100%) rename _docs/example-catalog/{python => ci-examples}/voting-app.md (100%) delete mode 100644 _docs/example-catalog/general/selenium-test.md delete mode 100644 _docs/example-catalog/nodejs/voting-app.md diff --git a/_data/nav.yml b/_data/nav.yml index 222c9ac3..f8d73493 100644 --- a/_data/nav.yml +++ b/_data/nav.yml @@ -196,10 +196,13 @@ -- title: "Example catalog" - url: "/example-catalog/examples" +- title: Example catalog + url: "/example-catalog" pages: - - title: "Git" + - title: "Examples" + url: "/examples" + - title: "CI examples" + url: "/ci-examples" sub-pages: - title: Checking out Git repositories url: "/git-checkout" @@ -209,8 +212,6 @@ url: "example-catalog/non-git-checkout" - title: Use Git Hash in CI url: "example-catalog/get-short-sha-id-and-use-it-in-a-ci-process" - - title: "Image builds" - sub-pages: - title: Build an Image with the Dockerfile in Root Directory url: "/build-an-image-dockerfile-in-root-directory" - title: Build an Image - Specify Dockerfile Location @@ -227,29 +228,18 @@ url: "/uploading-or-downloading-from-gs" - title: Calling other pipelines url: "/call-child-pipelines" - - title: Trigger a K8s Deployment from a DockerHub Push Event - url: "/trigger-a-k8s-deployment-from-docker-registry" - - title: "Testing" - url: "/examples" - sub-pages: - title: Run Unit Tests url: "/run-unit-tests" - title: Run Integration Tests url: "/run-integration-tests" - title: Fan-in/Fan-out Example with Unit Tests - url: "fan-in-fan-out" - - title: "Code Coverage" - url: "/examples" - sub-pages: - - title: Codecov Coverage Reports + 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: "Databases" - url: "/examples" - sub-pages: - title: Run Integration Tests with Mongo url: "/integration-tests-with-mongo" - title: Run Integration Tests with MySQL @@ -264,10 +254,36 @@ url: "/shared-volumes-of-service-from-composition-step-for-other-yml-steps" - title: Import data to MongoDB url: "/import-data-to-mongodb" - - title: "Deployments" - url: "/examples" + - title: Vault Secrets in the Pipeline + url: "/vault-secrets-in-the-pipeline" + - title: Decryption 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: Sending the notification to Slack + url: "/sending-the-notification-to-slack" + - title: Sending the notification to Jira + url: "/sending-the-notification-to-jira" + - title: "CD examples" + url: "/cd-examples" sub-pages: - - title: Deploy to VM + - title: MongoDB preload data + 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 using ftp url: "/transferring-php-ftp" @@ -292,44 +308,8 @@ - title: Amazon ECS/Fargate url: "/amazon-ecs" - title: Elastic Beanstalk - url: "/elastic-beanstalk" - - title: "Secrets" - url: "/examples" - sub-pages: - - title: Vault Secrets in the Pipeline - url: "/vault-secrets-in-the-pipeline" - - title: Decryption with Mozilla SOPS - url: "/decryption-with-mozilla-sops" - - title: GitOps secrets - url: "/gitops-secrets" - - title: "Compositions" - url: "/examples" - sub-pages: - - title: Launch Composition - url: "/launch-composition" - - title: Use Docker compose - url: "/launching-a-composition-and-defining-a-service-environment-variables-using-a-file" - - title: "Notifications" - url: "/examples" - sub-pages: - - title: Sending the notification to Slack - url: "/sending-the-notification-to-slack" - - title: Sending the notification to Jira - url: "/sending-the-notification-to-jira" - - title: "Security" - url: "/examples" - sub-pages: - - title: Secure a Docker Container Using HTTP Basic Auth - url: "/secure-a-docker-container-using-http-basic-auth" - - title: "General" - url: "/examples" - sub-pages: - - title: NodeJS + Angular2 + MongoDB - url: "/nodejs-angular2-mongodb" - - title: Spring Boot + Kafka + Zookeeper - url: "/spring-boot-kafka-zookeeper" - - title: Web terminal - url: "/web-terminal" + url: "/elastic-beanstalk" + diff --git a/_docs/example-catalog/amazon-ecs.md b/_docs/example-catalog/cd-examples/amazon-ecs.md similarity index 100% rename from _docs/example-catalog/amazon-ecs.md rename to _docs/example-catalog/cd-examples/amazon-ecs.md diff --git a/_docs/example-catalog/deploy-to-heroku.md b/_docs/example-catalog/cd-examples/deploy-to-heroku.md similarity index 100% rename from _docs/example-catalog/deploy-to-heroku.md rename to _docs/example-catalog/cd-examples/deploy-to-heroku.md diff --git a/_docs/example-catalog/deploy-to-tomcat-via-scp.md b/_docs/example-catalog/cd-examples/deploy-to-tomcat-via-scp.md similarity index 100% rename from _docs/example-catalog/deploy-to-tomcat-via-scp.md rename to _docs/example-catalog/cd-examples/deploy-to-tomcat-via-scp.md diff --git a/_docs/example-catalog/deploy-with-kustomize.md b/_docs/example-catalog/cd-examples/deploy-with-kustomize.md similarity index 100% rename from _docs/example-catalog/deploy-with-kustomize.md rename to _docs/example-catalog/cd-examples/deploy-with-kustomize.md diff --git a/_docs/example-catalog/docker-swarm.md b/_docs/example-catalog/cd-examples/docker-swarm.md similarity index 100% rename from _docs/example-catalog/docker-swarm.md rename to _docs/example-catalog/cd-examples/docker-swarm.md diff --git a/_docs/example-catalog/elastic-beanstalk.md b/_docs/example-catalog/cd-examples/elastic-beanstalk.md similarity index 100% rename from _docs/example-catalog/elastic-beanstalk.md rename to _docs/example-catalog/cd-examples/elastic-beanstalk.md diff --git a/_docs/example-catalog/helm.md b/_docs/example-catalog/cd-examples/helm.md similarity index 100% rename from _docs/example-catalog/helm.md rename to _docs/example-catalog/cd-examples/helm.md diff --git a/_docs/example-catalog/import-data-to-mongodb.md b/_docs/example-catalog/cd-examples/import-data-to-mongodb.md similarity index 100% rename from _docs/example-catalog/import-data-to-mongodb.md rename to _docs/example-catalog/cd-examples/import-data-to-mongodb.md diff --git a/_docs/example-catalog/nodejs-angular2-mongodb.md b/_docs/example-catalog/cd-examples/nodejs-angular2-mongodb.md similarity index 100% rename from _docs/example-catalog/nodejs-angular2-mongodb.md rename to _docs/example-catalog/cd-examples/nodejs-angular2-mongodb.md diff --git a/_docs/example-catalog/nomad.md b/_docs/example-catalog/cd-examples/nomad.md similarity index 100% rename from _docs/example-catalog/nomad.md rename to _docs/example-catalog/cd-examples/nomad.md diff --git a/_docs/example-catalog/packer-gcloud.md b/_docs/example-catalog/cd-examples/packer-gcloud.md similarity index 100% rename from _docs/example-catalog/packer-gcloud.md rename to _docs/example-catalog/cd-examples/packer-gcloud.md diff --git a/_docs/example-catalog/pulumi.md b/_docs/example-catalog/cd-examples/pulumi.md similarity index 100% rename from _docs/example-catalog/pulumi.md rename to _docs/example-catalog/cd-examples/pulumi.md diff --git a/_docs/example-catalog/secure-a-docker-container-using-http-basic-auth.md b/_docs/example-catalog/cd-examples/secure-a-docker-container-using-http-basic-auth.md similarity index 100% rename from _docs/example-catalog/secure-a-docker-container-using-http-basic-auth.md rename to _docs/example-catalog/cd-examples/secure-a-docker-container-using-http-basic-auth.md diff --git a/_docs/example-catalog/spring-boot-kafka-zookeeper.md b/_docs/example-catalog/cd-examples/spring-boot-kafka-zookeeper.md similarity index 100% rename from _docs/example-catalog/spring-boot-kafka-zookeeper.md rename to _docs/example-catalog/cd-examples/spring-boot-kafka-zookeeper.md diff --git a/_docs/example-catalog/terraform.md b/_docs/example-catalog/cd-examples/terraform.md similarity index 100% rename from _docs/example-catalog/terraform.md rename to _docs/example-catalog/cd-examples/terraform.md diff --git a/_docs/example-catalog/transferring-php-ftp.md b/_docs/example-catalog/cd-examples/transferring-php-ftp.md similarity index 100% rename from _docs/example-catalog/transferring-php-ftp.md rename to _docs/example-catalog/cd-examples/transferring-php-ftp.md diff --git a/_docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry.md b/_docs/example-catalog/cd-examples/trigger-a-k8s-deployment-from-docker-registry.md similarity index 100% rename from _docs/example-catalog/trigger-a-k8s-deployment-from-docker-registry.md rename to _docs/example-catalog/cd-examples/trigger-a-k8s-deployment-from-docker-registry.md diff --git a/_docs/example-catalog/use-kubectl-as-part-of-freestyle-step.md b/_docs/example-catalog/cd-examples/use-kubectl-as-part-of-freestyle-step.md similarity index 100% rename from _docs/example-catalog/use-kubectl-as-part-of-freestyle-step.md rename to _docs/example-catalog/cd-examples/use-kubectl-as-part-of-freestyle-step.md diff --git a/_docs/example-catalog/web-terminal.md b/_docs/example-catalog/cd-examples/web-terminal.md similarity index 100% rename from _docs/example-catalog/web-terminal.md rename to _docs/example-catalog/cd-examples/web-terminal.md diff --git a/_docs/example-catalog/mobile/android.md b/_docs/example-catalog/ci-examples/android.md similarity index 100% rename from _docs/example-catalog/mobile/android.md rename to _docs/example-catalog/ci-examples/android.md diff --git a/_docs/example-catalog/build-an-image-from-a-different-git-repository.md b/_docs/example-catalog/ci-examples/build-an-image-from-a-different-git-repository.md similarity index 100% rename from _docs/example-catalog/build-an-image-from-a-different-git-repository.md rename to _docs/example-catalog/ci-examples/build-an-image-from-a-different-git-repository.md diff --git a/_docs/example-catalog/build-an-image-specify-dockerfile-location.md b/_docs/example-catalog/ci-examples/build-an-image-specify-dockerfile-location.md similarity index 100% rename from _docs/example-catalog/build-an-image-specify-dockerfile-location.md rename to _docs/example-catalog/ci-examples/build-an-image-specify-dockerfile-location.md diff --git a/_docs/example-catalog/build-an-image-with-build-arguments.md b/_docs/example-catalog/ci-examples/build-an-image-with-build-arguments.md similarity index 100% rename from _docs/example-catalog/build-an-image-with-build-arguments.md rename to _docs/example-catalog/ci-examples/build-an-image-with-build-arguments.md diff --git a/_docs/example-catalog/build-an-image-with-the-dockerfile-in-root-directory.md b/_docs/example-catalog/ci-examples/build-an-image-with-the-dockerfile-in-root-directory.md similarity index 100% rename from _docs/example-catalog/build-an-image-with-the-dockerfile-in-root-directory.md rename to _docs/example-catalog/ci-examples/build-an-image-with-the-dockerfile-in-root-directory.md diff --git a/_docs/example-catalog/build-and-push-an-image.md b/_docs/example-catalog/ci-examples/build-and-push-an-image.md similarity index 100% rename from _docs/example-catalog/build-and-push-an-image.md rename to _docs/example-catalog/ci-examples/build-and-push-an-image.md diff --git a/_docs/example-catalog/cc/c-make.md b/_docs/example-catalog/ci-examples/c-make.md similarity index 100% rename from _docs/example-catalog/cc/c-make.md rename to _docs/example-catalog/ci-examples/c-make.md diff --git a/_docs/example-catalog/call-child-pipelines.md b/_docs/example-catalog/ci-examples/call-child-pipelines.md similarity index 100% rename from _docs/example-catalog/call-child-pipelines.md rename to _docs/example-catalog/ci-examples/call-child-pipelines.md diff --git a/_docs/example-catalog/cc.md b/_docs/example-catalog/ci-examples/cc.md similarity index 100% rename from _docs/example-catalog/cc.md rename to _docs/example-catalog/ci-examples/cc.md diff --git a/_docs/example-catalog/codacy-testing.md b/_docs/example-catalog/ci-examples/codacy-testing.md similarity index 100% rename from _docs/example-catalog/codacy-testing.md rename to _docs/example-catalog/ci-examples/codacy-testing.md diff --git a/_docs/example-catalog/codecov-testing.md b/_docs/example-catalog/ci-examples/codecov-testing.md similarity index 100% rename from _docs/example-catalog/codecov-testing.md rename to _docs/example-catalog/ci-examples/codecov-testing.md diff --git a/_docs/example-catalog/coveralls-testing.md b/_docs/example-catalog/ci-examples/coveralls-testing.md similarity index 100% rename from _docs/example-catalog/coveralls-testing.md rename to _docs/example-catalog/ci-examples/coveralls-testing.md diff --git a/_docs/example-catalog/cc/cpp-cmake.md b/_docs/example-catalog/ci-examples/cpp-cmake.md similarity index 100% rename from _docs/example-catalog/cc/cpp-cmake.md rename to _docs/example-catalog/ci-examples/cpp-cmake.md diff --git a/_docs/example-catalog/decryption-with-mozilla-sops.md b/_docs/example-catalog/ci-examples/decryption-with-mozilla-sops.md similarity index 100% rename from _docs/example-catalog/decryption-with-mozilla-sops.md rename to _docs/example-catalog/ci-examples/decryption-with-mozilla-sops.md diff --git a/_docs/example-catalog/python/django.md b/_docs/example-catalog/ci-examples/django.md similarity index 100% rename from _docs/example-catalog/python/django.md rename to _docs/example-catalog/ci-examples/django.md diff --git a/_docs/example-catalog/dotnet.md b/_docs/example-catalog/ci-examples/dotnet.md similarity index 100% rename from _docs/example-catalog/dotnet.md rename to _docs/example-catalog/ci-examples/dotnet.md diff --git a/_docs/example-catalog/examples.md b/_docs/example-catalog/ci-examples/examples.md similarity index 100% rename from _docs/example-catalog/examples.md rename to _docs/example-catalog/ci-examples/examples.md diff --git a/_docs/example-catalog/fan-in-fan-out.md b/_docs/example-catalog/ci-examples/fan-in-fan-out.md similarity index 100% rename from _docs/example-catalog/fan-in-fan-out.md rename to _docs/example-catalog/ci-examples/fan-in-fan-out.md diff --git a/_docs/example-catalog/general.md b/_docs/example-catalog/ci-examples/general.md similarity index 100% rename from _docs/example-catalog/general.md rename to _docs/example-catalog/ci-examples/general.md diff --git a/_docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process.md b/_docs/example-catalog/ci-examples/get-short-sha-id-and-use-it-in-a-ci-process.md similarity index 100% rename from _docs/example-catalog/get-short-sha-id-and-use-it-in-a-ci-process.md rename to _docs/example-catalog/ci-examples/get-short-sha-id-and-use-it-in-a-ci-process.md diff --git a/_docs/example-catalog/git-checkout-custom.md b/_docs/example-catalog/ci-examples/git-checkout-custom.md similarity index 100% rename from _docs/example-catalog/git-checkout-custom.md rename to _docs/example-catalog/ci-examples/git-checkout-custom.md diff --git a/_docs/example-catalog/git-checkout.md b/_docs/example-catalog/ci-examples/git-checkout.md similarity index 100% rename from _docs/example-catalog/git-checkout.md rename to _docs/example-catalog/ci-examples/git-checkout.md diff --git a/_docs/example-catalog/gitops-secrets.md b/_docs/example-catalog/ci-examples/gitops-secrets.md similarity index 100% rename from _docs/example-catalog/gitops-secrets.md rename to _docs/example-catalog/ci-examples/gitops-secrets.md diff --git a/_docs/example-catalog/golang/golang-hello-world.md b/_docs/example-catalog/ci-examples/golang-hello-world.md similarity index 100% rename from _docs/example-catalog/golang/golang-hello-world.md rename to _docs/example-catalog/ci-examples/golang-hello-world.md diff --git a/_docs/example-catalog/golang.md b/_docs/example-catalog/ci-examples/golang.md similarity index 100% rename from _docs/example-catalog/golang.md rename to _docs/example-catalog/ci-examples/golang.md diff --git a/_docs/example-catalog/golang/goreleaser.md b/_docs/example-catalog/ci-examples/goreleaser.md similarity index 100% rename from _docs/example-catalog/golang/goreleaser.md rename to _docs/example-catalog/ci-examples/goreleaser.md diff --git a/_docs/example-catalog/java/gradle.md b/_docs/example-catalog/ci-examples/gradle.md similarity index 100% rename from _docs/example-catalog/java/gradle.md rename to _docs/example-catalog/ci-examples/gradle.md diff --git a/_docs/example-catalog/integration-tests-with-mongo.md b/_docs/example-catalog/ci-examples/integration-tests-with-mongo.md similarity index 100% rename from _docs/example-catalog/integration-tests-with-mongo.md rename to _docs/example-catalog/ci-examples/integration-tests-with-mongo.md diff --git a/_docs/example-catalog/integration-tests-with-mysql.md b/_docs/example-catalog/ci-examples/integration-tests-with-mysql.md similarity index 100% rename from _docs/example-catalog/integration-tests-with-mysql.md rename to _docs/example-catalog/ci-examples/integration-tests-with-mysql.md diff --git a/_docs/example-catalog/integration-tests-with-postgres.md b/_docs/example-catalog/ci-examples/integration-tests-with-postgres.md similarity index 100% rename from _docs/example-catalog/integration-tests-with-postgres.md rename to _docs/example-catalog/ci-examples/integration-tests-with-postgres.md diff --git a/_docs/example-catalog/integration-tests-with-redis.md b/_docs/example-catalog/ci-examples/integration-tests-with-redis.md similarity index 100% rename from _docs/example-catalog/integration-tests-with-redis.md rename to _docs/example-catalog/ci-examples/integration-tests-with-redis.md diff --git a/_docs/example-catalog/java.md b/_docs/example-catalog/ci-examples/java.md similarity index 100% rename from _docs/example-catalog/java.md rename to _docs/example-catalog/ci-examples/java.md diff --git a/_docs/example-catalog/launch-composition.md b/_docs/example-catalog/ci-examples/launch-composition.md similarity index 100% rename from _docs/example-catalog/launch-composition.md rename to _docs/example-catalog/ci-examples/launch-composition.md diff --git a/_docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md b/_docs/example-catalog/ci-examples/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md similarity index 100% rename from _docs/example-catalog/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md rename to _docs/example-catalog/ci-examples/launching-a-composition-and-defining-a-service-environment-variables-using-a-file.md diff --git a/_docs/example-catalog/nodejs/lets-chat.md b/_docs/example-catalog/ci-examples/lets-chat.md similarity index 100% rename from _docs/example-catalog/nodejs/lets-chat.md rename to _docs/example-catalog/ci-examples/lets-chat.md diff --git a/_docs/example-catalog/mobile.md b/_docs/example-catalog/ci-examples/mobile.md similarity index 100% rename from _docs/example-catalog/mobile.md rename to _docs/example-catalog/ci-examples/mobile.md diff --git a/_docs/example-catalog/nodejs.md b/_docs/example-catalog/ci-examples/nodejs.md similarity index 100% rename from _docs/example-catalog/nodejs.md rename to _docs/example-catalog/ci-examples/nodejs.md diff --git a/_docs/example-catalog/non-git-checkout.md b/_docs/example-catalog/ci-examples/non-git-checkout.md similarity index 100% rename from _docs/example-catalog/non-git-checkout.md rename to _docs/example-catalog/ci-examples/non-git-checkout.md diff --git a/_docs/example-catalog/php.md b/_docs/example-catalog/ci-examples/php.md similarity index 100% rename from _docs/example-catalog/php.md rename to _docs/example-catalog/ci-examples/php.md diff --git a/_docs/example-catalog/populate-a-database-with-existing-data.md b/_docs/example-catalog/ci-examples/populate-a-database-with-existing-data.md similarity index 100% rename from _docs/example-catalog/populate-a-database-with-existing-data.md rename to _docs/example-catalog/ci-examples/populate-a-database-with-existing-data.md diff --git a/_docs/example-catalog/java/publish-jar.md b/_docs/example-catalog/ci-examples/publish-jar.md similarity index 100% rename from _docs/example-catalog/java/publish-jar.md rename to _docs/example-catalog/ci-examples/publish-jar.md diff --git a/_docs/example-catalog/python.md b/_docs/example-catalog/ci-examples/python.md similarity index 100% rename from _docs/example-catalog/python.md rename to _docs/example-catalog/ci-examples/python.md diff --git a/_docs/example-catalog/nodejs/react.md b/_docs/example-catalog/ci-examples/react.md similarity index 100% rename from _docs/example-catalog/nodejs/react.md rename to _docs/example-catalog/ci-examples/react.md diff --git a/_docs/example-catalog/ruby.md b/_docs/example-catalog/ci-examples/ruby.md similarity index 100% rename from _docs/example-catalog/ruby.md rename to _docs/example-catalog/ci-examples/ruby.md diff --git a/_docs/example-catalog/run-integration-tests.md b/_docs/example-catalog/ci-examples/run-integration-tests.md similarity index 100% rename from _docs/example-catalog/run-integration-tests.md rename to _docs/example-catalog/ci-examples/run-integration-tests.md diff --git a/_docs/example-catalog/run-unit-tests.md b/_docs/example-catalog/ci-examples/run-unit-tests.md similarity index 100% rename from _docs/example-catalog/run-unit-tests.md rename to _docs/example-catalog/ci-examples/run-unit-tests.md diff --git a/_docs/example-catalog/rust.md b/_docs/example-catalog/ci-examples/rust.md similarity index 100% rename from _docs/example-catalog/rust.md rename to _docs/example-catalog/ci-examples/rust.md diff --git a/_docs/example-catalog/scala/scala-hello-world.md b/_docs/example-catalog/ci-examples/scala-hello-world.md similarity index 100% rename from _docs/example-catalog/scala/scala-hello-world.md rename to _docs/example-catalog/ci-examples/scala-hello-world.md diff --git a/_docs/example-catalog/scala.md b/_docs/example-catalog/ci-examples/scala.md similarity index 100% rename from _docs/example-catalog/scala.md rename to _docs/example-catalog/ci-examples/scala.md diff --git a/_docs/example-catalog/sending-the-notification-to-jira.md b/_docs/example-catalog/ci-examples/sending-the-notification-to-jira.md similarity index 100% rename from _docs/example-catalog/sending-the-notification-to-jira.md rename to _docs/example-catalog/ci-examples/sending-the-notification-to-jira.md diff --git a/_docs/example-catalog/sending-the-notification-to-slack.md b/_docs/example-catalog/ci-examples/sending-the-notification-to-slack.md similarity index 100% rename from _docs/example-catalog/sending-the-notification-to-slack.md rename to _docs/example-catalog/ci-examples/sending-the-notification-to-slack.md diff --git a/_docs/example-catalog/shared-volumes-between-builds.md b/_docs/example-catalog/ci-examples/shared-volumes-between-builds.md similarity index 100% rename from _docs/example-catalog/shared-volumes-between-builds.md rename to _docs/example-catalog/ci-examples/shared-volumes-between-builds.md diff --git a/_docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md b/_docs/example-catalog/ci-examples/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md similarity index 100% rename from _docs/example-catalog/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md rename to _docs/example-catalog/ci-examples/shared-volumes-of-service-from-composition-step-for-other-yml-steps.md diff --git a/_docs/example-catalog/java/spring-boot-2.md b/_docs/example-catalog/ci-examples/spring-boot-2.md similarity index 100% rename from _docs/example-catalog/java/spring-boot-2.md rename to _docs/example-catalog/ci-examples/spring-boot-2.md diff --git a/_docs/example-catalog/uploading-or-downloading-from-gs.md b/_docs/example-catalog/ci-examples/uploading-or-downloading-from-gs.md similarity index 100% rename from _docs/example-catalog/uploading-or-downloading-from-gs.md rename to _docs/example-catalog/ci-examples/uploading-or-downloading-from-gs.md diff --git a/_docs/example-catalog/vault-secrets-in-the-pipeline.md b/_docs/example-catalog/ci-examples/vault-secrets-in-the-pipeline.md similarity index 100% rename from _docs/example-catalog/vault-secrets-in-the-pipeline.md rename to _docs/example-catalog/ci-examples/vault-secrets-in-the-pipeline.md diff --git a/_docs/example-catalog/python/voting-app.md b/_docs/example-catalog/ci-examples/voting-app.md similarity index 100% rename from _docs/example-catalog/python/voting-app.md rename to _docs/example-catalog/ci-examples/voting-app.md diff --git a/_docs/example-catalog/general/selenium-test.md b/_docs/example-catalog/general/selenium-test.md deleted file mode 100644 index 424e22db..00000000 --- a/_docs/example-catalog/general/selenium-test.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "Selenium test" -description: "" -excerpt: "" -group: example-catalog -sub_group: general -redirect_from: - - /docs/general/selenium-test/ -toc: true ---- -Using this repository, we'll help you get up to speed with basic functionality such as: compiling, testing and building Docker images. - -This project uses `JavaScript, Selenium, Protractor` to build an application which will eventually become a distributable Docker image. - -## Looking around -In the root of this repository you'll find a file named codefresh.yml, this is our build descriptor and it describes the different steps that comprise our process. Let's quickly review the contents of this file: - - `codefresh.yml` -{% highlight yaml %} -{% raw %} -version: '1.0' -steps: - build_image: - title: Building Image - type: build - dockerfile: Dockerfile - image_name: codefresh/selenium-test - - unit_test: - title: Unit Tests - type: composition - composition: - version: '2' - services: - selenium: - image: selenium/standalone-chrome:2.46.0 - ports: - - 4444:4444 - composition_candidates: - test: - image: ${{build_image}} - volumes: - - /dev/shm:/dev/shm - environment: - GITHUB_ACCOUNT: ${{GITHUB_ACCOUNT}} - GITHUB_PASSWORD: ${{GITHUB_PASSWORD}} - URL: 'https://codefresh.io' - SUITE: 'login' - command: bash -c '/protractor/run-tests.sh' - on_success: - metadata: - set: - - ${{build_image.imageId}}: - - CF_QUALITY: true - on_fail: - metadata: - set: - - ${{build_image.imageId}}: - - CF_QUALITY: false -{% endraw %} -{% endhighlight %} - -{% include image.html -lightbox="true" -file="/images/d0cb57c-codefresh_selenium_env_vars.png" -url="/images/d0cb57c-codefresh_selenium_env_vars.png" -alt="codefresh selenium env vars" -max-width="40%" -%} - -{{site.data.callout.callout_info}} -##### Example - -Just head over to the example [__repository__](https://github.com/codefreshdemo/cf-example-selenium-test){:target="_blank"} in GitHub and follow the instructions there. -{{site.data.callout.end}} diff --git a/_docs/example-catalog/nodejs/voting-app.md b/_docs/example-catalog/nodejs/voting-app.md deleted file mode 100644 index 32b186e7..00000000 --- a/_docs/example-catalog/nodejs/voting-app.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: "Voting app" -description: "" -excerpt: "" -group: example-catalog -sub_group: nodejs -redirect_from: - - /docs/voting-app/ - - /docs/nodejs/voting-app/ -toc: true ---- -This voting application is a demo with which you can build an advanced composition that uses `Python, Redis, Postgres, Node.js, and .Net`. - -The demo shows how to create a complex, micro-services application and push images to your docker registry. - -## Looking around -In the root of this repository you'll find a file named codefresh.yml, this is our build descriptor and it describes the different steps that comprise our process. Let's quickly review the contents of this file: - - `codefresh.yml` -{% highlight yaml %} -{% raw %} -version: '1.0' -steps: -#build all the images - build_image_vote: - title: Building Voting Image - type: build - #Important: rename this image to a valid repository in your registry. For example: myUserName/vote - image_name: containers101/vote - #The directory should be relative to git repository that is used for cloning - working_directory: ./vote/ - #Dockerfile location should be relative to the working directory - dockerfile: Dockerfile - - build_image_result: - title: Building Result Image - type: build - image_name: containers101/result - working_directory: ./result/ - dockerfile: Dockerfile - - build_image_worker: - title: Building Worker Image - type: build - image_name: containers101/worker - working_directory: ./worker/ - dockerfile: Dockerfile - - -#Push all the images - push_to_registry_vote: - title: Pushing to Vote Docker Registry - type: push - - #A candidate is the image that we want to push to registry - candidate: '${{build_image_vote}}' - - # You can push the image with whatever tag you want. In our example we use CF_BRANCH, which is a variable in - # the build process, accessible throughout the entire flow. - tag: '${{CF_BRANCH}}' - - push_to_registry_result: - title: Pushing to Result Docker Registry - type: push - candidate: '${{build_image_result}}' - tag: '${{CF_BRANCH}}' - - push_to_registry_worker: - title: Pushing to Worker Docker Registry - type: push - candidate: '${{build_image_worker}}' - tag: '${{CF_BRANCH}}' -{% endraw %} -{% endhighlight %} - -{{site.data.callout.callout_info}} -##### Example - -Just head over to the example [__repository__](https://github.com/containers101/voting-app){:target="_blank"} in GitHub and follow the instructions there. -{{site.data.callout.end}} - -## What to read next - -* [React example]({{site.baseurl}}/docs/learn-by-example/nodejs/react/) -* [Codefresh YAML]({{site.baseurl}}/docs/codefresh-yaml/what-is-the-codefresh-yaml/) -* [Pipeline steps]({{site.baseurl}}/docs/codefresh-yaml/steps/) -* [Creating pipelines]({{site.baseurl}}/docs/configure-ci-cd-pipeline/pipelines/) -* [How pipelines work]({{site.baseurl}}/docs/configure-ci-cd-pipeline/introduction-to-codefresh-pipelines/) \ No newline at end of file From 048f6198c7328bf012269b05dc327c6078f86155 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 5 Dec 2022 15:44:49 +0200 Subject: [PATCH 17/43] Update nav.yml --- _data/nav.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/_data/nav.yml b/_data/nav.yml index f8d73493..2f4e9fe7 100644 --- a/_data/nav.yml +++ b/_data/nav.yml @@ -312,9 +312,6 @@ - - - - title: Reference url: "/reference" pages: From e0c8739ed79f5f8a773940e19b0f578dbf48a6fa Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 5 Dec 2022 15:54:55 +0200 Subject: [PATCH 18/43] Update home and nav yamls --- _data/home-content.yml | 52 ++++++++++++++++++++++++++++++------------ _data/nav.yml | 4 ++-- 2 files changed, 40 insertions(+), 16 deletions(-) diff --git a/_data/home-content.yml b/_data/home-content.yml index 18f73ad1..f6e9d505 100644 --- a/_data/home-content.yml +++ b/_data/home-content.yml @@ -116,20 +116,44 @@ icon: images/home-icons/administration.svg url: '' links: - - title: Manage users - localurl: /docs/administration/add-users/ - - title: Single Sign-On - localurl: /docs/administration/single-sign-on/ - - title: Set up OAuth2 authentication for Git providers - localurl: /docs/administration/oauth-setup/ - - title: User settings - localurl: /docs/administration/user-settings/ - - title: Access Control - localurl: /docs/administration/access-control/ - - title: Audit - localurl: /docs/administration/audit/ - - title: Codefresh IP addresses - localurl: /docs/administration/platform-ip-addresses/ + - title: Manage users + localurl: /docs/administration/add-users/ + - title: Single Sign-On + localurl: /docs/administration/single-sign-on/ + - title: Set up OAuth2 authentication for Git providers + localurl: /docs/administration/oauth-setup/ + - title: User settings + localurl: /docs/administration/user-settings/ + - title: Access Control + localurl: /docs/administration/access-control/ + - title: Audit + localurl: /docs/administration/audit/ + - title: Codefresh IP addresses + localurl: /docs/administration/platform-ip-addresses/ + +- title: Example catalog + icon: images/home-icons/tutorial.svg + url: '' + links: + - title: CI/CD examples for pipelines + localurl: /docs/example-catalog/examples/ + - title: Go + localurl: /docs/example-catalog/ci-examples/golang/ + - title: Java + localurl: /docs/example-catalog/java/ + - title: Node.js + localurl: /docs/example-catalog/nodejs/ + - title: Php + localurl: /docs/example-catalog/php/ + - title: Python + localurl: /docs/example-catalog/python/ + - title: Ruby On Rails + localurl: /docs/example-catalog/ruby/ + - title: C/C++ + localurl: /docs/example-catalog/cc/ + - title: C# (.NET core) + localurl: /docs/example-catalog/dotnet/ + - title: Reference icon: images/home-icons/guides.png diff --git a/_data/nav.yml b/_data/nav.yml index 2f4e9fe7..a07b4e4a 100644 --- a/_data/nav.yml +++ b/_data/nav.yml @@ -234,7 +234,7 @@ url: "/run-integration-tests" - title: Fan-in/Fan-out Example with Unit Tests url: "/fan-in-fan-out" - - title: Codecov Coverage Reports + - title: Codecov Coverage Reports url: "/codecov-testing" - title: Coveralls Coverage Reports url: "/coveralls-testing" @@ -283,7 +283,7 @@ 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 + - title: Deploy to VM url: "/packer-gcloud" - title: Deploy to a VM using ftp url: "/transferring-php-ftp" From 245e51aaf818c5273fafecc6dcdc9812d8dce6e4 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Mon, 5 Dec 2022 16:57:05 +0200 Subject: [PATCH 19/43] Add images for examples --- _data/nav.yml | 8 +- .../amazon-ecs/ecs-pipeline-deployment.png | Bin 0 -> 149420 bytes images/examples/amazon-ecs/ecs-variables.png | Bin 0 -> 63280 bytes .../checkout/add-new-microservice.png | Bin 0 -> 36843 bytes .../checkout/add-new-microservice.svg | 1348 +++++++++++++++++ images/examples/checkout/simulate-trigger.png | Bin 0 -> 16139 bytes .../launch-composition-example.png | Bin 0 -> 88377 bytes .../deployments/heroku-deployer-pipeline.png | Bin 0 -> 24621 bytes .../deployments/heroku-deployer-variables.png | Bin 0 -> 22204 bytes .../heroku-deployer-variables2.png | Bin 0 -> 24433 bytes .../heroku-vanilla-push-pipeline.png | Bin 0 -> 30160 bytes .../k8s-deployment-CD-pipeline.png | Bin 0 -> 196608 bytes .../k8s-deployment-ci-pipeline.png | Bin 0 -> 404628 bytes .../deployments/k8s-kustomize-dashboard.png | Bin 0 -> 163136 bytes .../deployments/k8s-kustomize-pipeline.png | Bin 0 -> 282660 bytes .../k8s-kustomize-prod-endpoint.png | Bin 0 -> 151762 bytes .../k8s-kustomize-prod-pipeline.png | Bin 0 -> 265678 bytes .../k8s-kustomize-staging-endpoint.png | Bin 0 -> 156887 bytes .../k8s-kustomize-staging-pipeline.png | Bin 0 -> 265419 bytes .../examples/deployments/scp-hello-world.png | Bin 0 -> 9809 bytes images/examples/deployments/scp-pipeline.png | Bin 0 -> 24205 bytes images/examples/deployments/scp-variables.png | Bin 0 -> 21826 bytes .../docker-build/auto-push-to-cfcr.png | Bin 0 -> 134857 bytes .../docker-build/build-and-push-pipeline.png | Bin 0 -> 112659 bytes .../docker-build/build-dockerfile-root.png | Bin 0 -> 123040 bytes .../build-from-other-git-repo.png | Bin 0 -> 40663 bytes .../docker-build/build-spefify-dockerfile.png | Bin 0 -> 120246 bytes images/examples/docker-build/cfcr-layers.png | Bin 0 -> 246652 bytes .../docker-build/docker-build-arguments.png | Bin 0 -> 171864 bytes .../docker-build/two-docker-images.png | Bin 0 -> 41642 bytes .../docker-swarm/docker-swarm-pipeline.png | Bin 0 -> 34200 bytes images/examples/gs/gs-download-pipeline.png | Bin 0 -> 175598 bytes images/examples/gs/gs-pipeline-vars.png | Bin 0 -> 67945 bytes images/examples/gs/gs-upload-pipeline.png | Bin 0 -> 166656 bytes images/examples/helm/helm-chart.png | Bin 0 -> 11782 bytes images/examples/helm/helm-deploy-pipeline.png | Bin 0 -> 40284 bytes .../helm/helm-push-and-deploy-pipeline.png | Bin 0 -> 63114 bytes images/examples/helm/helm-release.png | Bin 0 -> 38267 bytes .../helm/import-helm-configuration.png | Bin 0 -> 16721 bytes .../integration-tests/integration-tests.png | Bin 0 -> 89250 bytes .../mongodb-integration-tests.png | Bin 0 -> 76282 bytes .../mysql-integration-tests.png | Bin 0 -> 63820 bytes .../postgresql-integration-tests.png | Bin 0 -> 72561 bytes .../integration-tests/preload-data-to-db.png | Bin 0 -> 122547 bytes .../redis-integration-tests.png | Bin 0 -> 112990 bytes .../nested-pipelines/call-other-pipeline.png | Bin 0 -> 123686 bytes images/examples/nomad/.keep | 0 images/examples/nomad/nomad-ci-pipeline.png | Bin 0 -> 93934 bytes images/examples/nomad/nomad-ui-deployment.png | Bin 0 -> 52344 bytes images/examples/nomad/nomad-variables.png | Bin 0 -> 13801 bytes images/examples/packer-gcloud/.keep | 0 .../packer-codefresh-pipeline.png | Bin 0 -> 117300 bytes .../service-account-variable.png | Bin 0 -> 18669 bytes images/examples/packer-gcloud/web-app-url.png | Bin 0 -> 18870 bytes .../examples/php-file-transfer/pipeline.png | Bin 0 -> 24772 bytes .../examples/php-file-transfer/variables.png | Bin 0 -> 21627 bytes .../examples/pulumi/pulumi-access-token.png | Bin 0 -> 21502 bytes images/examples/pulumi/pulumi-pipeline.png | Bin 0 -> 82319 bytes .../examples/scala/multi-stage-pipeline.png | Bin 0 -> 21087 bytes images/examples/scala/pipeline.png | Bin 0 -> 25716 bytes .../examples/scala/single-stage-pipeline.png | Bin 0 -> 24797 bytes images/examples/sealed-secrets/add-app.png | Bin 0 -> 114225 bytes .../examples/sealed-secrets/app-secrets.png | Bin 0 -> 371042 bytes .../examples/sealed-secrets/current-state.png | Bin 0 -> 210575 bytes .../secrets/mozilla-sops-pipeline-vars.png | Bin 0 -> 15080 bytes .../secrets/mozilla-sops-pipeline.png | Bin 0 -> 27867 bytes images/examples/secrets/vault-pipeline.png | Bin 0 -> 20813 bytes images/examples/secrets/vault-pipeline2.png | Bin 0 -> 6256 bytes .../examples/shared-workspace/volume-list.png | Bin 0 -> 135008 bytes .../examples/terraform/google_cloud_json.png | Bin 0 -> 14622 bytes .../examples/terraform/terraform-pipeline.png | Bin 0 -> 81284 bytes .../unit-tests/fan-in-fan-out-pipeline.png | Bin 0 -> 530506 bytes .../unit-tests/parallel-pipeline-examples.png | Bin 0 -> 26770 bytes .../unit-tests/unit-tests-pipeline.png | Bin 0 -> 96431 bytes 74 files changed, 1352 insertions(+), 4 deletions(-) create mode 100644 images/examples/amazon-ecs/ecs-pipeline-deployment.png create mode 100644 images/examples/amazon-ecs/ecs-variables.png create mode 100644 images/examples/checkout/add-new-microservice.png create mode 100644 images/examples/checkout/add-new-microservice.svg create mode 100644 images/examples/checkout/simulate-trigger.png create mode 100644 images/examples/composition/launch-composition-example.png create mode 100644 images/examples/deployments/heroku-deployer-pipeline.png create mode 100644 images/examples/deployments/heroku-deployer-variables.png create mode 100644 images/examples/deployments/heroku-deployer-variables2.png create mode 100644 images/examples/deployments/heroku-vanilla-push-pipeline.png create mode 100644 images/examples/deployments/k8s-deployment-CD-pipeline.png create mode 100644 images/examples/deployments/k8s-deployment-ci-pipeline.png create mode 100644 images/examples/deployments/k8s-kustomize-dashboard.png create mode 100644 images/examples/deployments/k8s-kustomize-pipeline.png create mode 100644 images/examples/deployments/k8s-kustomize-prod-endpoint.png create mode 100644 images/examples/deployments/k8s-kustomize-prod-pipeline.png create mode 100644 images/examples/deployments/k8s-kustomize-staging-endpoint.png create mode 100644 images/examples/deployments/k8s-kustomize-staging-pipeline.png create mode 100644 images/examples/deployments/scp-hello-world.png create mode 100644 images/examples/deployments/scp-pipeline.png create mode 100644 images/examples/deployments/scp-variables.png create mode 100644 images/examples/docker-build/auto-push-to-cfcr.png create mode 100644 images/examples/docker-build/build-and-push-pipeline.png create mode 100644 images/examples/docker-build/build-dockerfile-root.png create mode 100644 images/examples/docker-build/build-from-other-git-repo.png create mode 100644 images/examples/docker-build/build-spefify-dockerfile.png create mode 100644 images/examples/docker-build/cfcr-layers.png create mode 100644 images/examples/docker-build/docker-build-arguments.png create mode 100644 images/examples/docker-build/two-docker-images.png create mode 100644 images/examples/docker-swarm/docker-swarm-pipeline.png create mode 100644 images/examples/gs/gs-download-pipeline.png create mode 100644 images/examples/gs/gs-pipeline-vars.png create mode 100644 images/examples/gs/gs-upload-pipeline.png create mode 100644 images/examples/helm/helm-chart.png create mode 100644 images/examples/helm/helm-deploy-pipeline.png create mode 100644 images/examples/helm/helm-push-and-deploy-pipeline.png create mode 100644 images/examples/helm/helm-release.png create mode 100644 images/examples/helm/import-helm-configuration.png create mode 100644 images/examples/integration-tests/integration-tests.png create mode 100644 images/examples/integration-tests/mongodb-integration-tests.png create mode 100644 images/examples/integration-tests/mysql-integration-tests.png create mode 100644 images/examples/integration-tests/postgresql-integration-tests.png create mode 100644 images/examples/integration-tests/preload-data-to-db.png create mode 100644 images/examples/integration-tests/redis-integration-tests.png create mode 100644 images/examples/nested-pipelines/call-other-pipeline.png create mode 100644 images/examples/nomad/.keep create mode 100644 images/examples/nomad/nomad-ci-pipeline.png create mode 100644 images/examples/nomad/nomad-ui-deployment.png create mode 100644 images/examples/nomad/nomad-variables.png create mode 100644 images/examples/packer-gcloud/.keep create mode 100644 images/examples/packer-gcloud/packer-codefresh-pipeline.png create mode 100644 images/examples/packer-gcloud/service-account-variable.png create mode 100644 images/examples/packer-gcloud/web-app-url.png create mode 100644 images/examples/php-file-transfer/pipeline.png create mode 100644 images/examples/php-file-transfer/variables.png create mode 100644 images/examples/pulumi/pulumi-access-token.png create mode 100644 images/examples/pulumi/pulumi-pipeline.png create mode 100644 images/examples/scala/multi-stage-pipeline.png create mode 100644 images/examples/scala/pipeline.png create mode 100644 images/examples/scala/single-stage-pipeline.png create mode 100644 images/examples/sealed-secrets/add-app.png create mode 100644 images/examples/sealed-secrets/app-secrets.png create mode 100644 images/examples/sealed-secrets/current-state.png create mode 100644 images/examples/secrets/mozilla-sops-pipeline-vars.png create mode 100644 images/examples/secrets/mozilla-sops-pipeline.png create mode 100644 images/examples/secrets/vault-pipeline.png create mode 100644 images/examples/secrets/vault-pipeline2.png create mode 100644 images/examples/shared-workspace/volume-list.png create mode 100644 images/examples/terraform/google_cloud_json.png create mode 100644 images/examples/terraform/terraform-pipeline.png create mode 100644 images/examples/unit-tests/fan-in-fan-out-pipeline.png create mode 100644 images/examples/unit-tests/parallel-pipeline-examples.png create mode 100644 images/examples/unit-tests/unit-tests-pipeline.png diff --git a/_data/nav.yml b/_data/nav.yml index a07b4e4a..b4e93928 100644 --- a/_data/nav.yml +++ b/_data/nav.yml @@ -207,13 +207,13 @@ - title: Checking out Git repositories url: "/git-checkout" - title: Custom Git commmands - url: "/example-catalog/git-checkout-custom" + url: "/git-checkout-custom" - title: Non-Git checkouts - url: "example-catalog/non-git-checkout" + url: "/non-git-checkout" - title: Use Git Hash in CI - url: "example-catalog/get-short-sha-id-and-use-it-in-a-ci-process" + 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-dockerfile-in-root-directory" + url: "/build-an-image-with-the-dockerfile-in-root-directory" - title: Build an Image - Specify Dockerfile Location url: "/build-an-image-specify-dockerfile-location" - title: Build an Image from a Different Git Repository diff --git a/images/examples/amazon-ecs/ecs-pipeline-deployment.png b/images/examples/amazon-ecs/ecs-pipeline-deployment.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4d3347d40a39497e1b2a37e6da611a5216130a GIT binary patch literal 149420 zcmd?QgLh@m+AX}}?%3Kvr_-@*bf-JEZ95&?R>!t&+ctLWj*T5BH^1|p_dDmk|H2(> zEQ}hpp0P&NgE{A_3YC=>L4wDJ2LJ#_Vxm9g0RUJZ008Rg6YNJz^-5Ol#|>6rLgXjl z{huSdqbTm9<+H7*nmqu3fbq`>0Z2{9{b+=95R>`^w+D%bz(q+?|9cAn_yQ37`CZXv z<#gR!QxTNW{VMatK5+6AGNb~9f3IqwVi0T&TBJUrdI9?qeyx=QhSb+*)ph*Zvcgb) zHsieI;`Qtb0qtMF(2CTeenolz5_D30e>K#km{CEP`Oi+Mg!3t1S^TDmBOtGZWLZr+ zFI2AGM#eMjFZcw`JM25{CtbIW7s^!7etaScK>g3<9*JQD@_)7b2zd^N_WAEVAHC06 z&;jWGdF!92<|$Et=>Imh!%qtF<^MJo@&B$dlnn_u_rlI7lv3(t4XuHcvG=|7vdo)v zH>v?5%$zB*-`_b~Qb~u58&{BEqoUE&8aH zRcpeB!|0T3g8f&26I08pR#0}0WVloH^Ayayi?+g}>5ND}^H=%cS=-E6AstzVm8dZd zDZybzB0{Ekzy%S11{jP11LOUMu8|h`iVN=hmJ5}A{u7zl%MNy;nm87daLe_bH&BgO z!DGfgir?$-M;;y;(C@~U+yD9l-l%ANnvCF?2ne%Syx-k;TvE}PQ# z3}-PNDfv~e+NP|6fnar@GS4wUTGTlH$))TCrrYEbMw|%hZNp;D;$uJ(d_z~%bg^pg z4^|hbsNJ>)`<&Dn0nc<1A!r9=*hrC7OMdyhxEVr!c7(zex_U)yW@d}Kub?jUppC42c>KF5kX$ z%m`%m_oV{C%hz1Hwxl(26pXh|>`DYnPk2ZMUZcAtghdP>pOOEftG;;oa#clhTkcEE)eXEQR@Unx$xw7dhXTltXKr#(u6W%dcLNCgrbaL?i%1Gr=m&5pQ%t z-^MCtTXHc-u4at3N;}ZCd{@I^ROY*x!KL#n@o@Y#4U@+BEmQ1&du+~)c zjgirkr^jUpRnc{C-_IxK%poJXxXQASmn)8Z@wjS^FlhNrOueiW7 zk>xDn{yjAA__lZ(-)PA_IW1CfZ6Cp#zCajzsA<7&Z6$;(5RZ=?vSC$vdApBbtx7oU zmJun?eM#%|OE>O7h$+%W6!mCWm*LcT_&3Qgvgr+N_pTfb6&$JFfE-rV^n(ZAyd_7b z2>j#drY3wVoSPaeHEd?R-?TXiS@No?zYZz+HY(>Zv6p3or1$iWbTKzSA*Iu;^=0mG zLq_!Bq7^`hVEtX3n@3#8t0OkP&t%4T5DLM^iY(lQERqO&)OSX5j3Y;NJ=6EDiO-|> znmoN0H}$ylLs}b_waG~bVtV7WliXUS4P@on)Y#^gWz|ZRJp%yKpKn@`dV7=j#^v(7 zTuHSZA^h77n=4h|d^%fSWD*lGW7U+X$nMyl>h}?!ku$e-gkbA9U(oz8v#Rb~@ClGL zwciefgr=YU_zkNM2nq4Kw`BoX>KQ~GMGCD{ws~7PxIbmbCL!Q_aHypK5D**C(1^PZ zM@37P$n+pCL5$vPR6d9ex7!@&eGhsb?xpBS9Mf*4V;CfL2RBc9f#pE)(aC3KmvP2Z zIC!dtf!w*KLqfTi&+wo8d?k1!$6POT?yImUbjcVZ`Q5Wp{-uf_{GS+A2*Qp06`7Y>~g&+B24%4rA&b1%ugHN&FOR|0r8%Z4W|J%KaGywwAj`_ zK-$PJZgf7tK%)u*I)z3l8S3@Aw#GttomkN@Qc!_=N7YCqibcktArUHGv>ps`k+Tft zJFTJ{xb_lgdUME`leE!0%eNwq2@x$3qtMJlQ>Y>otlu8V$eykw6nOnh#b1szu{RMN z6EGXh@^TQPpqsmEUYL&|iS@1nL|^#MIKHudx+v$v#L6@_^&>-FLmW%X zs;UQPWsTmjM4WG`q^5dJOPyQnu-n91Rjty0IFN;FR>vCwXyLW29-5WF#JjVzkC>}I zsq^2!Cd9bI2`PJON+s^nwGrCeEwrpVagGAlUKb}TtLjZX`qvB!SwCnniP&rS94auK zQv)<0vnYFcAaEHh@Zu|ANVIQRc8~7^OHf2p)6#J{_k_;rKhUdDi=b^a43#SKxGmh#Ts{Qia)`zH>k;Lf#&}ZnaND-P1MQpZ_%wF**X` zOE^r!gmv)>em5h8$~E{bhq{y2W1Uwx1Gk>-e5j6?h_9%cKjZ@$Fg&-ys@fW6~Aw^Px3x)p?LA-qd0DD@uri@ z%bQUo+LAST&g$s64gCM+3-t1O;hiMeEOXb2CaB_Dk1;@7_d*=0nSg$5RC>a|LT1Ad z-q$rG;U9d}4YEV+B#97vViKaE;gZuH+?J7+Wn&Lz;y6pVBi#v|!S(E3U2PgDXNi=` zScHRUzXY=SE%kI#_A@_H_|lSFg3VvAZPu(KmBaUwel5S8A@TC6F}BeA z`4E?#JS;n?uW4rEXxrnon3fGOGBo#eH!mG2Lho8vCjga5TdQ4^$`>(w)_%v9B!Qcd zj6&D8SNBCaY33R+F9X*`Sj)6p@jPP_yhz`%C00a#qq=x|Xe24)MT-9Ls5+UmGqib8=cK*y5+~!G9 zu90f5=!>|(UxYM-3k%1h%2;L%(#Xh1k7l;6l66-09VNHa);~RK?cw4=+0sZ9)LdE| z$@|Iv;d2S>_?|zeE!06)uOTzM?d~XW2(M<%ePs|wxfEBQU_8{9>JQzMMpx>D0~S|t zBD-u9K(-l~f>m*f8N3ogvNxangKj8FS`U8-2AB{=JFT{rB8aREc+@+~Cjub8LqGY@ zFrunGiFo9hLVdoZE-Gzz1X{J8Lg(HD=f)MapdM|mvEy4RuF&Vf&*#9D@-jRJ3A2>D z-~?VEv}JdkIB_)HfEQ3vZQW_!AGP0OgqYr@&BGQmMRoqo(%evR zq$!FQ_&`mdGDyLJB=Z!{+dt6W=MXBsIPfT!NzI>=U+SG5H*uma^tzNJeg+Ulp0H9d zxS*kKg9>0BYW8VCCV#H)?q7PlT#>Skk)=JrR7RtyUw^#jlt$cWzah?nJuVOWP1M$x zWC)8S%4{uyne0wcWxnJQZgKP>}3~DU?RP>_C!Qg=z)^pMnE#g0q2v@F!6s( zgC4UAhbdC^zHiiX;AE_7_o+1$^=+&s`2eJ+%=%NqI;FlB8O`m}Lpms1XMqxol8DZ!M~Or+TFvAm;?249 z)L1#EQ{7e_AwHx_blyu@oUK=bSh_Z~z0S21j6^PLr&mS0-HZhr5%J>ysWFlG68Wo} z18bue%slJyxo)NF_TLj3*+Wy|B`3SfX%dGxVv72>+D@=dmygdP1m>n}Zl3s(=dFTM zTM$|fNbsX{?=aIp{QASFIw$6Sv7#uTH8K<=Ju1J5fwO7a=^u)(-kTXKvpmNbLE`4! zeo{(F(-xw43LP|voWpxS=?><^GoIfL_n#vhNH0g&i>V=@tWP(X$;z3@iT6|%GIdb+ zvStVT$htW7&gQZ{hjg8`ljP<5e?>*VIC2qjH_ETrA zXxcyN_a}p_%s`g5@nWq|x&nDEc&y2_e1g2q)peX<88mt0_0W#u`W{#<9b2Wp8Id=xs}Y<)&iGBzzu4}%EyH0@kZo&qve4h8?}Wo!a+xKSZmLb--QxW5{RtmA zH0Xxp<9_EQ-7s)^_Bi&e`Dw86$22LP?M(aj9a2QM=n=*f(V!7!vPK5;Eaw(JDDYE( zU$$8SLPtmsktEnTGO2W@@Bmo+>V!f=QRLM9bAPJ>7>`3^2?wv>QQ@C-k{ij5 zLr`M*<(y~3WpnT;wGlyO=5f>Vdx!+)s~568D7j^R*;omidL?q|_7^es(lXrR+?asT za?bv|R>GrUMfxwV8J_lgFefBLAiu+#MJ@mB8I7aREm0+D*5#3kl&71{*>gy*iOA(o zl%GCC&2D$*Rk*hHm+6uDeeMPM7vI%L2U%LXq?!LqlnT-AcYC8oXw)WWJ%kv2vr8!U z-H1TGC;#|Hk1}A~fQQHYMAQo``{ebJVHrNZw>>t4i86bzHa9MWV%LSyV0(LXcfPYK z4^KKjsOch_zglL+88A}sV^(=~0m#+|^^?nI8rC2iY9(Y(7RA_JdYb1$GkNANUHaWdq-6Y`ShR z_4xi+R^dV1ZW{gKi;u+-a*%r&`Jx@4a^dMa>4R2Z;nkUXk37FfJ*BcY_!&*Kh)e=nwQaaigL_ zb+;Oj@Q*1gD)jved?p&Kbpc%&m(X*^*N+?D5h@Bhx~}R#>92lSoRS{6i#=7ZgaiEt zE6IG@p9|NU3512nMzTDlQx14jb)4-+%?wlmQ<}PJ?Q7tEdn{~5i~Y9<7^1y*I3mox z*ZlDKP#D$MfAM`_x$IQHD^Mz{_%H#K2bw_r-Dz5}V@8 zKzW}F{Ax$cwj2BDbPmTe&B5YfuF6RPCP2np+fTsx7t%fo^U}+V31)m|U*M1T946kk zJyzov%Ajt3C4#3tL?Mbn)CZ|4>b|%akWH|>>NYtockC9Cc%urm&zqdiP|nQ)-=A2V znr)0>e1cE!<=X~j2?!fr{l`JoV0Ywkxc9*lA6)(?FKBWCg8GEIv9kfeicGW348b4M zda-Z!7oeg~P`KQTVI>scnu>*x?`%`Sz*SgFAB2N2*9o^6eosGF<4fH)lK|M?_q8nu zby!-QDub(y`;XTQJm#D;s^hb6FtQV>_!Dah=D8oTX^d%km~ zCu3u~5>w*+r*DG|IBQgHNzOM~*%A6~^2v&^JQe$>V+S3BQL~9O-L0JVmIA9$X9syG zUfn29IMsPyVwErqTr__pl5wV^_3)(`SAF{Mi8`?456`@Zvn|1DoNNC+?_Jg1hB`%- z{<0|MDqSx^EZ>rvuy@Y-tcghrV6ltk(ocST%&{uCOp>GcIxZ<2zAD7?sVM9`pC{;4 z7qQj1QdAuJOygCR1E1ec^N;fA6$dF_h}pARAGdXyUHp&|I0gq8YM(sjnE29mDHAGcU^1RlL@0={s`a-*RFxl>MWbOw1+$E zOp=Wm#c8nqldW05Rgabu0@_#H04A?#Y?C4JvaDN-VupF~jRMv*Xx)lgPW>glmido%XtEVD^Px+sA?)HD)uz9Uu8&~dU1qPXM4{gNS^98i@l|N z9OA%pUVad&Q}?7|{z`&>xxM?WvaL=-}Fo*eBxQj?5d{udxaD!+vx7oImf8j>-OP0 z5!hp}-{FjV_4>?0{hFbH6nwUrycOlH3Hpv$5LIDBHqk@uLnA%v!{16G`HCH%$+`0N z0cvaCK0Jk>&lDXNS%0{s%MQ;6-%0V2(NULGLFV)>0#g3w<&UgGl(-XX5OYJF+qn}P zOk}&;D*8^+|DEXQA5LwM3~^c>8@q5AC^oz}Y!Y6n zd9JH$i|c*uHt+UF4$mE*gJAguO~1T+nFX#6lqsfL?L9v5EI4Wg7Ql876xe5)CDAMC zZQRo{9Hgn;z6obqGd%r1LQew3ciwi`ZOLwSvUWIxIwijOh6!AqcS;Cy&J_*Kt}kz1 zd$R?pse#ay4~g-|@{_RZbkhSuSLn98UQoJd9DA}$UW{)n`ZXD<1bapJCWld&A5KQ> zIix5&2F3S(wo+|&Bs!LD{Ea#je4#Os8|2;c9Y)8g;aL0*hLFDR0 z@on7j==!H-C48;2u`Cf+`20_(uv}6^+Z5+GiwhBfzn_-jPWvg$c?5zMY+`D8aoffw zVywo7e}B7_AH}T?!}s4_ycu_NK>+eo?Pm%84cf%u+fj*-+w@Yq4Fkxw+{mNk=jw+D zLoGeDH`c7v!Ir*W7Wt;HAXsg->mOuepwFuZ0gM6ooG!f)-qWJmc8c`SPFSJhElJ)RF$UJb=u~vWN8I5P)F_)GaV0X&8&7r`I++9ejMwRq#lK zl#WEwY~Hc1vzDWAbQ-s2d^E=!9&!4bxNcuMNut93Z{_hHP;A|6hsW-@uRjxw6_shZ zm$Z8Fc#*Zf;>Wr_7wM7g9mvuU$;&>Urt|vKadij>{SrU|;d~8uR?~iU5S^l}B=bJa z2>IMiHkS3UkZyF!lQflzlofY7XmGoR&UfeWc1~Oa@Eqcsnrq^IPU8=K_cGzuyJPd{ z+)gTgTrk(a?_7U#u-`OQ@&JE_pl5yA!s#+adoh#0nbBx(==yaj(t_RI76b2Cjb;$w zC&v@G&UK_(L4P^^R>U5JftF)dhL`4p}ZndA9tDFaThnBq;syI%W zJ;Z{@K7JbGOUqV4@#^f1Ehy@gur|em${mRDFYZHg5Jp1y_N?g+g;3{?wA_*3U;6IZHubZ3420KkWl zMJxhRCM+%5kzru5@DE=Gg3w{JZz*Vb(`|1xXYYTNAm(>Ld#}ii)KCL3NDWr@ownk- zwx{FP#ijz;7;wr)hj9&VOj}54vbIMO0D9x9T|tKaF#-LyznQgnxyEbDr2~7F^aB^1M}fB?)b_XnC8$!V z{kOfX6HflO!oIEGAL8go*P4pLv%?gH$#BgtKEqybx^Fw}+1Ac`_-m5HtPR0C7A zphV)HhDD!DflErV<2Ay8GiL;WXT*==e2y_sG)Y{JGm}Twh&wG{HJ>LM9IBJaBOYnS zdmD-x2v+U=rGzxg3t)&COp?V}`myiY`_NzSoz9hzV+e+p!O#E1#~K5DR^H1z7tuT( z-r;-pUhqHB(r>l$7MPX;)s9n z@0+vf<>QTa^#uiHO~BL66Y4n+Q2FGx@~YLwPrxVp3oAiMFx=7OxQse&5l;R#pdmG( zA~RQ@Q=$_AbIw6KvAkJ=+T-$t0)%*KA_mxD8Kf?&lAI88K3(D!?1Pmfm4#qaiFkiKtv5 zR+twkVcF8gMAN6nsR@+|J;)pXOS&<|%w8(<&Y7Dti04NS;|`T^^x?8%7ud!Qh5r%& zQOck0xc>Gj_Ju`RI`9`G+t;uOSCNq}Y-rc%=phd+53j}u!gs{KkG@Rf^~6Ar0Yl{8S;60wzx@+*Gs4RsD5JJL=25_sr%Azk z0;-)wOYd>gEt9wm6=QL2O4OG5*09;b0VH#*F! zk8zcw6Rtjtb2ZsT2(bG+cA>MKkfcNM(&zXMMtt3xE?$)HrD1*?2PVno`l_=jU4Ab@ zY5YqDh^5r7M4cfd51Cz;)qKT6*doFpj4A5p9K2T}ElM~aUS4Cze1)NjhAj_WxeI;O z5gA9bMIBR7a>!9H(=9CpR@V7eT$mT{)85Y@xchO`Z0)NB+U97PXlS2eI{otzh!?YI z#@a#TF9)Yw(rm>cuTGyfi(>aYU1{m4w`(p$E(P+k_V8BmqFOp|i;+lrWO|&y2yZv> zb?f=j8I-ymI?#6%qpcjw2g05|M3L?b%&@-V6ip`9EwA4udUy4VBU{-G6!Y}8HHJHw zc_oh?HkIc}#!)Kih1-K1$5RTP5ZMt1Mp&FYkF)5!PtUybI@j|5@(W=b z57jAezBB*QIHF}TnLE8RA{-NX7Z$~Xfh>edS#Y%Qpom-DTi|p4d&Q2-xGPs2zt~Ok z{jEX3UB}OXPNbLP=mekM;-Vo}NH#3Pj%x`o9jr+So30+tj?B3c=0qs};)l7m(>CbCI2SKX5F}cd83eHCfaPALY{bJ0VXmqI zFaMTIwn_x$Fph|n(VpX1f+(OEi7#3JtIuYWdaJ7I5lLpCebJck3q96lkH}p_276dk zolIaZ8!B4YAFh4Za!HB4dgH4*N6+-X*y4VC5O}}BnVS6^tE>jFvLt`tDjKHQ!3|*) zo_%?YwM6zY6Oy7Pn5;TEeOICQRMw&Hr#-wv9l z&=;YOz+r$ta_dPu5)B`GFl{PaU>mMsh8EBAOAjM-RuH%NRMOSXCj4VP8mCV8l0REJ zI#JL37t&1?-wCzbGz|*6%Mt?Psnu^bH5TpEh&@f~GdU~sOzkGZBeRXQKYVvOQkQmT0)zn$I zVnA^};hMi7Z7^5*bETf|L|S{j+<1HEs$#=F!N&OQg&;zr>5qBqCVefLW#%jQ5V}gu z@nob}J4$?=D_FwgQt5`~H~_Sqxq`Xbl*Xc#))_~NB^@6e6vyjKKSEw%2;8Dx9;r0~ za>*kU`{BjZh6IKRyO|IS4^FxY9Ee^!B@S-V#FSbS)b)+;8=0L}`ZUikYEm z!jeFDzc~SYvVm1TQR7b^Ge7S#<(EjWNe}Z^8|kIdjowyoy)CNVswI9E%TFp!R4hYm zyg{O)!)L7nEaAeYFtMhD5PGs`wKHgf3*i7YzwVcT(Fz5HStPL!`DVN<8zHd&)W?wX$E;Jg!bthc`;Ny(1}Vj* zOy|J0U2Ae-KG9Lm1-{>jST9F^bz;>1`aMxkLNp`SoE8ZbRLv&IA+TS|V=5Ai_G+4K z&!)DVYRqv5zU^-4UNwY-k%e!1>*t^&0KpT+YYu$AV&N%G&qcI6hWqPk0(Nqdh(9#Qb&Fvk{@ZqCF?o_(Q6 z39aiyuhDP*Cj2g$5wnCZ`YT*-X9Dk$#F2;;fADE_UII5?_nl7#J`*=L);jJ_Fw04J zm{ad3CDzbeF>KrOF6{b))GmEZ;{HYV@IQZsWv*SUDPIZXrj6nXH%6WDDuRV+v#$}r zl#y@uJ?Xe>rTT`nInjCwwbaMM6;!aBCNL+YIjR2UdWKTe5l6i4DD%PZBasNYMcz5r zg-Tkuzza#duM0_p)^ZoTBR~=9Yhj9#^vah2pV3M1u3=w~K<)NQRua6+-maf?qd;HR z#Utta#<}}}_4RV$%?h~7+fbuv7RK6*h)*R*2TlVF&rB`&*}97)$?zaMN@s(cagQ;s za|a;Jc27lz#?;qi`%GavrQOR6B2bo^S@&MvD;+#0=#c;_FhYdoX3M*qhgngKC7zMd z-qCG@D=K(?^T!&SJ#6x#+U>ex%0_2acJmVeoSP$8Y4j{!B8{_d0EfDqoUrYH*xJOS z?hG_jnq$^~@sw>Y9^sM3g)g`y5*{)R9Gw})tWPZ!BXs3(5SZj?7Lr5_VG37vW_g&~V2Oz82W^sW9GPcctXYxl zE+Eb`Ip4q$qU=<;hnz5_2NUU=YM$J)y%M)})T%`5^*nJQ+RQ}fP&#+AJ3hAv^9B6^ z9-w~Sa?)oriHqUSdc=}YOVE$~^5-8w*lPKH1&a^VlXL+k$+&=P-0h^-B^1@iRZG>o zl#R^bdjs5*J3pm$#@zR@ELU&KcvzS0XnGPq1*hO9@unqZM(wzLqHrJ(E2L#t42rqq&dVJt~BL{3}xj2<*(M;eDS3O2*CzoSk4yGAz;_%(jD;fCpV{TY?glF zu_kyw%b7lBfu!^nL=;lr7yB8V=aBc^-YoC5B^0o0&BaCFjJ`TPi-6w4#MXPG*jG*Q zx*T|RS68Qyh5+za;m(@GF%E6@GUNO2R2$to<>t9ro{dNDqR}3GCot%au=~W%^7w;% zr@^gl0<--}nIoea>hi|8qEps3P%Lc-5#Jh*GwS1-tm&|J5B@0r5gzbV!{^?S$3_Q1 zQ7w;F*mfa*Ep3#qVAGvHT5(9%K-trcOdq-Cgo4iw&HD9w(tZzf3GZDh8n8^Ox`LSS z0x!`56>%@9lH3>80Ol_pTxft!``Y|Wq7LWkUeW(8?GGN{Lg#8ua{T?#g7JXQm|Cy} zri?t+%ud?LI8kA2{TNU+Xny9q$=~2cUv2+|1;^^zEmlg3j*{PqUPN2-yYhGRl2K`9 zt3EL;qG&mYdWB?`Gl0Oy5LCHkR=yJP0O;kX^c<7O~w8Jf8o@sr3g#Xfgq214< zescvIGqa=`LV-~`4Psc~G{&dRW0lV^4a)W)D9Uy3N;z4xO2VR`kcSjnw(gflGfQCI z5j#}uKLXlAp{-`nhobzjPP=K-y)0a_wVOxVeB|UgJtTb)898TDtA@#7IkFwdUUh1C+mXcmLbmZfTNh^s$N3aAe_;LDBOTOe%yi|yS##&l zKv~S|kAU;?{0Qj^_h4v6qfA$+V(-ZXR!esADgrI*kenY_v85DZ8t5_VDzKFvSZFmlVe<4T z+~30Yq}-wlcG;3aouWaplKFJO?eIY9giy0^1u<62rTfm&@V4EwqNzHQo8$17ejD{L z5_^7{-=!r=`!|+_KgQSY@&~!7mePgYq`4ZbVfvEsXp@1PjW;cE_O&?qafz8CEpwrD zi=jZ-NY!rl@Ljpl`&#RD_UqBJY&K@z7PHn2p4sn)b^0LT*^Moxq`ra3jurSVr`DB< z@HCZ5vLSf{b0{Vj>_7NbZQj84MZs!(+KMOrXT51hS@Fu>wR4LxW;NUOpdAM&-hPEL z4%8T~go&QA)FQUg8%fee>e$n)t|&Sq((tO+*^QW?uq+ewx5eN3;)^kfF~JKJxjK88 z`-S8Nxd>;&sS{}u%$)lUa#yEy#YhUOx5~^x(#KjRXGNY)GQb+y6J<1ll=1X=s-LEn z9oB^_C8(C-y8G#vJG@E*aOoVYWRC3+WBZTg z6ZZ0H_taD8mgae%VFXOd=mT->xiuzw@-5xMq21X}7LDX}?ftl8_vRG~f0_b-t`>8m z0P0_2dFpWE)M;HZ`;D}v*ut&JkwMD}*uHP_I1~N( zN5wBTza!fdBVp3SriQme7D880Wkz!qcN{a@huN7Z#wC?AVagQ7F7Xh=2yFywK0Jt* z<%-JunmJll`|JmYF+IZm;GM^pY8`?3Vp%gjQgPBu61`RXc5rH<*chnkT%_sam3GM9 zqV5<=1gC`1_yMscjw;es`A7x6bi8mJ=8frPzFrnGjWRGF!C0-4p|awxI+(UaoRcMy z!MMG0x1GJpvqp+XbbjMfbE{Uja#}xi<|`=PcBePPl3k<5oR%|EETE~_hFjrV&yh$q zXJPhSGv$ctcWg0Q88hIgv-(NrZM;G;u9Otzpef1A_==9cr?t4s^ie&D#1sUT755wX zJ0z(xC_?(S?(+By7bu}1#*PfbxnGITa-isjm^8;%gRdigT3hgF-uOBo})jnI9WL_y72K6ou#)8SKKLH`I_0u6IToTuqaLU zpVmw|jmDdelh4os@%`6QDk)u`lHD>DMwDZ^LrnWY+Eu$b`O z>-rWJ#+-3v_U0XqB6PGENsIqq8O!C9rQ`JeQYnq4PEWqN-UUQ&Go^#M0V=d_WH9#M zZU7+jq}Oig@j&(WS7K`wQ)mma8ahlHzI`DTZqGheh^6ea={6x60kgCT|fK>@wiIUVlIXhNG=| zH8^eLWA1+=gGqr_cF5#6A zm)mJ4%Rg`hZ<=LXjIu;fq^wo!{Smyr6Lc}TYdO$tIqg0wFY4^fc<1ZMDntS{_hMCY zW^ig)?>hW$*;YPQIXG)jN?B>DVb|!ZUr1Z3_2i+6Bg)n3J)zCYJ<0ZJc-P#e9?>1) zrm+j>s4;pbPaITJO>(L;`9`M)ODA21=;vKZF2pWCR-O)5y{ITJkW>YdXs$*bwBX_Bg9>z zDn;_QgLg&*WGh@G{3m0F_cow(&6yNw2X|-z0*{)*M&g*Y31kU~J4K7kuzYxs(S+@) z<8&xq{HOj6=GP$39Ynn3F|Fy1PySoDI}z~Ny7-j?1GYgH5Qsm6ESA-*3p!e)<_n>B z9Hox%48F<|7I(w0BL*bYIoq(s%*C2Lq18oQDFoHg?S5*cs_-`_%!j*hk75TsvVPdRLep7q%#o8nKppD%NS)z|bwFo9HW!%w>){b8PRTCrZ z<99`-+R$J^-O~QCNOfzXxe&9$N{XMz_rSW9aVCpzcCe&q_cwk3Fz>9k*7r)5^njvF zb7XAQ*_69FNpd>X$u(f%clmkhZqJUqwMh7e{e1xy5ZO0_mBxhA>z~H>6?=vnp($w5 ziM-v?p)CaNw$QDgWJoWnCmlP9K{Zh)8GQ;D+~xwOTD|R&iG^~O+bpVe^FOtnxVGoC z?_bW&sB7s|P<;KmM_TpC+*Q4NCgOh+%x#_@=KA)9~S|NfcLeSO7^DHxjkL;sQ&S+zUB zZ`AB>@<7l`e&3Qlt4vq(-bo&o{$R4~B3nk?qCMU4q*7e(CIYy#$Dp&6P&`+nMMb!yD4bm|DV`BG77xHh$=c5x+9>EsTWgulf#Jf7(-w zL5-hDj;o_fx(TKXXACUP-@e^c`VMXkrk18%% z-!S$e%Wu~E<0n~Bcm{sA=%t}I^8+r0EdB|{-Tk&^V-N2TJD50tp_ zUEuZ)t;ZBzG^!1+rwBPI(+`y{1Wct4UOH7d!s_d%7EZDT1m_J-;!d&kU>fu{EQr(T z9u{{XtE|{;uD27fFCnjZ(l^u5kE?MhenkKMhC( z!1thw)2YpAugcEW^w^4(*?ZiC&cpXXU(FYCb>W=Ho+De2I;_`FXxr@V2I$)PduRS| z23C)EBokg~r4DH<9I>@hO;k5G7v6sjGWdpKr8&n%x!uRaX&R20?fq_h+cw!WJ%V3Wo`xWJg+V5!o_j}BKS&;1$1z)_-G~~M`|8AYdpRS87LLe+iQ-JAZWU8jkGiwWp-<>1J91(_&@)wVKV;{M1 z>MAJ$#H~&TxqdNP1^GVG?6b&}`EaM3V3X?sPQmJ$>N0R)B3)kG)tf0W8kiL^CoE;A zyJ9IZL-r@vltVwE@xNBm;hRkTop9A)Dj;vrpdZ8wPl=0}+<%;^Vdso8v)}*Yk|pdr zj%P9QIEqAIa1S?R?b4LEe$p6IO%<3}=Vvxl^yg1Q0BGMRPnd+$i^P7nl~E^#JZi7m zVYYVS8^vDCS(u4j1Z00)YjNsrgi(8PC2D5!4|8#XRt-y$$qy=UCbbgH?ge3?&)X4A z&8AMPnqltOkjj46bF7$S_1HR#lF@4R&3DdvsDQ13_)o*Ct**gA?c-kkQkSvI&_RCd z;%9iyjD}|Oit@BgO>O$%RNEv3GGpxULaT42X9t#!c%fM_qv=;cP7G|N*dW9tt~5xY zuTyLJQ)&x=2F(o?>Aja+7OLKSCuzvv?7mZjZ!6ltYuryrGREg?hLY+yjeZ2Rzptwm zdF+-;?S>r8Y%+*b)FW5ShCUa!IYe5%Cu=S8);gb)Rpnwg^#z3oAcKpAD`1Q2UL9>& z)!FDzGVmex_J;>SoPMdnUw2d34)D+o95|+E0@=Arn+Y;k72(d5=H#Bw-(HK2czm2P z5$4tF!!nMQ)sAx)&-1gshb!j|7&-0u?8^x@G%U&GDXrG1XC%j(XrUkjcZ?ayUVi
    ~J-cPLoMJ!NV?)?kjd=uh_It0#{r+@H)^D7;KixA@(G}N{Iz}S>HNWCT=>&9Y-oVq*uz)*TFEOAmLQv$8y!VgnFgsG+#ja({ z^|x0>>@T7v;~$V7**9wMwB{&e8(G&dcp{21=@etE{3u>DKkIp2?b*4+nah-=%;o|M zj_VQBdg9}KjvFKwm&azvD_b|Vi`mHPY?YYlE$Gc8W``NAzA;@auE?3(RT4Y!BmK$! zzIu!~f2+V#Qr&dS3|oJz&{osvv91)pULsru+n|nwOfiW)H2oq+s6HUNb0QJi71*4s z4vf&p?elZGCdT}VuHZ^zhYa>}(AH{9TuW}Uo?STH5p7Hf35ch!npikuTH8^#3=>{0 z1XH$h8q-G^6y~L$CP;{mMHni%kl(O0jB7RfVEPALPt>W+LNOVMG!VKAKuOU!J6z$r z?lP^`s$H8SZ5VF&kJ58G}oF#^?n~PL**!OAp54HEta_utRidwEN z9C=n*J$pq5+O4+{HxNo}OxpXRM^TMSH!i~p%SQP%GsO6^q$2<{y*O`1)Aa-G4LROiQc%8uKjzuVFdo^E(e1t=dHq zHO&m+O5F;+6N$?CD;HTL2!Pi(+Pu7?c%Al-l532qb{n*+bU3u3{2SE$981c@kDjI( zRUV~lY1Ma3k_9c!_VBIFj2Qt0K%$M=Q% zT8=73`y3P#%}j4ASjEe((qj#e7}~#1>d!b@A&qEfhuZ+ZG@g91<8guSk5;h|F@U_4 z{f#0i4Eurxp0i?s^OW5Z8OrW6H+-YjfaU#5P#bTw=1rv59$0!(EV2jCGL~s@JYOQ2 z@x-E?o;9dlhCs#~!)b!7aj$L%L9aotQFn$Y(~hBlzf3i}Ch6ph)z;_RVaRa89Hl2} z*-;qkcp%QMzMH%{3AqVUpdRV7w1-f4fMqLQczHiv_jJ&>%eZ)+QjVarC5jIk{F)#6 zNj98_8O?C=yQDhoE9Q6VzJ>#{_N6<|Zr)IoqI?GUN5_FY1e5+~BeD%TvcR zzjDWOk2|0e&dT|?qs|p#A;Dpa`}_P^A?f*j>SGyu__iIq6lExpXgIcd0a7PfO1xV~ zS$Xojem?IoT9kn}K1y+GbCU5GzgDhTdk<;!xC(#T!RexWSMh(c9wNGvFjwo)gwt7O zao}m_d36IXcNkpklU8h$PaK@i+*H*ck4BPW)IT@4-}8U;)$CN9C}JyXc{Dv5lH2{k zh73N`b?$0yb0_y)Pk6_!RZr6Cly}css$A#uk9}&mST1U4Gby0ote3Cit1qcgu&hOK7cR~D=;_mmxLtTTTm&VLow=b{m z^{=5S^|Kvby-KJBogz`~J*Nw46FBCtt=Md(I!Eiztmpdi{%r{aZv?fkQ~ZS)A`FX# zGtZT0p!2Q$K(U)}U&nx5RjG%Z$Xu@W37qmGg0nssU_4KK>8L@v_L zZchst8#!=9CyCFck>)c$wA!zJoVo7|xmkO6u`cD^&aK}5ydPL;w$>Y{dhEGXaNC(c za7=K1DS=+_;FH;3TIIPrL?I3PDgE}SH>9v~H!Jb<7fg}BODh(9*GA!;Pb@qrK#v}J z7`*D011hrnuC8{{WLuCfaewG*gBVGtbL*|N`SeUEjslkCCW@G1n>~(95}V@7ExJdd zyVR9YpW;he92p><7kPa>zPM2FmT8)uay)F?^c43``_Ve6_UL{avKV=?knUmWz~$y7 zP)KOgXr7l=<_!QO-?({Kh+K4v2zZ{&Kc9fR{ts_&0Tox%tc?y3AR$N$5}(zWYSM3_xN2CYLm?vkA`G1zRH!6v(|`m~p?-R${^Y0Mv1zga5E4u5|sORxt3e%v0|06dEMt zKDU+9e(D^2A_@vy8+Z0{*x#yyt$5E|GdAOrS&fart#zC(zdTN>%st`T^3e?6blPa{ zY@#*E&S@p1BCiocI&Y3HaTkw#}b1XrnT3HP}o+0&jcVV6Iv395c5g&Z$nQQqfpY zuewZQB*!F~yKuL1w{u~8OCEB17I3)ui+1YrJWb)8F`Tyclu2j1QE_7Xw8{E(UD;gM zJ&b9tM$Tl11DhktaqT>rPVaxX}}w zK8~hUGO-t2Izj5=;-;$SLSI^^lezs@mDh&FSyK|senz#e!riZuj=s1y8D<9wzi8s$Ma= z>H0w6x)N8{bF>C|p<0d&-;Z?nK96a78n_A}f;sl9V(HW>K|M;~N&MtPj9OsxwUJo+ z>Z(GwB(My}G0own&D+YI?9s}za$=_qSiUan*Ycd>uJ;xtW1RHO`TWf=Fnv5ToOfd! z;Lq%O5||tcC;2_3#AhBE z$B;1G6nEq@%HjGd$M&-Jz}ca|`Cn;TUiDY$b|x=8n&<)xJ_uPs?3!NbMX{kr|6m4K`3N@IjtmHDO9@oLh~L4N3op!=fL zh+FD*&F;hBt-_`98JiW7ZJJe+SFb@Jea+hH^xO`1@5+z+9}RL`!aoS zVryo+4%7auSr=JMgKIdc?DT^^od;a)(~}!VZ9&RxRP8M6p#Wvpdug4d7ywLL>FgXt zYv*)%2($EfXEcm|XDm(jcy(vIqH}%b%A`5J`Pxni^M2aobW!X^a{*FxqjP%1WK}J= z`|x=6NLDnRaHN7is~DN&WO0z3wCB(7=izuAcMkXTQ27YAyhdQW5{N2kt0S1PZ5)>jsE*dz;fpW`FS^zvc4 zPzC+a|H^(aEiHXd8yb(=d8QTKS zh6JnY0<7C7FN>OvtL=(UcaBZjWr6qaD9GPzy4m$(jz;f%99rMW@f9t~dlx+=;#%F% zbFx5~-to{Hv_zH&_LhuY@9KrGb+0xTy7Yq&`soKs2H8(g`tCVhUJZ{J!bM94SAAS6 z*RN-jNA?5i5e60d3!Q@_E?UeZUxHV@jY$TN>kKqsY>X#aIBhH)TOg~O3)5ap_A_c$ zpYmf3UnD+O)AfdC#mDaxOT%{aHY$&=n&I4J#4#L>ao#_|HdLg9^Jz{$NA+@VU~>4Z zzs**wpQs>Qj?CRob`0<+DMhcs_~?Hxl(+}PhU#nq>rJeTdJ-1d-1vcO28%4E8=`Qa)F|d zSl5JVnsr%=SGgc>vo?oIrZCZh$;ZKxaV$)vwDQ7WK-a(yeBq$oste44LY`a>N zH;P~Z-e?4TM0l}uP-2k4arH~j>7Zg_V`JNn@p0bL62|cj|+PIvw3t5e^88}TqC%sGA%QCpjL!C)d9r=_ixfI(;sv)<(Z;& zUAOS~Hg&nS32aLny;NlBg$kB>!_C@1RUYNe!Tl=+)%?^f7ADX%cl)xZx(V(mU?jEw zO#!6vxRcXXKmCZ4^PRcEX!(-8m8039yo=enL1Ud^KMhQw(fyKJGB>) zn~Ac!(ags?h1{B^iMh;Wd%I50Ivr17Pb=w9lV*hkE)wupHU_yZ zhr~>@5LF`Kg-{vxk$bX@})Cp zA(9{6UFdY$oMa^x_SWtUCndhT&TN*)_PYLVm&#-J=JYX5%;1W|^*f?V;(vHzZ(|7= zZkD)KXDC-^Fn@OH-~NHne4Rl(1Kog#&)?2-^=TM!kJcVvq%iDX67of`R-qWOGO%GA zKu|cQE(lL6^jkmc@i7IrD+r}e1U}B^@-e;hj}ZEbBI$j_uY4dY1}T=HP%Bhf&mV!0 zX$;HM{jIO#1~WM89zIQy5PcbW#G%0;S=65m$&}!O%dP3IJI7zEBFzOWdOd^ zYn=c1XQ-Q&!JC(mRu+FDq)E;&yS>@a9k-%bS;&{r)JJP;>bbb$Dlw<>B>{-`4t`u~n^% zvg`?;dg^{jdi~P$>h=z3tXjDQM0eo(1}Ec#-k((g9Bs}ro5vha&RbQQUk%^+M=cYq zzPR&bgF&Gj4jn?K^Qt1b0x$ldWDFjr_r>D;{7;3#HBr!|ZwKCOMa#6|dtf8~^GUe> zf3Cb72}WXjrve_2ArbGNS>CQGmXEv>psZoEzKdNkgWDyz99L%p8vcc{zQdFA;`YhI zVkTk{4lmy`uA^tUg#Xm$mk^0?c>C6xEY{>c{HHeCnn)xTP&G1?SZGdQ^x%rwt(u6W zCLCf6ITCSmc=#srll7Xd+j8EnzdWBk;p9DS~x)r%EV%YZAJ2n6Js|&$#V@2-@ILEJ$ zkMliuLI-^k8}Ia?*pRK4Bp*Nek9zmF-X!dBGK}xN}K|#QmABE3bNODBlfP zK(qI6g|@6dc`GImXqn9d=XuE;P+zD4$)5*|z8GXDZMS=*{RdagJ0 zbj~n&8n^mexAyMJyF0+Q_^_yRwJ9j``!n?gv<`k2eAVKrmoH<|9ZL{oce1=)IMgPr z8$pe8+!=E_I}>jEx$;;Jh z%OM{1YHrE#>M-$cjc0|I@ut|+9<345KMclIIJY5mH;@JbvpkcWAu+YMaaa+?+%|oP%>r{bcu@PB-LDCga}XX3uv| z(GB0ak>hna!Nzm6)N_RFS zH6AOJiqEo!ZqE8%Fx40Nt2)akKhls4>b2oqw3McWFUPGkH4;sFq&MIOkO2R}Djdf( ztYP_7M$ticrtK$-*ovHM{Ze~m7-F%z-%sMddso1Z2WGm?QI@s%>4Ff&1VY zbTmI>kTw|}(f?DGlGCxi){>1OeUxbCAzr{4mHp~>alUB8Z44IOIm|H`FWirK!~we=OpirYnm zbS))^sa-TJ8cFd$SzL*lAOdL}`+joq*XJiITrQ8XS4EcP`I;<4ucSAyV3jHP(i3U9 z=#7|8uKE`*!%5v$`F)NcWZtXqodm8*rAVLY@83?_y~GlfgR}a^9!_t$Kc0_o%Y0*1joP>2lJChrO64yp(??5y)nda!3+Biz!DA1qjlw#c zik0)nZ(wGWmk<|Btoeo#zgb%|^(p+-hCC#nCRaUKugzt=4T8?M5F%c%LrS_Dor70- zUEIbuTl3C@;n}tO<$_NGM3~8TO?tvhOmDAfSW4@0^6lv&)1^}Fdv5!q=BoMNoNwow z1EpkRqXf*_&A}>|uW_%=vb>wIS|`Y;r$M0op@M|vV(o?f7w1>e-BJS-;nh=y70w0h z&y@OzR0P(eb@&boGpXY}g#s+?yEe>6yb3Do7Kz**X%wqzP;nx3>7sSHLF~Xr2l?QQ=$RL0?8H zfw`b1DBZc!In7alXZU|1@#Vx9X*bZ^w6S0|Y7#9p9{H-y0pQ`VA495w`KBZO9??PW z#pP2Z_933SisDiJNfOEx1lLE8O8G`u-Dm{9Cp*)PKUC!)8p@5VNt1JdFeb+F69Ct7 z*IAHH%z5~k_c>;>_7`i<1iX&?M0*-eq#K8h&8)OtmOrC4yk_+IIXdS#AMSn#pEw|w zZ_b-wzKrs;I8mYbGd>pL(P`9eJzaM##xQ)ot;*=*2F2wmn}eO|tNpn#;YahFtX;(QX;>0(JG_M(M>}4@0N( zMV-C44_gnZ*a>qN6vg=1?N7bTx3*NYAj$5JO2+>#O!3G3Hrd^H~V&W#46xx_kr6(SzTerP@;n85>ZJy#}pejLdJ zriRczZb4ty6Pyf}S^mN%Pd@_Y#0zJenMAa+-r#|>-KG7LOHKG;2A9qcwO8YudG8Hk zdv`{sN+6z0@eNjlyyJ35i445$Z4Vm-hM+p!dN~yXe9|V2hqQ5wcCX9twLenRX}olC zXOC54BZy*jOP}H!8P(%W1`nTvFK(H~ucSCE;^r{Gn!NUU`B#3=TVBT~+l-4?<+`Sn>N zIEr7q)WW8fu_5QVKEup<@j@`WY|W?m-ZDq2;6u+9;q^=j?}9$Ur|acTjFx=28t`Ia z^@m7P9QxkrMa&%W=~-5)eA?b5x6t*HWV+9<$$K-$-*=pVcw2{;&u)3UW}RjC>csgm z>5%_^ylH!4e?>*E1MgB%?kr!iINQV8l!v?q_nb~Pd-AgOJf@6xx?U|WaOp#2^tRhF zx$)bcT~o9F-1sned+4hSrd(rZbYKKGEs*;xR34vW9Bj_&n$^%a<{U!^G{X9I_a&l? z>jBq2%$JXX7G0Dn_3Dc*XK~%zCR=UAB;h}U03}HI5rWrKkHZRg4>Gk1ybgx#jOGL( z%s$&BM^%>g==?F*>p@s#1Xwl}$`*SMm9}(Vg&aTRkJ_ueq&%GiMLASwG=CBXCY?$7;o&Lho zOfrIREFquzQzGvzdKt$nX%gTg%n^)$sm zVfRQG_`Y*1twNJ=VZcclyr4beHvnd!&_!Ti{9j|u&eSEyNr8S0x)kz72>SmK6zDKB zGmXHQ4~&Ka311-iLrX!JXx%RJqyg}Dh7WEHowIR;o%=j?S&9A+Sk60N{CPB^iL(!e z&cyXl*5EE=W*7ZWb%GXAUpa-0_N}Nv*kxbu-Es=*Yqtk{qn*RU@yfgZqx1cb^K4w= zFP4-zIGFiAJL-R)?dTh03B$!5^X~qqD;9$j?C1Yn{og_@|G(fl|6?aIXvv@!$Ho0q zJ3V55#qkA;T81wnI!*TRxkC%V#XFAa9)(-r?fq~8J>Fh+gu#7AJt|~bQt8t+mcnxR zU`DOn!TvJVvmY9~Tmz=o%Q(a=@2e69&Q%L`Xkgyg3>%FV9UGdx+N_8L6FzX?k*k(u z)pKwJJ&47mH3i*)pid)$k*@XM@Ro+6qI9rMWaN!R(6 zkVIaMd}De@qJT4ZrvxJWiC0dRDdv3w0ALhwelFvYA`jE)=_Y8PQ361t1pdVL80H6& z(tRq~F?PEOa}RGwj0P5nULK}OOZDT=Gz#*$QucaK+~_wOngii}WyeEOI<|bh?UZ)y zlwQ+k8fBWv7MxOUC}ST|3uhFvFgVRs4dxwWRkMj;!EnejA=(#nmGiz}sie-Olo?=N zaSQS9BEB=EPj; zZQFf&CWgZf&`VGqIETxGufT)`^3N}FOZFYB3}`v&W+Z@f!Yz?Gc>D~e1ud%p=zggE zu<2X~C#-jan=sMRfLX*94TQ!aOUyjnb-VCEH+uV9fe~4cJTZnS`3(xMOP3O-TeR;hA6|rS zCwdATj~Zz#FO(_1@(uH};n>9Wv6306#nM_iqH~&sw&+_Ll!56!}}z zeq2WX(KO|36czCZx+9kYW|2<>eI$82$$52tin++h3bVrMk`!6?LyL@&}h!(gRZ;aXG(-$oC<2s`_%J^F*%PueK|w$P04<77PgG}bi{EHCVbgAQupa3mK} zVcAS}EBChqcI2DKK_J8jE{(~?Xw0HDZ*|~=d?uVHN21kDUsQvsyr)axo)QQ0#+}yUHMt3XM#n(}#a2pEU~%m+JGY zZ%;rVII)35Unic$O=FRg=U||$N}wfhw)XBxl}$heW$f(&)cN5&GQbK3-N*<8G7R3c zyI+IKUpl10@tGC`q9Zp6PAxF+u#5XIV;Ba}yvM9nDQg@+t3)BGEE5D5-nsp;L{ z9TTY}W<3A5dkL@OP8;?1sn7wg6lTh*V^|YzSh|(kXeYi1)h5RPU{7T1l~u*;{$}|0 zF8no`X;iADFDl5_F3t%9VD)!t=ggFaqVf%wMg;|=5c@ioHTK^}=|2Rbdyv+1Dg+GE z(`W_-q;L7V^epE7KaVRI@VZh$kI&pKG!2=?f1o`<0YOqfENo^rz2uvoGwIQO1I$5& zJMQuE+GX}7C#eD6;e-v-3t-L^_?N;e4h7=hCl>tBk0S!a+$X{W@RDYT5lIM4Y3gE> z*_f$%)1=xyI=eIu&_K(CNz<}W``c$ACIl<9{7FF=H#G~t>ie?X1sFgXRqJj{euJP} zdk^&A;~x+*N2(|H+?UFchMYy^Q>lA*z6F`sN9DM-P`7=hk9f6rUK=tW>D$0mZ>c8g z52p@5=2xjpAz1NxI~vM~xZJYWl+!3koqJfcvGA@75PhBR3D9|&vqev~YJ8A3Te3cAx;TJ#Uavem4<^5CGu%XjG@9mS-etshd#fB!QVu2FCM3Z+a=;MRB zHflBM-QyvLSf!|P_4bLM=gW%sToAEgnAAR>ES0QuOSioXz|xwf5zIeg7~>V$$R=hc zHWi8->L0N-leFQHE0m@o=9PyMRmRxiUTDdV-8k=0Q)!wFoMN8E+22Fg@y-dK*PGu3?*hd7{LT=4aJKW~-6Cb~|f(aX)jmO&w zC+m@yKO^{1?a=-GX_~c zR+w=@)ltqHvhZ!>I=CxZZA_K|&lO7*c0b4%E`{jq!)EGDTKcqtYn;R?taD zwR;h6e2TK{kl{j*V*?fAF6|@2(Thk*sB)`m^0>K3eHLqK!%3~A1+$r|@(w%J*&C_x zO>YLZ+BbGo+fKBNaC&*3?qWS4?+Kp^VO60qTWnh|FMSaAA(E#au*@IZ-l4!Mj>T{m z8;eZ4YWUdCHP+oN%lCdLSKTqd9VXS<1w^|P2JEUOo~TnDI*X4Xs1TPA#kd%TwaOwW z){3IGtfq#MS1Wt!Qwbu_%Ny^87#_%d2KgE|Whmp65)T6K!r+2kd>JK1FBlG>_Xl{ zai270>W7M2MOvEW8bZ|^+oB+EW zP)R0zp}`^e3h-y2UR)9O_wTc7H8@rb@LnztGbfMFW~e7?$#?)8cnKu!jRWDJX)mvd zS?@0}wCOU7?V-zXIycO6$f|60h|#=4Rhz>^AyPple)cj%*L*62Tj=3D#AjPE?84UJ7^^pfx~kWn*-J(Cn5dc_ z$7+q6_quj|aNY$aq{|!=ipZ)#Nmfe6Ke`-keBWI-Z2Y>NaRJTwsI!ID!M3n3O;(To z=K>Q!-zL`g3eoB$+Jk(kGKxubrFlga4c|?e7qH!ooqCp>d$*i>7w#AITg1CZ2hli0 zP4Cqu=gih*m6b#{M~Bi+oyLtV##JYAcMVd*$7c(4i=%{Bm(bBc&%u2#ZAFp1Y}v^8 z+&rAur=4;<9Ehd8u)deBi)kl6J7k?}CA`&?_DxI&TFIx1sNAK871Rstl&LhRkfQ6Z z(&oEg78lrnP;`eG%YqcAMzLn4Yb0*7%RBPw>am?qnlo6P*2>=;s-3kLVqUUM8?H&w z&elrX@LG@VjQku{h+e--pF(nJ#C!STl!A38Zf|`XQ)v@4StEK7W z6!78W{JpN_z{366%4zN$r5#$~emc_NS5ZV2UAW<&gurVX38D0>M{BJqVC3V}6el#$ zbFIG5B{h6mM0KdIq7^C^7|puz_uPu2iuS%Bog_a%Z#be~jz-3*(veL_&&XbraniTI@i@irhc}3Jqr0D$hGDk0|?~61P)2QITnWt zCc_%nb(~;TE_XWTXbqni5178Ck!LOI**@ysVWR1Dq$3$fYmf+>$=1&hEhC=Z6Rc5v z%KM@2+eTblk}5Uf1UvI_VZkAW(_63UZ32+*J)*w454}QHc8%vp{7&R~McZGaXsf4? zZ9(k|?u)r7oUqECt!6Ok&j{_Pc~M#^X5n&G=Jb$|x+%h_!4);0$S9hr5?hWE*G~3z z_@iQbHz%ze9V_pN7?du;brpuKxSiHOVZtG4yxF4o4)2X9^4M9>dJz3;=IL*#)l@s1 zZp4wcMP`Z>rx71S|LX1tgTwRQ_GDHmsF%H!!8?*-EGCTSphXDV~VaO3rk#gX_2d?(lA42=G!9C!FT3%HBN^* zFJJ+l`LkyL^w!10#}fhMCO00P3*PLgPcBcpF!{qS&w;Fv{0qUol_GZG0s1@@!02Ks z-OdJv7jdwRwCVm(*7a50|B5R_`6`a%?ATNx@z!P(nbPj$d;{Fm#X-A(XCeXE0N~a9{rRuB$Nyzkk2)?{_j+T~Y!U(M z-{y9}S=g$r4|y#RI+t0u^+}%8NtO28Q&L3m?^ z_eJ+TX9KPv(b{aGL^!=qk>*YM#sz>!W4_TR7AzYpoiGHrGF)+t+LUcd$oi@D+98sg zF2>XZ2aNzH?{;keuaqVH_s=kh0XiKT@CN>WNq>@6*hEV^@f8C+RXq(C zpw#+Z>aAcA0p6D9C&0^8B~&3)?j``nMGrXdpa@3eyEqvXDCV1UfUEM~oGrll`!=u` z0yr^r~p(91oxYH(s{4>HASRmi^@W$Mb)*G+*AIDV)NS(0@cw7jG%v8ZB z>(jq`Y8Ze&`X~bnoeuDR5GR_JDO7;tcTEs2f>f<^sta*GiKrNO@gFuF#vfQG1wX zw$r=BFFWl$#U`W@cJ6VC1u(t*DW=EAV!5U91xHrixMaizdU}rs1z_q7Y=+oAj2a9C z-7JQQwp^jC@&nTVUz|MzqpmhgD~)+^h^!QC))_kpnSHxqy;+`vSS=!JYQc&M@d<#_ z0Dt`t4&p#y7%VjeN?N|3r~ZKWyvF`I^Il&ugQ_r^zhaL=xQ37)i>h5q!fYLpk>SqB z96wHWL#MRTY?nM>e|c?s;wT$*HkSP~H9QZ!Lu;@qJe~I05=G_mvSRvJ?qzzq`>(`I zOV(y0k<+>^{3YYya=m(G!!J_h=m1~=fO-iPzhS>+1^}PSKv7u~V?_vOF%U?%vYT}X zNfhHf@MYm-M-w0ZrE2Jf^G!u^P_KWY_xtgzz2A&VebqQfHvhsEwi`SCU{|l|YV@G2$S$RRLjL`abAb@gI0dIL65c z#C)IWXJ1GvaOBc))t|`mTqg0Q41CX$D3&l!#W+DJ_pws+X9)wjfC5cjxnj2PP$IH? zs_922oAa@ICw9#iguH&sV;MR3GP@OaD-?SXx`y}5(YpvnNqbj%8Gon@)Qz)%Ws>lX zdBA_G3$z5M~SgDbQr5kku@ zqiXf0P{fv_Cf!=2l(+2z?~-nnGsw zEvzV+MzuCBHx>I2dV~dF8jr$)yk31M>$IoFxvTt{79efjL`qD@B2FYGBx1L@H1?R> zpd*mD99;ov`5Fy?yrj@fjXRJ%)+iEyRs!(yjSPNkMS1%Hu<~~MAw!o}LFlvtIVb>^ zVhI#7{rLt4^8vUPZ)}O~DL?jmf&iAQ%<*M3hJw>L5JBk+spjy#!Df8_7AQc>l2wZc z*jRg5u)REoqmu9w?{fy}PzX8)gpct!{G6Bcsg8Pj=<$-%yrvlPI#iQqY(i^dLvcOX zrGS%;5E}~)Ir?Gm>gwZZ`R!aa_qv9pdN3Rtu3lwo*MHOrZl52_!8=0}& zAZJ&QWg%uKulvOknLk{m{-S%3$I*RFzRu64lI@mBYu}w{pbK8QSSX0;Bo~N^eZeZO z*jCB8?p0K5d_-GixkK75HOe#4t1%(kh6HE>n5^?-i?I(yf@2f(qNBZ3OWXTKoJ7DD zHwZ1;GEbBikK3`;E2WHuku5C;iF!!@8IzTkKeHs+#l_AWuDgad%xgLx+clCqs5w(I3>=$bz0ZJYqf z9C_WO;*i;4_|be*gROnLj33Sx!|{`S`U}aL_&6#jL@{{5s*nioiuXz_JIMt5NulCa zg;~cq1cBffom^RJ@`=?l;4>MGQOX{vFryxav?Dm8izQ$kol1K3qk>%ilY^fM*S(*&nchtTqow2`?)!4SEo-$aO#8YQFhViFrE54Ejdt@<| zo^?}=_Tw9{i{?5Ig!qjm&~r+8T^Ge4LJsHxlscw@I`$rQOxe#3_M~bRj^m5uhOESf zRU250tz%`Fhpt3lC0BmhZP3)H%+hL+og|M=)m9ovX}26?k7>LDpm7Fy#mQ2dbB%&QlmwJ`Wd~l)c;&%ngX}SSFc#NeK@H>id~tMwH&Gh^eWmUrm_{uD zpkn|mFm71-dp~LUJ3_-^^13P^&{FYkI&e0A)Y#Om{Q~^r2J?P9>Vv%Bt8+|Sn2VZU z*`<7oCA~u&Sd=rz@<0Nk2AJpuhaLe@{I?Z(gRpkA^6vJVm3M;ncM}rjdpq~xgZur} zR@_g+W@EWKAPj|j%>GLCCE9E_poATRWtA6Z zP4avZi~y*9)6tC~|Aa`y$iGn2OP@kNZo#mLfqW1wJlKigIBfKMSxxpngi;IC&|Fax z0xP1w0lgCrF9XZsRt$8y2@V1Bgv|ckx{k`Jl5L4xEE}wf(9Vg`a+Qs=N(TO3wu$gi zrGc14%M`DeI`o@_a$qap4Sd zYu&I=QSUi=s&IHJME!e+-6*$A06_hu?7&NjNJe8+oD8}<1@`3kL4c9iqa-@wDP#fc z%Kt*>^MKv?ImyEe0EE%~niL+*`S0jFdmzRT_8r7x3}}&n>De*rE{gV73t%%YuxtRO!S7Or3wIPmVTb~1sp;VYTCm1i z0Sy-lfs}ZPcR=k)PaPVlW%8yJsbWE#NTK~TbVGu510Y%Z$q67&O&o6aUozt}D0tcc zy#K#ioV7t14}Jm>jSj^sAdVc8X$gRr&m?3!z70@O-t^uFWR!@M=#v6G)OHvF*4=xF zM>YQ)YEPB^S7t>*F3<<07}!1?YnsDvjB8^-c9L~&2>=cUIS9wgaI>rDB(51J-aPl5 zJwh6oK$^tYhQO5qO|2mjCs7=872LD+w-r7%o)}Ef%My}=L1PcFx7>}*SzKnznh21J ziIHCCWCu)a<%Gb2nOVFrGvr6S%Eoh1(q{s!OAC0|X+uZbc(AP&%&GI%va?AAgxo19 zSM5}ks^^H@X_3G7PY&j{poB1kfCKX^3vzH0lcHp$V(-|aSY zc=c>>d?!r)jv+S*78N?^ko?6NoBNds-bSWGI@pC!_$Bx&&T^1Sva&zC^rWC$l2o^T zGYwM6`ZyA+-l*dI$;O9dv=+*4(Ez1X_mj*37<*fdrqzBOii&B#z=52#PldeRsh)=5 z!8YbuKy~iLQ&+Swkx;P2W@7vUlB68!XFLY#73 z3!NrVS?73pt6iDcjY&iDffw)^uHI$ao+bN2x`(++fxepqT)A}pj{Yy&YzrBwBzcYI z-=EIlB8m+5bjzVXgdA!vgD5LdeakRr-Cj3O>!k1C7(WXpb`9)L^AY06(33GeIv^k1 zAfMfysB6zR6I(dBn*P}O7!ck$+{g1GcvBA-XLVjI^lXDY+1SRY$QsuEcvA%gA?|dl zGf2IvzCQqWW0Z{|SeuU58xHpJ;uCrSI%td>8hCmQ@grv%`c@&7+sk$JMaT|A%a-Z< zHAV4`z$voad!<0|{BSJovTh}K+*dYUNzt$1k!JW<|8D8bvuS+@6J!;ZOcc7{igwqPI)Pq=xQH zdT?f!rfj41OXiXL%mkiYWum3#6D2b}BxGZss7$(@5aP9J9A#Tl-+^;jG0OyUYG6~j z3VzBwDtwinIb3?}>V07Hm|S?|;J^qE}g%Fa+AqV+=l74VDE6$KDf>i|pt7tk3hJ)X=W4zb3R5mJ;|QZ5Y~=;pRB z-w3a+CusR2b?Vy5f$hG8(owj(AQBRre)hSeJ;z{YRan*zPlK1ngOF82#{6#~B!+C4d&D65_J8ES~;+9DfNbu`O0G&=4lx*S(wyJ`48?c3hj& z&M&<<%+;*;@UWjedJ1`->Frgc*DN$$+7xcQTF8PNQf;;lm;d=yp3z++&`>QfL&sl` zM?lROe?Qe*News%K$34?t7sb4yzF_`^BvV5SvpSvEMy_9Honsd4G(ZvWv`AA5N{(xY3auSu6 zf=Ht5vvxO`gbrc7^V{rVKO&kJlFhW+h^j@$49~#SEu5#}u9hpSo=O>XNpT0BS_xPpn9hi82X<)36;Xj9ldf=X7@Dg~t&0wR; zc4Ins`thZw5IRErrF+L@PZnnE{umES5!DzTMnGx>L5#w3r9s8it5?wM%(?{BWPE6` zZxD(f!KbTaaGaNEx{Ki6SWI+cj?&nPo=#9u5Zi$qU&MO*$#*SG0`zd9AX_ zp$ThZ#BnfSAywAe|Wa$#6#=D9;!cS{UPIVl~8pL2Vf}t^P zJ}n>j2&9Pl*C6zH`-xbE+P>B3#~IP<;@mr9Pkx>%62^v>p?=oYViYamR614;DQG+r-IO21H*IAOo)v35-Inu1aWBgYuT3+C~8BJFK=sbU)i4Mp;WR``oLO$^!si_Cpb z&ZE2?B}F7^O#zb!R&_<#z(?GxwO(TVw)lcl+O#}GyQs736u_HHU-q!p`7zCk7?v<+A8DteU7XS2MGmMnsp?6#VowQT z(P?vd3X$$z$GBj~Xwuy`Env#b>5#TdO%990=qXqcv0I|VOTo7L>S4Yj7|ytnHI z+P#JKPLA<@iBY;%&6JzZ?^PGglTZ0wUwuR1y_4oRS@QL9)Y&&_Q(Sz`?-7ypiPBr2 zF|VdYyb5-gAIH(zy;Vb8$BXCFt9C`Z2jMhF&q5LHR8NeM8IZgDp{{(GAD^Mkx$AIn z;FQ4%qm(4L6l4<7{=x<)5t(jIiD(!R;_~a4<}|Dm77}S=$I0oY)t5!~is};eq-J)L zVwT}L&l7$|g<69s%J)LG`P(u@^LK5gd$alN-vv4C%pLP27O(L5%=Smd50;tDt<*A0 zcUsrB6JYw-eYv(fcr!hIEF7l$(NrhPxm9hAM((P;P+L`H%4o;tcOW+9|FMRLTF%r1rT$gUMGV!*7vAx(?rWj$ox zzJS7ko%WZE^UB~%+d}%j?d}EdK&ofxelgy!lb5H{n^v5?W&NlbnOk0bX8|ZDj^cFJ z2kEBK;5AngavL#y@R;nej>+1QT3jW7>>!_t-XObgIT?l=) z{28x^s7gx}$cL4(wG`Lz^egmjc-eZ#aPs^pvASy}~VbQ2IBj5QE2YnE5+G{zM_xJa$ z_)vjN*o}tm2z_bOY#$nW0Q_`upS(7V2Tt~qLI}@<8IPsU3|Hu}=gH8{aa$yxzccBN z$P3#IF$#_2*k7*J^eY3Y`KLo}Oxx4)l9?TmDFsI9pgO+EK|JQvrP!lh*16^%`}VCX zOZ~@Fr`EyAgUgmby6dYL0yEY{oY_k7`~huF556>*$@MX@QtJCWP*tgVF)&4W)odZ^ zh>f{=w?ltA)$*sv(VK7>G0}&TiomHt^L1@&zD8ZXfRC+cvWwl6t zX%mm_ms1o&gR|p25WpF$e*vvbKwV#{K_@;LP3MfzQGBZ^hO;D#ul$`Zbxgc!ltG__ z8(~+*rCAmwtI-&cL@}c*W=-}o1p9RN9OVKVFO(%J=2;MSo;&k_nGG>%8=>V?V?gE4 zr@Wh_`p>MV?hM&mSAcj{dGGD_#>{MfjLQGFpsZBGX7C{S#$SVr3bhz$cWnv}D%=VKM2JnU=G}^BGy@B=)q&y@K(Vsj~j=6eCw6ShRTbkhM-FYFLlbQJhtid|BMe^NPc_HL4kXf?ZNuaiW zo9z4*S6HLtBj;@sdEJ9-=;apaLH?3m`X~lYDUe39cGCZ?oD6lle;ax+8`u_&p;Xo| z;+;6hZj@ZTVrfb{VfV_d;=1MiCw-pR_~t)pb_(+X{a;OlMkpWNi091Ba=r}Ey( zK3CCmY0kC1J3im9`3|9{oF811Z0lz@ILDP#&zUS=Wp$;=Iy*lSWn@Zf&=m*`t;v_h z;7xf#rIVLg^)S5pF<8{V^eRc?SB)*~fNcyJTs_vs2xqC$8FPK`BoMdWlKdcUx zEUSo8uJRgF!8b^yU_vM=_4&_=7Zwtk?N5WDa)jJ?Th?mqD^ zcb*0JKyu+rh7yZJ%Q;wJ@*&~O(yZ}AJWQnf$u@%C^E|b8S0l4u?qjy^r@t2QM4Vr9 zxz2FFTzCH;!oE5x%I9kw1VIErKxsi*q(Ne7r3FFh?(SL|7DT#1I#y6Xq`NzoZdiI* zx|fC}f9vP{#(Um>esh*HJDg|d-kE1^-H!(}(Ky@}THT$*XS43muQ!2NKIr7*D zyXPLJ#QKsgXWlKIIuwP4zoSwOtxD5>zePShpLt55tK$R}lqYDJ+;Qk$5|(l-BQ1k` zl2m^@&4GwA#j)k$`k9wU%;_GXP@Ay+C+|WG|4P{10*6@3c+1uc~6pw7W}cR^PB2 z+nTa7#>h}f_srHY4YwYfKN8+Jf95&x_BUH2MwvZp&r81V()^Iwh(h~Y+Ls&Zf{1!N zZCw_mKYdN!oT`|p9s8erIP(1f>tOwsY|t;qH@Ve+Fhw2d=vdoA>Z-PE4J}8j2hG1+ zjrl(Xb|(Yvj@#1nl_u=!?Vr)K**|N+fXXWy^fYOTr5-mvECT~M59(cGbosl-9rxF% z1Ae)kMBc}3*%q;MM*M6{zfSn*ZUK!)u;u-DZM_>WRXO;(1o%Zq`$OQ8l5+#GtoLMb zZGK)wHVFi@VW!W*k5U~|Tz=$6OjKfh?8U}T0mE5^!8rHE2}#OdocY9yO54+(ae3*P z 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
  • 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ⅇ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 T-{=oh@U?gMewC-n7JmN^o#(l+ literal 0 HcmV?d00001 diff --git a/images/examples/amazon-ecs/ecs-variables.png b/images/examples/amazon-ecs/ecs-variables.png new file mode 100644 index 0000000000000000000000000000000000000000..f9bc5fa162e7841557ba9d7d92fcdf42d791b95e GIT binary patch literal 63280 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 dF)CZfr@oz@wW)cgYAl04>x?%T + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + +   + step + + +   + + + Pipeline + + +   + step + + + +   + step + + + + Trigger 1 + + + + + Trigger 2 + + + + Trigger 3 + + + + Trigger 4 + + + + + + + Microservice N + + Trigger N + + + + diff --git a/images/examples/checkout/simulate-trigger.png b/images/examples/checkout/simulate-trigger.png new file mode 100644 index 0000000000000000000000000000000000000000..2c4da4ff4639ed61253356107d46c1a6d2fb3d55 GIT binary patch literal 16139 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 literal 0 HcmV?d00001 diff --git a/images/examples/composition/launch-composition-example.png b/images/examples/composition/launch-composition-example.png new file mode 100644 index 0000000000000000000000000000000000000000..ff5068a1efe2a3db512ffac2bf6c5c565bec5008 GIT binary patch literal 88377 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 literal 0 HcmV?d00001 diff --git a/images/examples/deployments/heroku-deployer-pipeline.png b/images/examples/deployments/heroku-deployer-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..3189634c49861393887862be9d08b05c5ac2a248 GIT binary patch literal 24621 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 literal 0 HcmV?d00001 diff --git a/images/examples/deployments/heroku-deployer-variables.png b/images/examples/deployments/heroku-deployer-variables.png new file mode 100644 index 0000000000000000000000000000000000000000..7fff37fbdee47f60c429b0dd4c76a21cf3afbe22 GIT binary patch literal 22204 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 literal 0 HcmV?d00001 diff --git a/images/examples/deployments/k8s-deployment-CD-pipeline.png b/images/examples/deployments/k8s-deployment-CD-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..551ff8404b2c9211b8cf23d872fd0a937658cb2a GIT binary patch literal 196608 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

    ^ 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

  • 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%0AOEJjr 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 hrpC19|Kbx)dvA literal 0 HcmV?d00001 diff --git a/images/administration/manage-pats/gitlab-pat-scopes.png b/images/administration/manage-pats/gitlab-pat-scopes.png new file mode 100644 index 0000000000000000000000000000000000000000..08911e5d3775e4c63ab962703fb4099a0fdebf30 GIT binary patch literal 316960 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