Example custom resource definitions

This page displays example custom resource definitions (CRD) for clusters in Telecom Network Automation.

Example WorkloadCluster CRD

  apiVersion 
 : 
  
 apiextensions.k8s.io/v1 
  
 kind 
 : 
  
 CustomResourceDefinition 
  
 metadata 
 : 
  
  
 annotations 
 : 
  
  
 cert-manager.io/inject-ca-from 
 : 
  
 ${tna-namespace}/workloadcluster-serving-cert controller-gen.kubebuilder.io/version 
 : 
  
 v0.9.2 
  
  
 name 
 : 
  
 workloadclusters.infra.tna.cloud.google.com 
  
 spec 
 : 
  
  
 conversion 
 : 
  
  
 strategy 
 : 
  
 Webhook 
  
  
 webhook 
 : 
  
  
 clientConfig 
 : 
  
  
 service 
 : 
  
  
 name 
 : 
  
 workloadcluster-webhook-service 
  
  
 namespace 
 : 
  
 ${tna-namespace} 
  
  
 path 
 : 
  
 /convert 
  
  
 conversionReviewVersions 
 : 
  
  
 - 
  
 v1 
  
  
 group 
 : 
  
 infra.tna.cloud.google.com 
  
  
 names 
 : 
  
  
 kind 
 : 
  
 WorkloadCluster 
  
  
 listKind 
 : 
  
 WorkloadClusterList 
  
  
 plural 
 : 
  
 workloadclusters 
  
  
 singular 
 : 
  
 workloadcluster 
  
  
 scope 
 : 
  
 Cluster 
  
  
 versions 
 : 
  
  
 - 
  
 name 
 : 
  
 v1alpha1 
  
  
 schema 
 : 
  
  
 openAPIV3Schema 
 : 
  
  
 description 
 : 
  
 WorkloadCluster is the Schema for the workloadclusters 
  
 API 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 
 : 
  
 WorkloadClusterSpec defines the desired state of WorkloadCluster 
  
  
 properties 
 : 
  
  
 VPC 
 : 
  
  
 type 
 : 
  
 string 
  
  
 adminUser 
 : 
  
  
 minLength 
 : 
  
 1 
  
  
 pattern 
 : 
  
 ^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$ 
  
  
 type 
 : 
  
 string 
  
  
 clusterIPv4CIDR 
 : 
  
  
 items 
 : 
  
  
 pattern 
 : 
  
 ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$ 
  
  
 type 
 : 
  
 string 
  
  
 maxItems 
 : 
  
 1 
  
  
 minItems 
 : 
  
 1 
  
  
 type 
 : 
  
 array 
  
 controlPlane 
 : 
  
  
 properties 
 : 
  
  
 nodeCount 
 : 
  
  
 description 
 : 
  
 NodeCount specifies the number of nodes to serve as replicas of the Control Plane. 
  
  
 enum 
 : 
  
  
 - 
  
 1 
  
  
 - 
  
 3 
  
  
 format 
 : 
  
 int64 
  
  
 type 
 : 
  
 integer 
  
 sharedDeploymentPolicy 
 : 
  
  
 enum 
 : 
  
  
 - 
  
 SHARED_DEPLOYMENT_POLICY_UNSPECIFIED 
  
  
 - 
  
 DISALLOWED 
  
  
 - 
  
 ALLOWED 
  
 type 
 : 
  
 string 
  
  
 type 
 : 
  
 object 
  
  
 defaultMaxPodsPerNode 
 : 
  
  
 format 
 : 
  
 int64 
  
  
 type 
 : 
  
 integer 
  
  
 externalLoadBalancerIpv4AddressPools 
 : 
  
  
 description 
 : 
  
 ExternalLoadBalancerIpv4AddressPools specifies address pools for cluster data plane external load balancing. 
  
  
 items 
 : 
  
  
 type 
 : 
  
 string 
  
  
 type 
 : 
  
 array 
  
  
 gdceVPNConnectionName 
 : 
  
  
 type 
 : 
  
 string 
  
  
 labels 
 : 
  
  
 additionalProperties 
 : 
  
  
 type 
 : 
  
 string 
  
  
 type 
 : 
  
 object 
  
  
 location 
 : 
  
 description 
 : 
  
 Location is the region ( for example us-central1 ) where the underlying cloud resources are created 
  
  
 minLength 
 : 
  
 1 
  
  
 pattern 
 : 
  
 ^[a-zA-Z0-9-._~%!$&'()*+,;=@]+$ 
  
  
 type 
 : 
  
 string 
  
  
 maintenancePolicy 
 : 
  
  
 description 
 : 
  
 'EdgeMaintenancePolicy 
  
 : 
  
 Cluster-wide 
  
 maintenance 
  
 policy 
  
 configuration.' 
  
  
 properties 
 : 
  
  
 endTime 
 : 
  
  
 description 
 : 
  
 'EndTime: 
  
 The 
  
 time 
  
 that 
  
 the 
  
 window 
  
 ends. 
  
 The 
  
 end 
  
 time 
  
 must 
  
 take 
  
 place 
  
 after 
  
 the 
  
 start 
  
 time.' 
  
  
 type 
 : 
  
 string 
  
  
 recurrence 
 : 
  
  
 description 
 : 
  
 'Recurrence: 
  
 A 
  
 rule 
  
 (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) 
  
 for 
  
 how 
  
 this 
  
 window 
  
 recurs. 
  
 They 
  
 go 
  
 on 
  
 for 
  
 the 
  
 span 
  
 of 
  
 time 
  
 between 
  
 the 
  
 start 
  
 and 
  
 end 
  
 time.' 
  
 type 
 : 
  
 string 
  
  
 startTime 
 : 
  
  
 description 
 : 
  
 'StartTime: 
  
 The 
  
 time 
  
 that 
  
 the 
  
 window 
  
 first 
  
 starts.' 
  
  
 type 
 : 
  
 string 
  
  
 type 
 : 
  
 object 
  
  
 natGatewayIP 
 : 
  
  
 type 
 : 
  
 string 
  
  
 nodePools 
 : 
  
  
 items 
 : 
  
  
 properties 
 : 
  
 labels 
 : 
  
 additionalProperties 
 : 
  
 type 
 : 
  
 string 
  
 description 
 : 
  
 'Add 
  
 validation 
  
 for 
  
 labels' 
  
 type 
 : 
  
 object 
  
  
 name 
 : 
  
  
 minLength 
 : 
  
 1 
  
  
 pattern 
 : 
  
 ^[a-zA-Z0-9-._~%!$&'()*+,;=@]+$ 
  
  
 type 
 : 
  
 string 
  
  
 nodeCount 
 : 
  
  
 format 
 : 
  
 int64 
  
  
 minimum 
 : 
  
 1 
  
  
 type 
 : 
  
 integer 
  
  
 scaleDownGracePeriodSeconds 
 : 
  
  
 description 
 : 
  
 Number of seconds to wait for the workloads to 
  
  
 get gracefully removed from the nodes selected for removal during scale down. This is useful for critical NF workloads that cannot tolerate disruption during pod re-scheduling done by kubernetes on node removal. The node resources like HugePages, Sriov VFs will be drained after this period and will initiate node removal from the underlying infrastructure. 
  
 format 
 : 
  
 int64 
  
  
 type 
 : 
  
 integer 
  
 scaleDownTimestamp 
 : 
  
 description 
 : 
  
 The timestamp at which the node pool scaledown was initiated. 
  
 format 
 : 
  
 date-time 
  
 type 
 : 
  
 string 
  
 required 
 : 
  
  
 - 
  
 name 
  
  
 - 
  
 nodeCount 
  
  
 type 
 : 
  
 object 
  
  
 minItems 
 : 
  
 1 
  
  
 type 
 : 
  
 array 
  
  
 serviceIPv4CIDR 
 : 
  
  
 items 
 : 
  
  
 pattern 
 : 
  
 ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$ 
  
  
 type 
 : 
  
 string 
  
  
 maxItems 
 : 
  
 1 
  
  
 minItems 
 : 
  
 1 
  
  
 type 
 : 
  
 array 
  
 targetVersion 
 : 
  
 enum 
 : 
  
 - 
  
 1.5.0 
  
 type 
 : 
  
 string 
  
  
 type 
 : 
  
  
 enum 
 : 
  
  
 - 
  
 GKE 
  
  
 - 
  
 GDCE 
  
  
 type 
 : 
  
 string 
  
  
 vpnLabels 
 : 
  
 additionalProperties 
 : 
  
 type 
 : 
  
 string 
  
 type 
 : 
  
 object 
  
 zone 
 : 
  
 description 
 : 
  
 This is the GDCE zone used by the local control plane and all the nodepools. 
  
 pattern 
 : 
  
 -edge 
  
 type 
 : 
  
 string 
  
 required 
 : 
  
 - 
  
 clusterIPv4CIDR 
  
 - 
  
 location 
  
 - 
  
 nodePools 
  
 - 
  
 serviceIPv4CIDR 
  
 - 
  
 type 
  
 type 
 : 
  
 object 
  
 status 
 : 
  
 description 
 : 
  
 WorkloadClusterStatus defines the observed state of WorkloadCluster 
  
 properties 
 : 
  
 conditions 
 : 
  
 description 
 : 
  
 Conditions describes the reconciliation state of the object. 
  
 items 
 : 
  
 description 
 : 
  
 "Condition 
  
 contains 
  
 details 
  
 for 
  
 one 
  
 aspect 
  
 of 
  
 the 
  
  
 current 
  
 state 
  
 of 
  
 this 
  
 API 
  
 Resource. 
  
 --- 
  
 This 
  
 struct 
  
 is 
  
 intended 
  
 for 
  
 direct 
  
 use 
  
 as 
  
 an 
  
 array 
  
 at 
  
 the 
  
 field 
  
 path 
  
 .status.conditions. 
  
 For 
  
 example, 
  
 \n 
  
 type 
  
 ExampleStatus 
  
 struct{ 
  
 // 
  
 Represents 
  
 the 
  
 observations 
  
 of 
  
 the 
  
 ExampleStatus 
  
 current 
  
 state. 
  
 // 
  
 Known 
  
 .status.conditions.type 
  
 are: 
  
 \"Available\", 
  
 \"Progressing\", 
  
 and 
  
 \"Degraded\" 
  
 // 
  
  
 +patchMergeKey=type 
  
 // 
  
 +patchStrategy=merge 
  
 // 
  
 +listType=map 
  
 // 
  
 +listMapKey=type 
  
 Conditions 
  
 []metav1.Condition 
  
 `json:\"conditions,omitempty\" 
  
  
 patchStrategy:\"merge\" 
  
 patchMergeKey:\"type\" 
  
  
 protobuf:\"bytes,1,rep,name=conditions\"` 
  
 \n 
  
 // 
  
 other 
  
 fields 
  
 }" 
  
  
 properties 
 : 
  
 lastTransitionTime 
 : 
  
 description 
 : 
  
 lastTransitionTime is the last time the 
  
  
 condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 
  
  
 format 
 : 
  
 date-time 
  
 type 
 : 
  
 string 
  
 message 
 : 
  
 description 
 : 
  
 message is a human readable message indicating details about the transition. This may be an empty string. 
  
 maxLength 
 : 
  
 32768 
  
 type 
 : 
  
 string 
  
 observedGeneration 
 : 
  
 description 
 : 
  
 observedGeneration represents the 
  
  
 .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the 
  
  
 .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. 
  
  
 format 
 : 
  
 int64 
  
 minimum 
 : 
  
 0 
  
 type 
 : 
  
 integer 
  
 reason 
 : 
  
 description 
 : 
  
 reason contains a programmatic identifier 
  
 indicating the reason for the last transition of the condition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. 
  
 maxLength 
 : 
  
 1024 
  
 minLength 
 : 
  
 1 
  
 pattern 
 : 
  
 ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 
  
 type 
 : 
  
 string 
  
 status 
 : 
  
 description 
 : 
  
 status of the condition, one of True, False, Unknown. 
  
  
 enum 
 : 
  
  
 - 
  
 "True" 
  
  
 - 
  
 "False" 
  
  
 - 
  
 Unknown 
  
  
 type 
 : 
  
 string 
  
  
 type 
 : 
  
  
 description 
 : 
  
 type of condition in CamelCase or in 
  
  
 test.example.com/CamelCase. --- Many .condition.type values are consistent across 
  
  
 resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 
  
  
 maxLength 
 : 
  
 316 
  
 pattern 
 : 
  
 ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][- A-Za-z0-9_.]*)?[A-Za-z0-9])$ 
  
  
 type 
 : 
  
 string 
  
 required 
 : 
  
 - 
  
 lastTransitionTime 
  
 - 
  
 message 
  
 - 
  
 reason 
  
 - 
  
 status 
  
 - 
  
 type 
  
 type 
 : 
  
 object 
  
 type 
 : 
  
 array 
  
 endpoint 
 : 
  
 description 
 : 
  
 Endpoint is the IP address of the Kubernetes API server. 
  
 type 
 : 
  
 string 
  
 observedGeneration 
 : 
  
 format 
 : 
  
 int64 
  
 type 
 : 
  
 integer 
  
 ownedResources 
 : 
  
 items 
 : 
  
 properties 
 : 
  
 group 
 : 
  
 type 
 : 
  
 string 
  
 kind 
 : 
  
 type 
 : 
  
 string 
  
 message 
 : 
  
 type 
 : 
  
 string 
  
 name 
 : 
  
 type 
 : 
  
 string 
  
 namespace 
 : 
  
 type 
 : 
  
 string 
  
 reason 
 : 
  
 type 
 : 
  
 string 
  
 status 
 : 
  
 type 
 : 
  
 string 
  
 version 
 : 
  
 type 
 : 
  
 string 
  
 required 
 : 
  
 - 
  
 group 
  
 - 
  
 kind 
  
 - 
  
 message 
  
 - 
  
 name 
  
 - 
  
 namespace 
  
 - 
  
 reason 
  
 - 
  
 status 
  
 - 
  
 version 
  
 type 
 : 
  
 object 
  
 type 
 : 
  
 array 
  
 required 
 : 
  
  
 - 
  
 observedGeneration 
  
  
 type 
 : 
  
 object 
  
  
  
 type 
 : 
  
 object 
  
  
 served 
 : 
  
 true 
  
  
 storage 
 : 
  
 true 
  
  
 subresources 
 : 
  
  
 status 
 : 
  
 {} 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: