![Onboardbase External Secrets Provider](../pictures/onboardbase-provider.png) ## Onboardbase Secret Management Sync secrets from [Onboardbase](https://www.onboardbase.com/) to Kubernetes using the External Secrets Operator. ## Authentication ### Get an Onboardbase [API Key](https://docs.onboardbase.com/reference/api-auth). Create the Onboardbase API by opening the organization tab under your account settings: ![Onboardabse API Key](../pictures/onboardbase-api-key.png) And view them under the team name in your Account settings ![Onboardabse API Key](../pictures/onboardbase-create-api-key.png) Create an Onboardbase API secret with your API Key and Passcode value: ```sh HISTIGNORE='*kubectl*' \ kubectl create secret generic onboardbase-auth-secret \ --from-literal=API_KEY=*****VZYKYJNMMEMK***** \ --from-literal=PASSCODE=api-key-passcode ``` Then to create a generic `SecretStore`: ```yaml {% include 'onboardbase-generic-secret-store.yaml' %} ``` ## Use Cases The below operations are possible with the Onboardbase provider: 1. [Fetch](#1-fetch) 2. [Fetch all](#2-fetch-all) 3. [Filter](#3-filter) Let's explore each use case using a fictional `auth-api` Onboardbase project. ### 1. Fetch To sync one or more individual secrets: ```yaml {% include 'onboardbase-fetch-secret.yaml' %} ``` ### 2. Fetch all To sync every secret from a config: ```yaml {% include 'onboardbase-fetch-all-secrets.yaml' %} ``` ### 3. Filter To filter secrets by `path` (path prefix), `name` (regular expression) or a combination of both: ```yaml {% include 'onboardbase-filtered-secrets.yaml' %} ```