Skip to content

Update chart to not use fluffy (enterprise) #336

@Isan-Rivkin

Description

@Isan-Rivkin
  • The chart should not use fluffy anymore, instead all the setup should be done in the lakeFS-Enterprise image
  • The new version should NOT have backward compatibility for fluffy, an upgrade to the chart means no more fluffy.
  • Proper docs and migration guide must be in-place before releasing.
  • Remove any reference of fluffy including in .Values.fluffy.* (i.e values.yaml ), env vars (in helpers, FLUFFY_*) and all files related.
  • Use the new lakeFS-Enterprise configurations.

Error if fluffy is used

Find a clean way to detect if a user is using fluffy (i.e fluffy.enabled: true) and fail the chart installation with a clean error pointing them top the docs and making sure they also updated their lakeFS image to lakefs-Enterprise.

.Values change (and supporting env vars)

  • Values under fluffy.* should not be supported anymore and instead be replaced with appropriate new values.

lakeFSConfig VS concrete values

lakeFSConfig:

lakefsConfig (and previous fluffy.fluffyConfig) would convert all the values there into a YAML file that is NOT validated and mounted as lakefs config into the container.

lakefsConfig: |
  database:
    type: local
  blockstore:
    type: local

We allow setting any config value in free form to the chart, on purpose,we must maintain that because:

  1. It allows users to set anything we didn't think about and doesn't make us chase every field all the time.
  2. The Chart is not bound to a specific lakeFS version, so the config may change.

Concrete Values

Some of the fields are exposed as concrete fields in .Values (values.yaml), this has purpose to simplify the amount of things a user needs to configure.
Enterprise introduces configuration that is easy to break, sometimes we already have the information from other values so we don't want the user to set it twice or we we just need it because we need to access a field specifically (for example like creating a Secret).

For example in fluffy.sso.oidc.client_secret that's a concrete value because it's a secret, so we create k8s Secret to mount it. If the user would have set it in fluffyConfig that would be much harder to access and understand if it's there or not.

Ingress - optional

Previously with fluffy we needed Ingress to make sure we can route traffic between fluffy and lakeFS for the same host based on path, we do not need this capability anymore.

  • The new chart does not have to spin up an Ingress type, make sure it's optional.
  • We do have to always create Service type

Users can use things like AWS NLB to route traffic into lakeFS from outside via Service alone so they don't have to use Ingress.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions