Skip to content

Releases: np-guard/cluster-topology-analyzer

v1.7.0

24 Apr 06:00
15a6186
Compare
Choose a tag to compare

Changes from 1.6.0:

  • Improved connection-detection algorithm now also scans the command-line flags of each image, looking for candidate network addresses.
  • PoliciesSynthesizer now has a new functional option: WithDNSPort(dnsPort int). This option allows specifying a non-default DNS port, to be used in egress rules of synthesized NetworkPolicies (default is 53).
  • Consequently, a new command-line flag, -dnsport provides the same functionality from the command line.
  • Simplified code for scanning YAML manifests improves performance and memory consumption.
  • Improved end-to-end testing now also includes command-line arguments parsing.
  • Bumped Kubernetes API version to 0.24.

v1.6.0

20 Feb 11:41
72c98d7
Compare
Choose a tag to compare

Changes from v1.5.0:

  • API support for analyzing multiple directories together: the functions ConnectionsFromFolderPaths and PoliciesFromFolderPaths take a slice of paths (as strings) and perform the analysis on all these directories as if they were a single path given to ConnectionsFromFolderPath and PoliciesFromFolderPath respectively.
  • Consequently, the --dirpath can be specified multiple times in the command-line to provide the tool with multiple directories to analyze.
  • Errors returned by PoliciesSynthesizer.Errors() now have distinct types, allowing consumers to programmatically check for a specific error.
  • Testing improvements:
    • Synthesized NetworkPolicies are applied to a live cluster to check for syntax errors
    • Table-driven e2e testing
  • Updating CONTRIBUTING.md and adding MAINTAINERS.md

v1.5.0

04 Jan 11:15
a7b194d
Compare
Choose a tag to compare

Changes from v1.4.1:

  • README.md now contains much more information, including how the main algorithm works and the assumptions it makes.
  • In generated NetworkPolicies with egress, the added rule to allow DNS queries now only allows queries within the cluster.
  • User can now provide a specialized directory-scanning function to be used when searching for YAML files. Use the WithWalkFn() functional option when constructing a PoliciesSynthesizer. E.g., synthesizer := NewPoliciesSynthesizer(WithWalkFn(nonRecursiveWalk)).
  • Some code refactoring to avoid a global Logger.

v1.4.1

04 Nov 07:25
a81bb27
Compare
Choose a tag to compare

Changes from 1.4.0:

  • Bug fix: name of generated NetworkPolicies must not end with '-'

v1.4.0

03 Nov 14:16
600dc4f
Compare
Choose a tag to compare

Changes from v1.3.2:

  • A new command-line flag, -format allows specifying the output format. Choices are json and yaml.
  • Now synthesizing a default-deny NetworkPolicy for every namespace specified by one of the workloads (which may also be the empty namespace). This will block ingress and egress for workloads without any identified connection.
  • Required Go version is now 1.18 (was 1.17).
  • Simplifying testing code using the testify package.

v1.3.2

28 Sep 14:02
6d8c88a
Compare
Choose a tag to compare

Changes from v1.3.1:

  • Documentation of exposed API
  • Testable usage example
  • No longer exposing deploymentConnectivity
  • Dependency update

v1.3.1

20 Sep 08:04
9b0d288
Compare
Choose a tag to compare

Changes since v1.3.0:

  • Updated README.md to reflect recent changes to command-line interface and to API

v1.3.0

19 Sep 14:52
f07635b
Compare
Choose a tag to compare

Changes from v1.2.2:

  • Exposing API for the analysis and synthesis package: A PoliciesSynthesizer class exposes methods for extracting the topology and for synthesizing NetworkPolicies. The class also allows the user to set a custom logger, and to get a slice with all non-fatal errors/warnings encountered during the analysis.
  • Extracting network addresses from ConfigMap values referenced using ConfigMapKeyRef
  • Matching network addresses without a target port
  • Matching network addresses with a specified namespaces
  • Egress and Ingress rules only expose the ports that are actually being used (and not all the ports exposed by the service)
  • NetworkPolicies are now provided in a NetworkPolicyList object (rather than in a plain JSON list)
  • Fixed issues with splitting YAMLs to documents
  • New -q (quite) and -v (verbose) command-line switches to control verbosity level
  • Removed Git-related command-line switches
  • A more precise detection of relevant K8s resources
  • Improved OpenSSF score (hash pinning, setting proper permission to GitHub Actions, ...)
  • Introduce linting checks for PRs

Release v1.2.2

20 Jul 09:32
70fc9d8
Compare
Choose a tag to compare

Changes in this Release:

  • Support for named ports
  • Various bug-fixes

Release v1.2.1

27 Jun 09:10
07dde94
Compare
Choose a tag to compare

Changes in this Release:

  • Publishing release to pkg.go.dev in the release workflow