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.