Граф коммитов

14 Коммитов

Автор SHA1 Сообщение Дата
Hunter Gregory ebddca18bd
perf: [NPM] [LINUX] add NetPols in background (#1969)
* wip: apply dirty NetPols every 500ms in Linux

* only build npm linux image

* fix: check for empty cache

* feat: toggle for netpol interval. default 500 ms

* ci: remove stages "build binaries" and "run windows tests"

* wip: max batched netpols (toggle-specified)

* ci: remove manifest build/push for win npm

* wip: handle ipset deletion properly and max batch for delete too

* fix: correct remove policy

* fix: only remove policy if it was in kernel

* finalize toggles, allowing ability to turn off iptablesInBackground

* ci: conf + cyc use PR's configmaps

* fix: lints

* fix dp toggle: iptablesInBackground

* fix lock typo and config logging

* fix background thread. add comments. only add tmp ref when enabled

* copy pod selector list

* fix: removepolicy needs namespace too

* rename opInfo to event

* fix: fix references and prevent concurrent map read/write

* tmp: debug logging

* fix: missing set references by swap keys and values

* Revert "tmp: debug logging"

This reverts commit 70ed34c714ea4a6d009a1fe90a7168be4bedd5bf.

* fix: add podSelectorList to fake NetPol

* log: do not print error when failing to delete non-existent nft rule

* log: verbose iptables bootup

* log: use fmt.Errorf for clean logging

* log: never return error for iptables in background and fix some lints

* fix: activate/deactivate azure chain rules

* fix: correctly decrement netpols in kernel

* ci: run UTs again

* ci: update profiles. default to placefirst=false

* address comment: rename batch to pendingPolicy

* refactor: make dirty cache  OS-specific

* test: UTs

* test: put UT cfg back to placefirst to not break things

* ci: update cyclonus workflows

* fmt: address comment & lint

* fmt: rename numInKernel to policiesInKernel

* log: switch to fmt.Errorf

* fmt: whitespace

* feat: resiliency to errors while reconciling dirty netpols

* log: temporarily print everything for ipset restore

* fix: remove nomatch from ipset -D for cidr blocks

* test: UTs for non-happy path

* test: fix hns fake

* fix: don't change windows. let it delete ipsets when removing policies

* fix windows lint

* fix: ignore chain doesn't exist errors for iptables -D

* feat: latency and failure metrics

* test: update exit code for UT

* metrics: new metrics should go in node-metrics path

* style: simplify nesting

* style: move identical windows & linux code to shared file

* ci: remove v1 conformance and cyclonus

* feat: add NetPols in background from the DP (revert background code in pMgr)

* style: remove "background" from iptables metrics

* revert changes in ipsetmanager, const.go, and dp.Remove/UpdatePolicy

* style: whitespace

* perf: use len() instead of creating slice from map

* remove verbosity for iptables bootup

* build: add return statement

* style: whitespace

* build: fix variable shadowing

* build: fix more import shadowing

* build: windows pointer issue and UT issue

* test: fix UT for iptables error code 2

* ci: enable linux scale test

* ci: revert to master pipeline.yaml

* revert changes to chain-management. do changes in PR #2012

* log: change wording

* test: UTs for netpol in background

* log: wording

* feat: apply ipsets for each netpol individually

* config: rearrange ConfigMap & update capz yaml

* fix: windows bootup phase logic for addpolicy

* feat: restrict netpol in background to linux + nftables

* test: skip nftables check for UT

* style: netpols[0] instead of loop

* log: address log comments

* style: lint for long line

---------

Co-authored-by: Vamsi Kalapala <vakr@microsoft.com>
2023-07-19 09:13:52 -07:00
Hunter Gregory 61aae0371b
perf: [WIN-NPM] add all cached NetworkPolicies to a Pod at once (#1893)
* cherry-picking stuff from apply in background POC

* add all policies poc

* add debug prints

* fix deadlock

* fix other GetPolicy deadlock

* update whitespace in yamls

* properly merge

* properly merge 2

* add ACLs in batches

* cleanup errors

* lint and log

* persist state as we add

* refactor into function so we can do UTs on batching

* fix lint

* batch struct

* successful policies

* reduce batch limit to 30
2023-04-26 08:33:50 -07:00
Hunter Gregory aa163aad3f
perf: [WIN-NPM] apply ipsets in background (#1875)
* wip

* fix UT by applying dataplane immediately for RemovePolicy()

* configmap options for apply in background

* fix deadlocks

* better logging

* rename config variables, update default config, change shouldApply check

* update configmap values

* FIXME: remove tmp commit overriding applyDP config (using for pipeline tests)

* optimize applying ipsets for add policy

* cleanup code and finalize apply ipsets for netpols

* flip order of if statement

* UTs. address comments. fix netpol behavior by waiting to start pod controller

* all UTs except ones related to issue #1729

* remove bootup phase stuff

* fix lints and move applyinbackground to toggle

* fix lint

* don't check isWindows every time

* use diff var for applyinbackground

* fix lint
2023-04-19 13:46:18 -07:00
Hunter Gregory 2832b50375
feat: [NPM-WIN] support for CAPZ windows testing (#1752)
* set kubeconfig on capz

* update dockerfile

* test network name Calico

* add base acls

* add WindowsNetworkName toggle and revert hard coded Calico parts

* update base acls for calico and add UTs

* capitalize calico network name

* fix connectivity. try with host allow acls

* revert change to policy_windows.go

* more UTs and add base ACLs for other "new endpoint" scenario

* run all UTs

* update npm image to .42

* add log line

* allow traffic going inter-node

* Revert "allow traffic going inter-node"

This reverts commit e1014822d5.

* add long-runner pod for testing vfp tags in capz

* fix lints
2023-03-02 13:24:31 -08:00
Hunter Gregory 26a4b6571e
feat: [NPM] include NPM v1/v2 in telemetry and fix heartbeat log (#1266)
* include NPM v1/v2 in telemetry

* fix heartbeat
2022-03-08 10:39:16 -08:00
Hunter Gregory c2c1d45ceb
feat: [NPM] v2 as default config & PlaceFirst toggle functionality for v2 (#1233)
* add placeFirst to pMgr cfg

* add placeFirst=false functionality to v2

* use constant instead of bool values for placeFirst

* fix bug and update cyclonus profiles

* set placefirst config based on configmap

* make code cleaner

* position azure jump first or directly after kube jump

* fix npm encoder ut
2022-02-16 15:37:40 -08:00
Nitish Malhotra d3aeda737e
feat: [NPM] Restructure code and add deploy manifests (#1203) 2022-02-04 16:25:12 -08:00
Hunter Gregory 6399c338ed
feat: toggle for ipset mode plus profile for v2-apply-on-need (#1207)
* feat: toggle for ipset mode plus profile and cyclonus test for v2-apply-on-need

* fix typo
2022-01-26 11:13:28 -08:00
Nitish Malhotra 6a63ac05a7
feat: [NPM] Create controlplane manager for decomposed model (#1189)
* Revert to smaller footprint

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Add dataplane manager implementation

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Add start commands for cp and dp

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Address PR comments

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Add dp and dpshim layers to respective constructor

- Completed the TODO items including instantiating the
  goalstateprocessor and passing it to the controllers
- Refactor of the code and add error/corner condition checks to all
  initializers.

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Update names to server and daemon

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Fix lint warnings and errors

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Fix unwrapped error warning

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Address comments

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* rename npm transport components

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Address comments from Hunter

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Fix issue with ctor dataplane client

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* Rename transport to events naming conventions

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>

* combine consts

Signed-off-by: Nitish Malhotra <nitishm@microsoft.com>
2022-01-19 16:41:55 -08:00
Mathew Merrick 537b11cc34
feat: add image and manifest for windows npm (#1098)
* add image and manifest for windows npm
2021-12-02 09:55:36 -08:00
JungukCho bba5352d66
feat: [NPM] Update feature toggles and corresponding codes for enabling V2 NPM test (#1115)
* Update codes to enable V2 NPM

* Deleted dead codes (if we want to keep it, please let me know)

* Update azure-npm.yaml to add toggle parameters

* Fix incorrect call for v2 NPM
2021-11-19 09:31:42 -08:00
Hunter Gregory db3c7065bb
fix: [NPM] reposition iptables jump to AZURE-NPM chain (#1086)
* put jump from forward to azure-npm chain above the one to kube-services

* update unit test

* add toggle for chain position

* incorporate toggle in iptm and update UTs. v1 controller tests seem broken

* rename toggle name

* jump to azure chain on new ct state and update default toggle (UTs will break)

* make util constant for UTs and fix UT errors (besides ones I get for controllers)

* added missing module args for ctstate NEW

* reconcile jump to azure chain at top

* delete deprecated jump to azure chain on uninit, and fix go lint

* assign correct default toggle value

* addressed comments

* fix UTs after removing index 1 for placing chain first. Also make all tests subtests for check and add forward chain

* set PlaceAzureChainFirst: true

* switch to correct default for PlaceAzureChainFirst
2021-11-16 15:30:34 -08:00
Mathew Merrick 60820006e1
refactor: move existing npm controllers to v1 (#1040)
* put v2 behind toggle
2021-10-20 13:03:12 -07:00
Mathew Merrick 836ee3810e
feat: [NPM] Add config file and feature toggles (#979)
* package case

* package restructure

* add default config and toggles

* lint
2021-09-01 09:03:24 -07:00