Merge pull request #1062 from netbox-community/develop

Release 2.7.0
This commit is contained in:
Tobias Genannt 2023-08-30 23:22:57 +02:00 committed by GitHub
commit b47e85ab3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 32 additions and 26 deletions

3
.gitignore vendored
View File

@ -1,6 +1,6 @@
*.sql.gz *.sql.gz
.netbox .netbox
.initializers .python-version
docker-compose.override.yml docker-compose.override.yml
*.pem *.pem
configuration/* configuration/*
@ -11,5 +11,4 @@ configuration/ldap/*
!configuration/ldap/ldap_config.py !configuration/ldap/ldap_config.py
!configuration/logging.py !configuration/logging.py
!configuration/plugins.py !configuration/plugins.py
prometheus.yml
super-linter.log super-linter.log

View File

@ -31,8 +31,8 @@ RUN export DEBIAN_FRONTEND=noninteractive \
ARG NETBOX_PATH ARG NETBOX_PATH
COPY ${NETBOX_PATH}/requirements.txt requirements-container.txt / COPY ${NETBOX_PATH}/requirements.txt requirements-container.txt /
RUN \ RUN \
# We compile 'psycopg2' in the build process # We compile 'psycopg' in the build process
sed -i -e '/psycopg2-binary/d' /requirements.txt && \ sed -i -e '/psycopg/d' /requirements.txt && \
# Gunicorn is not needed because we use Nginx Unit # Gunicorn is not needed because we use Nginx Unit
sed -i -e '/gunicorn/d' /requirements.txt && \ sed -i -e '/gunicorn/d' /requirements.txt && \
# We need 'social-auth-core[all]' in the Docker image. But if we put it in our own requirements-container.txt # We need 'social-auth-core[all]' in the Docker image. But if we put it in our own requirements-container.txt
@ -62,19 +62,20 @@ RUN export DEBIAN_FRONTEND=noninteractive \
libldap-common \ libldap-common \
libpq5 \ libpq5 \
libxmlsec1-openssl \ libxmlsec1-openssl \
openssh-client \
openssl \ openssl \
python3 \ python3 \
python3-distutils \ python3-distutils \
tini \ tini \
&& curl -sL https://nginx.org/keys/nginx_signing.key \ && curl --silent --output /usr/share/keyrings/nginx-keyring.gpg \
> /etc/apt/trusted.gpg.d/nginx.asc && \ https://unit.nginx.org/keys/nginx-keyring.gpg \
echo "deb https://packages.nginx.org/unit/ubuntu/ jammy unit" \ && echo "deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ lunar unit" \
> /etc/apt/sources.list.d/unit.list \ > /etc/apt/sources.list.d/unit.list \
&& apt-get update -qq \ && apt-get update -qq \
&& apt-get install \ && apt-get install \
--yes -qq --no-install-recommends \ --yes -qq --no-install-recommends \
unit=1.29.1-1~jammy \ unit=1.30.0-1~lunar \
unit-python3.10=1.29.1-1~jammy \ unit-python3.11=1.30.0-1~lunar \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
COPY --from=builder /opt/netbox/venv /opt/netbox/venv COPY --from=builder /opt/netbox/venv /opt/netbox/venv

View File

@ -1 +1 @@
2.6.1 2.7.0

View File

@ -61,7 +61,7 @@ DOCKERFILE The name of Dockerfile to use.
${_GREEN}Default:${_CLEAR} Dockerfile ${_GREEN}Default:${_CLEAR} Dockerfile
DOCKER_FROM The base image to use. DOCKER_FROM The base image to use.
${_GREEN}Default:${_CLEAR} 'ubuntu:22.04' ${_GREEN}Default:${_CLEAR} 'ubuntu:23.04'
BUILDX_PLATFORMS BUILDX_PLATFORMS
Specifies the platform(s) to build the image for. Specifies the platform(s) to build the image for.
@ -219,7 +219,7 @@ fi
# Determining the value for DOCKER_FROM # Determining the value for DOCKER_FROM
### ###
if [ -z "$DOCKER_FROM" ]; then if [ -z "$DOCKER_FROM" ]; then
DOCKER_FROM="docker.io/ubuntu:22.04" DOCKER_FROM="docker.io/ubuntu:23.04"
fi fi
### ###

View File

@ -141,8 +141,11 @@ if 'CHANGELOG_RETENTION' in environ:
CHANGELOG_RETENTION = _environ_get_and_map('CHANGELOG_RETENTION', None, _AS_INT) CHANGELOG_RETENTION = _environ_get_and_map('CHANGELOG_RETENTION', None, _AS_INT)
# Maximum number of days to retain job results (scripts and reports). Set to 0 to retain job results in the database indefinitely. (Default: 90) # Maximum number of days to retain job results (scripts and reports). Set to 0 to retain job results in the database indefinitely. (Default: 90)
if 'JOBRESULT_RETENTION' in environ: if 'JOB_RETENTION' in environ:
JOBRESULT_RETENTION = _environ_get_and_map('JOBRESULT_RETENTION', None, _AS_INT) JOB_RETENTION = _environ_get_and_map('JOB_RETENTION', None, _AS_INT)
# JOBRESULT_RETENTION was renamed to JOB_RETENTION in the v3.5.0 release of NetBox. For backwards compatibility, map JOBRESULT_RETENTION to JOB_RETENTION
elif 'JOBRESULT_RETENTION' in environ:
JOB_RETENTION = _environ_get_and_map('JOBRESULT_RETENTION', None, _AS_INT)
# API Cross-Origin Resource Sharing (CORS) settings. If CORS_ORIGIN_ALLOW_ALL is set to True, all origins will be # API Cross-Origin Resource Sharing (CORS) settings. If CORS_ORIGIN_ALLOW_ALL is set to True, all origins will be
# allowed. Otherwise, define a list of allowed origins using either CORS_ORIGIN_WHITELIST or # allowed. Otherwise, define a list of allowed origins using either CORS_ORIGIN_WHITELIST or
@ -272,9 +275,9 @@ if 'RACK_ELEVATION_DEFAULT_UNIT_WIDTH' in environ:
# Remote authentication support # Remote authentication support
REMOTE_AUTH_ENABLED = _environ_get_and_map('REMOTE_AUTH_ENABLED', 'False', _AS_BOOL) REMOTE_AUTH_ENABLED = _environ_get_and_map('REMOTE_AUTH_ENABLED', 'False', _AS_BOOL)
REMOTE_AUTH_BACKEND = environ.get('REMOTE_AUTH_BACKEND', 'netbox.authentication.RemoteUserBackend') REMOTE_AUTH_BACKEND = _environ_get_and_map('REMOTE_AUTH_BACKEND', 'netbox.authentication.RemoteUserBackend', _AS_LIST)
REMOTE_AUTH_HEADER = environ.get('REMOTE_AUTH_HEADER', 'HTTP_REMOTE_USER') REMOTE_AUTH_HEADER = environ.get('REMOTE_AUTH_HEADER', 'HTTP_REMOTE_USER')
REMOTE_AUTH_AUTO_CREATE_USER = _environ_get_and_map('REMOTE_AUTH_AUTO_CREATE_USER', 'True', _AS_BOOL) REMOTE_AUTH_AUTO_CREATE_USER = _environ_get_and_map('REMOTE_AUTH_AUTO_CREATE_USER', 'False', _AS_BOOL)
REMOTE_AUTH_DEFAULT_GROUPS = _environ_get_and_map('REMOTE_AUTH_DEFAULT_GROUPS', '', _AS_LIST) REMOTE_AUTH_DEFAULT_GROUPS = _environ_get_and_map('REMOTE_AUTH_DEFAULT_GROUPS', '', _AS_LIST)
# REMOTE_AUTH_DEFAULT_PERMISSIONS = {} # REMOTE_AUTH_DEFAULT_PERMISSIONS = {}

View File

@ -12,7 +12,7 @@ services:
env_file: env/netbox.env env_file: env/netbox.env
user: 'unit:root' user: 'unit:root'
volumes: volumes:
- ./test-configuration/logging.py:/etc/netbox/config/logging.py:z,ro - ./test-configuration/test_config.py:/etc/netbox/config/test_config.py:z,ro
healthcheck: healthcheck:
start_period: ${NETBOX_START_PERIOD-120s} start_period: ${NETBOX_START_PERIOD-120s}
timeout: 3s timeout: 3s

View File

@ -1,7 +1,7 @@
version: '3.4' version: '3.4'
services: services:
netbox: &netbox netbox: &netbox
image: docker.io/netboxcommunity/netbox:${VERSION-v3.5-2.6.1} image: docker.io/netboxcommunity/netbox:${VERSION-v3.6-2.7.0}
depends_on: depends_on:
- postgres - postgres
- redis - redis
@ -15,9 +15,9 @@ services:
test: "curl -f http://localhost:8080/api/ || exit 1" test: "curl -f http://localhost:8080/api/ || exit 1"
volumes: volumes:
- ./configuration:/etc/netbox/config:z,ro - ./configuration:/etc/netbox/config:z,ro
- netbox-media-files:/opt/netbox/netbox/media:z,rw - netbox-media-files:/opt/netbox/netbox/media:rw
- netbox-reports-files:/opt/netbox/netbox/reports:z,rw - netbox-reports-files:/opt/netbox/netbox/reports:rw
- netbox-scripts-files:/opt/netbox/netbox/scripts:z,rw - netbox-scripts-files:/opt/netbox/netbox/scripts:rw
netbox-worker: netbox-worker:
<<: *netbox <<: *netbox
depends_on: depends_on:

View File

@ -51,7 +51,7 @@ exec unitd \
--control unix:$UNIT_SOCKET \ --control unix:$UNIT_SOCKET \
--pid /opt/unit/unit.pid \ --pid /opt/unit/unit.pid \
--log /dev/stdout \ --log /dev/stdout \
--state /opt/unit/state/ \ --statedir /opt/unit/state/ \
--tmp /opt/unit/tmp/ \ --tmpdir /opt/unit/tmp/ \
--user unit \ --user unit \
--group root --group root

2
env/netbox.env vendored
View File

@ -29,6 +29,6 @@ REDIS_INSECURE_SKIP_TLS_VERIFY=false
REDIS_PASSWORD=H733Kdjndks81 REDIS_PASSWORD=H733Kdjndks81
REDIS_SSL=false REDIS_SSL=false
RELEASE_CHECK_URL=https://api.github.com/repos/netbox-community/netbox/releases RELEASE_CHECK_URL=https://api.github.com/repos/netbox-community/netbox/releases
SECRET_KEY=r(m)9nLGnz$(_q3N4z1k(EFsMCjjjzx08x9VhNVcfd%6RF#r!6DE@+V5Zk2X SECRET_KEY='r(m)9nLGnz$(_q3N4z1k(EFsMCjjjzx08x9VhNVcfd%6RF#r!6DE@+V5Zk2X'
SKIP_SUPERUSER=true SKIP_SUPERUSER=true
WEBHOOKS_ENABLED=true WEBHOOKS_ENABLED=true

View File

@ -1,4 +1,5 @@
django-auth-ldap==4.3.0 django-auth-ldap==4.5.0
django-storages[azure,boto3,dropbox,google,libcloud,sftp]==1.13.2 django-storages[azure,boto3,dropbox,google,libcloud,sftp]==1.13.2
psycopg2==2.9.6 dulwich==0.21.5
psycopg[c,pool]==3.1.10
python3-saml==1.15.0 python3-saml==1.15.0

View File

@ -2,3 +2,5 @@ LOGGING = {
'version': 1, 'version': 1,
'disable_existing_loggers': True 'disable_existing_loggers': True
} }
DEFAULT_PERMISSIONS = {}