Create the manifest file for an app with containers¶
The topic describes the components of the manifest.yml
file in a Snowflake Native Apps with Snowpark Container Services. For
general information about the manifest.yml
file, see Create the manifest file for an application package.
Specify the container images used by the app¶
To specify location of the container images used by the app with containers, add the
images
property to the artifacts.container_services
block.
You must include an entry for each image. The path specified includes the name of the database, schema, and image repository. This path has the following form:
/<database>/<schema>/<image_repository>/<image_name>:tag
The following example shows how to specify the images
property:
artifacts
...
container_services
...
images
- /dev_db/dev_schema/dev_repo/image1
- /dev_db/dev_schema/dev_repo/image2
Specify the user interface endpoint for an app¶
To specify the endpoint for the user interface of the app with containers, add the
default_web_endpoint
property to the artifacts
block.
The default_web_endpoint
property is optional. If this property is specified,
the endpoint must also be defined in the service specification file.
Note
Only one of the default_web_endpoint
and default_streamlit
can be specified.
This entry in the manifest file has two additional properties:
service
Specifies the name of the service of the user interface.
endpoint
Specifies the name of the endpoint.
The following example shows how to specify the default_web_endpoint
property.
default_web_endpoint:
service: ux_schema.ux_service
endpoint: ui
Specify the privileges required by the app¶
Like other apps, the references
property of the manifest.yml
file specifies
the references that an app requests from consumers. The following privileges are specific to
an app with containers:
CREATE COMPUTE POOL
This privilege is required to allow the app to create a compute pool in the consumer account. It is not required if the consumer creates the compute pool manually.
BIND SERVICE ENDPOINT
This privilege is required to allow an endpoint to be accessible outside of Snowflake.
The following example shows how to add these privileges to the privileges
block:
privileges:
- CREATE COMPUTE POOL
description: 'Required to allow the app to create a compute pool in the consumer account.'
- BIND SERVICE ENDPOINT
description: 'Required to allow endpoints to be externally accessible.'
Example manifest file for an app with containers¶
The Snowflake Native App Framework supports entries in the manifest file that are specific to an app with containers. The
following example manifest.yml
shows a typical manifest file for an app with containers:
manifest_version: 1
version:
name: v1
artifacts:
readme: readme.md
setup_script: setup.sql
container_services:
images
- /dev_db/dev_schema/dev_repo/image1
- /dev_db/dev_schema/dev_repo/image2
default_web_endpoint:
service: ux_schema.ux_service
endpoint: ui
privileges:
- CREATE COMPUTE POOL
description: "...”
- BIND SERVICE ENDPOINT
description: "...”