github.com/rancher/types@v0.0.0-20220328215343-4370ff10ecd5/apis/management.cattle.io/v3/globaldns_types.go (about) 1 package v3 2 3 import ( 4 "github.com/rancher/norman/types" 5 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 6 ) 7 8 type GlobalDNS struct { 9 types.Namespaced 10 11 metav1.TypeMeta `json:",inline"` 12 // Standard object’s metadata. More info: 13 // https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata 14 metav1.ObjectMeta `json:"metadata,omitempty"` 15 16 Spec GlobalDNSSpec `json:"spec,omitempty"` 17 Status GlobalDNSStatus `json:"status,omitempty"` 18 } 19 20 type GlobalDNSSpec struct { 21 FQDN string `json:"fqdn,omitempty" norman:"type=hostname,required"` 22 TTL int64 `json:"ttl,omitempty" norman:"default=300"` 23 ProjectNames []string `json:"projectNames" norman:"type=array[reference[project]],noupdate"` 24 MultiClusterAppName string `json:"multiClusterAppName,omitempty" norman:"type=reference[multiClusterApp]"` 25 ProviderName string `json:"providerName,omitempty" norman:"type=reference[globalDnsProvider],required"` 26 Members []Member `json:"members,omitempty"` 27 } 28 29 type GlobalDNSStatus struct { 30 Endpoints []string `json:"endpoints,omitempty"` 31 ClusterEndpoints map[string][]string `json:"clusterEndpoints,omitempty"` 32 } 33 34 type GlobalDNSProvider struct { 35 types.Namespaced 36 37 metav1.TypeMeta `json:",inline"` 38 // Standard object’s metadata. More info: 39 // https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata 40 //ObjectMeta.Name = GlobalDNSProviderID 41 metav1.ObjectMeta `json:"metadata,omitempty"` 42 43 Spec GlobalDNSProviderSpec `json:"spec,omitempty"` 44 } 45 46 type GlobalDNSProviderSpec struct { 47 Route53ProviderConfig *Route53ProviderConfig `json:"route53ProviderConfig,omitempty"` 48 CloudflareProviderConfig *CloudflareProviderConfig `json:"cloudflareProviderConfig,omitempty"` 49 AlidnsProviderConfig *AlidnsProviderConfig `json:"alidnsProviderConfig,omitempty"` 50 Members []Member `json:"members,omitempty"` 51 RootDomain string `json:"rootDomain"` 52 } 53 54 type Route53ProviderConfig struct { 55 AccessKey string `json:"accessKey" norman:"notnullable,required,minLength=1"` 56 SecretKey string `json:"secretKey" norman:"notnullable,required,minLength=1,type=password"` 57 CredentialsPath string `json:"credentialsPath" norman:"default=/.aws"` 58 RoleArn string `json:"roleArn,omitempty"` 59 Region string `json:"region" norman:"default=us-east-1"` 60 ZoneType string `json:"zoneType" norman:"default=public"` 61 AdditionalOptions map[string]string `json:"additionalOptions,omitempty"` 62 } 63 64 type CloudflareProviderConfig struct { 65 APIKey string `json:"apiKey" norman:"notnullable,required,minLength=1,type=password"` 66 APIEmail string `json:"apiEmail" norman:"notnullable,required,minLength=1"` 67 ProxySetting *bool `json:"proxySetting" norman:"default=true"` 68 AdditionalOptions map[string]string `json:"additionalOptions,omitempty"` 69 } 70 71 type UpdateGlobalDNSTargetsInput struct { 72 ProjectNames []string `json:"projectNames" norman:"type=array[reference[project]]"` 73 } 74 75 type AlidnsProviderConfig struct { 76 AccessKey string `json:"accessKey" norman:"notnullable,required,minLength=1"` 77 SecretKey string `json:"secretKey" norman:"notnullable,required,minLength=1,type=password"` 78 AdditionalOptions map[string]string `json:"additionalOptions,omitempty"` 79 }