v0.13.0-beta.1
Pre-releaseWhat's Changed
The wadm manifest has a new block, policies
, and a new streamlined syntax for link traits with the addition of secrets. Both of these changes are backwards compatible.
Secrets
Secret configuration can now be defined for components, providers, and links. For components and providers, the secrets:
block is now available in the component properties:
section, alongside config. The secret should be named however the component or provider refers to it in code, the policy
field should point to an appropriate policy that configures the secrets backend, and then the key
, field
, and version
properties should indicate how to reference the secret in the backend itself.
components:
- name: http-component
type: component
properties:
image: ghcr.io/wasmcloud/test-fetch-with-token:0.1.0-fake
secrets:
# wasmCloud will fetch this secret from the vault backend
- name: some-api-token
properties:
policy: vault
key: secrets/test/value
field: api-token
version: 1
Policies
With the addition of secrets in wasmCloud, secrets backends often require more information in order to authenticate a component. In the case of Vault for example, the secrets backend requires knowledge of the role name and mount path. If you're using secrets, ensure you define an appropriate policy for the backend, and then refer to that policy by name
spec:
policies:
- name: vault
type: policy.secret.wasmcloud.dev/v1alpha1
properties:
backend: 'vault'
role_name: 'demo-role'
mount_path: 'jwt'
Links
The link trait definition now deprecates the source_config
, target_config
, and target: <name>
properties in favor of a new streamlined syntax:
- type: link
properties:
namespace: wasi
package: keyvalue
interfaces: [atomics, store]
source:
config:
- name: redis-url
properties:
url: 127.0.0.1:6379
target:
name: kvredis
secrets:
- name: redis_password
properties:
policy: nats-kv
key: redis_password
The link source and target blocks now have config:
and secrets:
nested properties for defining config and secrets, respectively. To simplify the blocks, the target: name: <name>
field is now nested in order to organize all target information in one place. This change is backwards compatible and wadm will automatically update an application manifest with the source_config
or target_config
blocks before storage. Put another way, you can use the following script to update any application manifests:
wash app put wadm.yaml
wash app get <app-name> > wadm-updated.yaml
Features
- Add support for secrets in manifests - Breaking change: introduces the ability to manage secrets directly within the manifests. (#307)
- Retry state updates - Added a feature to automatically retry state updates to improve reliability. (#315)
- Add policy configuration block - Introduces a new block for configuring policies. (#306)
- Added WIT bindings for OAM types and subscription method - Enables OAM type support and a new subscription method. (#301)
Bug Fixes
- Correctly emit a validation error if a backend key in a policy is missing - Ensures that a missing backend key in a policy results in a validation error. (#344)
- Copy backend key to top level in a generated config value - Fixes an issue where the backend key was not correctly copied. (#343)
- Write out policy data in a secret config correctly - Corrects the way policy data is written out in secret configurations. (#339)
- Use instances in all examples - Updates all examples to utilize instances. (#314)
Enhancements
- Enable upgrades integration test - Added integration tests for upgrade scenarios. (#312)
- Add dependabot configuration - Added Dependabot for automatic dependency updates. (#319)
- Update CODEOWNERS with team - Updated the CODEOWNERS file to reflect the current team. (#349)
- Use application verbiage instead of model - Updated terminology from "model" to "application" throughout the project. (#342)
- Updating wadm links - Updated documentation links for
wadm
. (#338) - Bump appVersion in the helm chart - Updated the Helm chart appVersion to the latest. (#351)
Chores
- Prepare 0.13 release - General preparation and housekeeping for the 0.13 release. (#348)
CI/CD
- Use GITHUB_TOKEN to release - Updated release process to utilize GITHUB_TOKEN. (#318)
- Update upload/download to v4 - Updated CI workflows to use version 4 of the upload/download actions. (#331)
New Contributors
- @ricochet made their first contribution in #314
- @LUK3ARK made their first contribution in #301
- @dependabot made their first contribution in #323
- @lxfontes made their first contribution in #338
Full Changelog: v0.12.2...v0.13.0-beta.1