Changelog
List of aperture PRs merged since 2.19.0 release. For the full list of changes, see [list of changes][changes]
peers: fix peer deletion issue (2807)
Delete policy as Custom Resource when on kube (2803)
- New Feature: Enhanced the policy deletion process in the Aperture
Control Command. Now, it can handle policy deletions directly from
Kubernetes, improving the overall user experience.
- Improvement: Added conditions to verify if the controller is running
in Kubernetes, ensuring smoother operations.
- Improvement: Enhanced error handling for different scenarios during
the policy deletion process, increasing the system's reliability.
- New Feature: Added logging statements to provide more transparency
about the policy deletion process, aiding in troubleshooting and system
monitoring.
Made version mandatory for aperturectl install and uninstall (2802)
We cannot publish a chart with version as latest as it doesn't consider
it as a valid semver.
- **Change**: The `--version` flag in the `aperturectl install` and
`aperturectl uninstall` commands now requires explicit input from the
user. The default value of "latest" has been removed.
- **Impact**: This change enhances the precision of the installation and
uninstallation process, ensuring users have full control over the
version of Aperture they are managing. It prevents unintentional
installations or uninstallations of the latest version when a specific
version is intended.
- **Documentation**: Updated command references in the documentation to
reflect this change. Users are now guided to provide a specific version
when using these commands.
Add cloud blueprints CRUD support and aperturectl refactor (2799)
- New Feature: Introduced a new service for managing blueprints in the
cloud, including listing, getting, applying, and deleting blueprints.
- New Feature: Added new commands to the `aperturectl` tool for
interacting with blueprints and policies in the cloud, including
listing, getting, applying, and deleting.
- Refactor: Improved the modularity and error handling of the `pullCmd`
command in the `aperturectl` tool.
- Refactor: Streamlined the `aperturectl` tool's codebase by removing
unnecessary global variables and updating function calls.
- Documentation: Updated the `aperturectl` tool's documentation to
reflect changes in command names and usage.
- Style: Renamed the `apply` package to `policy` for clarity and
consistency.
These changes enhance the software's usability by providing more
intuitive commands for managing blueprints and policies. They also
improve the software's reliability by refining error handling.
---------
Co-authored-by: Hasit Mistry <hasitfluxninja.com>
Bump OTel to v0.87.0 (2797)
grpc: update keep alive settings (2792)
"Refactor: Updated gRPC server configuration and metrics in
`pkg/net/grpc/server.go`. The server now creates the `grpcServerMetrics`
object after appending server options and directly sets the `MinTime`
field in the `keepalive.EnforcementPolicy` struct. Additionally, the
handling time histogram is now enabled for `grpcServerMetrics`.
Bug Fix: Modified keepalive settings in `sdks/aperture-js/sdk/client.ts`
and `sdks/aperture-py/aperture_sdk/client.py`. Removed the option to
allow keepalive pings when there are no active calls, enhancing network
efficiency."
remove rpc package (2789)
Description of change
- Removes the existing `rpc` package (which uses gRPC) which has been
replaces by the new etcd based rpc.
- Removes the proto types used by this package
Signed-off-by: Sahil Lakhwani <sahilakhwanigmail.com>
Fixes in policy deserialization and hashing (2787)
This fixes the "rpc error: code = Internal desc = grpc: error while marshaling:
string field contains invalid UTF-8" in `aperturectl policies`, which was
caused by attempt to unmarshal protowire policy as JSON, which caused the
garbage byte to end up in error message, which we put in Reason field of the
response.
Now the "unmarshal proto or JSON" logic is extracted to a function and used in
all places that interact with api/policies in etcd.
Also, this commit makes policy hashes (more) deterministic (proto marshalling
is not deterministic by default and in cases maps were used in policy (eg.
label matcher), the policy hash could change on controller restart).
Enable introspection client for cloud (2786)
- Refactor: Updated the function call in `control-points.go` from
`utils.ParseControlPoints(client)` to
`utils.ParseAutoScaleControlPoints(client)` for better clarity and
specificity in autoscaling operations.
- Bug Fix: Modified the `IntrospectionClient` function in
`controller.go` to call the `client()` method instead of returning an
error. This change ensures a smoother user experience by providing the
Controller's introspection client directly, reducing potential error
occurrences.
add consul integration docs (2621)
- New Feature: Added a comprehensive guide for Consul integration. This
includes detailed instructions on prerequisites, installation steps,
verification of the installation, and uninstallation process.
- Documentation: Provided support information for different versions and
service defaults. Also included are visual aids with images for both
light and dark modes to enhance user understanding.
---------
Co-authored-by: Hardik Shingala <hardik.shingalafluxninja.com>
Add policy hash to UpsertPolicy response (2755)
Drive-by: Simplify Upsert to do an unconditional Put, moving the
"avoid accidental overwrite" check to aperturectl itself.
etcd based rpc (2756)
Description of change
- Adds a new package for etcd based RPC
- Controller registers as a server and agents register as a client
- The etcd keys used to communicate have a lease and get auto deleted
Signed-off-by: Sahil Lakhwani <sahilakhwanigmail.com>
grpc: add server keepalive parameters (2777)
- New Feature: Implemented server-side gRPC keepalive parameters. This
enhancement improves the robustness of network connections by
periodically sending ping frames and enforcing policy for client pings,
reducing the likelihood of dropped connections due to network inactivity
or instability.
logging: add log when new token buckets are instantiated (2769)
Fix unmarshalling in getPolicyResponse (2766)
Now policies are saved as JSON in etcd so we need to change the
getPolicyResponse unmarshaller as well
logging: add log when new token buckets are instantiated (2768)
Simplify newer version behaviour for aperturectl (2764)
- Refactor: Updated the assignment of `blueprintsCacheRoot` and
`builderCacheRoot` variables in `PullRunE` and `BuildCmd` functions
respectively, replacing hardcoded paths with dynamic ones for better
flexibility and maintainability.
- Refactor: Renamed and updated several functions in the Cloud
Controller for clarity and error handling improvements.
- New Feature: Added logic to remove cache directories if the current
version is newer, improving system cleanliness.
- New Feature: Introduced global variables in the `utils` package for
better code modularity.
- Refactor: Updated the `versionFilePath` assignment to use a dynamic
path, enhancing code flexibility.
[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v2.19.0...releases/aperture-controller/v2.20.0