Skip to content

Commit b89d8c3

Browse files
authored
Merge branch 'main' into prevent-execute-file-permissions
2 parents ec68e52 + 953cc00 commit b89d8c3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+3888
-2088
lines changed

.github/workflows/ci.yml

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,127 @@ jobs:
321321
if: always()
322322
run: bash ./scripts/dashboard/format_results.sh ${{job.status}} ${{github.job}}/${{matrix.container.image}}-${{matrix.container.version}} ${{github.workspace}}
323323

324+
oss-metrics-tests:
325+
name: Metrics Integration Tests - Official OSS Images
326+
needs: build-unsigned-snapshot
327+
if: ${{ !github.event.pull_request.head.repo.fork && !startsWith(github.head_ref, 'dependabot-') }}
328+
runs-on: ubuntu-22.04
329+
strategy:
330+
matrix:
331+
container:
332+
- image: "bookworm"
333+
version: "stable"
334+
release: "debian"
335+
- image: "bookworm"
336+
version: "mainline"
337+
release: "debian"
338+
- image: "alpine"
339+
version: "stable"
340+
release: "alpine"
341+
- image: "alpine"
342+
version: "mainline"
343+
release: "alpine"
344+
steps:
345+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
346+
- uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
347+
with:
348+
go-version-file: 'go.mod'
349+
cache: false
350+
- name: Download Packages
351+
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
352+
with:
353+
name: nginx-agent-unsigned-snapshots
354+
path: build
355+
356+
- name: Create Results Directory
357+
run: mkdir -p ${{ github.workspace }}/test/dashboard/logs/${{ github.job }}/${{matrix.container.image}}-${{matrix.container.version}}
358+
359+
- name: Start Promtail
360+
uses: ./.github/actions/start-promtail
361+
with:
362+
loki_url: ${{ secrets.LOKI_DASHBOARD_URL }}
363+
364+
- name: Run Integration Tests
365+
run: |
366+
go install github.com/goreleaser/nfpm/v2/cmd/nfpm@${{ env.NFPM_VERSION }}
367+
CONTAINER_NGINX_IMAGE_REGISTRY="docker-registry.nginx.com" \
368+
TAG="${{ matrix.container.version }}-${{ matrix.container.image }}" \
369+
OS_RELEASE="${{ matrix.container.release }}" OS_VERSION="${{ matrix.container.version }}" \
370+
make metrics-test | tee ${{github.workspace}}/test/dashboard/logs/${{github.job}}/${{matrix.container.image}}-${{matrix.container.version}}/raw_logs.log
371+
exit "${PIPESTATUS[0]}"
372+
373+
- name: Format Results
374+
if: always()
375+
run: bash ./scripts/dashboard/format_results.sh ${{job.status}} ${{github.job}}/${{matrix.container.image}}-${{matrix.container.version}} ${{github.workspace}}
376+
377+
plus-metrics-tests:
378+
name: Metrics Integration Tests - Official Plus Images
379+
needs: build-unsigned-snapshot
380+
if: ${{ !github.event.pull_request.head.repo.fork && !startsWith(github.head_ref, 'dependabot-') }}
381+
runs-on: ubuntu-22.04
382+
strategy:
383+
matrix:
384+
container:
385+
- image: "alpine"
386+
version: "3.22"
387+
plus: "r35"
388+
release: "alpine"
389+
path: "/nginx-plus/agent"
390+
- image: "alpine"
391+
version: "3.21"
392+
plus: "r34"
393+
release: "alpine"
394+
path: "/nginx-plus/agent"
395+
- image: "debian"
396+
version: "bookworm"
397+
plus: "r35"
398+
release: "debian"
399+
path: "/nginx-plus/agent"
400+
- image: "debian"
401+
version: "bookworm"
402+
plus: "r34"
403+
release: "debian"
404+
path: "/nginx-plus/agent"
405+
steps:
406+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
407+
- uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
408+
with:
409+
go-version-file: 'go.mod'
410+
cache: false
411+
- name: Download Packages
412+
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
413+
with:
414+
name: nginx-agent-unsigned-snapshots
415+
path: build
416+
- name: Login to Docker Registry
417+
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
418+
with:
419+
registry: ${{ secrets.TEST_REGISTRY_URL }}
420+
username: ${{ secrets.REGISTRY_USERNAME }}
421+
password: ${{ secrets.REGISTRY_PASSWORD }}
422+
423+
- name: Create Results Directory
424+
run: mkdir -p ${{ github.workspace }}/test/dashboard/logs/${{ github.job }}/${{matrix.container.image}}-${{matrix.container.version}}
425+
426+
- name: Start Promtail
427+
uses: ./.github/actions/start-promtail
428+
with:
429+
loki_url: ${{ secrets.LOKI_DASHBOARD_URL }}
430+
431+
- name: Run Integration Tests
432+
run: |
433+
go install github.com/goreleaser/nfpm/v2/cmd/nfpm@${{ env.NFPM_VERSION }}
434+
CONTAINER_NGINX_IMAGE_REGISTRY="${{ secrets.TEST_REGISTRY_URL }}" \
435+
TAG="${{ matrix.container.plus }}-${{ matrix.container.image }}-${{ matrix.container.version }}" \
436+
OS_RELEASE="${{ matrix.container.release }}" OS_VERSION="${{ matrix.container.version }}" IMAGE_PATH="${{ matrix.container.path }}" \
437+
NGINX_LICENSE_JWT="${{ secrets.TEST_JWT }}" \
438+
make metrics-test | tee ${{github.workspace}}/test/dashboard/logs/${{github.job}}/${{matrix.container.image}}-${{matrix.container.version}}/raw_logs.log
439+
exit "${PIPESTATUS[0]}"
440+
441+
- name: Format Results
442+
if: always()
443+
run: bash ./scripts/dashboard/format_results.sh ${{job.status}} ${{github.job}}/${{matrix.container.image}}-${{matrix.container.version}} ${{github.workspace}}
444+
324445
performance-tests:
325446
name: Performance Tests
326447
runs-on: ubuntu-22.04

.github/workflows/dependency-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ jobs:
2525
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
2626

2727
- name: "Dependency Review"
28-
uses: actions/dependency-review-action@bc41886e18ea39df68b1b1245f4184881938e050 # v4.7.2
28+
uses: actions/dependency-review-action@595b5aeba73380359d98a5e087f648dbb0edce1b # v4.7.3
2929
with:
3030
config-file: "nginxinc/k8s-common/dependency-review-config.yml@main"

Makefile

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ BINARY_NAME := nginx-agent
4545
PROJECT_DIR = cmd/agent
4646
PROJECT_FILE = main.go
4747
COLLECTOR_PATH ?= /etc/nginx-agent/opentelemetry-collector-agent.yaml
48-
MANIFEST_DIR ?= /var/lib/nginx-agent
48+
LIB_DIR ?= /var/lib/nginx-agent
4949
DIRS = $(BUILD_DIR) $(TEST_BUILD_DIR) $(BUILD_DIR)/$(DOCS_DIR) $(BUILD_DIR)/$(DOCS_DIR)/$(PROTO_DIR)
5050
$(shell mkdir -p $(DIRS))
5151

@@ -163,7 +163,7 @@ build-mock-management-otel-collector:
163163
mkdir -p $(BUILD_DIR)/mock-management-otel-collector
164164
@CGO_ENABLED=0 GOARCH=$(OSARCH) GOOS=linux $(GOBUILD) -o $(BUILD_DIR)/mock-management-otel-collector/collector test/mock/collector/mock-collector/main.go
165165

166-
integration-test: $(SELECTED_PACKAGE) build-mock-management-plane-grpc
166+
integration-test: $(SELECTED_PACKAGE) build-mock-management-plane-grpc
167167
TEST_ENV="Container" CONTAINER_OS_TYPE=$(CONTAINER_OS_TYPE) BUILD_TARGET="install-agent-local" CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} \
168168
PACKAGES_REPO=$(OSS_PACKAGES_REPO) PACKAGE_NAME=$(PACKAGE_NAME) BASE_IMAGE=$(BASE_IMAGE) DOCKERFILE_PATH=$(DOCKERFILE_PATH) IMAGE_PATH=$(IMAGE_PATH) TAG=${IMAGE_TAG} \
169169
OS_VERSION=$(OS_VERSION) OS_RELEASE=$(OS_RELEASE) \
@@ -181,6 +181,13 @@ official-image-integration-test: $(SELECTED_PACKAGE) build-mock-management-plane
181181
OS_VERSION=$(OS_VERSION) OS_RELEASE=$(OS_RELEASE) IMAGE_PATH=$(IMAGE_PATH) \
182182
NGINX_LICENSE_JWT=$(NGINX_LICENSE_JWT) \
183183
go test -v ./test/integration/managementplane ./test/integration/auxiliarycommandserver
184+
185+
metrics-test: $(SELECTED_PACKAGE) build-mock-management-otel-collector
186+
TEST_ENV="Container" CONTAINER_OS_TYPE=$(CONTAINER_OS_TYPE) CONTAINER_NGINX_IMAGE_REGISTRY=${CONTAINER_NGINX_IMAGE_REGISTRY} BUILD_TARGET="install" \
187+
PACKAGES_REPO=$(OSS_PACKAGES_REPO) TAG=${TAG} PACKAGE_NAME=$(PACKAGE_NAME) BASE_IMAGE=$(BASE_IMAGE) DOCKERFILE_PATH=$(OFFICIAL_IMAGE_DOCKERFILE_PATH) \
188+
OS_VERSION=$(OS_VERSION) OS_RELEASE=$(OS_RELEASE) IMAGE_PATH=$(IMAGE_PATH) \
189+
NGINX_LICENSE_JWT=$(NGINX_LICENSE_JWT) \
190+
go test -v ./test/integration/metrics
184191

185192
performance-test:
186193
mkdir -p $(TEST_BUILD_DIR)
@@ -195,7 +202,7 @@ run: build ## Run code
195202

196203
dev: ## Run agent executable
197204
@echo "🚀 Running App"
198-
NGINX_AGENT_COLLECTOR_CONFIG_PATH=$(COLLECTOR_PATH) NGINX_AGENT_MANIFEST_DIR=$(MANIFEST_DIR) $(GORUN) -ldflags=$(DEBUG_LDFLAGS) $(PROJECT_DIR)/$(PROJECT_FILE)
205+
NGINX_AGENT_COLLECTOR_CONFIG_PATH=$(COLLECTOR_PATH) NGINX_AGENT_LIB_DIR=$(LIB_DIR) $(GORUN) -ldflags=$(DEBUG_LDFLAGS) $(PROJECT_DIR)/$(PROJECT_FILE)
199206

200207
race-condition-dev: ## Run agent executable with race condition detection
201208
@echo "🏎️ Running app with race condition detection enabled"

0 commit comments

Comments
 (0)