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

Yatai customize DNS domain for internal components #265

Closed
mts-dyt opened this issue Jul 4, 2022 · 3 comments
Closed

Yatai customize DNS domain for internal components #265

mts-dyt opened this issue Jul 4, 2022 · 3 comments
Assignees

Comments

@mts-dyt
Copy link

mts-dyt commented Jul 4, 2022

Hello bentoml team 👋

My goal is to have a production ready BentoML platform on AZURE, I managed to have these features working:

  • external PG database on AZURE (PostGres)
  • external docker registry
  • external NGINX controller (delete the current one installed by default)
  • expose Yatai to custom URL with custom SSL

I still have one painful point concerning the storage.
For AZURE, I can't find a suitable option for storing data outside of the cluster (MinIO gateway for blob storage is end of support: https://blog.min.io/deprecation-of-the-minio-gateway/).

If I used the default MinIO installation there are settings which are incompatible with our security policies:

  1. MinIO standard installation in yatai-components is installed and exposed on URL like *.apps.yatai.dev
  2. Ingress has no SSL

Even if I customize the NGINX setting after the installation, there are still some reference to the old URL MinIO (when we push local bento to Yatai) that lead to error.

Is it possible to customize the domain name (through an env vars for example) for NGINX exposition of internal components and add custom annotation in NGINX exposition?

@yubozhao yubozhao assigned yetone and unassigned yetone Jul 5, 2022
@yetone
Copy link
Member

yetone commented Jul 6, 2022

@mts-dyt Thanks for the feedback!

The default minio component is intended to be used in a test environment, you can specify external S3 during installation so that minio will not be installed.

It is designed to work out of the box, and we automatically generate the domain name and certificate to save users valuable time from having to manually configure it themselves.

If you really want to use our minio installation, you can do so by modifying the yatai-minio ingress resource under the yatai-components namespace, but of course, yatai will remove the logic to automatically install minio and docker-registry later

@mts-dyt
Copy link
Author

mts-dyt commented Jul 6, 2022

@yetone , when customizing the Yatai ingress with my own domain without SSL, the bento push command still refers to https:

Error: [cli] `push` failed: request failed with status code 400: {"error":"pre sign s3 upload url: get bucket yatai exist: Get \"https://minio-yatai-infra-cluster.<domain>.io/yatai/?location=\": x509: certificate is valid for ingress.local, not minio-yatai-infra-cluster.lychee.<domain>.io"}

update: This is fixed in v0.3.11 with the annotation yatai.ai/enable-ssl: false

@mts-dyt
Copy link
Author

mts-dyt commented Jul 7, 2022

I finally managed to install a MinIO gateway to Azure Blob Storage.
As this feature is deprecated by MinIO, here is the last usable version for Azure Gateway:

HELM REPO:    https://charts.min.io/
HELM VERSION: 11.2.15
APP_VERSION:  2022.4.29

Helm custom values should look like:

persistence:
  enabled: false

gateway:
  enabled: true
  type: azure
  replicaCount: 1
  auth:
    azure:
      accessKey: <YATAI_ACCESS_KEY>
      secretKey: <YATAI_SECRET_KEY>
      serviceEndpoint: <STORAGE_ACCOUNT_ENDPOINT>
      storageAccountName: <STORAGE_ACCOUNT_NAME>
      storageAccountKey: <STORAGE_ACCOUNT_ACCESS_KEY>

On my side, this issue can be closed as the new nginx annotation is available: yatai.ai/enable-ssl

@yetone yetone closed this as completed Jul 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants