Skip to content

Releases: ovh/cds

0.54.1

02 Apr 14:27
b38eaf8
Compare
Choose a tag to compare

Note about upgrading CDS

Please install version 0.53.0 before installing this new release.

When you are upgrading CDS:

  • backup your database before any operation

Notable Changes in version 0.54.1

In the full changelog, you will find a lot of commits about "workflow v2" / "ui" / "hook" / "ascode". All this work is here to prepare the new CDS "As Code". You will alredy find some documentation about new features, but we will make a full presentation of the new engine when it will be ready for production use.

As part of this new engine, we had to refactor the way that CDS commmunicates with the VCS Servers (bitbucket, github, etc...). This refactoring makes it easier to manage authorization based on Personal Access Tokens, instead of using oauth2 as before.
In the latest version 0.53.0, this was already refactored: you could manage VCS Server with the old and new way. With the version 0.54.1, you can only manage your VCS server one way.

If you migrate from a version 0.53, you have two solutions:

  • solution A: migrate on the new VCS system before installing the 0.54.1 version
  • solution B: install the version 0.54.1 and use the new VCS system. The VCS communication will be unavailable until you set the vcs server in each cds project.

Solution A

The cdsctl binary contains all commands to manage VCS Server on your CDS projects.

cdsctl experimental project YOUR_CDS_PROJECT_KEY, replace YOUR_CDS_PROJECT_KEY with the KEY of your CDS Project.

Github

Generate a new token on https://github.com/settings/tokens with the following scopes:

  • repo:status
  • public_repo

Create a yml file, example of vcs-github.yml file:

version: v1.0
name: github
type: github
description: "my github"
auth:
    username: your-username
    token: ghp_your-token-here
options:
    urlApi: "" # optional, default is https://api.github.com
    disableStatus: false    # Set to true if you don't want CDS to push statuses on the VCS server - optional
    disableStatusDetails: false # Set to true if you don't want CDS to push CDS URL in statuses on the VCS server - optional
    disablePolling: false   # Does polling is supported by VCS Server - optional
    disableWebHooks: false  # Does webhooks are supported by VCS Server - optional

Then import the configuration:

cdsctl project vcs import YOUR_CDS_PROJECT_KEY vcs-github.yml

Bitbucket Datacenter

Example with vcs-bitbucket.yml file:

version: v1.0
name: bitbucket
type: bitbucketserver
description: "My Bitbucket Datacenter"
url: "http://localhost:7990/bitbucket"
auth:
    user: username-on-bitbucket
    token: the-long-token-here
options:
    disableStatus: false    # Set to true if you don't want CDS to push statuses on the VCS server - optional
    disableStatusDetails: false # Set to true if you don't want CDS to push CDS URL in statuses on the VCS server - optional
    disablePolling: false   # Does polling is supported by VCS Server - optional
    disableWebHooks: false  # Does webhooks are supported by VCS Server - optional

Then import:

cdsctl project vcs import YOUR_CDS_PROJECT_KEY vcs-bitbucket.yml

Solution B

It's the same as solution A, but your will find the useful commands with cdsctl project vcs (instead of cdsctl experimental project vcs)

The version 0.54.1 allows you to use the webui to configure the VCS project.

What's Changed

Features

Bug Fixes

Read more

0.53.0

06 Sep 14:45
2c8cc0f
Compare
Choose a tag to compare

Note about upgrading CDS

Please install version 0.52.0 before installing this new release.

When you are upgrading CDS:

Notable Changes in version 0.53.0

The version 0.52.0 introduced the notion of Organization in CDS for all authentication drivers. In 0.53.0, organizations are now mandatory.

What's Changed

