Can I set my SMTP creds as 'secret'?

If you’re running Astronomer Enterprise with publicSignups disabled, you’ll most likely need to enable SMTP as a way for your users to receive and accept invites to the platform via email.

Read below for the 2 methods you can use to do this.

In your config.yaml (plain-text)

For users getting started, the easiest way to set SMTP is to include existing credentials (in the form of an SMTP URI) in plain-text in your config.yaml. Take a look at the example below:

#################################
### SMTP configuration
#################################  

astronomer:
  houston:
    config:
      email:
        enabled: true
        smtpUrl: YOUR_URI_HERE

(Source code here)

For teams concerned about keeping this value in plain-text, follow the next section for guidelines on how to set it up as a secret.

In your values.yaml (as a Kubernetes Secret)

To more securely pass SMTP creds to Astronomer, you can:

1. Create a secret in your Astronomer platform namespace

To create a secret, run the following:

kubectl create secret generic my-secret --from-literal=connection=smtps://USERNAME:PW@HOST/?pool=true

2. Reference your secret in .Values.astronomer.houston.secret

In your values.yaml, you can reference that secret as an Environment Variable:

  # secret:
  # - envName: "EMAIL__SMTP_URL"
  #   secretName: "my-scret"
  #   secretKey: "connection"

3. Run helm upgrade to deploy the platform with your changes

Two additional notes:

  • If you set this secret, you’re free to comment out the SMTP section of your global config.yaml.
  • If you’re using Amazon SES, your URL will look like the following: smtpUrl: smtp://USERNAME:PW@HOST/?requireTLS=true . If there are / or other escape characters in your username or password, you may need to URL encode those characters.