Commit 643457a3 authored by Łukasz Nowak's avatar Łukasz Nowak

rapid-cdn: Introduce

It's based on phased out caddy-frontend, especially as next step is to drop
Caddy software from the software release.
parent 12e28091
Changes
=======
Here are listed the most important changes, which might affect upgrades.
1.0.XXX (XXXX-XX-XX)
--------------------
* fix: exposed log file names are stabilised
* feature: in case of not found instance more information are provided
* feature: telemetry is fully disabled
* feature: Apache Traffic Server 8.0 is used
* feature: backend-haproxy statistic for haproxy's frontend is available
* fix: slave publication has been fixed in case of mixed case slave reference
* feature: running test/test.py resolves with starting backend used in tests
* fix: automatic caucase-updater usage has been fixed
* fix/workaround: reconnect to backend-haproxy from Caddy and Apache Traffic Server
* fix/feature: use explicitly Apache Traffic Server simulation of stale-if-error, as in reality Apache Traffic Server does not support it
* feature: dropped not used parameters
* feature: Strict-Transport-Security aka HSTS
* fix: use kedifa with with for file with multiple CAs
* feature: support query string (the characters after ? in the url) in url and https-url
* fix: by having unique acl names fix rare bug of directing traffic to https-url instead of url or otherwise
* feature: failover backend
1.0.164 (2020-09-24)
--------------------
* feature: serve a stale result up to 1 day if the origin server is down
* feature: request real frontend for slave introspection (aka log access)
* fix: Kedifa reloading, it was resulting with kedifa server disallowing access after some time
* feature: allow to set software release for each node, instead for the whole cluster
* fix: haproxy matches correct hostname in case of wildcards, instead of using wildcard host instead of the specific one
1.0.160 (2020-08-25)
--------------------
* haproxy updated from 2.0.15 to 2.0.17 in order to fix issue while accessing inaccessible backends
1.0.159 (2020-07-30)
--------------------
* logs are ensured to be available in slave's ``log-access-url``
* logs from backend Haproxy are also available to slaves
1.0.158 (2020-07-24)
--------------------
* manual customisation of profiles has been dropped, as not used, dropped keys are ``apache_custom_http``, ``apache_custom_https``, ``caddy_custom_http``, ``caddy_custom_https`` from slaves and ``-frontend-authorized-slave-string`` from master
* ``re6st-optimal-test`` has been dropped from slave
* QUIC is dropped, as was not used and has been superseded by HTTP/3, dropped key is ``enable-quic`` from master
* haproxy is used as a gateway to backends:
* ``automatic-internal-backend-client-caucase-csr`` switch for master is introduced to control it CSR signing
* ``proxy-try-duration`` and ``proxy-try-interval`` has been dropped, as Caddy is not used anymore to connect to the backend, and instead ``backend-connect-timeout`` and ``backend-connect-retries`` is used, as it comes from Haproxy
* ``backend-client-caucase-url`` is returned in master and slave, so that backends can use caucase to fetch CA from frontend cluster
* ``request-timeout`` is supported per slave, as now it became possible
* ``authenticate-to-backend`` is added for master and slave, defaulting to False, to have control over cluster default authentication, and make it possible to do it per slave
1.0.149 (2020-05-05)
--------------------
* no changes noted
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"description": "Values returned by Caddy Frontend instanciation", "description": "Values returned by Rapid.CDN instanciation",
"properties": { "properties": {
"accepted-slave-amount": { "accepted-slave-amount": {
"description": "Amount of Slaves allocated to the Instance which are deployed", "description": "Amount of Slaves allocated to the Instance which are deployed",
......
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"description": "Values returned by Caddy Frontend instanciation", "description": "Values returned by Rapid.CDN slave instanciation",
"properties": { "properties": {
"domain": { "domain": {
"description": "Base domain used by the instance", "description": "Base domain used by the instance",
......
{ {
"description": "Caddy Frontend", "description": "Rapid.CDN",
"name": "Caddy Frontend", "name": "Rapid.CDN",
"serialisation": "xml", "serialisation": "xml",
"software-type": { "software-type": {
"custom-personal": { "custom-personal": {
......
...@@ -27,11 +27,11 @@ ...@@ -27,11 +27,11 @@
from setuptools import setup, find_packages from setuptools import setup, find_packages
version = '0.0.1.dev0' version = '0.0.1.dev0'
name = 'slapos.test.caddy-frontend' name = 'slapos.test.rapid-cdn'
setup(name=name, setup(name=name,
version=version, version=version,
description="Test for SlapOS' Caddy Frontend", description="Test for SlapOS' Rapid.CDN",
maintainer="Nexedi", maintainer="Nexedi",
maintainer_email="info@nexedi.com", maintainer_email="info@nexedi.com",
url="https://lab.nexedi.com/nexedi/slapos", url="https://lab.nexedi.com/nexedi/slapos",
......
...@@ -1250,7 +1250,7 @@ class HttpFrontendTestCase(SlapOSInstanceTestCase): ...@@ -1250,7 +1250,7 @@ class HttpFrontendTestCase(SlapOSInstanceTestCase):
os.environ.get( os.environ.get(
'SLAPOS_TEST_WORKING_DIR', 'SLAPOS_TEST_WORKING_DIR',
os.path.join(os.getcwd(), '.slapos'))), os.path.join(os.getcwd(), '.slapos'))),
'caddy-frontend-test') 'rapid-cdn-test')
if not os.path.isdir(cls.working_directory): if not os.path.isdir(cls.working_directory):
os.mkdir(cls.working_directory) os.mkdir(cls.working_directory)
......
...@@ -41,11 +41,6 @@ setup = ${slapos-repository:location}/ ...@@ -41,11 +41,6 @@ setup = ${slapos-repository:location}/
egg = slapos.test.backupserver egg = slapos.test.backupserver
setup = ${slapos-repository:location}/software/backupserver/test/ setup = ${slapos-repository:location}/software/backupserver/test/
[slapos.test.caddy-frontend-setup]
<= setup-develop-egg
egg = slapos.test.caddy-frontend
setup = ${slapos-repository:location}/software/caddy-frontend/test/
[slapos.test.dufs-setup] [slapos.test.dufs-setup]
<= setup-develop-egg <= setup-develop-egg
egg = slapos.test.dufs egg = slapos.test.dufs
...@@ -101,6 +96,11 @@ setup = ${slapos-repository:location}/software/powerdns/test/ ...@@ -101,6 +96,11 @@ setup = ${slapos-repository:location}/software/powerdns/test/
egg = slapos.test.proftpd egg = slapos.test.proftpd
setup = ${slapos-repository:location}/software/proftpd/test/ setup = ${slapos-repository:location}/software/proftpd/test/
[slapos.test.rapid-cdn-setup]
<= setup-develop-egg
egg = slapos.test.rapid-cdn
setup = ${slapos-repository:location}/software/rapid-cdn/test/
[slapos.test.re6stnet-setup] [slapos.test.re6stnet-setup]
<= setup-develop-egg <= setup-develop-egg
egg = slapos.test.re6stnet egg = slapos.test.re6stnet
...@@ -301,7 +301,6 @@ eggs += ...@@ -301,7 +301,6 @@ eggs +=
${slapos.cookbook-setup:egg} ${slapos.cookbook-setup:egg}
${slapos.test.backupserver-setup:egg} ${slapos.test.backupserver-setup:egg}
${slapos.test.beremiz-ide-setup:egg} ${slapos.test.beremiz-ide-setup:egg}
${slapos.test.caddy-frontend-setup:egg}
${slapos.test.caucase-setup:egg} ${slapos.test.caucase-setup:egg}
${slapos.test.cloudooo-setup:egg} ${slapos.test.cloudooo-setup:egg}
${slapos.test.dream-setup:egg} ${slapos.test.dream-setup:egg}
...@@ -330,6 +329,7 @@ eggs += ...@@ -330,6 +329,7 @@ eggs +=
${slapos.test.plantuml-setup:egg} ${slapos.test.plantuml-setup:egg}
${slapos.test.powerdns-setup:egg} ${slapos.test.powerdns-setup:egg}
${slapos.test.proftpd-setup:egg} ${slapos.test.proftpd-setup:egg}
${slapos.test.rapid-cdn-setup:egg}
${slapos.test.re6stnet-setup:egg} ${slapos.test.re6stnet-setup:egg}
${slapos.test.repman-setup:egg} ${slapos.test.repman-setup:egg}
${slapos.test.restic_rest_server-setup:egg} ${slapos.test.restic_rest_server-setup:egg}
...@@ -389,7 +389,6 @@ tests = ...@@ -389,7 +389,6 @@ tests =
json-schemas ${slapos.cookbook-setup:setup} json-schemas ${slapos.cookbook-setup:setup}
backupserver ${slapos.test.backupserver-setup:setup} backupserver ${slapos.test.backupserver-setup:setup}
beremiz-ide ${slapos.test.beremiz-ide-setup:setup} beremiz-ide ${slapos.test.beremiz-ide-setup:setup}
caddy-frontend ${slapos.test.caddy-frontend-setup:setup}
caucase ${slapos.test.caucase-setup:setup} caucase ${slapos.test.caucase-setup:setup}
cloudooo ${slapos.test.cloudooo-setup:setup} cloudooo ${slapos.test.cloudooo-setup:setup}
dream ${slapos.test.dream-setup:setup} dream ${slapos.test.dream-setup:setup}
...@@ -421,6 +420,7 @@ tests = ...@@ -421,6 +420,7 @@ tests =
plantuml ${slapos.test.plantuml-setup:setup} plantuml ${slapos.test.plantuml-setup:setup}
powerdns ${slapos.test.powerdns-setup:setup} powerdns ${slapos.test.powerdns-setup:setup}
proftpd ${slapos.test.proftpd-setup:setup} proftpd ${slapos.test.proftpd-setup:setup}
rapid-cdn ${slapos.test.rapid-cdn-setup:setup}
re6stnet ${slapos.test.re6stnet-setup:setup} re6stnet ${slapos.test.re6stnet-setup:setup}
repman ${slapos.test.repman-setup:setup} repman ${slapos.test.repman-setup:setup}
restic-rest-server ${slapos.test.restic_rest_server-setup:setup} restic-rest-server ${slapos.test.restic_rest_server-setup:setup}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment