From ec58f857623ff71a0e4bedbbb74fe07cb0c71157 Mon Sep 17 00:00:00 2001 From: Scott Hussey Date: Tue, 16 Jan 2018 09:06:48 -0600 Subject: [PATCH] Patch MAAS to render correct proxy url MAAS hard codes the proxy URL passed to bootstrapping nodes w/ port 8000. The proxy URL needs to support the nodeport standard currently used. - Patch MAAS to render the apt proxy url using maas_url from regiond.conf - Use hardcoded port 31800 instead of 8000 Change-Id: I9d2ed35fb3947be51bc9c9e2b5f13f1144b4e927 --- charts/maas/values.yaml | 8 ++--- .../2.3_proxy_port.patch | 34 +++++++++++++++++++ images/maas-region-controller/Dockerfile | 4 ++- 3 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 images/maas-region-controller/2.3_proxy_port.patch diff --git a/charts/maas/values.yaml b/charts/maas/values.yaml index ab8df9a..ed46e2a 100644 --- a/charts/maas/values.yaml +++ b/charts/maas/values.yaml @@ -69,11 +69,11 @@ manifests: images: tags: db_init: docker.io/postgres:9.5 - db_sync: sthussey/maas-region-controller:2.3 + db_sync: sthussey/maas-region-controller:2.3_patchv4 maas_rack: sthussey/maas-rack-controller:2.3 - maas_region: sthussey/maas-region:2.3_patch - bootstrap: sthussey/maas-region-controller:2.3 - export_api_key: sthussey/maas-region-controller:2.3 + maas_region: sthussey/maas-region-controller:2.3_patchv4 + bootstrap: sthussey/maas-region-controller:2.3_patchv4 + export_api_key: sthussey/maas-region-controller:2.3_patchv4 maas_cache: quay.io/attcomdev/maas-cache:master dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.2.1 pull_policy: IfNotPresent diff --git a/images/maas-region-controller/2.3_proxy_port.patch b/images/maas-region-controller/2.3_proxy_port.patch new file mode 100644 index 0000000..b28e95f --- /dev/null +++ b/images/maas-region-controller/2.3_proxy_port.patch @@ -0,0 +1,34 @@ +diff --git a/src/maasserver/compose_preseed.py b/src/maasserver/compose_preseed.py +index e15b3b2..b7c7edc 100644 +--- a/src/maasserver/compose_preseed.py ++++ b/src/maasserver/compose_preseed.py +@@ -8,7 +8,7 @@ __all__ = [ + ] + + from datetime import timedelta +-from urllib.parse import urlencode ++from urllib.parse import urlencode, urlparse + + from maasserver.clusterrpc.osystems import get_preseed_data + from maasserver.enum import ( +@@ -17,6 +17,7 @@ from maasserver.enum import ( + PRESEED_TYPE, + ) + from maasserver.models import PackageRepository ++from maasserver.config import RegionConfiguration + from maasserver.models.config import Config + from maasserver.server_address import get_maas_facing_server_host + from maasserver.utils import absolute_reverse +@@ -41,9 +42,9 @@ def get_apt_proxy(rack_controller=None, default_region_ip=None): + if http_proxy and not use_peer_proxy: + return http_proxy + else: +- return compose_URL( +- "http://:8000/", get_maas_facing_server_host( +- rack_controller, default_region_ip=default_region_ip)) ++ with RegionConfiguration.open() as config: ++ maas_url = config.maas_url ++ return compose_URL("http://:31800/", urlparse(maas_url).hostname) + else: + return None + diff --git a/images/maas-region-controller/Dockerfile b/images/maas-region-controller/Dockerfile index 5bd3234..dceac0b 100644 --- a/images/maas-region-controller/Dockerfile +++ b/images/maas-region-controller/Dockerfile @@ -50,9 +50,11 @@ RUN apt-get download maas-region-controller=$MAAS_VERSION && \ dpkg -i maas-region-controller.deb && \ pg_dropcluster --stop 9.5 main -# 2.3 workaround +# 2.3 workarounds COPY 2.3_nat_fix.patch /tmp/2.3_nat_fix.patch +COPY 2.3_proxy_port.patch /tmp/2.3_proxy_port.patch RUN cd /usr/lib/python3/dist-packages/maasserver/utils && patch __init__.py < /tmp/2.3_nat_fix.patch +RUN cd /usr/lib/python3/dist-packages/maasserver && patch compose_preseed.py < /tmp/2.3_proxy_port.patch # initalize systemd CMD ["/sbin/init"]