From f8278ba5abb5eb1b6a7c0fd28bf08b1df9747170 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Sun, 11 Dec 2022 07:25:20 +0100 Subject: [PATCH] Update `TLSStore` CRD (#86) --- traefik.containo.us/tlsstore_v1alpha1.json | 61 ++++++++++++++++++---- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/traefik.containo.us/tlsstore_v1alpha1.json b/traefik.containo.us/tlsstore_v1alpha1.json index b93e28ad..fd604d17 100644 --- a/traefik.containo.us/tlsstore_v1alpha1.json +++ b/traefik.containo.us/tlsstore_v1alpha1.json @@ -1,10 +1,10 @@ { - "description": "TLSStore is a specification for a TLSStore resource.", + "description": "TLSStore is the CRD implementation of a Traefik TLS Store. For the time being, only the TLSStore named default is supported. This means that you cannot have two stores that are named default in different Kubernetes namespaces. More info: https://doc.traefik.io/traefik/v2.9/https/tls/#certificates-stores", "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" @@ -13,10 +13,27 @@ "type": "object" }, "spec": { - "description": "TLSStoreSpec configures a TLSStore resource.", + "description": "TLSStoreSpec defines the desired state of a TLSStore.", "properties": { + "certificates": { + "description": "Certificates is a list of secret names, each secret holding a key/certificate pair to add to the store.", + "items": { + "description": "Certificate holds a secret name for the TLSStore resource.", + "properties": { + "secretName": { + "description": "SecretName is the name of the referenced Kubernetes Secret to specify the certificate details.", + "type": "string" + } + }, + "required": [ + "secretName" + ], + "type": "object" + }, + "type": "array" + }, "defaultCertificate": { - "description": "DefaultCertificate holds a secret name for the TLSOption resource.", + "description": "DefaultCertificate defines the default certificate configuration.", "properties": { "secretName": { "description": "SecretName is the name of the referenced Kubernetes Secret to specify the certificate details.", @@ -26,15 +43,37 @@ "required": [ "secretName" ], - "type": "object", - "additionalProperties": false + "type": "object" + }, + "defaultGeneratedCert": { + "description": "DefaultGeneratedCert defines the default generated certificate configuration.", + "properties": { + "domain": { + "description": "Domain is the domain definition for the DefaultCertificate.", + "properties": { + "main": { + "description": "Main defines the main domain name.", + "type": "string" + }, + "sans": { + "description": "SANs defines the subject alternative domain names.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "resolver": { + "description": "Resolver is the name of the resolver that will be used to issue the DefaultCertificate.", + "type": "string" + } + }, + "type": "object" } }, - "required": [ - "defaultCertificate" - ], - "type": "object", - "additionalProperties": false + "type": "object" } }, "required": [