Changelog
List of aperture PRs merged since 2.17.0 release. For the full list of changes, see [list of changes][changes]
Made service optional in flow-control preview and other fixes (2695)
- New Feature: Added `aperturectl cloud apply dynamic-config` command to
apply Aperture DynamicConfig to a Policy.
- New Feature: Introduced `autoscale` and `decisions` commands to the
`CloudCmd` command-line interface for querying information about active
AutoScale integrations and getting Aperture Decisions respectively.
- Refactor: Updated `PreviewCmd` command to accept only one argument,
the control point, and added a new flag `service` to specify the service
Fully Qualified Domain Name (FQDN) for the preview.
- Documentation: Added comprehensive documentation for all new commands
and updated existing ones to reflect changes in command usage and
arguments.
- Bug Fix: Modified `GetPolicies` function to log invalid policies and
continue processing valid ones instead of returning an error.
Use User API token in aperturectl and separate `aperturectl cloud` subcommand (2687)
- New Feature: Added new commands to the CLI tool for listing agents,
control points, entities, and policies.
- New Feature: Introduced utility functions for managing Aperture
policies including retrieving, parsing, updating, checking for updates,
deleting, and listing policies.
- Refactor: Improved modularity and code reuse by moving logic to
utility functions in the `utils` package.
- Documentation: Updated documentation to reflect changes in
command-line options and added new sections for various commands related
to the Cloud Controller.
- Bug Fix: Corrected a typo in a log message in the self-hosting
controller docker file.
Fixed policy update using API (2693)
refactor: use proto format when writing proto messages to etcd (2691)
Use proto format when writing proto messages to etcd.
- New Feature: Transitioned from JSON/YAML serialization to Protocol
Buffers (protobuf) for policy data, infra meter configurations, and peer
information. This change enhances performance and compatibility with
other systems.
- Refactor: Updated the unmarshalling process across various modules to
use a new `ProtobufUnmarshaller` implementation, improving code
maintainability.
- Refactor: Simplified the policy validation and compilation process by
introducing separate functions for handling YAML and protobuf inputs.
- Bug Fix: Corrected the application of field masks to policies in the
control plane module, enhancing data accuracy and consistency.
Controller fixes (2690)
Description
* Fix Controller restart getting stuck because of older leader results.
* Fix graceful shutdown issue in Controller because of `GracefulStop` in
grpc server.
* Reduce etcd lease TTL from 60s to 10s so that older (left over in-case
of non-graceful shutdown) leader entry expires before readiness failure
of Controller.
Fix rate limiter when continuous_fill is set to false (2688)
- New Feature: Added a `disable_delayed_filling` field in the
`RateLimiter` message to allow disabling the delayed filling of the
token bucket, providing more control over rate limiting behavior.
- Refactor: Simplified blueprint generation by removing unused
`metadata` parameters and variables. This change improves code
readability and maintainability.
- Refactor: Introduced a new function `getWaitTime` in the
`GlobalTokenBucket` struct to calculate wait time for tokens, improving
code readability.
- Bug Fix: Fixed deep copy operation in the `DeepCopyInto` method of the
`AgentConfigSpec` struct, eliminating unnecessary operations.
- Documentation: Updated documentation for the RateLimiter component to
reflect changes in functionality and configuration options.
---------
Co-authored-by: Harjot Gill <harjot.gillfluxninja.com>
Disable auto scale by default and adds its permission only when enabled (2681)
- New Feature: Introduced a new configuration option
`agent.config.auto_scale.kubernetes.enabled` to control the auto-scaling
feature of the Aperture Agent.
- Refactor: Changed the default value of the auto-scaling feature in
Kubernetes from `true` to `false`. This means that the auto-scaling
functionality will now be disabled by default, providing users with more
control over their resource management.
- Documentation: Updated documentation to reflect these changes in the
configuration parameters.
Fixes and improvements on documentation (2680)
This PR contains below changes:
1. Make Helm the default option for installation and aperturectl
secondary
2. Fixed some of the docs issues observed during installation
3. Added separate policy apply command per installation time
4. Fixed one issue where apimeta.IsNoMatchError was not working as
expected
- Refactor: Replaced usage of "apimeta.IsNoMatchError" with a custom
utility function "utils.IsNoMatchError" across multiple files for better
error handling.
- Documentation: Updated and improved the installation instructions for
Aperture Agent and Controller in various deployment scenarios, providing
clearer steps for both `aperturectl` CLI tool and Helm.
- New Feature: Added new configuration options in the self-hosting agent
configuration file, allowing users to disable certain Kubernetes
scrapers and control service discovery.
- Chore: Swapped the order of `Helm` and `aperturectl` in installation
instructions across multiple documentation files for consistency.
Fixed issue in aperturectl when both uri and version is provided with blueprints generate (2682)
"Bug Fix: Enhanced error handling in blueprint generation command
- The update introduces a more robust check for the presence of
`blueprintsVersion` and `blueprintsURI`.
- If both are missing, the system now attempts to retrieve these values
from the `values` map.
- In case the required information is still not found, an explicit error
message is returned, improving user feedback and troubleshooting.
- This fix enhances the reliability of the blueprint generation process
and provides clearer guidance when input parameters are missing."
Set workload index as fairness label (2676)
- Refactor: Simplified the assignment of `fairnessLabel` in the `Decide`
function of the `Scheduler` struct by removing unnecessary string
concatenation.
- Refactor: Streamlined the assignment of `request.FairnessLabel` to
`metricsLabels[metrics.WorkloadIndexLabel]` in `wfq.go`, eliminating the
need for the `strings` package.
These changes enhance code readability and maintainability without
altering the underlying logic or functionality.
[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v2.17.0...releases/aperture-controller/v2.18.0