Skip to content

Commit fca0312

Browse files
authored
Add v2 to v3 upgrade tests (#1222)
1 parent 6c2869c commit fca0312

File tree

11 files changed

+389
-32
lines changed

11 files changed

+389
-32
lines changed

Makefile

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -221,28 +221,31 @@ performance-test: ## Run performance tests
221221
$(CONTAINER_CLITOOL) run -v ${PWD}:/home/nginx/$(CONTAINER_VOLUME_FLAGS) --rm nginx-agent-benchmark:1.0.0
222222

223223
integration-test:
224-
PACKAGES_REPO=${OSS_PACKAGES_REPO} INSTALL_FROM_REPO=${INSTALL_FROM_REPO} PACKAGE_NAME=${PACKAGE_NAME} BASE_IMAGE=${BASE_IMAGE} IMAGE_PATH=$(IMAGE_PATH) TAG=${IMAGE_TAG} \
225-
OS_VERSION=${OS_VERSION} OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} DOCKERFILE_PATH=$(DOCKERFILE_PATH) \
224+
PACKAGES_REPO=${OSS_PACKAGES_REPO} INSTALL_FROM_REPO=${INSTALL_FROM_REPO} PACKAGE_NAME=${PACKAGE_NAME} BASE_IMAGE=${BASE_IMAGE} IMAGE_PATH=${IMAGE_PATH} TAG=${IMAGE_TAG} \
225+
OS_VERSION=${OS_VERSION} OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} DOCKERFILE_PATH=${DOCKERFILE_PATH} \
226226
${GOTEST} -v ./test/integration/install
227-
PACKAGES_REPO=${OSS_PACKAGES_REPO} INSTALL_FROM_REPO=${INSTALL_FROM_REPO} PACKAGE_NAME=${PACKAGE_NAME} BASE_IMAGE=${BASE_IMAGE} BUILD_TARGET="install-agent-local" IMAGE_PATH=$(IMAGE_PATH) TAG=${IMAGE_TAG} \
228-
OS_VERSION=${OS_VERSION} OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} DOCKERFILE_PATH=$(DOCKERFILE_PATH) \
227+
PACKAGES_REPO=${OSS_PACKAGES_REPO} INSTALL_FROM_REPO=${INSTALL_FROM_REPO} PACKAGE_NAME=${PACKAGE_NAME} BASE_IMAGE=${BASE_IMAGE} BUILD_TARGET="install-agent-local" IMAGE_PATH=${IMAGE_PATH} TAG=${IMAGE_TAG} \
228+
OS_VERSION=${OS_VERSION} OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} DOCKERFILE_PATH=${DOCKERFILE_PATH} \
229229
${GOTEST} -v ./test/integration/api
230-
PACKAGES_REPO=${OSS_PACKAGES_REPO} INSTALL_FROM_REPO=${INSTALL_FROM_REPO} PACKAGE_NAME=${PACKAGE_NAME} BASE_IMAGE=${BASE_IMAGE} BUILD_TARGET="install-agent-local" IMAGE_PATH=$(IMAGE_PATH) TAG=${IMAGE_TAG} \
231-
OS_VERSION=${OS_VERSION} OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} DOCKERFILE_PATH=$(DOCKERFILE_PATH) \
230+
PACKAGES_REPO=${OSS_PACKAGES_REPO} INSTALL_FROM_REPO=${INSTALL_FROM_REPO} PACKAGE_NAME=${PACKAGE_NAME} BASE_IMAGE=${BASE_IMAGE} BUILD_TARGET="install-agent-local" IMAGE_PATH=${IMAGE_PATH} TAG=${IMAGE_TAG} \
231+
OS_VERSION=${OS_VERSION} OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} DOCKERFILE_PATH=${DOCKERFILE_PATH} \
232232
${GOTEST} -v ./test/integration/features
233-
PACKAGES_REPO=${OSS_PACKAGES_REPO} INSTALL_FROM_REPO=${INSTALL_FROM_REPO} PACKAGE_NAME=${PACKAGE_NAME} BASE_IMAGE=${BASE_IMAGE} BUILD_TARGET="install-agent-local" IMAGE_PATH=$(IMAGE_PATH) TAG=${IMAGE_TAG} \
234-
OS_VERSION=${OS_VERSION} OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} DOCKERFILE_PATH=$(DOCKERFILE_PATH) \
233+
PACKAGES_REPO=${OSS_PACKAGES_REPO} INSTALL_FROM_REPO=${INSTALL_FROM_REPO} PACKAGE_NAME=${PACKAGE_NAME} BASE_IMAGE=${BASE_IMAGE} BUILD_TARGET="install-agent-local" IMAGE_PATH=${IMAGE_PATH} TAG=${IMAGE_TAG} \
234+
OS_VERSION=${OS_VERSION} OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} DOCKERFILE_PATH=${DOCKERFILE_PATH} \
235235
${GOTEST} -v ./test/integration/grpc
236+
PACKAGES_REPO=${OSS_PACKAGES_REPO} INSTALL_FROM_REPO=${INSTALL_FROM_REPO} PACKAGE_NAME=${PACKAGE_NAME} BASE_IMAGE=${BASE_IMAGE} BUILD_TARGET="install-agent-local" IMAGE_PATH=${IMAGE_PATH} TAG=${IMAGE_TAG} \
237+
OS_VERSION=${OS_VERSION} OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} DOCKERFILE_PATH=${DOCKERFILE_PATH} \
238+
${GOTEST} -v ./test/integration/upgrade
236239

