Skip to content

v0.0.14

Compare
Choose a tag to compare
@carolineechen carolineechen released this 21 Dec 16:42
· 1226 commits to main since this release
7661219

Highlights

  • Secrets Revamp (#135)
    • Facilitate saving, sending, and sharing of Secrets by treating Secrets as a Runhouse resource
  • (Alpha) AWS Lambda Functions support (#139, #240, #244)
    • Introduce AWS Lambda support for Runhouse functions

Secrets Revamp

The rh.Secrets class is being deprecated in favor of converting secrets to a Runhouse resource type. As with other resources, the new Secret class supports saving, reloading, and sending secrets across clusters.

There are various builtin secret provider types, for keeping track of compute providers (aws, azure, gcp..), api key based providers (openai, anthropic, …), and ssh key pairs.

# non-provider secret, in-memory
my_secret = rh.secret(name=”my_secret”, values={“key1”: “val1”, “key2”: “val2”})
my_secret.save()
reloaded_secret = rh.secret(“my_secret”)

# provider secret, in-memory or loaded from default location
aws_secret = rh.provider_secret(“aws”)  # loads from ~/.aws/credentials or from env vars
openai_secret = rh.provider_secret(“openai”, values={“api_key”: “my_openai_key”})  # explicitly provided values

There are also various APIs for syncing secrets across your clusters and environments:

aws_secret.to(cluster, env)
cluster.sync_secrets([“aws”, “gcp”], env)

env = rh.env(secrets=[“aws”, “openai”]
fn.to(cluster, env)

Please refer to the API tutorial for a more in-depth walkthrough of using Secrets, or the documentation for specific APIs and a full list of builtin providers.

(Alpha) Lambda Functions (AWS serverless)

Runhouse is extending functions to Amazon Web Services (AWS) Lambda Compute. These functions are deployed directly on AWS serverless compute, with Lambda’s infra and servers handled under the hood, making the Lambda onboarding process more smooth and removing the need to translate code through Lambda-specific APIs.

Note: Lambda Functions are in Alpha and the APIs are subject to change. A more stable release along with examples will be published soon. In the meantime, you can find documentation here.

New Additions

  • Add visibility to resource config, and enable public resources (#222)
  • API for revoking access to shared secrets (#235)

Bug Fixes

  • Proper tunnel caching (#191, #194): tunnels were not previously being cached correctly, and dead connections not accounted for
  • Sagemaker cluster launch fix (#206): remove runhouse as a dependency from the launch script, as it has not yet been installed on the cluster
  • Fix bug with loading runhouse files/folders through SSH fsspec (#225): custom SSH port was not being set in fsspec filesystem of runhouse files/folders
  • Correctly launch multiple node clusters according to num_instances (#229): previously was not properly launching multiple nodes

Deprecations + BC-Breaking

  • access_type deprecated and renamed to access_level for resource and sharing (#223, #224, #231)
  • rh.Secrets class deprecated in favor of convert Secrets to a resource type ((#135). Some old APIs are removed, and others are deprecated. Please refer to docs and tutorial for the new secrets flow.

Other

  • README updates (#187)
  • Various docs updates