Skip to content

Commit

Permalink
Add CRDs for AzureKeyVaultSecrets (#58)
Browse files Browse the repository at this point in the history
  • Loading branch information
kfy-incom authored Sep 28, 2022
1 parent 0171994 commit 35c39bd
Show file tree
Hide file tree
Showing 4 changed files with 643 additions and 0 deletions.
145 changes: 145 additions & 0 deletions spv.no/azurekeyvaultsecret_v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
{
"description": "AzureKeyVaultSecret is a specification for a AzureKeyVaultSecret resource",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"type": "object"
},
"spec": {
"description": "AzureKeyVaultSecretSpec is the spec for a AzureKeyVaultSecret resource",
"properties": {
"output": {
"description": "AzureKeyVaultOutput defines output sources, currently only support Secret",
"properties": {
"secret": {
"description": "AzureKeyVaultOutputSecret has information needed to output a secret from Azure Key Vault to Kubertnetes as a Secret resource",
"properties": {
"chainOrder": {
"description": "By setting chainOrder to ensureserverfirst the server certificate will be moved first in the chain",
"enum": [
"ensureserverfirst"
],
"type": "string"
},
"dataKey": {
"description": "The key to use in Kubernetes secret when setting the value from Azure Keyv Vault object data",
"type": "string"
},
"name": {
"description": "Name for Kubernetes secret",
"type": "string"
},
"type": {
"description": "Type of Secret in Kubernetes",
"type": "string"
}
},
"required": [
"name"
],
"type": "object",
"additionalProperties": false
},
"transform": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object",
"additionalProperties": false
},
"vault": {
"description": "AzureKeyVault contains information needed to get the Azure Key Vault secret from Azure Key Vault",
"properties": {
"name": {
"description": "Name of the Azure Key Vault",
"type": "string"
},
"object": {
"description": "AzureKeyVaultObject has information about the Azure Key Vault object to get from Azure Key Vault",
"properties": {
"contentType": {
"description": "AzureKeyVaultObjectContentType defines what content type a secret contains, only used when type is multi-key-value-secret",
"enum": [
"application/x-json",
"application/x-yaml"
],
"type": "string"
},
"name": {
"description": "The object name in Azure Key Vault",
"type": "string"
},
"type": {
"description": "AzureKeyVaultObjectType defines which Object type to get from Azure Key Vault",
"enum": [
"secret",
"certificate",
"key",
"multi-key-value-secret"
],
"type": "string"
},
"version": {
"description": "The object version in Azure Key Vault",
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object",
"additionalProperties": false
}
},
"required": [
"name",
"object"
],
"type": "object",
"additionalProperties": false
}
},
"required": [
"vault"
],
"type": "object",
"additionalProperties": false
},
"status": {
"description": "AzureKeyVaultSecretStatus is the status for a AzureKeyVaultSecret resource",
"properties": {
"lastAzureUpdate": {
"format": "date-time",
"type": "string"
},
"secretHash": {
"type": "string"
},
"secretName": {
"type": "string"
}
},
"required": [
"secretHash",
"secretName"
],
"type": "object",
"additionalProperties": false
}
},
"required": [
"spec"
],
"type": "object"
}
138 changes: 138 additions & 0 deletions spv.no/azurekeyvaultsecret_v1alpha1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
{
"description": "AzureKeyVaultSecret is a specification for a AzureKeyVaultSecret resource",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"type": "object"
},
"spec": {
"description": "AzureKeyVaultSecretSpec is the spec for a AzureKeyVaultSecret resource",
"properties": {
"output": {
"description": "AzureKeyVaultOutput defines output sources, currently only support Secret",
"properties": {
"secret": {
"description": "AzureKeyVaultOutputSecret has information needed to output a secret from Azure Key Vault to Kubertnetes as a Secret resource",
"properties": {
"dataKey": {
"description": "The key to use in Kubernetes secret when setting the value from Azure Keyv Vault object data",
"type": "string"
},
"name": {
"description": "Name for Kubernetes secret",
"type": "string"
},
"type": {
"description": "Type of Secret in Kubernetes",
"type": "string"
}
},
"required": [
"name"
],
"type": "object",
"additionalProperties": false
},
"transforms": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object",
"additionalProperties": false
},
"vault": {
"description": "AzureKeyVault contains information needed to get the Azure Key Vault secret from Azure Key Vault",
"properties": {
"name": {
"description": "Name of the Azure Key Vault",
"type": "string"
},
"object": {
"description": "AzureKeyVaultObject has information about the Azure Key Vault object to get from Azure Key Vault",
"properties": {
"contentType": {
"description": "AzureKeyVaultObjectContentType defines what content type a secret contains, only used when type is multi-key-value-secret",
"enum": [
"application/x-json",
"application/x-yaml"
],
"type": "string"
},
"name": {
"description": "The object name in Azure Key Vault",
"type": "string"
},
"type": {
"description": "AzureKeyVaultObjectType defines which Object type to get from Azure Key Vault",
"enum": [
"secret",
"certificate",
"key",
"multi-key-value-secret"
],
"type": "string"
},
"version": {
"description": "The object version in Azure Key Vault",
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object",
"additionalProperties": false
}
},
"required": [
"name",
"object"
],
"type": "object",
"additionalProperties": false
}
},
"required": [
"vault"
],
"type": "object",
"additionalProperties": false
},
"status": {
"description": "AzureKeyVaultSecretStatus is the status for a AzureKeyVaultSecret resource",
"properties": {
"lastAzureUpdate": {
"format": "date-time",
"type": "string"
},
"secretHash": {
"type": "string"
},
"secretName": {
"type": "string"
}
},
"required": [
"secretHash",
"secretName"
],
"type": "object",
"additionalProperties": false
}
},
"required": [
"spec"
],
"type": "object"
}
Loading

0 comments on commit 35c39bd

Please sign in to comment.