237240
official-image-integration-test:
238-
PACKAGES_REPO=${OSS_PACKAGES_REPO} PACKAGE_NAME=${PACKAGE_NAME} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} BASE_IMAGE=${BASE_IMAGE} IMAGE_PATH=$(IMAGE_PATH) TAG=${TAG} ARCH=${OSARCH} OS_VERSION=${OS_VERSION} BUILD_TARGET="install" \
239-
OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} DOCKERFILE_PATH=$(OFFICIAL_IMAGE_DOCKERFILE_PATH) \
241+
PACKAGES_REPO=${OSS_PACKAGES_REPO} PACKAGE_NAME=${PACKAGE_NAME} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} BASE_IMAGE=${BASE_IMAGE} IMAGE_PATH=${IMAGE_PATH} TAG=${TAG} ARCH=${OSARCH} OS_VERSION=${OS_VERSION} BUILD_TARGET="install" \
242+
OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} DOCKERFILE_PATH=${OFFICIAL_IMAGE_DOCKERFILE_PATH} \
240243
${GOTEST} -v ./test/integration/features
241-
PACKAGES_REPO=${OSS_PACKAGES_REPO} PACKAGE_NAME=${PACKAGE_NAME} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} BASE_IMAGE=${BASE_IMAGE} IMAGE_PATH=$(IMAGE_PATH) TAG=${TAG} ARCH=${OSARCH} OS_VERSION=${OS_VERSION} BUILD_TARGET="install" \
242-
OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} DOCKERFILE_PATH=$(OFFICIAL_IMAGE_DOCKERFILE_PATH) \
244+
PACKAGES_REPO=${OSS_PACKAGES_REPO} PACKAGE_NAME=${PACKAGE_NAME} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} BASE_IMAGE=${BASE_IMAGE} IMAGE_PATH=${IMAGE_PATH} TAG=${TAG} ARCH=${OSARCH} OS_VERSION=${OS_VERSION} BUILD_TARGET="install" \
245+
OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} DOCKERFILE_PATH=${OFFICIAL_IMAGE_DOCKERFILE_PATH} \
243246
${GOTEST} -v ./test/integration/grpc
244-
PACKAGES_REPO=${OSS_PACKAGES_REPO} PACKAGE_NAME=${PACKAGE_NAME} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} BASE_IMAGE=${BASE_IMAGE} IMAGE_PATH=$(IMAGE_PATH) TAG=${TAG} ARCH=${OSARCH} OS_VERSION=${OS_VERSION} BUILD_TARGET="install" \
245-
OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} DOCKERFILE_PATH=$(OFFICIAL_IMAGE_DOCKERFILE_PATH) \
247+
PACKAGES_REPO=${OSS_PACKAGES_REPO} PACKAGE_NAME=${PACKAGE_NAME} CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} BASE_IMAGE=${BASE_IMAGE} IMAGE_PATH=${IMAGE_PATH} TAG=${TAG} ARCH=${OSARCH} OS_VERSION=${OS_VERSION} BUILD_TARGET="install" \
248+
OS_RELEASE=${OS_RELEASE} CONTAINER_OS_TYPE=${CONTAINER_OS_TYPE} DOCKERFILE_PATH=${OFFICIAL_IMAGE_DOCKERFILE_PATH} \
246249
${GOTEST} -v ./test/integration/api
247250

248251
test-performance-run: ## Run benchmark performance tests

