Servox

Latest version: v24.3.0

Safety actively analyzes 682471 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 9

0.8.1

Maintenance release to remove development packages from Docker images.

Changed

- Reworked Docker build automation to decouple from release process.
- Fixed breakage in production builds.
- Updated Poetry dependency to v1.1.0 in Dockerfile.

0.8.0

Added

- `servo.__codename__` constant now contains the release codename.
- Extensive docstring comments for all members of the `servo.types` module.
- Kubernetes Containers can be aliased to set explicit Compomnent names rather
rather than automatically deriving names from Deployment/Container.
- Kubernetes Optimization Strategy classes can now accept options from the
config file (currently supports `alias` for canaries).
- Integrated orjson to gain control over JSON/YAML serialization for classes
that inherit from built-in types (e.g., str, int, float).
- The `ProgressHandler` now handles exceptions and optionally notifies an
external exception handler.
- Servo will now interrupt operations when it detects losing sync with the
backend by encountering unexpected operation errors.
- Critical checks can be declared via the `require` decorator.
- Added the `warn` decorator for creating checks that emit warnings rather than
failing.

Removed

- Subprocess methods have been removed from `servo.connector.Connector` in favor
of directly importing the subprocess module from the utilities module.
- The `required` attribute from the `servo.checks` module in favor of
`severity`.

Changed

- The `servo.logging` module has been generalized for use outside of the
`servo.connectors.Connector` inheritance hierarchy.
- The active connector is now managed via a `ContextVar` just as the active
event is. This enables logging to correctly be attributed to the active
connector without having to pass a specific logger object around everywhere.
- The `servo.types.Setting` class has been significantly overhauled:
- Setting is now an abstract base class
- RangeSetting models range settings
- EnumSetting models enum settings
- Introduce CPU, Memory, Replicas, and InstanceType settings for special
optimizer settings
- Validate numerous behaviors (range inclusion, enum inclusion, type
agreement, etc)
- JSON and YAML serializations now favor human readable representations by
default whenever possible.
- Multicheck methods now yield more readable IDs based off the parent multicheck
method name (e.g., `check_resource_requirements_item_0`).
- Checks now have a severity described by the `servo.checks.Severity`
enumeration, replacing required.
- Required check nomenclature has been replaced with the `critical` severity
level to clarify expectations and eliminate ambiguity in check behavior.

Fixed

- Progress tracking now handles zero length durations appropriately (e.g., in
warmup, settlement, etc).
- Model objects that inherit from builtin classes can now be serialized to
custom representations.
- Kubernetes configuration values now serialize to human readable values instead
of numerics.
- Multicheck expanded methods are now filterable and taggable.
- Progress logging and reporting will no longer trigger unhandled exceptions.
- Adjust operations now return a state descriptor rather than parroting back the
requested state.
- Kubernetes Connector is now aware of out of band changes such as those made by
Horizontal Pod Autoscalers.

0.7.0

Added

- `servo run --check` can now be controlled via the `SERVO_RUN_CHECK`
environment variable.
- The `servo.logging` module now provides the `set_colors` function for
programmatically enabling or disabling coloring.
- The CLI accepts a `—no-colors` argument that will explicitly disable coloring.
- The `SERVO_NO_COLOR` and `NO_COLOR` environment variables are respected to
disable coloring.
- The API URL can be now be overridden via the hidden `--url` CLI option or the
`OPSANI_URL` environment variable.
- Introduce the `multicheck` decorator for use in checks implementations. A
multicheck is method that returns an iterable collection of checkable objects
and a `CheckHandler` callable that can evaluate each item. Each item in the
iterable collection is wrapped into an individual check and run independently.
This provides a simple mechanism for checking configurations that have a mix
of settings that need to be handled specifically and homogenous collections
that can be handled iteratively. The generated checks are filterable and fully
integrated with the CLI.
- Checks and multichecks now support templated string inputs. The `self` and
`item` arguments are made available as format variables, enabling the names
and descriptions given to the decorators to produce dynamic, contextual values
from the configuration. This enhances the readability and diagnostic context
of the checks output.
- The Prometheus connector now exposes a rich set of checks.
- The Prometheus connector now accepts an optional list of targets that are
expected to be scraped.

Changed

- Log coloring is now conditionally enabled via TTY auto-detection.

Fixed

- Handle measure command responses that include metric units (`oco-e`
compatibility).
- Prometheus can now connect to localhost URLs.
- The `get_instance_methods` utility function now returns instance methods that
are bound to a specific object instance

0.6.2

Changed

- Switched Docker base image to `python:3.8-slim`.

0.6.1

Enhanced

- Logging when connecting via a proxy.

Fixed

- Handled null annotations and labels when cloning a Deployment in order to
create a Pod.
- Servo runner now honors proxy settings (previously only honored within
connectors).
- `servo check servo` now works as expected (previously not handled as a
connector name).

Changed

- Updated to httpx v0.14.3.

0.6.0

Enhanced

- The checks subsystem has been rearchitected to streamline the development of
checks and provide a better operational experience for running and debugging
checks.

Added

- `servo run --check` will run all configured checks before starting the servo
runloop.
- `servo check` now supports filtering by name, id, and tags. Failure mode
handling is configurable via `--halt-on-failed=[requirement,check,never]`
- `servo run` now applies exponential backoff and retry to recover from
transient HTTP errors.
- Introduce associations mixin for managing off-model support objects that don't
make sense to model as attributes.
- `ServoConfiguration` class for applying settings to the servo itself.
- HTTP proxy support (configured on `ServoConfiguration`).
- Timeout configuration (configured on `ServoConfiguration`).
- Support for configuring backoff and retry behaviors (configured on
`ServoConfiguration`).
- Baseline set of checks on the Kubernetes Connector.

Fixed

- Attempting to connect to an invalid or unavailable optimizer backend now
triggers exponential backoff and retry rather than crashing.
- Encountering an unexpected event error from the optimizer now aborts the
operation in progress and resets rather than waiting for the operation to
complete.

Page 7 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.