Release 1.4.0

Changes

[CSD-392] - Added drone CI to shared infrastructure pulumi scripts

We added pulumi scripts to setup a Drone CI Server which uses Gitlab as Git Hoster. Drone CI is configured to use EC2 Autoscaler by default. In the docker compose files there are commented lines which can be used to configure Drone CI to just use the Drone agents on the same machine as the Drone master.

Note

If you already have a similar drone pulumi setup without autoscaler and don’t want pulumi to reinstall the whole drone system you need to do a few steps

  1. Add the IP (elastic IP) of your Drone AWS EC2 instance to the security group you are using for the VPC
    you are using for the drone/shared system and allow Port 2376 from that
    IP in the ingress direction. This is needed for Drone to spawn the dockerdaemon with docker-machine on the
    new agent EC2 instances.
  2. On the drone EC2 instance we need to manually change the drone-compose.yml file to be similar to the
    content of the docker-compose section in conf/pulumi/shared/assets/drone_user_data.sh.
    Make sure you replace the environment variables like ${CSD_DRONE_AMAZON_SUBNET_ID}
    with actual values. After you saved the new drone-compose.yml on the
    drone ec2 instance stop and start the drone docker-compose system on the drone ec2 instance:

[CSD-424] - Added RDS Postgres Option to pulumi

Added the option CSD_WEBAPP_SERVER_POSTGRES_EXTERNAL when this option is set to “true”, no postgresql container is deployed in kubernetes (currently does not affect docker-compose startup).

At the same time when you setup the environment with cli/pulumi_main.sh up a RDS instance is created which can then be used as the external managed db. This is recommended for production environment as the managed RDS instance has autosnapshot and you can easily switch on multi-availibility zone setup by adapting the RDS Instance code in conf/pulumi/main/__main__.py

Note

Due to RDS limitation for the db name CSD_WEBAPP_MAIN_POSTGRES_DB_NAME we changed the default name from the project name the project name without hyphens.

As example the db name test-project becomes then testproject.

Don’t apply the following line change in conf/envs/common_env.sh when you have already deployed the db

[CSD-430] - Migrate deprecated Pulumi method aws.get_ami

Migrate deprecated Pulumi method aws.get_ami to aws.ec2.get_ami

[CSD-431] - Pin version of K3S installation for rancher

Pinned version of K3S installation for rancher instead of using the current stable, which might lead to rancher couldn’t get installed because k3s stable version is a new unsupported version.

[CSD-432] - Improved code formatting script and pre-commit hook

We consolidated the script which does the whole monorepo codeformatting in a git pre-commit hook and the script which can do single file code formatting in one script which leads to the exact same code formatting from git pre-commit hook and IDE code formatting (if the script is configured/used).

[CSD-436] - Improved docs container to show warnings and autoreload browser

Improved the sphinx docs system to make autoreload working in the browser. Also the container log now shows Sphinx compilation warnings (fixed all). Additionally a few infrastructure docs were improved.

[CSD-394] - Upgrade Wagtail and migrate its internationalization

Upgraded wagtail, and moved from wagtailtrans to the internal translation system and added wagtail-localize as translation frontend. Upgrade path from wagtail needs some manual steps, as described in our blog post Migrate your Wagtail Website from wagtailtrans to the new wagtail-localize

For migration of snippets like the footer snippet see Making snippets with existing data translatable.

[CSD-438] - Frontend: Improved get$() of CsdBaseModelService

The method previously returned null, and developer needed to override that method in the child class eg the TodoService which inherited the CsdBaseModelService. New Approach is similar to all the writing actions (create/update/delete) that you provide a GraphQL Query in the child class.

For the get$() the class property is called getQuery. That’s the only thing you need to do. If you’ve already overwritten the get$() this still works, but it is not anymore necessary as long as the getQuery is set in the child class.

Fixed Bugs

[CSD-434] - Fixed BI Tests

Fixed some broken BI api tests.

Breaking

Known Issues

  • Angular SSR is currently broken, container webapp-frontend-ssr image doesn’t build in prod target
    (local_prod, dev, staging, prod).
    As a workaround change the settings of your project in the Carrot Console and disable the
    ‘Angular SSR’ option.