Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ios: unable to compile resources with framework #341

Closed
rebello95 opened this issue Aug 16, 2019 · 1 comment
Closed

ios: unable to compile resources with framework #341

rebello95 opened this issue Aug 16, 2019 · 1 comment

Comments

@rebello95
Copy link
Contributor

As part of #328, we attempted to compile a config.yaml in a resource bundle with the final iOS Envoy.framework.

While we were able to customize our Bazel rule to copy over the resource(s) to Envoy.framework/Resources, we found that at runtime we were unable to load the configuration file from any ObjC/Swift sources within the framework.

Some sleuthing by @goaway indicated that this is because Bazel currently drops these resources here, and thus they aren't actually available when we go to access them from within the framework.

As a workaround, we compiled in the contents of the config file we needed as a static string in C++, but it may be worth revisiting this in the future if we need to compile in additional resources.

rebello95 added a commit that referenced this issue Aug 16, 2019
Introduces a `Configuration` type which consumers will use to start instances of `Envoy`. This change allows us to:

- Provide an ergonomic interface for using Envoy Mobile without having to learn Envoy's configuration YAML structure
- Utilize a solid set of default settings for this library
- Prevent consumers from accessing features that are unsupported
- Validate configuration at compile time rather than runtime

This PR:
- Adds a templated configuration in a `.cc` file, exposed through the common layer all the way through to the platform layers
- Adds a `Configuration` type for accessing this configuration
- Updates the iOS example apps to use the new typed configuration instead of their own yaml files
- Maintains an existing initializer for exposing a string configuration for consumers who may still want this functionality

Tests will be added in a separate PR that updates this interface further with a builder for `Envoy` instances.

Resolves #169.

Related issue (why this is in C++ instead of a `yaml` resource): #341

Signed-off-by: Michael Rebello <[email protected]>
@rebello95
Copy link
Contributor Author

Closing since we don't have need for / plans to fix this in the near future.

jpsim pushed a commit to envoyproxy/envoy that referenced this issue Nov 28, 2022
Introduces a `Configuration` type which consumers will use to start instances of `Envoy`. This change allows us to:

- Provide an ergonomic interface for using Envoy Mobile without having to learn Envoy's configuration YAML structure
- Utilize a solid set of default settings for this library
- Prevent consumers from accessing features that are unsupported
- Validate configuration at compile time rather than runtime

This PR:
- Adds a templated configuration in a `.cc` file, exposed through the common layer all the way through to the platform layers
- Adds a `Configuration` type for accessing this configuration
- Updates the iOS example apps to use the new typed configuration instead of their own yaml files
- Maintains an existing initializer for exposing a string configuration for consumers who may still want this functionality

Tests will be added in a separate PR that updates this interface further with a builder for `Envoy` instances.

Resolves envoyproxy/envoy-mobile#169.

Related issue (why this is in C++ instead of a `yaml` resource): envoyproxy/envoy-mobile#341

Signed-off-by: Michael Rebello <[email protected]>
Signed-off-by: JP Simard <[email protected]>
jpsim pushed a commit to envoyproxy/envoy that referenced this issue Nov 29, 2022
Introduces a `Configuration` type which consumers will use to start instances of `Envoy`. This change allows us to:

- Provide an ergonomic interface for using Envoy Mobile without having to learn Envoy's configuration YAML structure
- Utilize a solid set of default settings for this library
- Prevent consumers from accessing features that are unsupported
- Validate configuration at compile time rather than runtime

This PR:
- Adds a templated configuration in a `.cc` file, exposed through the common layer all the way through to the platform layers
- Adds a `Configuration` type for accessing this configuration
- Updates the iOS example apps to use the new typed configuration instead of their own yaml files
- Maintains an existing initializer for exposing a string configuration for consumers who may still want this functionality

Tests will be added in a separate PR that updates this interface further with a builder for `Envoy` instances.

Resolves envoyproxy/envoy-mobile#169.

Related issue (why this is in C++ instead of a `yaml` resource): envoyproxy/envoy-mobile#341

Signed-off-by: Michael Rebello <[email protected]>
Signed-off-by: JP Simard <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant