Skip to content

Echo backend as a drop in replacement for testing #221

Open
@stmcx

Description

Context

https://github.com/helmfile/vals?tab=readme-ov-file#echo

ref+echo://foo/bar/baz#/foo/bar generates baz. This works by the host and the path part foo/bar/baz generating an object {"foo":{"bar":"baz"}} and the fragment part #/foo/bar results in digging the object to obtain the value at $.foo.bar.

I would like to use echo backend as drop in replacement for AWS Secret Manager ref+awssecrets://myteam/mydoc#/foo/bar for testing purposes.

Issue

This seems to fail because echo backend is trying to dig foo/bar in an object generated on the fly {myteam: mydoc} when ref+awssecrets://myteam/mydoc#/foo/bar is a valid use case.

It is not clear why the echo backend is enforcing this logic between the path and the fragment https://github.com/helmfile/vals?tab=readme-ov-file#expression-syntax . From my understanding, the path is used to retrieve an object in some secret backend and fragment is used to traverse the object rather than the path (as the echo backend is doing).

I will have to rewrite all my helm file templates to satisfy echo backend logic rather than simply substituting ref+awssecrets with ref+echo

I understand no object will be retrieved. Is it possible to echo a k8s safe version of myteam/mydoc#/foo/bar instead?

Error

Helmfile is failing with

err 1: failed to render values files "vars/example.yaml.gotmpl": expand echo://secret-manager#/EXAMPLE: key must have two or more components separated by "/": got "secret-manager"

Thanks

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions