sigs.k8s.io/kubebuilder/v3@v3.14.0/pkg/plugins/golang/v2/scaffolds/internal/templates/config/certmanager/certificate.go (about) 1 /* 2 Copyright 2019 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package certmanager 18 19 import ( 20 "path/filepath" 21 22 "sigs.k8s.io/kubebuilder/v3/pkg/machinery" 23 ) 24 25 var _ machinery.Template = &Certificate{} 26 27 // Certificate scaffolds a file that defines the issuer CR and the certificate CR 28 type Certificate struct { 29 machinery.TemplateMixin 30 } 31 32 // SetTemplateDefaults implements file.Template 33 func (f *Certificate) SetTemplateDefaults() error { 34 if f.Path == "" { 35 f.Path = filepath.Join("config", "certmanager", "certificate.yaml") 36 } 37 38 f.TemplateBody = certManagerTemplate 39 40 return nil 41 } 42 43 const certManagerTemplate = `# The following manifests contain a self-signed issuer CR and a certificate CR. 44 # More document can be found at https://docs.cert-manager.io 45 # WARNING: Targets CertManager 0.11 check https://docs.cert-manager.io/en/latest/tasks/upgrading/index.html for 46 # breaking changes 47 apiVersion: cert-manager.io/v1alpha2 48 kind: Issuer 49 metadata: 50 name: selfsigned-issuer 51 namespace: system 52 spec: 53 selfSigned: {} 54 --- 55 apiVersion: cert-manager.io/v1alpha2 56 kind: Certificate 57 metadata: 58 name: serving-cert # this name should match the one appeared in kustomizeconfig.yaml 59 namespace: system 60 spec: 61 # $(SERVICE_NAME) and $(SERVICE_NAMESPACE) will be substituted by kustomize 62 dnsNames: 63 - $(SERVICE_NAME).$(SERVICE_NAMESPACE).svc 64 - $(SERVICE_NAME).$(SERVICE_NAMESPACE).svc.cluster.local 65 issuerRef: 66 kind: Issuer 67 name: selfsigned-issuer 68 secretName: webhook-server-cert # this secret will not be prefixed, since it's not managed by kustomize 69 `