Commit Graph

719 Commits

Author SHA1 Message Date
Zuul ae8f6f9f19 Merge "Detect OVN VPNaaS installation" 2024-04-02 17:20:30 +00:00
Andrew Bonney ec4b2b48f6 Use overridable URL for github rather than hard-coding
For isolated deployments which use mirrors it is necessary
to be able to override the github.com URL currently used
in horizon_pip_packages

Change-Id: I767b921dd9114fb6afa6a93d80e3927da481e5ae
2024-03-28 15:35:42 +00:00
Zuul 5d0255cf26 Merge "Reflect horizon_webroot setting in Apache vhost configuration" 2024-03-28 13:19:35 +00:00
Zuul 99499ec289 Merge "Do not change mode of files recursively" 2024-03-22 09:28:38 +00:00
Dmitriy Rabotyagov e62a2cd3ad Deploy default policy files
At the moment our role does not account for provisionment of default
policy files for extra dashboards.

While they should not be required, it has been reported that absence
of such policy files results in unexpected behaviour. So let's symlink them
alike to how we do with regular policies.

Closes-Bug: #2055415
Change-Id: I683c12938fd4aa67304f564678514bc48bd86a79
2024-03-21 17:04:13 +00:00
Dmitriy Rabotyagov 552fcac122 Reflect horizon_webroot setting in Apache vhost configuration
Changing only horizon_webroot is not sufficient without adjustments
to horizon Apache vhost.

Change-Id: I25707600c2b05a7f816a7c4ea38c8985717df2d3
2024-03-15 20:36:16 +01:00
Dmitriy Rabotyagov d6da9a947f Detect OVN VPNaaS installation
Since plugin name has changed for OVN, we need to count for it when
deciding if panel should be enabled or not.

Change-Id: Id0923a497e751350c9308726ccbb85b6aa6c36c4
2024-03-08 12:00:22 +00:00
Dmitriy Rabotyagov 47364bcadd Do not change mode of files recursively
Current behavior leads to all files having executable bit which is not
anticipated or required behaviour.

Thus, we should avoid defining mode recursively to the directory

Closes-Bug: #2052011
Change-Id: I30b9b6a70d2cabfb1f1f434cd883ea2503d867bc
2024-03-08 12:00:17 +00:00
Dmitriy Rabotyagov a57aeff938 Address Django Deprecations for 4.1
django.utils.translation.ugettext_lazy() is deprecated in favor of the
functions that they’re aliases for: django.utils.translationgettext_lazy()

With that MemcachedCache backend was also deprecated in favor of
PyMemcacheCache. MemcachedCache was removed in django 4.1

https: //docs.djangoproject.com/en/4.0/releases/3.0/#id3
Change-Id: I9b77b33fbc4a9560c72504f935bf7f9082fefdd7
2024-03-08 12:58:52 +01:00
Dmitriy Rabotyagov d4ef66fc02 Override pyScss version with a bugfixed one
In order to compress static files against pyhton 3.11 a fixed version
with fixed regexp in pyScss is needed. While fix is merged, pyScss is
not tagged/released yet.
While this required only for Debian12, it will work nicely also with older
python versions, since there're almost no changes in the package.

instead of building based on SHA.

Change-Id: I76f945310b70c1b081800c5ba0ec922795b60a73
2023-10-17 06:32:59 +00:00
Dmitriy Rabotyagov 85801c9d10 Fix linters for example playbook
Change-Id: I36675c9bc208e7e26c3ee6a50f21b92003b9833e
2023-10-17 08:32:20 +02:00
Dmitriy Rabotyagov 5d635c469a Fix wrong neutron_ml2_drivers_type
neutron_ml2_drivers_type is a string, not a list, while default
value for it is a list. Local settings also assume that it is a list.

So we ensure that the falue is a string by default now and
treat it as string in the code.

Change-Id: Ida72c712153dcda4cd06e0959f98ade4fee8dfbd
2023-08-21 19:55:26 +00:00
Zuul 1ebeab7d26 Merge "Stop reffering _member_ role" 2023-08-21 13:12:55 +00:00
Dmitriy Rabotyagov fe4bf78553 Define constraints file for docs and renos
Right now we are not using any constraints for docs and releasenotes builds.
This has resulted in docs job failures once Sphinx 7.2.0 has been released.

The patch will ensure that constraints are used an we should not face
simmilar issue again.

TOX_CONSTRAINTS_FILE is updated by Release bot once new branch is created,
so it should always track relevant constraints.

Some extra syntax-related changes can apply, since patch is being passed
through ConfigParser, that does not preserve comments and align indenting.


Change-Id: Id609280a58ce263f8860b24762c5670a1a421a3f
2023-08-17 16:32:19 +02:00
Dmitriy Rabotyagov b9cc0f3cde Stop reffering _member_ role
Keystone has stopped providing or reffering `_member_` role for a while,
thus role should not be refferenced anymore.

Moreover, with 2023.1 service policies have dropped `_member_`
which resulted in the role to be insufficient for basic operations.

Change-Id: I99bf418c6cb93d5f3cafc818a8cc876a49fb0357
Related-Bug: #2029486
2023-08-15 13:08:36 +02:00
Dmitriy Rabotyagov a4ecbfc6dc Fix linters and metadata
With update of ansible-lint to version >=6.0.0 a lot of new
linters were added, that enabled by default. In order to comply
with linter rules we're applying changes to the role.

With that we also update metdata to reflect current state.

Change-Id: I40ff3ec0393bf90836d943fc09e74d6a5f207b48
2023-07-17 10:25:45 +02:00
Damian Dabrowski db7110d297 Add PKI support to horizon backends
Replace legacy SSL support with ansible-role-pki.
It is used to generate required TLS certificates if needed.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/879085

Change-Id: Id2f9d6f911cee6e58c261c1a68c34a37ab9ced4f
2023-04-29 18:37:24 +02:00
Damian Dabrowski 4686326650 Rename horizon_enable_ssl to horizon_backend_ssl
To standarize variable name across roles, this change renames
`horizon_enable_ssl` to `horizon_backend_ssl`.
All other roles use `<service>_backend_ssl` format.
It also better describes what it does. With `horizon_enable_ssl` it's
unclear whether it is about frontend or backend.

Backward compatibility will be kept until 2024.1.

Change-Id: I218d45b7be667732e4204316b8d18fa3e136962b
2023-04-11 19:35:19 +02:00
Damian Dabrowski c92f45e3af Fix horizon_enable_ssl logic
Current logic does not allow horizon backend to listen on https
(`horizon_enable_ssl`) if external loadblanacer serves TLS
(`horizon_external_ssl`).
It basically forces backend to listen on plain http in this case which
does not make any sense. It should be possible to enable TLS on both
loadbalancer and horizon backend.

Additionally, with this patch, role defines a proper
HTTP_X_FORWARDED_PROTO header value(it's included in
`horizon_secure_proxy_ssl_header` and
`horizon_secure_proxy_ssl_header_django` and can be set to 'http' or
'https') based on whether external load balancer listens on https
(`horizon_external_ssl`)[1].
For example if loadbalancer listens on https and backend on http,
HTTP_X_FORWARDED_PROTO should be set to 'https'. Otherwise horizon will
respond with redirection to http.

[1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto

Change-Id: I7706e52c01b3f0d72ea383a0476045e606078cff
2023-04-11 19:35:00 +02:00
Damian Dabrowski 9c07e79890 Change default value for horizon_enable_ssl
`horizon_enable_ssl` is responsible for enabling TLS on horizon backend.
It defaults to `haproxy_ssl` which is generally used to enable TLS on
haproxy frontends.
It is more reasonable to disable it by default as it's done for other
services.
This patch does not change current behavior in gating as backend TLS
works only with horizon_external_ssl=False(while it's set to True by
default).
It also does not affect behavior of horizon's haproxy frontend
encryption.

Change-Id: I8f207426c9dc5bcefdec42c0bfc0f5f0376509a3
2023-04-08 00:01:54 +00:00
Dmitriy Rabotyagov e61dab9a05 Allow to override supported_provider_types
Supported ML2 provided types depends on the ML2 driver
and we should make it configurable in order to reflect dropdown list
that appears for admin panel while creating a network.

Closes-Bug: #2002897
Change-Id: Iceedf6af9559d48c28e0ee782a44f9ceb480119d
2023-01-17 13:55:01 +01:00
OpenStack Release Bot 56f670c41a Update master for stable/zed
Add file to the reno documentation build to show release notes for
stable/zed.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/zed.

Sem-Ver: feature
Change-Id: I52bd5d4b4e35317397242168c2f910d3ae4230ff
2022-12-13 13:15:05 +00:00
Jonathan Rosser a20dfea4cf Install ironic-ui from git source rather than a pip package
This patch changes the horizon ironic dashboard to be installed from
git sources like all of the other dashboards in an openstack-ansible
deployment.

Without this change the package installed from pypi is always the
latest released version and not aligned with the release
being deployed with openstack-ansible. This will potentially
cause the horizon service to fail to start if there is a severe
mismatch between horizon and ironic-ui.

Change-Id: I4dd03f3cd13878dafb621c70dd44a4fd0ff99ae3
2022-11-25 13:08:23 +00:00
Zuul 43cb7e1243 Merge "Add uwsgi option to horizon" 2022-09-27 21:04:24 +00:00
Zuul e2e135c2cb Merge "Add python filter to eliminate deprecation warnings" 2022-09-24 20:14:11 +00:00
Kevin Carter 8f8a84f15c Add uwsgi option to horizon
This change provides the horizon role the ability to deploy its services
using uWSGI instead of apache. This feature produces a minimal horizon
deployment which is perfectly functional in cases where capabilities
like federation and SSL terminated all the way through are not needed.

Change-Id: I457a111511543731746d868ae7f7184743e5703b
Signed-off-by: Kevin Carter <kevin@cloudnull.com>
2022-09-21 01:18:34 +00:00
Erik Berg 1cc07a1b0b Remove redundant vars line
This line snuck in with I6b68d4d15ae516d23c88b3c4c21a076e8d54604e
probably to bring it in line with other OSA roles, but should already
be covered by the distribution_major_version line above.

Change-Id: I72281dbc768e8f5f6b702d91abe63bc96376ac30
2022-09-14 13:18:21 +02:00
Kevin Carter 005d6d425e Add python filter to eliminate deprecation warnings
This change adds some python config to remove all of the deprecation
warnings horizon is spawning. The warnings are all coming from oslo
components which horizon is just inhereting inheriting and has no
control over. This change makes horizon logs legible.

Signed-off-by: Kevin Carter <kevin@cloudnull.com>
Change-Id: Idae4e42c971f53597ac3cf044ba82d7dd468e4a5
2022-09-08 11:53:14 -05:00
Kevin Carter 10126daa9c Add the ability to define CSRF_TRUSTED_ORIGINS
This change adds the ability within horizon to define a list of domains
which are trusted through the CSRF functions of django.

Change-Id: Ib92480e6caa74e050a99b36a54b2032714efb509
Signed-off-by: Kevin Carter <kevin@cloudnull.com>
2022-09-08 00:02:00 -05:00
Zuul 24ce4641bc Merge "Add support for websso http referer variable added in yoga" 2022-08-12 12:00:23 +00:00
Andrew Bonney 2814ae269d tls1.2: update ciphers to latest recommendations
Based upon usual recommendations from:
https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/

Change-Id: Ic7bd2c04e850f31952493163c2a4050909b38388
2022-08-05 10:45:23 +01:00
Andrew Bonney 694169c700 Add support for websso http referer variable added in yoga
This variable was added in the Yoga release to permit changes
to how Horizon contacts Keystone in an IDP setup.

Change-Id: I959f0f84b264ffc25481e9becb3059f28a233010
2022-08-03 08:50:14 +01:00
Dmitriy Rabotyagov 6443d610ee Return zuul integrated jobs
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/847272
Change-Id: I4df85ea29a5d8b97bd26503c0b81d3931b587062
2022-07-05 11:47:07 +02:00
Dmitriy Rabotyagov 2c9f231d6a Release pyscss constraints
With [1] pyscss version was bumped to 1.4.0. With that horizon also
requires pyscss>=1.4.0 which means there's no need to additionally
constraint it.

We also temporary disable all functional jobs to resolve circular
dependency.

Needed-By: https://review.opendev.org/c/openstack/openstack-ansible/+/847272
[1] 4fa5acc415

Change-Id: I5676d358d1ec38904fc067ab5f14711358f6031c
2022-07-05 07:17:48 +00:00
Danila Balagansky 7db1f112ef Fix ALLOWED_HOSTS
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-haproxy_server/+/846473
Change-Id: Ia9fa3341dfa1386501bf74a558e418414a58fd1f
2022-06-18 19:06:37 +00:00
Dmitriy Rabotyagov 99f8b02ba0 Switch sphinx language to en
With sphinx release of 5.0.0, they changed default for language variable
to 'en' from None. With that current None valuable is not valid and should
not be used.


Change-Id: I7148e18813fd9dddd77392b20705e885fb41dd65
2022-05-30 16:01:26 +02:00
Zuul aa9468459f Merge "Override pyScss version for python3.10" 2022-05-04 15:15:09 +00:00
Jonathan Rosser 39c6022bf6 Override pyScss version for python3.10
Openstack upper-constraints for the Yoga release does not specify
a version of pyScss which is compatible with python3.10, this only
starts to happen with the Zed release.

To obtain experimental support for Ubuntu Jammy with the Yoga
release we adjust the upper-constraints to describe a python3.10
compatible version of pyScss.

Change-Id: I04b7b8bc2c8e666f155cccf58bd920ee7d699d72
2022-05-03 09:11:02 +01:00
Zuul 1ed0cea42a Merge "Improve defining horizon_lib_dir" 2022-04-27 19:10:47 +00:00
Zuul 36074ecf4c Merge "Only support python3 for apache wsgi module" 2022-04-03 11:56:23 +00:00
OpenStack Proposal Bot 08df11fcd0 Updated from OpenStack Ansible Tests
Change-Id: I7a29b014e915849ef3b34e458f5d1ecc094fc88f
2022-03-31 20:25:07 +00:00
Marc Gariepy fd73df8e1e Cleanup setup.py config
Change-Id: I4b642a19ba6ae4f98dece434a905144e186c7f27
2022-03-31 10:39:09 -04:00
Burkhard Ott-Langer d19c9c2cbb horizon_local_settings.py.j2: adding SECURE_PROXY_ADDR_HEADER
- SECURE_PROXY_ADDR_HEADER is being used to return the clients
      remote address to the logs. On a failed login it is REMOTE_ADDR,
      which will be the loadbalancer address,
      SECURE_PROXY_ADDR_HEADER='HTTP_X_FORWARDED_FOR' makes sure the
      real client IP makes it into the logfiles.
    - https://docs.openstack.org/horizon/latest/configuration/settings.html#secure-proxy-addr-header

Change-Id: I0d68cd4ba7882eb4296a2e4df59afa6582c0303a
2022-03-01 19:26:23 +00:00
Zuul fec5dcbece Merge "Move Listen definition to VHosts" 2022-02-15 11:16:51 +00:00
Dmitriy Rabotyagov 41f3380691 Move Listen definition to VHosts
In order to avoid conflicts with other applications running Apache,
like keystone, we avoid using ports.conf for Listen and using VHost files
for this purpose.

We place same dummy template as keystone does for upgrade purposes.

Change-Id: I8a5ef5234b8aee1e7b3517e9543d2af0a84e90ce
2022-02-09 13:49:21 +02:00
Jonathan Herlin 51bea10951 Disable barbican-ui dashboard
barbican-ui has not yet reached a 1.0.0 release and does not provide
a functioning UI for the key manager service at this time.

Once barbican-ui has basic functionality we can consider enabling this again.

Change-Id: I9fc9147263881cc96f8e51b739d2ccf6f1f9fbf9
2022-02-07 14:52:31 +01:00
Dmitriy Rabotyagov 3c20e3607e Improve defining horizon_lib_dir
Instead of hardcoding lib directory for distro installs, we can
retrieve it dynamically based on the horizon.__file__ output

Change-Id: I8e87f9a9945b7526c90ca8c4dc09e43a86ab62e0
Closes-Bug: #1950798
2022-02-04 11:40:17 +00:00
Jonathan Rosser a470557e44 Only support python3 for apache wsgi module
Remove logic supporting python2.

Change-Id: I6897713f1a46311944a384e31fb9caefb27acf4f
2022-02-02 04:43:35 -05:00
Zuul aa976a0544 Merge "Fix default multidomain choices" 2022-01-26 17:01:19 +00:00
Zuul 72642499e8 Merge "Adjust default configuration to support TLS v1.3" 2022-01-26 15:47:44 +00:00