Skip to main content

Plugin Schema

Plugins are used to customise and extend the deployment process of a Kubernetes system in AWS Enclaves. They allow you to integrate additional functionalities that aren't natively supported by the deployment process. This includes, but is not limited to, authentication mechanisms, logging solutions, and load-balancing configurations. When you use plugins, you can tailor the deployment process to meet the specific requirements of your applications and infrastructure.

Basic plugin

The basic plugin schema serves as a template for all plugins used by OBLV Deploy. It defines the core properties that every plugin must implement to ensure compatibility and correct operation within the OBLV Deploy environment. The required properties include:

  • kind: Specifies the type of plugin within the deployment process.
  • name: The name of the plugin that identifies its unique instance.
  • namespace: The Kubernetes namespace in which the plugin will operate
  • image: The Docker image that contains the plugin's code and dependencies.

Basic plugin schema

The following JSON schema presents an example of the structure of the basic plugin schema:

{
"$id": "http://example.com/oblv_k8_schema/json-schemas/plugins/plugins-base-schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Base Plugin Schema",
"description": "Schema for Base plugin configuration.",
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"name": {
"type": "string"
},
"namespace": {
"type": "string"
},
"image": {
"type": "string"
},
"imagePullSecret": {
"type": "string"
},
"spec": {
"type": "object",
"properties": {
"command": {
"type": "array",
"items": {
"type": "string"
}
},
"args": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"required": [
"kind",
"name",
"namespace",
"image"
]
}

The key values from the JSON object above are described in the table below.

FieldDescription
kindSpecifies the type of plugin. It's required for the deployment process to correctly identify and instantiate the plugin.
nameUniquely identifies the plugin instance. This is used within the Kubernetes cluster to manage the plugin.
namespaceSpecifies the Kubernetes namespace in which the plugin will operate. This helps in organizing and isolating resources within the cluster.
imageSpecifies the Docker image to be used for the plugin. This image contains the plugin's code and any necessary dependencies.
imagePullSecret(Optional) A string that specifies the name of the Kubernetes secret to be used for pulling the Docker image. This is necessary if the image is stored in a private repository.
specAn object that contains additional configuration for the plugin. This includes the command and args arrays, which specify the command to be executed and any arguments to be passed to it.

What's next?

In addition, you can also check more details about specific plugins used by OBLV Deploy: