Cloud customer?
 Upgrade in MyJFrog >

Search





Overview

From JFrog Artifactory 7.17.4, the Projects feature is supported in the JFrog Platform. In the UI, a Project dropdown is added to the taskbar, and a dedicated Projects entity is displayed in the Administration module, serving as the main Projects dashboard for creating and managing your Projects. 

Upgrading to Artifactory 7.17.4 with Projects

The process of creating Projects is identical for new and existing users. Resources including repositories, builds and Pipelines and permission target remain intact after the upgrade. 

New Project Workflow

The workflow for creating a new Project includes these main steps.

  1. Set Up a New Project
    The Platform Administrator first creates and configures the basic Project settings, including the Project name and Project Key, assigns Project Admins, and grants Project Admins privileges allowing them to manage Platform resources and Project members. 
    Platform Admins can assign repositories to the projects in this initial stage.
    The Platform Administrator is granted all permissions in all projects.

    Setting a Storage Quota

    As part of setting up a project, Platform Admins can set a quota size for the total size of the repositories allocated for the project.

  2. Assign Members to a Project
    Project Admins can then proceed to grant Platform Users and Groups access to the project as Project Members by granting them Global or Project-level roles.
  3. Add or Assign Resources to a Project
    Project Admins can assign existing Repositories or Pipelines Sources from the other projects to a project and/or create new repositories as part of the project. 
Page Contents

 


Step 1: Setting Up a New Project 

Required Permissions

To create a new Project, you need to be assigned the 'Administer the Platform' role.

  1. From the Projects list in the taskbar, select All.
    You are automatically routed to the Projects page in the Administration module that serves as the main dashboard view for all of the projects.
  2. Click + Create New.
    The Create New Project dialog opens.
  3. In the Create New Project dialog, set the following fields:
    1. Type a user-defined Project Name.
    2. Enter the Project Key, which must be unique and is used to identify your Project resources. The Projects Key is added as a prefix to resources created within the Project. This field is mandatory and supports only 4-6 lowercase alpha characters. For example: rfact.
    3. Enter a description to help other users to understand the scope of your project.
    4. (Optional) Limit the storage quota in GB for the Project.
      Select the Deploy Beyond Limit field, to set the the Storage Quota for monitoring purposes only.
      As part of setting up a Project, Platform Admins can set a quota size for the total size of repositories that can included in the Project. The Project storage quota applies to the total virtual size of repositories that are assigned to the project. Project members will not be able to deploy the artifacts if the storage quota is exceeded. There will be a status warning message when reaching 75% of the storage quota. An error is generated when reaching 100% of the storage quota

    5. Delegate the relevant privileges to the Project Admin. By Default, your Project Admins are granted the permission to Manage Resources and/or Manage Members. You can leave as is or disable this option. You can grant Project Admins additional Xray security privileges, such as: 
      • Index Resources: Allows a Project Admin to manually select the repositories, builds and release bundles to be indexed. For more information, see Indexing Resources.
      • Manage Security Assets: Enables a Project Admin to create and manage Xray Policies and Watches. For more information, see Configuring Xray
      • Ignore Global Watch Violations: Allows a Project Admin to ignore Global Watch violations. For more information, see Projects Concepts and Terminology.
    6. Assign Project Admins to the Project by selecting Platform users and Groups and assigning them the Project Admins role. 

      Platform Administrators are tagged in Projects

      Users or Groups assigned with the 'Administer Platform' role are tagged as  in the Project Admins list.

      By Default, your Project Admins are granted the permission to Manage Resources and/or Manage Members. You can leave as is or disable this option.

    7. Click Create.
      Project Admins assigned to the Project can now proceed to assign Project members and resources to the Project. If granted with Xray privileges, Project Admins can proceed to create Watches and Policies and index resources to be scanned by Xray.

    8. (Optional Shortcut for Platform Admins) Assign repositories to the project. 
      Platform Administrator can assign repositories to the project at this initial stage or click Create and delegate this task to the Project Admins.

Step 2: Assigning Members to a Project

Prerequisite

Before assigning Project members to a Project, you will first need to create User and Groups in the Platform, and then assign Project members to a Project in the Administration module | Access and Identity | Users or Groups. For more information, see Users and Groups.

Required Permissions

You need to be assigned the 'Project Admin' role to assign Platform users/groups as Project members in a Project. The 'Administer the Platform' role has this privilege too.

  1. From the Projects list, select the Project to which you are adding users/groups.
    The Projects Overview tab under the Projects Settings module is selected and the Project view is displayed.

    In this procedure, you will be selecting an existing role for the user/group. To create new roles for the Project, see Creating Project Roles.

  2. To add users/groups as Project members, click +Add Members.
  3. From the Select User or Select Group list, select a user, and from the Assign Role list, select which role to assign to that user. 

    Alternate method for Adding Members

    Select the Project add members by accessing Identity and Access Members and clicking +Add Members.


    Proceed to add resources to the Project.

Step 3: Adding or Assigning Resources to Projects

You can include Repositories, builds, and Pipeline resources in a project. Projects as an entity are not viewable to users, but rather serve as a filter, whereby users gain access to the resources in the Application module based on their assigned roles.

Repository Resources

The JFrog Platform hosts local, remote. and virtual repositories. Local and remote repositories are true physical repositories, while a virtual repository is actually an aggregation of these repositories, which is used to create controlled domains for search and resolution of artifacts. For more information, see Repository Management.

Rules and guidelines when working with repositories:

  • Platform Admins can add new repositories to a project whereas Project Admins can assign existing resources to a project.
  • A repository can be created in one project and assigned to one other project.
  • Only local and remote repositories can be assigned to a project.
  • A project runs in an environment - either DEV (Development) or PROD (Production) or both. It is mandatory to have at least one environment assigned to a project and each project is initially created in the DEV environmentYou can assign a set of roles to project members on each of the environments, providing you with an additional layer of role-based access granularity. 

  • Repositories created in the project receive the Project Key added as a prefix to the repository name. 

The following example shows how to assign the Docker-Local and Generic-local repositories to the US_Dev project.

The following example shows how to create a remote Docker repository and setting the environment to DEV within the US Dev project. Note that the us-dev project prefix was added to the docker_remote repository.

Build Resources

The Artifactory Build Integration is supported and available in projects. All the information collected by the build agent which including details about the build can be associated with a specific project. 

Members of the project are assigned build-related roles to perform actions of the builds. 

Project Build-Info

When a new project is created, a corresponding build-info repository is automatically created for the project. The naming convention of the build-info repository is: <project key>-build-infoFor example, for a project named docker-local, the build-info repository name will be: docker-local-build-info. Note that the build-info repository is created by the system repository and cannot be deleted by the Platform Admin or Project Admin.

Rules and guidelines when uploading builds to a project:

  • Only Platform Admins can upload builds to a project 
  • A single build can be uploaded to a single project at the time.

To upload a build to a project:

  1. From the Projects list, select the required project.

  2. To upload a build to the Project:
    1. In the Resources| Builds tab, click Set Me Up.
    2.  Use one of the following methods to upload the build.
      • JFrog CLI Build Integration
      • Upload Build REST API
      • CLI Integration
      • Deploy the build in the Artifact Browser

Pipelines Resources

Only Project Admins can set the Pipelines Data Sources for a project in the Project page whereas Platform users can set Integrations and Node Pools under Project Settings | Pipelines.

Adding Pipeline Integrations to a Project

Pipelines Integrations provide the mechanisms that enable an external service to inter-operate with Pipelines, as well as securely store the credentials for access to that service. They are necessary for Pipelines to connect to a pipeline source, and for Pipelines to access external services through resources and steps. For more information, see Managing Pipelines Integrations.

  1. Select the required project from the All Projects list in the taskbar.
  2. Under Project Settings | Pipelines | Integrations, click Add an Integration.
    In the resulting Add New Integration page, from the Integration Type list, select an integration type from the dropdown list. For example, a GitHub Integration that enables a Pipeline to assign source control repositories in GitHub to GitRepo resources.

  3. Associate this integration with the DEV or PROD environment in this project at the integration level.
  4. Click Create.


Adding Pipeline Data Sources to a Project

Required Permissions

To add a Data Source to a project, you need to be assigned the 'Project Admin' role.

