Managing the Project Catalog¶
A Project Catalog is a collection of software components that are available for UForge users to use when building their server templates. A project is one software component. A project includes files, binaries or native packages and may have an EULA (End User License Agreement).
Each organization within the UForge platform has a project catalog, and each member of the organization has access to the project catalog, allowing them to add projects to their appliances. The contents of the project catalog can be updated and managed by administrators, in order to be adapted to the users of the organization. As the administrator, you can:
- add new projects to the catalog
- update existing projects to the catalog
- mark a project obsolete
- delete a project
You can also create custom OS profiles to include specific packages to an existing (standard) OS profile. See Creating Custom OS Profiles.
Adding a Project¶
To add a new project:
Under the
Administration
tab, clickProjects
.Click on
add project
in the top right hand.Note
Projects are associated with a specific version of operating system. If a project supports more than one version of operating system, then you must re-create a new project for each operating system version. To automate the way projects are added and maintained, use the UForge APIs (for example to add the same project to multiple operating systems).
Fill in the mandatory information including:
- Name of the project
Note
If you are creating a project with specific VirtIO drivers which will allow users to publish Windows images to KVM on Red Hat Linux, then the name must begin with
UForgeWinDrivers
.
- Version
- Project tag
- Category
- Maintainer
Click
create
.Optionally, you can add the following meta-data on the
Overview
tab:
- a logo for the project
- website information of where the project came from
- description
Optionally, you can restrict the distribution or target format that the project applies to, from the
Restrictions
page. The restriction rule is set as a regular expression. For more information, refer to Restricting Projects for OSes and Formats.You can add files by clicking
upload
. If you want to add many files, you can create a folder and add files within the folder.If you want to include files from a remote location click on
pull
. Select how the file should be retrieved and if it should be cached.You can add a license (optional). To do so,
- Go to the
License
tab- Select the license type from the drop-down menu.
- Click
upload
.- Select the file and click
open
.You can add a bootscript (optional) on the
Bootscript
tab.
- Enter the name.
- Select the type. If you select first boot, then the boot script will be launched only once, the first time the instance is launched. If you select every boot, then the boot script will be launched every time the instance is rebooted.
- Set the boot order.
- Enter the boot script.
Click
Save
.
Restricting Projects for OSes and Formats¶
Under Projects
you can restrict the usage of a project based on a distribution name, family, architecture or for a specific machine image format.
To set restriction rules for a project:
- Under the
Administration
tab, clickProjects
. - Select the project you want to modify.
- Go to the
Restrictions
tab. Enter the restriction rule. The restriction rule is represented by a logical expression with formatObject#field=value
orObject#field!=value
, where: object
is eitherDistribution
orTargetFormat
- for
Distribution
field isfamily
,pkgType
,name
,version
orarch
. Theversion
must be a major version. - for
TargetFormat
field isname
ortype
value
is the value you want to match with the fields. For example,CentOS
for Distribution name,linux
for Distribution family,x86_64
for Distribution arch,VirtualBox
for TargetFormat name,cloud
for TargetFormat type.- logical operator is
||
for OR and&&
for AND - carriage return is not authorized
- Go to the
- Under the
For example, if the project is designed only for distributions CentOS 7 x86_64 or Debian 8 x86_64, or for TargetFormat with type virtual, then you would note the Restriction rule as follows:
(Distribution#arch=x86_64 && ((Distribution#name=CentOS && Distribution#version=7) || (Distribution#name=Debian && Distribution#version=8))) || TargetFormat#type=virtual
Note
If your project is limited to a certain target format and you generate an image in another format, your appliance will be generated but the project will not be part of the final image.
- Restriction rule values:
By using the command-line tool hammr, you are able to retrieve available distributions:
$ hammr os list --url https://uforge.example.com/api -u username -p password
- Where
Distribution
fields possible values are: name
: the value listed in the Name columnversion
: the value listed in the Version columnarch
: the value listed in the Architecture columnfamily
: can be one of the followinglinux
,unix
orwindows
pkgType
: can be eitherapplication/x-rpm
orapplication/x-debian-package
By using the command-line tool hammr, you are able to retrieve available machine image formats:
$ hammr format list --url https://uforge.example.com/api -u username -p password
- Where
TargetFormat
fields possible values are: name
: the value listed in the Builder Type columntype
: can be one of the followingcloud
,container
,physical
orvirtual
Updating a Project¶
UForge provides the default projects for the OSes provided.
To modify the projects:
- Under the
Administration
tab, clickProjects
.- You will see a list of all the projects that are part of the org.
- Click on the project you wish to edit. At this stage you can change any of the meta-data, restrictions and files uploaded.
Deleting a Project¶
When deleting projects from the catalog, it is important to understand that you should check that no appliance templates are using the project you wish to delete (otherwise this may break generating a machine image for the appliance template).
Note
If an appliance template is still using a project, you can remove the project from the catalog by marking it as obsolete
. This does not delete the project contents, however users cannot use the project for new appliance templates. See Marking a Project as Obsolete for more information.
To delete the project:
Under the
Administration
tab, clickProjects
.You will see a list of all the projects that are part of the org.
To delete the project you can either:
- Click on the
delete
icon at the extreme right-hand side in the table for the project item.
- Click on the project item to edit it, then click on the
delete
icon at the top right-hand side of the project edit page.
Marking a Project as Obsolete¶
Another way to remove a project from the project catalog is to mark the project as obsolete
. This ensures that any existing templates that use the project can still generate images correctly, however the project is no longer accessible in the catalog for new appliance templates.
To mark a project as obsolete
:
- Under the
Administration
tab, clickProjects
.- You will see a list of all the projects that are part of the org.
- Click on the project to edit it.
- Click on the
obsolete
icon at the top right-hand side of the project edit page.