diff --git a/nginx-ingress/Dockerfile b/nginx-ingress/Dockerfile index addad4d..c0f9760 100644 --- a/nginx-ingress/Dockerfile +++ b/nginx-ingress/Dockerfile @@ -1,11 +1,9 @@ -FROM nginx:1.21.6-alpine +FROM nginx:1.25.0-alpine RUN apk add --update --no-cache python3 curl bash openssl && ln -sf python3 /usr/bin/python RUN python3 -m ensurepip RUN pip3 install --no-cache --upgrade pip setuptools -COPY requirements.txt ./ -RUN pip3 install --no-cache-dir -r requirements.txt\ - && rm -rf ./requirements.txt +RUN pip3 install --no-cache-dir docker jinja2 ENV DOCKER_HOST "unix:///var/run/docker.sock" ENV UPDATE_INTERVAL "30" ENV DNS_UPDATE_INTERVAL "5" diff --git a/nginx-ingress/ingress/ingress.py b/nginx-ingress/ingress/ingress.py index fde5fc4..827262e 100644 --- a/nginx-ingress/ingress/ingress.py +++ b/nginx-ingress/ingress/ingress.py @@ -1,4 +1,4 @@ -from docker import Client +import docker from jinja2 import Template import os, socket @@ -59,10 +59,10 @@ def resolve_pattern(format): with open(nginx_config_template_path, 'r') as handle: nginx_config_template = handle.read() -cli = Client(base_url = os.environ['DOCKER_HOST']) +d_cli = docker.DockerClient(base_url=os.environ['DOCKER_HOST']) while True: - services = cli.services() + services = d_cli.services.list() services_list = [] for service in services: @@ -75,31 +75,31 @@ def resolve_pattern(format): alt_virtual_host = '' service_port = 80 service_name = '' - service_id = service.get('ID','') + service_id = service.id # issue 15 certificate_name = None - if service['Spec'].get('Labels'): - if service['Spec']['Labels'].get('ingress.host'): + if service.attrs['Spec'].get('Labels'): + if service.attrs['Spec']['Labels'].get('ingress.host'): http_config = True - virtual_host = service['Spec']['Labels'].get('ingress.host') - alt_virtual_host = service['Spec']['Labels'].get('ingress.alt_host','') - service_port = service['Spec']['Labels'].get('ingress.port', 80) - service_name = service['Spec'].get('Name') + virtual_host = service.attrs['Spec']['Labels'].get('ingress.host') + alt_virtual_host = service.attrs['Spec']['Labels'].get('ingress.alt_host','') + service_port = service.attrs['Spec']['Labels'].get('ingress.port', 80) + service_name = service.attrs['Spec'].get('Name') - if service['Spec']['Labels'].get('ingress.ssl') and service['Spec']['Labels'].get('ingress.ssl_redirect'): + if service.attrs['Spec']['Labels'].get('ingress.ssl') and service.attrs['Spec']['Labels'].get('ingress.ssl_redirect'): https_config = True https_redirect = True - elif service['Spec']['Labels'].get('ingress.ssl'): + elif service.attrs['Spec']['Labels'].get('ingress.ssl'): https_config = True https_redirect = False - if service['Spec']['Labels'].get('ingress.virtual_proto'): - virtual_proto = service['Spec']['Labels'].get('ingress.virtual_proto', 'http') + if service.attrs['Spec']['Labels'].get('ingress.virtual_proto'): + virtual_proto = service.attrs['Spec']['Labels'].get('ingress.virtual_proto', 'http') - if service['Spec']['Labels'].get('ingress.certificate_name'): - certificate_name = service['Spec']['Labels'].get('ingress.certificate_name') + if service.attrs['Spec']['Labels'].get('ingress.certificate_name'): + certificate_name = service.attrs['Spec']['Labels'].get('ingress.certificate_name') out = { 'http_config': http_config, diff --git a/nginx-ingress/requirements.txt b/nginx-ingress/requirements.txt deleted file mode 100644 index 366bf51..0000000 --- a/nginx-ingress/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -docker-py==1.10.6 -docker-pycreds==0.4.0 -Jinja2==3.0.1 -MarkupSafe==2.0.1 -requests==2.26.0 -urllib3==1.26.7 \ No newline at end of file