Pipeline source represents a source control repository (such as GitHub or Bitbucket) where Pipelines definition files can be found. A Pipeline source connects to the repository through an integrationOnce a pipeline source is added, Pipelines will automatically load all config files from the repository that matches the specified filename filter. For more information, see Managing Pipeline Sources.

  1. Select the required project from the All Projects list in the taskbar.
  2. Under Project Settings | Pipelines | Pipelines Sources, click Add Pipeline Source.
  3. In the available source options, click one of the following:
    • From YAML: Adds the Pipeline source from a YAML configuration file that contains the declarations of all resources and workflow steps.
      1. In the resulting Add YAML Pipeline Source page, click either Single Branch or Multi Branch.
      2. Complete the Single/Multi Branch form:
        1. SCM Provider Integration: Click the SCM Provider Integration field and select your source control integration from the dropdown list. Only integrations that are compatible for use as a Pipeline source will be included in the dropdown list.
        2. Repository Full Name: In the Repository Full Name field, enter the path of the repository where your Pipeline files are stored.
        3. Branch (Single Branch only): Specify the Branch of the repository (for example, master).
        4. Fetch Branch: Click Fetch Branch to automatically fetch, if possible, all the branches based on the SCM provider and Repository Full Name you have provided.
        5. Exclude Branch (Multi Branch only): Specify the Exclude Branch Pattern as a regular expression for the matching branch names to exclude.
        6. Include (Multi Branch only): Specify the Include Branch Pattern as a regular expression for the matching branch names to include.
        7. Pipeline Config File Filter: Enter a regular expression for the the Pipeline Config File Filter. Any filenames that match the expression will be loaded.
          For example, if you plan to declare your resources in a file named pipelines.resources.yml and your pipelines in pipelines.workflows.yml, then you might enter pipelines.*.yml.
      3. Assign an environment to this Pipelines Sources: DEV or PROD.
    • From Template: Adds the Pipeline source from a pre-defined template by providing a values file.
      1. In the resulting Template Properties form, complete the steps below.
        1. Click the Select Template Namespace field and select the namespace.
        2. Click the Select Template Names field and select the template. 
        3. Click the Select Template Version field and select the version for the template.
        4. Click Next.
        5. In the resulting Specify values file page, click either Single Branch or Multi Branch.
        6. Complete the Single/Multi Branch form: 
          1. SCM Provider Integration: Click the SCM Provider Integration field and select your source control integration from the dropdown list. Only integrations that are compatible for use as a Pipeline Source will be included in the dropdown list.
          2. Repository Full Name: In the Repository Full Name field, enter the path of the repository where your Pipeline files are stored.
          3. Branch (Single Branch only): Specify the Branch of the repository (for example, master).
          4. Fetch Branch: Click Fetch Branch to automatically fetch, if possible, all the branches based on the SCM provider and Repository Full Name you have provided.
          5. Exclude Branch (Multi Branch only): Specify the Exclude Branch Pattern as a regular expression for the matching branch names to exclude.
          6. Include (Multi Branch only): Specify the Include Branch Pattern as a regular expression for the matching branch names to include.
          7. Values File Path: Enter the path to the .values.yml file, which contains the values for the template.
  4. Click Create Source to complete adding the Pipeline source.

Adding Pipeline Node Pools

Required Permissions

To add a node pool to a project, you need to be assigned the 'Platform Admin' role.

Node pools provide a convenient way to logically group build nodes in a JFrog Pipelines environment. This enables you to run steps simultaneously on different nodes. Platform Admins can create any number of node pools. There must be at least one node pool created, designated as the default node pool, and assigned at least one build node for Pipelines to execute. For more information, see Managing Pipelines Node Pools.

There are two types of Node Pools:

  • Dynamic Node Pools: spin build nodes up and down on-demand from a cloud or Kubernetes service. To create a dynamic node pool, you must configure and provide an administration integrationA dynamic node is provisioned when a step is triggered, then either cached or destroyed after a preset amount of idle time if no new step is triggered during that interval. When used on a cloud service, this can help manage costs by not incurring charges to run idle nodes.
  • Static Node Pools: are collections of persistently available build nodes (virtual machines). Static nodes enable you to execute Pipeline steps on your own infrastructure. 

To add a node pool to a Project:

  1. Select the required project from the All Projects list in the taskbar.
  2. Under Project Settings | Pipelines | Node Pools, click Add Node Pool.
  3. Select Dynamic or Static.
  4. Configure the node pool.
    1. To configure a dynamic node pool, see Add a Dynamic Node Pool.
      Fields that are not required may be left blank. For example, you may not wish to set the fields to limit node count, disk usage, or timeout.
    2. To configure a static node pool, see Add a Static Node Pool.
  5. When finished, click Save Node Pool.
  • No labels
Copyright © 2021 JFrog Ltd.