scripts/workflow/generate_results.sh

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,9 @@ DURATION=$(echo "$END_SECONDS - $START_SECONDS" | bc)
3232

3333
MSG="" # individual test msg
3434
FAIL_MSG="" # msg for entire job run
35-
RESULT=""
3635
HAS_FAILED=false
3736
IS_RUNNING=false
3837

39-
load_job_status(){
40-
if [ "$JOB_RESULT" == "success" ]; then
41-
RESULT="pass"
42-
elif [ "$JOB_RESULT" == "failure" ]; then
43-
RESULT="fail"
44-
else
45-
RESULT="skip"
46-
fi
47-
}
48-
4938
format_logs_to_json(){
5039
line="$1"
5140
json="{"
@@ -110,6 +99,5 @@ format_results(){
11099
111100
# Main body of the script
112101
{
113-
load_job_status
114102
format_results
115103
}

test/docker/nginx-official-image/deb/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ ARG CONTAINER_OS_TYPE
1313
WORKDIR /agent
1414
COPY ./build/${PACKAGE_NAME}.${CONTAINER_OS_TYPE} /agent/build/${PACKAGE_NAME}.${CONTAINER_OS_TYPE}
1515

16-
RUN apt-get update \
17-
&& apt install --no-install-recommends --no-install-suggests --allow-downgrades -y /agent/build/${PACKAGE_NAME}.${CONTAINER_OS_TYPE} \
18-
&& rm /agent/build/${PACKAGE_NAME}.${CONTAINER_OS_TYPE}
16+
RUN apt-get update \
17+
&& apt install --no-install-recommends --no-install-suggests --allow-downgrades -y /agent/build/${PACKAGE_NAME}.${CONTAINER_OS_TYPE} \
18+
&& rm /agent/build/${PACKAGE_NAME}.${CONTAINER_OS_TYPE}
1919

2020
RUN unlink /var/log/nginx/access.log
2121
RUN unlink /var/log/nginx/error.log

test/docker/nginx-oss/deb/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ RUN set -x \
2424
lsb-release \
2525
procps \
2626
nginx
27-
2827
# Setup nginx agent repository
2928
RUN curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null \
3029
&& printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://${PACKAGES_REPO}/nginx-agent/${OS_RELEASE}/ `lsb_release -cs` agent\n" > /etc/apt/sources.list.d/nginx-agent.list

test/docker/nginx-oss/rpm/Dockerfile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,15 @@ RUN if [ "$OS_VERSION" = "2" ] && [ "$OS_RELEASE" = "amazonlinux" ]; \
2121
fi
2222

2323
RUN if [ "$OS_RELEASE" = "amazonlinux" ]; \
24-
then yum install -y shadow-utils; \
24+
then yum install -y shadow-utils && yum install -y findutils; \
2525
fi
2626

2727
RUN if [ "$OS_RELEASE" = "centos" ] && [ "$OS_VERSION" = "7" ]; \
2828
then yum install -y epel-release; \
29+
fi
30+
31+
RUN if [ "$OS_RELEASE" = "rockylinux" ] && [ "$OS_VERSION" = "8" ]; \
32+
then yum install -y findutils; \
2933
fi
3034

3135
RUN if [ "$OS_RELEASE" = "redhatenterprise" ] && [ "$OS_VERSION" != "9" ]; \
@@ -87,7 +91,7 @@ FROM install-nginx as install-agent-local
8791

8892
ARG PACKAGE_NAME
8993

90-
RUN yum localinstall -y /agent/build/${PACKAGE_NAME}.rpm
94+
RUN yum localinstall -y /agent/build/$PACKAGE_NAME.rpm
9195

9296

9397
FROM install-nginx as install-agent-repo
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
worker_processes 1;
2+
3+
events {
4+
worker_connections 1024;
5+
}
6+
7+
http {
8+
include mime.types;
9+
default_type application/octet-stream;
10+
11+
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
12+
'$status $body_bytes_sent "$http_referer" '
13+
'"$http_user_agent" "$http_x_forwarded_for" '
14+
'"$bytes_sent" "$request_length" "$request_time" '
15+
'"$gzip_ratio" $server_protocol ';
16+
17+
access_log /var/log/nginx/access.log main;
18+
19+
sendfile on;
20+
keepalive_timeout 65;
21+
22+
server {
23+
listen 8080;
24+
server_name localhost;
25+
26+
location / {
27+
root /usr/share/nginx/html;
28+
index index.html index.htm;
29+
}
30+
31+
##
32+
# Enable Metrics
33+
##
34+
location /api {
35+
stub_status;
36+
allow 127.0.0.1;
37+
deny all;
38+
}
39+
40+
#error_page 404 /404.html;
41+
42+
# redirect server error pages to the static page /50x.html
43+
#
44+
error_page 500 502 503 504 /50x.html;
45+
location = /50x.html {
46+
root /usr/share/nginx/html;
47+
}
48+
}
49+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
worker_processes 1;
2+
3+
events {
4+
worker_connections 1024;
5+
}
6+
7+
http {
8+
include mime.types;
9+
default_type application/octet-stream;
10+
11+
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
12+
'$status $body_bytes_sent "$http_referer" '
13+
'"$http_user_agent" "$http_x_forwarded_for" '
14+
'"$bytes_sent" "$request_length" "$request_time" '
15+
'"$gzip_ratio" $server_protocol ';
16+
17+
access_log /var/log/nginx/access.log main;
18+
19+
sendfile on;
20+
keepalive_timeout 65;
21+
22+
server {
23+
listen 8080;
24+
server_name localhost;
25+
26+
location / {
27+
root /usr/share/nginx/html;
28+
index index.html index.htm;
29+
}
30+
31+
##
32+
# Enable Metrics
33+
##
34+
location /api/ {
35+
api write=on;
36+
allow 127.0.0.1;
37+
deny all;
38+
}
39+
40+
#error_page 404 /404.html;
41+
42+
# redirect server error pages to the static page /50x.html
43+
#
44+
error_page 500 502 503 504 /50x.html;
45+
location = /50x.html {
46+
root /usr/share/nginx/html;
47+
}
48+
}
49+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#
2+
# /etc/nginx-agent/nginx-agent.conf
3+
#
4+
# Configuration file for NGINX Agent.
5+
#
6+
# This file is to track NGINX Agent configuration values that are meant to be statically set. There
7+
# are additional NGINX Agent configuration values that are set via the API and NGINX Agent install script
8+
# which can be found in /var/lib/nginx-agent/agent-dynamic.conf.
9+
10+
log:
11+
# set log level (panic, fatal, error, info, debug, trace; default "info")
12+
level: info
13+
# set log path. if empty, don't log to file.
14+
path: /var/log/nginx-agent/
15+
# data plane status message / 'heartbeat'
16+
nginx:
17+
# path of NGINX logs to exclude
18+
exclude_logs: ""
19+
socket: "unix:/var/run/nginx-agent/nginx.sock"
20+
21+
server:
22+
host: 127.0.0.1
23+
grpcPort: 9091
24+
token: ""
25+
tls:
26+
enable: true
27+
skip_verify: true
28+
29+
dataplane:
30+
status:
31+
# poll interval for data plane status - the frequency the NGINX Agent will query the dataplane for changes
32+
poll_interval: 30s
33+
# report interval for data plane status - the maximum duration to wait before syncing dataplane information if no updates have being observed
34+
report_interval: 24h
35+
36+
metrics:
37+
# specify the size of a buffer to build before sending metrics
38+
bulk_size: 20
39+
# specify metrics poll interval
40+
report_interval: 1m
41+
collection_interval: 15s
42+
mode: aggregated
43+
44+
# OSS NGINX default config path
45+
# path to aux file dirs can also be added
46+
config_dirs: "/etc/nginx:/usr/local/etc/nginx:/usr/share/nginx/modules:/etc/nms"
47+
48+
# api:
49+
# The port at which NGINX Agent accepts remote connections
50+
# The API address and port allow for remote management of NGINX and NGINX Agent
51+
#
52+
# ~~~ WARNING ~~~
53+
# Set API address to allow remote management
54+
# host: 127.0.0.1
55+
#
56+
# Set this value to a secure port number to prevent information leaks.
57+
# port: 8038
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# /etc/nginx-agent/nginx-agent.conf
2+
3+
log:
4+
level: info
5+
path: /var/log/nginx-agent/
6+
7+
allowed_directories:
8+
- /etc/nginx
9+
- /usr/local/etc/nginx
10+
- /usr/share/nginx/modules
11+
- /etc/nms
12+
- /var/log/nginx
13+
- /etc/app_protect
14+
15+
command:
16+
server:
17+
host: 127.0.0.1
18+
port: 443
19+
auth:
20+
token:
21+
tls:
22+
skip_verify: false

0 commit comments

Comments
 (0)