Skip to content

feat: add force-configcheck annotation to trigger configcheck manually#221

Open
aa1ex wants to merge 433 commits into
kaasops:mainfrom
aa1ex:feat/force-configcheck-annotation
Open

feat: add force-configcheck annotation to trigger configcheck manually#221
aa1ex wants to merge 433 commits into
kaasops:mainfrom
aa1ex:feat/force-configcheck-annotation

Conversation

@aa1ex
Copy link
Copy Markdown
Contributor

@aa1ex aa1ex commented Mar 17, 2026

Include annotation value in pipeline hash so changing it triggers configcheck even when spec is unchanged. Uses omitempty for backward compatibility — existing pipelines without the annotation are unaffected.

dkhachyan and others added 30 commits December 1, 2022 15:40
merge vp and cvp reconcile funcs
Signed-off-by: Zemtsov Vladimir <vl.zemtsov@gmail.com>
Signed-off-by: Zemtsov Vladimir <vl.zemtsov@gmail.com>
Signed-off-by: Zemtsov Vladimir <vl.zemtsov@gmail.com>
fix panic on empty sinks and sources
Signed-off-by: Zemtsov Vladimir <vl.zemtsov@gmail.com>
Signed-off-by: Zemtsov Vladimir <vl.zemtsov@gmail.com>
Signed-off-by: Zemtsov Vladimir <vl.zemtsov@gmail.com>
Add vector tolerations for configCheck pod
dkhachyan and others added 27 commits August 19, 2025 15:24
Signed-off-by: Hornwind <hornwind89@gmail.com>
PodSecurityPolicyName is used to set PriorityClassName
correct semver version in Chart.yaml
- Add Volumes and VolumeMounts fields to ConfigCheck struct
- Copy user-defined volumes/volumeMounts from VectorCommon
- Implement deduplication logic with user values taking precedence
- Apply same deduplication to Vector Agent and Aggregator

Signed-off-by: Aleksandr Aleksandrov <aaleksandrov.cy@gmail.com>
Signed-off-by: Aleksandr Aleksandrov <aaleksandrov.cy@gmail.com>
…ops#205)

- Add .golangci.yml with standard linters (gosimple, govet, staticcheck, etc.)
- Add GitHub Actions workflow for lint checks on PRs
- Fix existing linting issues:
  - Fix errors.Is argument order in event_collector
  - Fix race condition with wg.Add in evgen
  - Remove unnecessary type assertions in pipeline_controller
  - Replace deprecated pointer package with ptr
- Format all Go files with goimports
* feat: add e2e test framework and CI workflow

- Add comprehensive e2e test framework with Ginkgo/Gomega
- Add GitHub Actions workflow for automated e2e testing
- Add artifact collection for test failures
- Add HTML report generation script
- Add normal mode tests as baseline
- Update Makefile with test-e2e, test-report, deploy-helm-e2e targets
- Update Ginkgo to v2.20.2 and Gomega to v1.34.1
- Add CI/CD documentation

* fix(makefile): add ginkgo dependency for test-e2e target

- Add GINKGO binary to tool binaries section
- Add GINKGO_VERSION (v2.20.2) to tool versions
- Add ginkgo target to download ginkgo if necessary
- Update test-e2e target to depend on ginkgo and use $(GINKGO)

This fixes CI failure where ginkgo command was not found.

* chore(ci): remove event-collector from e2e workflow

Event collector is not used in current e2e tests.

* fix(makefile): use absolute path for ginkgo binary
…me.NewTimer (kaasops#207)

* test(configcheck): add test demonstrating time.After memory leak

Add test that demonstrates the memory leak caused by using time.After()
in a select loop. Each iteration allocates ~280 bytes that are not freed
until the timer fires.

Benchmark results:
- time.After(): 283 B/op, 3 allocs/op
- time.NewTimer with Stop/Reset: 0 B/op, 0 allocs/op

This test will fail after the fix is applied (allocations will be 0).

* fix(configcheck): prevent memory leak by replacing time.After with time.NewTimer

time.After() in select loop allocates ~280 bytes per iteration that are
not freed until the timer fires. Replace with time.NewTimer + Reset pattern.
Add GitHub Actions workflow to run unit tests on every PR and push to main:
- Runs `make test` which includes manifests generation, formatting, vetting
- Uploads coverage report as artifact

Fix unit tests to run without real cluster:
- Set UseExistingCluster: false in envtest (use embedded API server)
- Fix vector_controller_test.go to properly configure Vector spec
  and run double reconcile (finalizer + actual work)
Buffer output channels (400) in reconcileWithDelay to prevent
blocking when VectorReconciler is slow. Without buffering,
reconcileWithDelay blocks on send, stops reading from input,
and PipelineReconciler eventually blocks - causing deadlock.
…ClusterVectorAggregator instances instead of only matching ones" (kaasops#208)
…or (kaasops#211)

Add support for configuring Prometheus scrape parameters in Vector Agent
and Aggregator PodMonitors with validation and comprehensive test coverage.
Regression tests for issue kaasops#201 / PR kaasops#208 - verify CVP is validated
only against CVA with matching selector.
Signed-off-by: Aleksandr Aleksandrov <aaleksandrov.cy@gmail.com>
* test(e2e): add regression test for VectorPipeline namespace validation

* fix: validate VectorPipeline only against VectorAggregator in same namespace
Signed-off-by: Aleksandr Aleksandrov <aaleksandrov.cy@gmail.com>
Include annotation value in pipeline hash so changing it triggers
configcheck even when spec is unchanged. Uses omitempty for backward
compatibility — existing pipelines without the annotation are unaffected.

Signed-off-by: Aleksandr Aleksandrov <aaleksandrov.cy@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants