From e86d97777b47ca96ad1ccab8b2b64bc66bdf6dcb Mon Sep 17 00:00:00 2001 From: Mark Phelps <209477+markphelps@users.noreply.github.com> Date: Fri, 22 Dec 2023 10:01:23 -0500 Subject: [PATCH] feat: azure blob store docs --- configuration/storage.mdx | 82 ++++++++++++++++++++++++++++++++++----- 1 file changed, 72 insertions(+), 10 deletions(-) diff --git a/configuration/storage.mdx b/configuration/storage.mdx index af2d8dc..1a51b44 100644 --- a/configuration/storage.mdx +++ b/configuration/storage.mdx @@ -259,7 +259,7 @@ storage: `insecure_ignore_host_key` is not encouraged for production use, and is `false` by default. Instead, you are advised to put the key fingerprint in the - known hosts file where you are running Flipt. For example, for Github you can + known hosts file where you are running Flipt. For example, for GitHub you can do `ssh-keyscan github.com >> ~/.ssh/known_hosts` on the Flipt host. @@ -268,18 +268,28 @@ See our [GitOps Guide](/guides/get-going-with-gitops) for an example of how to s ### Object The object storage type supports using a hosted object storage service as the source of truth for Flipt state configuration. -Currently, Flipt supports the [S3 API](https://aws.amazon.com/s3/) as a backend. This means the AWS S3 and open-source alternatives such as [Minio](https://github.com/minio/minio) can be leveraged as Flipt backends. + +Currently, Flipt supports the following object store providers: + +- [AWS S3](https://aws.amazon.com/s3/) +- [Azure Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/) + +Additional providers such as [Google Cloud Storage](https://cloud.google.com/storage) are planned for future releases. + +#### Contents The contents of a target object storage bucket must contain Flipt state configuration files. As with the `git` and `local` backend types, the same rules apply with regard to how Flipt will locate feature flag state in your target bucket. -Check out the section below on [Flag State Configuration](#flag-state-configuration) for how Flipt decides which files in a target are considered for serving flag state. +See the section below on [Flag State Configuration](#flag-state-configuration) for how Flipt decides which files in a target are considered for serving flag state. + With the object storage backend, Flipt will respect a file at the root of the target with the name `.flipt.yml` to serve as an index for locating flag state configuration in the bucket. + It will also use the same default strategy when the index isn't supplied (e.g. file name `features.yml` or `*.features.yml`). -#### S3 +#### Amazon S3 -The S3 backend can be configured to serve state from a single bucket from a target S3-compatible API. +The AWS S3 backend can be configured to serve state from a single bucket from a target S3-compatible API. This means that both AWS S3 and open-source alternatives such as [Minio](https://github.com/minio/minio) can be used. The following is an example of how to configure Flipt to leverage this backend type: @@ -292,9 +302,9 @@ The following is an example of how to configure Flipt to leverage this backend t FLIPT_STORAGE_OBJECT_S3_REGION="us-east-1" FLIPT_STORAGE_OBJECT_S3_BUCKET="flipt_feature_flags" FLIPT_STORAGE_OBJECT_S3_POLL_INTERVAL="1m" - # optional bucket prefix for locating flag state files + # optional: bucket prefix for locating flag state files FLIPT_STORAGE_OBJECT_S3_PREFIX="production" - # for non-AWS hosted S3 + # optional: for non-AWS hosted S3 FLIPT_STORAGE_OBJECT_S3_ENDPOINT=http://localhost:9009 ``` @@ -310,16 +320,20 @@ The following is an example of how to configure Flipt to leverage this backend t region: us-east-1 bucket: flipt_feature_flags poll_interval: "30s" - # optional bucket prefix for locating flag state files + # optional: bucket prefix for locating flag state files prefix: production - # for non-AWS hosted S3 + # optional: for non-AWS hosted S3 endpoint: http://localhost:9009 ``` -In addition to these Flipt configuration parameters, credentials will also be required for Flipt to authenticate with the target object-store. + + In addition to these Flipt configuration parameters, valid credentials will + also be required for Flipt to authenticate with the target object-store. + + These should be provided as environment variables to the Flipt server process: ```bash @@ -327,6 +341,54 @@ AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... ``` +#### Azure Blob Storage + +The Azure Blob Storage backend can be configured to serve state from a single container from a target Azure Blob Storage account. + +The following is an example of how to configure Flipt to leverage this backend type: + + + + + ```bash + FLIPT_STORAGE_TYPE="object" + FLIPT_STORAGE_OBJECT_TYPE="azblob" + FLIPT_STORAGE_OBJECT_AZBLOB_CONTAINER="flipt-feature-flags" + FLIPT_STORAGE_OBJECT_AZBLOB_POLL_INTERVAL="1m" + # optional: for customizing Azure blob storage endpoint + FLIPT_STORAGE_OBJECT_AZBLOB_ENDPOINT=http://localhost:10000 + ``` + + + + + ```yaml + storage: + type: object + object: + type: azblob + azblob: + container: flipt-feature-flags + # optional: for customizing Azure blob storage endpoint + endpoint: https//devaccount.blob.core.windows.net + poll_interval: "30s" + ``` + + + + + + In addition to these Flipt configuration parameters, valid credentials will + also be required for Flipt to authenticate with the target object-store. + + +These should be provided as environment variables to the Flipt server process: + +```bash +AZURE_STORAGE_ACCOUNT=... +AZURE_STORAGE_KEY=... +``` + ### OCI Since `v1.31.0`, Flipt supports using any [OCI](https://opencontainers.org/) compatible registry as a declarative backend source.