diff --git a/etc/octavia.conf b/etc/octavia.conf index 1dabbeba58..682c4ea7f8 100644 --- a/etc/octavia.conf +++ b/etc/octavia.conf @@ -86,11 +86,11 @@ # List of default ALPN protocols to be used on new TLS-terminated # listeners. Available protocols: http/1.0, http/1.1, h2 -# default_listener_alpn_protocols = http/1.1, http/1.0 +# default_listener_alpn_protocols = h2, http/1.1, http/1.0 # List of default ALPN protocols to be used on new TLS-terminated # pools. Available protocols: http/1.0, http/1.1, h2 -# default_pool_alpn_protocols = http/1.1, http/1.0 +# default_pool_alpn_protocols = h2, http/1.1, http/1.0 [database] diff --git a/octavia/common/config.py b/octavia/common/config.py index b7dc0596e4..bd3eb4b2e8 100644 --- a/octavia/common/config.py +++ b/octavia/common/config.py @@ -130,12 +130,14 @@ api_opts = [ choices=constants.TLS_ALL_VERSIONS + [None], help=_('Minimum allowed TLS version for listeners and pools.')), cfg.ListOpt('default_listener_alpn_protocols', - default=[lib_consts.ALPN_PROTOCOL_HTTP_1_1, + default=[lib_consts.ALPN_PROTOCOL_HTTP_2, + lib_consts.ALPN_PROTOCOL_HTTP_1_1, lib_consts.ALPN_PROTOCOL_HTTP_1_0], help=_('List of ALPN protocols to use for new TLS-enabled ' 'listeners.')), cfg.ListOpt('default_pool_alpn_protocols', - default=[lib_consts.ALPN_PROTOCOL_HTTP_1_1, + default=[lib_consts.ALPN_PROTOCOL_HTTP_2, + lib_consts.ALPN_PROTOCOL_HTTP_1_1, lib_consts.ALPN_PROTOCOL_HTTP_1_0], help=_('List of ALPN protocols to use for new TLS-enabled ' 'pools.')), diff --git a/octavia/tests/functional/api/v2/test_load_balancer.py b/octavia/tests/functional/api/v2/test_load_balancer.py index 76a720296e..f54674c942 100644 --- a/octavia/tests/functional/api/v2/test_load_balancer.py +++ b/octavia/tests/functional/api/v2/test_load_balancer.py @@ -2794,7 +2794,8 @@ class TestLoadBalancerGraph(base.BaseAPITest): expected_listener['tls_versions'] = ( constants.TLS_VERSIONS_OWASP_SUITE_B) expected_listener['alpn_protocols'] = ( - [lib_consts.ALPN_PROTOCOL_HTTP_1_1, + [lib_consts.ALPN_PROTOCOL_HTTP_2, + lib_consts.ALPN_PROTOCOL_HTTP_1_1, lib_consts.ALPN_PROTOCOL_HTTP_1_0]) if create_timeout_client_data is not None: diff --git a/releasenotes/notes/add-h2-alpn-protocol-to-default-e2d499d21a5d90d1.yaml b/releasenotes/notes/add-h2-alpn-protocol-to-default-e2d499d21a5d90d1.yaml new file mode 100644 index 0000000000..771e5d335b --- /dev/null +++ b/releasenotes/notes/add-h2-alpn-protocol-to-default-e2d499d21a5d90d1.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The HTTP/2 protocol is now added to the default ALPN protocol list for + listener and pools.