hi guys, I have deployed the Flyte (version in Hel...
# flyte-support
e
hi guys, I have deployed the Flyte (version in Helm chart 1.10.7) on Azure AKS cloud, now I have created storage account (name is 'flyte', data lake is activated) and PostgresSQL (ver.16 ), everything have started successfully, but during executing workflow I am getting such errors in logs: ---------------------- FlyteAssertion: Failed to get data from abfs://my-flyte-container/flytesnacks/development/I62Z4WQMINA7777777777RU==== ==/script_mode.tar.gz to /root/ (recursive=False). Original exception: unable to connect to account for Must provide either a connection_string or account_name with credentials!! ----------------------- This is my value.yaml ---------------------------------------------------------- flyte-core-components: propeller: # disabled Disables flytepropeller disabled: false rawoutput-prefix: my-flyte-container@flyte.dfs.core.windows.net configuration: database: username: flyte password: uuuuuu host: flyte8.postgres.database.azure.com port: 5432 dbname: postgres options: sslmode=disable storage: #Learn more about how Flyte handles data: https://docs.flyte.org/en/latest/concepts/data_management.html metadataContainer: "my-flyte-container@flyte.dfs.core.windows.net" userDataContainer: "my-flyte-container@flyte.dfs.core.windows.net" provider: azure providerConfig: azure: # configDomainSuffix Domain name suffix configDomainSuffix: "" # configUploadConcurrency Upload Concurrency (default 4) configUploadConcurrency: 4 # account Storage Account name account: "flyte" # key Storage Account key if used key: "50f4xgsGkx669GMruuuuuuuuuBkocNGw60YlI+AStnH0gyA==" ------------------------------------------------------------------------- and that is the final template: ----------------------------------------------- data: 000-core.yaml: | admin: endpoint: localhost:8089 insecure: true catalog-cache: endpoint: localhost:8081 insecure: true type: datacatalog cluster_resources: standaloneDeployment: false templatePath: /etc/flyte/cluster-resource-templates logger: show-source: true level: 1 propeller: create-flyteworkflow-crd: true webhook: certDir: /var/run/flyte/certs localCert: true secretName: flyte-backend-flyte-binary-webhook-secret serviceName: flyte-backend-flyte-binary-webhook servicePort: 443 flyte: admin: disableClusterResourceManager: false disableScheduler: false disabled: false seedProjects: - flytesnacks dataCatalog: disabled: false propeller: disableWebhook: false disabled: false rawoutput-prefix: my-flyte-container@flyte.dfs.core.windows.net 001-plugins.yaml: | tasks: task-plugins: default-for-task-types: container: container container_array: k8s-array sidecar: sidecar enabled-plugins: - container - sidecar - k8s-array - agent-service plugins: logs: kubernetes-enabled: false cloudwatch-enabled: false stackdriver-enabled: false k8s: co-pilot: image: "cr.flyte.org/flyteorg/flytecopilot-release:v1.10.7" k8s-array: logs: config: kubernetes-enabled: false cloudwatch-enabled: false stackdriver-enabled: false 002-database.yaml: | database: postgres: username: flyte host: flyte8.postgres.database.azure.com port: 5432 dbname: postgres options: "sslmode=disable" 003-storage.yaml: | propeller: rawoutput-prefix: abfs://my-flyte-container@flyte.dfs.core.windows.net/data storage: type: stow stow: kind: azure config: account: flyte key: 50f4xtttttttttttttttttttttttttttttttttttttttttttttttttlI+AStnH0gyA== configUploadConcurrency: 4 container: my-flyte-container -------------------------------------------- Maybe you can advice, where am I wrong?
p
Hi @echoing-alarm-77599 - have you tried using an Azure Managed Identity as opposed to a SA shared key?
It's odd that the error message doesn't show the account it's trying to connect to ("Original exception: unable to connect to account for"), so I think there is a second problem. but using managed identity might help account management issues and improve security
can you try removing
@flyte.dfs.core.windows.net
from your
metadataContainer
and
userDataContainer
values?
also, have you created
my-flyte-container
in your
flyte
SA?
e
my-flyte-container are creating authomatically inside of storage account previously created. I have faced the same issue described here https://discuss.flyte.org/t/13904302/hello-back-with-more-azure-adventures-slightly-smiling-face-
@calm-zoo-68637, maybe you can look into.
p
ah - are you setting the container name in your task pod template? e.g.:
Copy code
inline:
    plugins:
      k8s:
        metadata:
          namespace: flyte-development
        inject-finalizer: true
        default-env-vars:
          - FLYTE_AZURE_STORAGE_ACCOUNT_NAME: SA_NAME
e
Will it be correct? Just name of storage account. clusterResourceTemplates: inline: #This section automates the creation of the project-domain namespaces 001_namespace.yaml: | apiVersion: v1 kind: Namespace metadata: name: '{{ namespace }}' # This block performs the automated annotation of KSAs across all project-domain namespaces 002_serviceaccount.yaml: | apiVersion: v1 kind: ServiceAccount metadata: name: default namespace: '{{ namespace }}' plugins: k8s: metadata: name: '{{ namespace }}' default-env-vars: - FLYTE_AZURE_STORAGE_ACCOUNT_NAME: "flyte"
p
if you're using a storage account shared key you will need to provide that as an env_var as well
FLYTE_AZURE_STORAGE_ACCOUNT_KEY
e
this ones, correct?
key, not connection string
p
correct
👍 1
e
let me redeploy
👍 1
now, the previous error passed, but in storage account has not been created folder "metadata" (previously it was) only 'flytesnacks' created. The error in VSC console.
maybe metadataContainer: "my-flyte-container" userDataContainer: "my-flyte-container" should been different?
p
they can be the same
you might try removing
@flyte...
from your
rawoutput-prefix
- or even removing
rawoutput-prefix
entirely.
try using the format
rawoutput-prefix: <abfs://my-flyte-container/data>
for that field, or removing it entirely. that should be built automatically by the
_helpers.tpl
file
i also see that your
values.yaml
file is missing the
bucketName
field. i'm not certain that is still required, but you might try adding it below:
storage: userDataContainer: my-flyte-container metadataContainer: my-flyte-container bucketName: flyte it looks like that field is no longer parsed in flyte-binary
e
it was necessary to recreate postgressql as well
now everything is good, thanks for support
👍 1
👍🏽 1
a
thank you @proud-answer-87162! Do you think we could team up to write an Azure section as part of Flyte the Hard Way?
p
@average-finland-92144 - i think that's a good idea. there are a few quirks, especially if someone wants to use workload identity, that distinguishes azure setup from aws
a
yeah, feel free to add even a single page with all those pitfalls that you have encountered (especially with stow and IAM) and we can take it from there, reproduce it and expand it. wdyt?
p
sounds reasonable - i'll chat with @gray-vr-17331 to figure out a timeline and dm you to talk about the plan
🙌🏽 1
💥 1
gratitude thank you 1
g
Super awesome to see the Azure progress -- it's something we're pretty interested in as well.
👍 1