architect.yml files, you can reference information about the runtime or environment, details that are otherwise unique to each deployed environment, through Architect's expression syntax. Encoding component's with these references can help limit the manual configuration needs of your services and make them portable from environment to environment.
There are several context groups that contain important, dynamic information about your component and its future deployed environment. Below are the context categories available for reference:
|References to the dynamic outputs of each dependency and their interfaces|
|References to the dynamic outputs of external interfaces|
|Dynamic values for the secrets declared by your component|
|References to the dynamic outputs of each service and their interfaces|
dependencies context contains dynamic information about the dependencies of the component. This context can primarily be used to refer to the internal addresses of dependency interfaces.
|Information about the component's dependencies|
|Information about the specified dependency|
|Information about the dependency's interfaces|
|Information about the specified interface of the dependency. See the interface values for more details.|
|Information about the ingress rules associated with a dependency|
|Information about the specified ingress rule of the dependency. See the interface values for more details.|
ingresses context contains information about the external exposed interfaces.
|Information on the ingress rules of the component|
|Information on an ingress rule matching the interface. See the interface values for more details.|
secrets context contains all the values assigned to each secret declared by your component.
|A dictionary containing the secret values|
|Resolves to the value of the specified secret|
services context contains dynamic information about all the services inside the component. This context can primarily be used to refer to the interfaces of other services inside the component.
|Information about each service inside the component|
|Information specific to one of the named services inside the component|
|Information about the specified service's interfaces|
|Information about the specified service interface. See the interface values for more details.|
Interface values are referenced in many places,
services with a set of uniform values available to reference. These values include:
|url||The fully composed URL of the reference interface. This will take the format, |
|protocol||The protocol of the interface being referenced. This will always be the specific value assigned to the interface by the developer.|
|username||The username of the interface being referenced. Not all interfaces have usernames, so this will be an empty string if none is set.|
|password||The password of the interface being referenced. Not all interfaces have passwords, so this will be an empty string if none is set.|
|host||The host value of the interface being referenced. This value is usually dynamic to accomodate the differences between service discovery solutions available to each environment.|
|port||The port value of the interface being referenced. This will not always be the specific port that the interface is listening on as many container platforms leverage port mapping to ensure that there are no port collisions when sharing hardware in a cluster.|
|path||The path value of the interface being referenced. Not all interfaces have paths, so this will be an empty string if none is set.|