Skip to content
This repository has been archived by the owner on Apr 17, 2023. It is now read-only.

Releases: SUSE/Portus

2.3.1

21 Mar 10:30
2.3.1
Compare
Choose a tag to compare

This is a small security release since CVE-2018-8048 was filed against one of our dependencies (loofah). This release simply upgrades this ruby gem so we avoid hitting that security issue.

2.3.0

02 Mar 14:18
2.3.0
Compare
Choose a tag to compare

Highlight

Security scanning

Portus is now able to scan security vulnerabilities on your Docker images. This is done with different backends, where the stable one is CoreOS Clair. You have to enable the desired backends and then Portus will use them to fetch known security vulnerabilities for your images.

Note: this version of Portus supports Clair v2 specifically (current master branch is not supported).

You can read the blog post for more info.

Commits: 4cd875c2aa9f, d3454cfb84f3, f19094b98737.

Background process

One of the main issues for Portus was that sometimes it took too long to complete certain critical tasks. For this release we have moved these tasks into a separate background process. This background process resides in the bin/background.rb file, and it can be enabled for containerized deployments by setting the PORTUS_BACKGROUND environment variable to true.

The following tasks have been moved into this new process:

  • Security scanning: after testing security scanning more in depth, we noticed that sometimes it could block Portus when showing the main page for repositories. This was the first task moved into this new process. Commit: e0f7d53cb2b2.
  • Registry events: before creating this process, we dealt with incoming registry events in the main Portus process. The problem with this was that after getting a push event, for example, Portus had to fetch manifests, which could take quite some time. This meant that Portus got blocked in some deployments. Now Portus will simply log the event, and then the background process will process it right away (by default this process will check for events every 2 seconds). This task can be disabled as documented here. Commit: 6a4f7d7dca60.
  • Registry synchronization: we have removed the crono process in favor of this new process. Hence, the code that was executed in previous releases by crono has been merged as another task of this new process. Moreover, since it can be quite dangerous, we have added some configuration options: it can be disabled; and it can be tuned with a strategy (from a riskier approach to a safer one). All this has been documented in its documentation page. Commit: ced9b46a9064.

Note on deployment: this new background process has to have access to the same database as the main Portus process.

Anonymous browsing

Portus will now allow anonymous users to search for public images. This is a configurable option which is enabled by default. You can read more about this in the documentation.

Commits: 274c0908a83c, 9d6cc25fd0b4.

OAuth & OpenID Connect support

Portus' authentication logic has been extended to allow OAuth & OpenID Connect. For OAuth you are allowed to login through the following adapters: Google, Github, Gitlab and Bitbucket. Check the config/config.yml file for more info on the exact configurable options.

Commit: 0a5fefdd14d9.

Thanks a lot to Vadim Bauer (@Vad1mo) and Andrei Kislichenko (@andrew2net) for working on this!

API

An effort to design and implement an API for Portus has been started. This is useful for CLI tools like portusctl among other user cases. We do not consider the API to be in a stable state, but it is useful already. We will continue this effort in forthcoming releases. Commits: 2129833f27f0, 28f77d3352ea, 5a9437bba42d, 451e508bd86a, 185f18e98638, a9bdab58d150, 8b42887f83a5, fbe7e8d4ef53, 4a79f222f93b, fbe7e8d4ef53.

Thanks a lot to Vadim Bauer (@Vad1mo) and Andrei Kislichenko (@andrew2net) for working on this!

Puma

The deployment of Portus has been simplified as much as possible. For this reason we have removed a lot of clutter on our official Docker image, and we have embraced best practices for deploying Ruby on Rails applications. For this reason we have set Puma as the web server for Portus.

Commits: 09b722f56221, 9fd61ba7bae0, 6a3b8ca74edb, 2488791f8f54.

Production deployment examples

We provide in the source code examples that illustrate how Portus is intended to be deployed on production. These examples reside in the examples directory. Some observations:

  • As stated above, set the PORTUS_BACKGROUND environment variable to true for the background process.
  • You can set RAILS_SERVE_STATIC_FILES to true if you want Portus to serve the assets directly (e.g. if you don't want a load-balancer like NGinx or HAproxy to do this).
  • Use the new PORTUS_DB_ environment variable prefix instead of the old PORTUS_PRODUCTION_ one for database options. Moreover, in the database you can now specify more options like PORTUS_DB_POOL for stating the DB pool.
  • Portus will complain if you provide old environment variables like PORTUS_PRODUCTION_DATABASE, or if you forgot to specify some relevant environment variables for production like PORTUS_MACHINE_FQDN_VALUE. Commit: 06a405c4f5fd.

Commit: ba7b15ed42d0.

Helm Chart

An official Helm Chart for deploying Portus in a Kubernetes cluster is being developed. It is expected to be released soon after this release.

PostgreSQL support

Some tools like CoreOS Clair require PostgreSQL as their database. When developing support for security scanning we noticed that it was quite redundant to have two different databases running. For this reason, we have added PostgreSQL support, so you can use PostgreSQL for both Portus and Clair.

Commit: af1b8b6ca725.

Upgrade to Ruby 2.5

Some features required an upgrade of Ruby. Since SLE 15 and Tumbleweed will most likely have Ruby 2.5 as their default version, we have anticipated this move. So, now Portus is supported for Ruby 2.5. If you try to run Portus on previous versions, it will error out during initialization (commit: ea02cab5c822).

Commits: a2407506ff5c, d86d46c9313c, 46a5a34fda40.

Improvements and small features

Read more

2.2.0

30 Jan 11:08
2.2.0
Compare
Choose a tag to compare

Fixes

  • Portus will now properly update the image ID when a tag has been pushed. See PR #1054.
  • Fixed how image updates are handled. See PR #1031.
  • Follow a consistent order in the signup form. See PR #1119.
  • Hide passwords stored in webhooks. See PR #1111.
  • Removed reference of missing stylesheets. See PR #1114.
  • Fixed a bunch of issues related to activities. See PR #1144.
  • Fixed the pre-compilation of the cover.js asset. See PR #1157.

Features

  • portusctl: it will show a warning when using the --local-registry flag but the package has not been installed. See PR #1096.
  • Portus now supports Docker Distribution 2.5. See PR #1068.
  • Allow docker-compose users to specify an alternative port. See PR #1094.

Documentation

  • Avoid the confusion on the hostnames to be used. See PR #1056.
  • Clarified how the --local-registry flag works. PR #1052.

2.2.0rc2

23 Jan 08:58
2.2.0rc2
Compare
Choose a tag to compare
2.2.0rc2 Pre-release
Pre-release

Merged the PR #1144, which fixes a bunch of issues related to activities.

2.2.0-rc1

16 Jan 17:18
2.2.0-rc1
Compare
Choose a tag to compare
2.2.0-rc1 Pre-release
Pre-release

The 2.2.0 release has been focused on bug fixing, but it also includes a couple
of additions.

NOTE: This release candidate has known issues that are coming in the PR #1144. These fixes are to be matured but they will make it on the final release.

Fixes

  • Portus will now properly update the image ID when a tag has been pushed. See PR #1054.
  • Fixed how image updates are handled. See PR #1031.
  • Follow a consistent order in the signup form. See PR #1119.
  • Hide passwords stored in webhooks. See PR #1111.
  • Removed reference of missing stylesheets. See PR #1114.

Features

  • portusctl: it will show a warning when using the --local-registry flag but the package has not been installed. See PR #1096.
  • Portus now supports Docker Distribution 2.5. See PR #1068.
  • Allow docker-compose users to specify an alternative port. See PR #1094.

Documentation

  • Avoid the confusion on the hostnames to be used. See PR #1056.
  • Clarified how the --local-registry flag works. PR #1052.

2.1.1

13 Oct 11:08
2.1.1
Compare
Choose a tag to compare

This release contains important fixes for the 2.1 release, as well as some small improvements. We advice users from the 2.1 release to upgrade to this new one as soon as possible. There are no migrations or extra work to be done for the upgrade from 2.1

Fixes

Improvements

  • Notification messages are now more consistent (see 72e452b1fd20)
  • Order users by username on the admin panel (see e92106cd951b)

2.1.0

30 Sep 14:47
2.1.0
Compare
Choose a tag to compare

Featured

Improvements and small features

Fixes

Breaking changes

  • Moved the machine FQDN from secrets.yml to config.yml (see 984671662ade)
  • Deprecated the usage of "x.minutes" strings in configuration values. In future
    versions this syntax will be forbidden (see 53400181e439)

Others

  • All the improvements, features and bug fixes mentioned in the notes of 2.0.x releases.

2.0.5

23 May 19:05
2.0.5
Compare
Choose a tag to compare

Improvements

  • The FQDN can now be specified from the configuration too. This is meant to
    help users to transition from 2.0.x to 2.1. See
    commit.
  • Portus is now more explicit on the allowed name format. See
    commit.
  • Portus is now more friendly on errors based on the namespace name. See
    commit.

portusctl

  • Disable automatic generation of certificates. For this, now there are two new
    flags: --ssl-gen-self-signed-certs and --ssl-certs-dir <dir>. See
    commit.
  • Wrap crono with the exec command. See
    commit.

Misc

  • Some fixes on the generation of the RPM in OBS.

2.0.4

06 May 15:55
2.0.4
Compare
Choose a tag to compare

RPM

  • Automate Portus release. See commit.
  • Rename Portus to portus on the RPM. See commit.
  • Refactored RPM. See commit.
  • Wrap crono with the exec command in the RPM. See commit.
  • Require net-tools on the RPM. See commit.

portusctl

  • Use the proper make_admin task. See commit.
  • Don't configure mysql in Docker. See commit.
  • Added the portus:info task. See commit.

Improvements

  • Better Sub-URI handling & configurable config-local.yml path. See PR.
  • Update ruby versions on travis. See commit1 and commit2.

Other fixes

  • Logout button and search repository are now appearing in small devices. See commit.
  • Don't allow access to the hidden global team. See commit.

2.0.3

25 Feb 10:47
Compare
Choose a tag to compare
  • Fixed crono job when a repository could not be found. See commit.
  • Fixed more issues on docker 1.10 and distribution 2.3. See
    this
    and this
    commits.
  • Handle multiple scopes in token requests. See commit.
  • Add optional fields to token response. See commit.