cyberark/secrets-provider-for-k8s

View on GitHub
helm/secrets-provider/values.schema.json

Summary

Maintainability
Test Coverage
{
  "$schema": "http://json-schema.org/schema",
  "required": [
    "rbac",
    "secretsProvider",
    "environment"
  ],
  "properties": {
    "rbac": {
      "properties": {
        "create": {
          "type": "boolean"
        },
        "roleName": {
          "type": "string",
          "minLength": 1
        },
        "roleBindingName": {
          "type": "string",
          "minLength": 1
        },
        "serviceAccount": {
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1
            }
          }
        }
      }
    },
    "secretsProvider": {
      "properties": {
        "image": {
          "type": "string",
          "minLength": 1
        },
        "tag": {
          "type": ["string", "number"],
          "minLength": 1,
          "pattern": "(^\\d+(\\.\\d+){0,2}|latest)$"
        },
        "imagePullPolicy": {
          "type": "string",
          "enum": ["Always", "IfNotPresent", "Never"]
        },
        "name": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "labels": {
      "type": "object"
    },
    "annotations": {
      "type": "object"
    },
    "environment": {
      "required": [
        "k8sSecrets",
        "conjur"
      ],
      "properties": {
        "k8sSecrets": {
          "type": "array",
          "minLength": 1,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "conjur": {
          "if": {
            "not": {
              "properties": {
                "authnJWT": {
                  "properties": {
                    "projectToken": {
                      "enum": [ true ]
                    }
                  }
                }
              }
            }
          },
          "then": {
            "required": [
              "authnLogin"
            ]
          },
          "anyOf": [
            {
              "required": [
                "conjurConnConfigMap"
              ]
            },{
              "required": [
                "account",
                "applianceUrl",
                "authnUrl"
              ],
              "properties": {
                "sslCertificate": {
                  "required": [ "value" ]
                }
              }
            }
          ],
          "properties": {
            "account": {
              "type": ["string","null"],
              "minLength": 1
            },
            "applianceUrl": {
              "type": ["string","null"],
              "minLength": 1,
              "pattern": "^https?://[^\\s/$.?#].[^\\s]*$"
            },
            "authnUrl": {
              "type": ["string","null"],
              "minLength": 1,
              "pattern": "^https?://[^\\s/$.?#].[^\\s]*$"
            },
            "authnLogin": {
              "type": "string",
              "minLength": 1
            },
            "conjurConnConfigMap": {
              "type": ["string","null"],
              "minLength": 1
            },
            "retryIntervalSec": {
              "type": "number",
              "minimum": 1
            },
            "retryCountLimit": {
              "type": "number",
              "minimum": 0
            },
            "sslCertificate": {
              "type": "object",
              "properties": {
                "name": {
                  "type": ["string"],
                  "minLength": 1
                },
                "value": {
                  "type": ["string","null"],
                  "minLength": 1
                }
              }
            },
            "authnJWT": {
              "type": "object",
              "properties": {
                "projectToken": {
                  "type": "boolean"
                },
                "projectedFilename": {
                  "type": "string",
                  "minLength": 1
                },
                "audience": {
                  "type": "string",
                  "minLength": 1
                },
                "expiration": {
                  "type": "number",
                  "minimum": 1
                }
              }
            }
          }
        },
        "logLevel": {
          "type": "string",
          "enum": ["debug", "info", "warn", "error"]
        }
      }
    }
  }
}