Bug Fixes

  • api,vcs: multiple vcs notifications (#6390) (6a166b7)
  • api: allow description in application import and cli (#6344) (d8168ff)
  • api: check groups on user deletion (#6401) (0da638e)
  • api: compute workflow v3 preview (#6346) (0bc7a67)
  • api: do not lock workflow run on release and promote (#6332) (c369ff1)
  • api: during promotion, get build module in parrallel (#6466) (137d7dd)
  • api: export workflow hook (#6495) (a3074a8)
  • api: fail job if worker model is disabled (#6552) (6480259)
  • api: inject git_branch_exists variable for retention only if vcs info exists (#6394) (ad8631d)
  • api: manage variable deletion and env keys as code (#6563) (b1430bc)
  • api: nil pointer workflow push (#6321) (5a8f1fa)
  • api: on retryOnlyFailedJob, retrieve build variable (#6452) (55071aa)
  • api: panic on run result for docker images (#6599) (8f95af1)
  • api: return an error if consumer service cannot be loaded (#6533) (e7b773f)
  • api: skip missing integration error while loading workflow (#6526) (17ec69d)
  • api: template bulk runner count for parallel apply (#6510) (c6e3eae)
  • api: workflow push from repository (#6330) (43a1ba1)
  • api: workflow push opts initialization (#6324) (1759beb)
  • api: workflow search sort runs (#6556) (ca43679)
  • api: workflow template check params typos (#6541) (2f668b7)
  • cdn, worker: artifact upload error management and logs (#6419) (2f862d1)
  • cdn: delete rom db item that is no more on nfs (#6567) (d0949da)
  • cdsctl: clean ouput for template bulk track no-interactive (#6391) (b98dae7)
  • contrib: artifactory promote always update artifacts (#6415) (b246692)
  • contrib: remove deprecated actions (#6612) (2c8cc0f)
  • dependencies: upgrade github.com/apache/thrift (#6514) (f1d244c)
  • do not ask service question if there is no service name (#6485) (35cb794)
  • do not look into sub directories (#6443) (0d8319e)
  • engine: dropped api error (#6445) (a0ed12c)
  • hatchery:k8s: watch events routine auto restart (#6539) (cfc9eb4)
  • hatchery:openstack: set security groups (#6575) (070d3f7)
  • hatchery:swarm: unregister worker cpu/memory metrics (#6470) (76e6363)
  • hatchery: priority for models registration (#6414) (8a4dc7c)
  • resync job outside tx (#6537) (c1e0661)
  • sdk: avoid panic during import pipeline (#6343) (32272d8)
  • sdk: avoid panic when parsing empty workflow (#6382) (8de3050)
  • sdk: goroutine display stack (#6398) (987162f)
  • sdk: hatchery step log delay millisecond (#6454) (7417899)
  • sdk: hatchery step log delay numeric (#6456) (38c942a)
  • sdk: import project vcs interface (#6309) (007aeae)
  • sdk: msg if auth error on git repo (#6435) (6deadd1)
  • ui,api: redirect to homepage (#6511) (60ac6ba)
  • ui: add /concepts in workflow docs URL (#6464) (b2da040)
  • ui: set correct doc link for mutex workflow (#6427) (8a3e6b5)
  • worker cmd list all run results (#6460) (21ea1e2)

Features

Read more

0.52.0

27 Sep 10:13
0.52.0
1da97b5
Compare
Choose a tag to compare

Note about upgrading CDS

You have to install version 0.51.0 or newer if you want to upgrade your CDS Instance from a version < 0.51.0 to this newer version.

When you are upgrading CDS:

  • backup your database before any operation
  • run the database migration, documentation on https://ovh.github.io/cds/hosting/database/
  • after running the API, check if there is no error on migration, with cdsctl admin migration list

Notable Changes in version 0.52

Hatchery marathon

As specified here https://ovh.github.io/cds/hosting/upgrade/migrate_0.51/, the hatchery marathon has been deleted.

Organization

This version generalizes the notion of "Organization" in CDS. You can now set organization on your config file (auth section). This is an optional feature but will be mandatory in the next release.

Organization rules

  • In a group, you cannot have users from different organizations
  • A project created by a user in an organization "foo", cannot have write permissions for users in organization "bar"
  • A workflow created in a project in an organization "foo", cannot have an execute permission for users in organization "bar"

What's Changed

Features

  • repositories: add cache size in mon/status #6288
  • api: load pipelines with usages #6304
  • api: workflow search add ascode filter #6299
  • api,cli: add CRUD v2 organization and region #6296
  • api,cli: add organization #6289
  • api: automatic build info #6234
  • api,hooks: add v2 hook signature and github repository analysis #6255
  • api: add RBAC import handler #6265
  • api: clean workflow run secrets #6263
  • api: add worker model and worker model template entities #6268
  • api: add repository on project #6206
  • hooks,api,cli: add analyze endpoint #6236
  • hooks, api: manage entities hook #6219
  • elasticsearch: tests and improvements #6286
  • cli: add delete workflow run command #6273
  • cli: add verbosity to cdsctl admin database commands #6246
  • db: Add configurable Redis DbIndex #6271
  • sdk: allow to pass modifiers on template apply #6249
  • sdk: add helper #6266
  • hatchery: add CDN configuration to Worker spawn args #6254
  • hatchery: remove marathon hatchery #6305
  • worker: read CDN info from config #6258
  • deps: bump terser from 4.6.9 to 4.8.1 in /contrib/grpcplugins/action/examples/nodejs #6238
  • docker: move to alpine root image #6225
  • ui: remove semantic from workflow/notification/workflowAdm #6232
  • ui: remove suiPopup #6233
  • ui: remove semantic from menu #6241
  • ui: remove some semantic modal #6242
  • ui: remove consumer SUIModal + last suiPopup #6243
  • ui: remove semantic from application and env admin views #6228
  • ui: list project entities (app/pip/env/workflow) #6217
  • ui: refact keys, variables and run sidebar #6221
  • ui: remove sui-progress component + add ngZorro layout #6215
  • ui: remove some semanticUI components #6245
  • ui: remove some ng2 semantic components #6257
  • ui: change icon in app-table #6261
  • ui: remove some semantic style #6269
  • ui: remove semantic from project admin view and integration view #6224
  • ui: remove ngsemantic ascode modal and ng-semantic run workflow modal #6212

Bug Fixes

  • doc: explicit exit code in worker exit doc #6227
  • docs: remove outdated comparison matrix #6230
  • docs: log level doc #6291
  • repositories: remove Lock Access in unlockfunc #6295
  • ui: load jsonschema && remove some semantic style #6285
  • ui: set redirect uri when navigate on protected project #6231
  • ui: redirect mfa on project pages #6235
  • ui: redirect mfa on home page #6237
  • ui: avoid button infinite spinner #6276
  • ui: listen change on authenticationState #6220
  • api: manage space in action name #6279
  • api: improve the error msg returned to UI #6275
  • api, worker: auto build info #6264
  • api: delete workflow run with artifact manager #6260
  • api: run result file info panic #6267
  • api: workflow run secret clean interval #6272
  • api: disableStatusDetails flag #6256
  • api,worker: handle multiple release maturity #6280
  • api,ui: load as code pipeline + ascode application #6214
  • vcs: missing data when getting hook by its ID. #6292 #6293
  • vcs: compute default url for github #6250
  • vcs: check auth on vcsType and not url #6226
  • sdk: json annotation #6270
  • sdk: promote action export entities #6259
  • engine: json encryption key rollover #6247
  • engine: rollover encrypted map #6248
  • contrib: handle multiple releases repositories #6208
  • contrib: add os-ansible-inventory #6218

New Contributors

Full Changelog: 0.51.0...0.52.0

0.51.0

14 Jun 13:58
0.51.0
cb49dff
Compare
Choose a tag to compare

Note about upgrading CDS

You have to install version 0.50.0 or newer if you want to upgrade your CDS Instance from a version < 0.50.0 to this newer version.

When you are upgrading CDS:

  • backup your database before any operation
  • run the database migration, documentation on https://ovh.github.io/cds/hosting/database/
  • after running the API, check if there is no error on migration, with cdsctl admin migration list

Notable Changes in version 0.51

More info on https://ovh.github.io/cds/hosting/upgrade/migrate_0.51/

Note that the presentation framework is being migrated (from ng-semantic to ng-zero).

Features

Bug Fixes

Read more

0.50.0

17 Jan 14:12
0cbd785
Compare
Choose a tag to compare

Note about upgrading CDS

You have to install version 0.49.0 or newer if you want to upgrade your CDS Instance from a version < 0.49.0 to this newer version.

When you are upgrading CDS:

  • backup your database before any operation
  • run the database migration, documentation on https://ovh.github.io/cds/hosting/database/
  • after running the API, check if there is no error on migration, with cdsctl admin migration list

Notable Changes in version 0.50

More info on https://ovh.github.io/cds/hosting/upgrade/migrate_0.50/

Features

Bug Fixes

Read more

0.49.0

24 Jun 15:33
0.49.0
8849693
Compare
Choose a tag to compare

0.49.0 (2021-06-22)

Note about upgrading CDS

You have to install version 0.48.1 or newer if you want to upgrade your CDS Instance from a version < 0.48.1 to this newer version.

When you are upgrading CDS:

Notable Changes in version 0.49

CDN service

The release 0.49.0 introduced a new parameter to disable and remove a CDN Unit.

More info about it at https://ovh.github.io/cds/hosting/upgrade/migrate_0.49/

Features

Bug Fixes

Read more

0.48.1

24 Mar 10:44
186889b
Compare
Choose a tag to compare

0.48.1 (2021-03-23)

Note about upgrading CDS

You have to install version 0.46.0 or newer if you want to upgrade your CDS Instance from a version < 0.46 to this newer version.

When you are upgrading CDS:

Notable Changes in version 0.48

CDN service

The release 0.48.0 introduced a new CDS service called CDN. This service is dedicated to receive and store CDS’s job logs.
We created this service to be able to move out job's logs from CDS database to an object storage provider.

In this release, logs are stored both in CDN storage units and CDS database to facilitate migration. Old log data and database table will be removed in a future release.

More info about CDN service at https://ovh.github.io/cds/docs/components/cdn/.

cdn_logs_receives

We also completely rework the UI log page to improve logs readability. Thanks to CDN paginated and streaming apis, rendering logs is now faster and efficient.

logs

Workflow Run retention policy (feature preview)

Workflow run retention policy is now expressed with LUA, this allows to define custom rules for workflows. The default rule will keep a run for one year. More information at https://ovh.github.io/cds/docs/concepts/workflow/retention/.

retention_rule

Features

Bug Fixes

  • api, ui: run retention policy with feature flipping (#5755) (6a77e84)
  • cdn: clean Incoming item without item unit (#5722) (3dc3293)
  • cdn: do not select all database for item unit purge (#5739) (97bc1ef)
  • cdn: missing default config panic (#5744) (e388c07)
  • cdn,api: check workflow access with id, use workflow name from run (#5753) (28fcaed)
  • doc: search links (#5725) (2a0f93d)
  • engine: download - check config (#5727) (0f356b4), closes #5716
  • hatchery: double check flag need registration (#5752) (7adfafa), closes #5750
  • ui: use node pipeline parameters from run's workflow data (#5772) (4f55b1a)
  • worker: flush graylog hook logs when run or register ends (#5768) (ab7b0b3)
  • worker: reduce httpclient timeout and remove some context (#5735) (c61ab8b)
  • change error to have more details (#5724) (25a13f2)

0.48.0

25 Feb 16:11
9622b23
Compare
Choose a tag to compare

0.48.0 (2021-02-25)

Note about upgrading CDS

You have to install version 0.46.0 or newer if you want to upgrade your CDS Instance from a version < 0.46 to this newer version.

When you are upgrading CDS:

Notable Changes in version 0.48.0

Workflow Run retention policy

Workflow run retention policy is now expressed with LUA, this allows to define custom rules for workflows. The default rule will keep a run for one year.
⚠ Be careful, when installing this release the following rule will be applied on all your workflow. Workflow runs that are older than one year will be automatically deleted. You can skip this release and install version 0.48.1 if you don't want to use the retention policy feature. ⚠

retention_rule

If you want to keep Workflow Runs that are older than one year you can edit the default rule in database after running the CDS SQL migrations and before starting CDS API using the following query.

# Example: set default rule to keep Workflow Runs for 2 years
UPDATE workflow SET retention_policy = 'return run_days_before < 730';

CDN service

The release 0.48.0 introduced a new CDS service called CDN. This service is dedicated to receive and store CDS’s job logs.
We created this service to be able to move out job's logs from CDS database to an object storage provider.

In this release, logs are stored both in CDN storage units and CDS database to facilitate migration. Old log data and database table will be removed in a future release.

More info about CDN service at https://ovh.github.io/cds/docs/components/cdn/.

cdn_logs_receives

We also completely rework the UI log page to improve logs readability. Thanks to CDN paginated and streaming apis, rendering logs is now faster and efficient.

logs

Features

Bug Fixes

Read more

0.47.0

10 Jul 15:48
ee4466f
Compare
Choose a tag to compare

0.47.0 (2020-07-08)

Note about upgrading CDS

You have to install version 0.46.0 if you want to upgrade your CDS Instance from a version < 0.46 to a newer version.

When you are upgrading CDS:

  • backup your database before any operation
  • run the database migration, documentation on https://ovh.github.io/cds/hosting/database/
  • after running the API, check if there is no error on migration, with cdsctl admin migration list

Notable Changes in version 0.47.x

The release 0.47.x contains a lots of bug fixes & performance improvements.

Websocket is replacing SSE

The CDS UI and hatcheries will now use a Websocket to listen for API events. We also removed the browser shared workers that were used in UI, each CDS tab will use its own Websocket connection.

Remove old secrets and user infos

This release include a migration script to remove some old database tables from CDS. Those tables contains mainly secrets and informations related to user accounts, all that data were migrated in previous release.

Features

Bug Fixes

  • api: append log when retry job (#5294) (ee08e26)
  • api: avoid panic on err msg deleted (#5245) (0d46f8a)
  • api: call services retries (#5232) (4678ade)
  • api: change json tag (#5226) (f841412)
  • api: default env vars should always be merged for docker model (#5293) (1c64809)
  • api: do not load all components of project when running workflow (#5285) (b404792)
  • api: do not loose logs when api restart (#5298) (10e3e4b)
  • api: don't try to load cds.scheduler user (#5239) (37334d6)
  • api: jsonschema wrong tag (#5279) (fd95ff9)
  • api: load application no-ascode (#5255) (c855935)
  • api: lock noderun before updating it (#5300) (92aa63f)
  • api: missing group for template when loaded from audit (#5273) (511cb03)
  • api: permission on worker that are no more linked to an hatchery (#5303) (dae0ac7)
  • api: remove client when close message was send (#5227) (dc2af41)
  • api: resync repo managers to compute template default params (#5260) (1e8bc3a)
  • api: resync workflow run status when stopping a job (#5275) (c51b3b3)
  • api: set hatchery_name default value for worker (#5306) (0651356)
  • api: stop ticker + time.sleep to reduce cpu load (#5304) (b64bba5)
  • api: update permission for workflow when exists in upsert (#5256) (a0d8409)
  • api: worker should not be removed when hatchery is lost (#5296) (84f4ed5)
  • api, ui: synchronous ended child workflow + navigation parent/child (#5261) (4c98c9c)
  • api, vcs, repositories: repository web hook eventFilter (#5266) (8e83900)
  • api,repositories: clean not pushed branch when checkout (#5251) (78d9ac2)
  • api,sdk: allow to retry request when conflict due to database lock (#5244) (f549c2f)
  • api,ui: return empty app stats and timeline if no elastic service (#5248) (1b83551)
  • cdn: add public addresses (#5221) (feb094d)
  • cdn: processLogs rollback (#5276) (27fd6a6)
  • cdsctl: avoid potential panic (#5253) (a83e1a2)
  • cdsctl: worker model list - image field (#5267) (11d37a6)
  • engine: keep the main trace.span in context (#5287) (5871741)
  • hatchery: avoid panic on queuePolling (#5302) (74e167a)
  • hatchery: count CPUs using flavor list instead of data from server (#5254) (90ac6a7)
  • hatchery/k8s: enable service requirement (#5292) ([4747e92](https://github.com/ovh/cds/c...
Read more

0.46.0

29 May 08:12
ed15f15
Compare
Choose a tag to compare

0.46.0 (2020-05-28)

Note about upgrading CDS

You have to install version 0.45.2 if you want to upgrade your CDS Instance from a version < 0.45 to a newer version.

When you are upgrading CDS:

  • backup your database before any operation
  • run the database migration, documentation on https://ovh.github.io/cds/hosting/database/
  • after running the API, check if there is no error on migration, with cdsctl admin migration list
  • if there is an error, especially on RefactorApplicationCrypto, you can:
    • cdsctl admin migration list --fields=name,id|grep RefactorApplicationCrypto # to get the ID of migration to reset, then run
    • cdsctl admin migration reset <ID_Number>
    • then restart the API

Notable Changes in version 0.46.x

The release 0.46.x contains a lots of bug fixes & performance improvements.

Rolling key and secret encryption

Like in previous releases, CDS store encrypted secret in database but now the key that is used to encrypt this secrets can be updated. This key is named the rolling key.

See section [api.database.encryptionRollingKeys] and [api.database.signatureRollingKeys] in file configuration.

Workflow ascode from template

You can now use a workflow template with a workflow ascode. When using a template your repository will only contains only one yaml file with a reference to the template that you want to use and the values for all the required template parameters.
You can create this file manually or directly with the CDS command line.

Example of .cds/workflow.yml file with some parameters

name: demo
from: shared.infra/example-with-repository@1
parameters:
  deployWhen: manual
  repo: github/your-org/demo
  ssh_key_name: proj-ssh-key

You will find some template documentation on https://ovh.github.io/cds/docs/concepts/template/.

Version v2.0 in your workflow yml file

You can send a notification on all the pipelines, without having to write the name of each pipeline.
The shortest syntax for workflow with only one pipeline was removed in the v2.
If you have a doubt about the syntax, you can export your workflow from CDS (ui or cdsctl) in v2 to see the good syntax.

Features

Bug Fixes

  • api: action param interpolate (#5107) (661af83)
  • api: add a global timeout when checking network requirement (#5070) (53fb4a2)
  • api: add new application to ascode workflow (#5152) (8c856e3)
  • api: add node run ID on workflowNodeRunEvent (#5167) (896dd46)
  • api: Allow to get every service through getServiceHandler (#5173) (21b845b)
  • api: allow to stop a workflow run marked as to delete (#5207) (71bb5bf)
  • api: application crypto migration with null vcs_strategy (#5135) (c6a8f2c)
  • api: avoid error if project cannot be loaded (#5096) (dc5da00)
  • api: check and grant user before creating pullrequest or comment (#5080) (ebc811a)
  • api: check if workflow exists found before permission (#5084) (b289f6b)
  • api: clean duplicate hooks (#5094) (b83d05d)
  • api: clean duplicate wnode migration (#5057) (f483fe5)
  • api: crypto layer now supports complex types (#5116) (2f7acdc)
  • api: default version is 1 for pipeline (#5036) (4077bb8)
  • api: don't warn if no previous run was found (#5203) (2c5b0eb)
  • api: fix duplicate notif for empty pipeline (d8e7c1b)
  • api: fix hooks with empty UUID (#5098) (5386f91)
  • api: forbid update with duplicate hooks (#5091) (88936dc)
  • api: get integration with clear password from services (#5149) (423fb27)
  • api: getProjectsHandler_FilterByRepo (#5136) (382c6a2)
  • api: getWorkflowJobQueueHandler filter by group for all hatcheries (#5079) (8a6f308)
  • api: header date in mail (#5172) (667e606), closes #5171
  • api: ignore error if wkf holder not found when loading pipeline (#5184) ([7491dbd](7491d...
Read more