github.com/vmware/go-vcloud-director/v2@v2.24.0/types/v56/cse.go (about)

     1  package types
     2  
     3  import "time"
     4  
     5  // Capvcd (Cluster API Provider for VCD), is a type that represents a Kubernetes cluster inside VCD, that is created and managed
     6  // with the Container Service Extension (CSE)
     7  type Capvcd struct {
     8  	Kind string `json:"kind,omitempty"`
     9  	Spec struct {
    10  		VcdKe struct {
    11  			// NOTE: "Secure" struct needs to be a pointer to avoid overriding with empty values by mistake, as VCD doesn't return RDE fields
    12  			// marked with "x-vcloud-restricted: secure"
    13  			Secure *struct {
    14  				ApiToken string `json:"apiToken,omitempty"`
    15  			} `json:"secure,omitempty"`
    16  			IsVCDKECluster             bool `json:"isVCDKECluster,omitempty"`
    17  			AutoRepairOnErrors         bool `json:"autoRepairOnErrors,omitempty"`
    18  			DefaultStorageClassOptions struct {
    19  				Filesystem             string `json:"filesystem,omitempty"`
    20  				K8SStorageClassName    string `json:"k8sStorageClassName,omitempty"`
    21  				VcdStorageProfileName  string `json:"vcdStorageProfileName,omitempty"`
    22  				UseDeleteReclaimPolicy bool   `json:"useDeleteReclaimPolicy,omitempty"`
    23  			} `json:"defaultStorageClassOptions,omitempty"`
    24  		} `json:"vcdKe,omitempty"`
    25  		CapiYaml string `json:"capiYaml,omitempty"`
    26  	} `json:"spec,omitempty"`
    27  	Status struct {
    28  		Cpi struct {
    29  			Name     string `json:"name,omitempty"`
    30  			Version  string `json:"version,omitempty"`
    31  			EventSet []struct {
    32  				Name              string    `json:"name,omitempty"`
    33  				OccurredAt        time.Time `json:"occurredAt,omitempty"`
    34  				VcdResourceId     string    `json:"vcdResourceId,omitempty"`
    35  				VcdResourceName   string    `json:"vcdResourceName,omitempty"`
    36  				AdditionalDetails struct {
    37  					DetailedEvent string `json:"Detailed Event,omitempty"`
    38  				} `json:"additionalDetails,omitempty"`
    39  			} `json:"eventSet,omitempty"`
    40  			ErrorSet []struct {
    41  				Name              string    `json:"name,omitempty"`
    42  				OccurredAt        time.Time `json:"occurredAt,omitempty"`
    43  				VcdResourceId     string    `json:"vcdResourceId,omitempty"`
    44  				VcdResourceName   string    `json:"vcdResourceName,omitempty"`
    45  				AdditionalDetails struct {
    46  					DetailedError string `json:"Detailed Error,omitempty"`
    47  				} `json:"additionalDetails,omitempty"`
    48  			} `json:"errorSet,omitempty"`
    49  		} `json:"cpi,omitempty"`
    50  		Csi struct {
    51  			Name     string `json:"name,omitempty"`
    52  			Version  string `json:"version,omitempty"`
    53  			EventSet []struct {
    54  				Name              string    `json:"name,omitempty"`
    55  				OccurredAt        time.Time `json:"occurredAt,omitempty"`
    56  				VcdResourceId     string    `json:"vcdResourceId,omitempty"`
    57  				VcdResourceName   string    `json:"vcdResourceName,omitempty"`
    58  				AdditionalDetails struct {
    59  					DetailedDescription string `json:"Detailed Description,omitempty"`
    60  				} `json:"additionalDetails,omitempty"`
    61  			} `json:"eventSet,omitempty"`
    62  			ErrorSet []struct {
    63  				Name              string    `json:"name,omitempty"`
    64  				OccurredAt        time.Time `json:"occurredAt,omitempty"`
    65  				VcdResourceId     string    `json:"vcdResourceId,omitempty"`
    66  				VcdResourceName   string    `json:"vcdResourceName,omitempty"`
    67  				AdditionalDetails struct {
    68  					DetailedError string `json:"Detailed Error,omitempty"`
    69  				} `json:"additionalDetails,omitempty"`
    70  			} `json:"errorSet,omitempty"`
    71  		} `json:"csi,omitempty"`
    72  		VcdKe struct {
    73  			State    string `json:"state,omitempty"`
    74  			EventSet []struct {
    75  				Name              string    `json:"name,omitempty"`
    76  				OccurredAt        time.Time `json:"occurredAt,omitempty"`
    77  				VcdResourceId     string    `json:"vcdResourceId,omitempty"`
    78  				VcdResourceName   string    `json:"vcdResourceName,omitempty"`
    79  				AdditionalDetails struct {
    80  					DetailedEvent string `json:"Detailed Event,omitempty"`
    81  				} `json:"additionalDetails,omitempty"`
    82  			} `json:"eventSet,omitempty"`
    83  			ErrorSet []struct {
    84  				Name              string    `json:"name,omitempty"`
    85  				OccurredAt        time.Time `json:"occurredAt,omitempty"`
    86  				VcdResourceId     string    `json:"vcdResourceId,omitempty"`
    87  				VcdResourceName   string    `json:"vcdResourceName,omitempty"`
    88  				AdditionalDetails struct {
    89  					DetailedError string `json:"Detailed Error,omitempty"`
    90  				} `json:"additionalDetails,omitempty"`
    91  			} `json:"errorSet,omitempty"`
    92  			WorkerId       string `json:"workerId,omitempty"`
    93  			VcdKeVersion   string `json:"vcdKeVersion,omitempty"`
    94  			VcdResourceSet []struct {
    95  				Id   string `json:"id,omitempty"`
    96  				Name string `json:"name,omitempty"`
    97  				Type string `json:"type,omitempty"`
    98  			} `json:"vcdResourceSet,omitempty"`
    99  			HeartbeatString     string `json:"heartbeatString,omitempty"`
   100  			VcdKeInstanceId     string `json:"vcdKeInstanceId,omitempty"`
   101  			HeartbeatTimestamp  string `json:"heartbeatTimestamp,omitempty"`
   102  			DefaultStorageClass struct {
   103  				FileSystem             string `json:"fileSystem,omitempty"`
   104  				K8SStorageClassName    string `json:"k8sStorageClassName,omitempty"`
   105  				VcdStorageProfileName  string `json:"vcdStorageProfileName,omitempty"`
   106  				UseDeleteReclaimPolicy bool   `json:"useDeleteReclaimPolicy,omitempty"`
   107  			} `json:"defaultStorageClass,omitempty"`
   108  		} `json:"vcdKe,omitempty"`
   109  		Capvcd struct {
   110  			Uid   string `json:"uid,omitempty"`
   111  			Phase string `json:"phase,omitempty"`
   112  			// NOTE: "Private" struct needs to be a pointer to avoid overriding with empty values by mistake, as VCD doesn't return RDE fields
   113  			// marked with "x-vcloud-restricted: secure"
   114  			Private *struct {
   115  				KubeConfig string `json:"kubeConfig,omitempty"`
   116  			} `json:"private,omitempty"`
   117  			Upgrade struct {
   118  				Ready   bool `json:"ready,omitempty"`
   119  				Current struct {
   120  					TkgVersion        string `json:"tkgVersion,omitempty"`
   121  					KubernetesVersion string `json:"kubernetesVersion,omitempty"`
   122  				} `json:"current,omitempty"`
   123  			} `json:"upgrade,omitempty"`
   124  			EventSet []struct {
   125  				Name            string    `json:"name,omitempty"`
   126  				OccurredAt      time.Time `json:"occurredAt,omitempty"`
   127  				VcdResourceId   string    `json:"vcdResourceId,omitempty"`
   128  				VcdResourceName string    `json:"vcdResourceName,omitempty"`
   129  			} `json:"eventSet,omitempty"`
   130  			ErrorSet []struct {
   131  				Name              string    `json:"name,omitempty"`
   132  				OccurredAt        time.Time `json:"occurredAt,omitempty"`
   133  				VcdResourceId     string    `json:"vcdResourceId,omitempty"`
   134  				VcdResourceName   string    `json:"vcdResourceName,omitempty"`
   135  				AdditionalDetails struct {
   136  					DetailedError string `json:"Detailed Error,omitempty"`
   137  				} `json:"additionalDetails,omitempty"`
   138  			} `json:"errorSet,omitempty"`
   139  			NodePool []struct {
   140  				Name              string `json:"name,omitempty"`
   141  				DiskSizeMb        int    `json:"diskSizeMb,omitempty"`
   142  				SizingPolicy      string `json:"sizingPolicy,omitempty"`
   143  				StorageProfile    string `json:"storageProfile,omitempty"`
   144  				DesiredReplicas   int    `json:"desiredReplicas,omitempty"`
   145  				AvailableReplicas int    `json:"availableReplicas,omitempty"`
   146  			} `json:"nodePool,omitempty"`
   147  			ParentUid  string `json:"parentUid,omitempty"`
   148  			K8SNetwork struct {
   149  				Pods struct {
   150  					CidrBlocks []string `json:"cidrBlocks,omitempty"`
   151  				} `json:"pods,omitempty"`
   152  				Services struct {
   153  					CidrBlocks []string `json:"cidrBlocks,omitempty"`
   154  				} `json:"services,omitempty"`
   155  			} `json:"k8sNetwork,omitempty"`
   156  			Kubernetes    string `json:"kubernetes,omitempty"`
   157  			CapvcdVersion string `json:"capvcdVersion,omitempty"`
   158  			VcdProperties struct {
   159  				Site    string `json:"site,omitempty"`
   160  				OrgVdcs []struct {
   161  					Id              string `json:"id,omitempty"`
   162  					Name            string `json:"name,omitempty"`
   163  					OvdcNetworkName string `json:"ovdcNetworkName,omitempty"`
   164  				} `json:"orgVdcs,omitempty"`
   165  				Organizations []struct {
   166  					Id   string `json:"id,omitempty"`
   167  					Name string `json:"name,omitempty"`
   168  				} `json:"organizations,omitempty"`
   169  			} `json:"vcdProperties,omitempty"`
   170  			CapiStatusYaml string `json:"capiStatusYaml,omitempty"`
   171  			VcdResourceSet []struct {
   172  				Id                string `json:"id,omitempty"`
   173  				Name              string `json:"name,omitempty"`
   174  				Type              string `json:"type,omitempty"`
   175  				AdditionalDetails struct {
   176  					VirtualIP string `json:"virtualIP,omitempty"`
   177  				} `json:"additionalDetails,omitempty"`
   178  			} `json:"vcdResourceSet,omitempty"`
   179  			ClusterApiStatus struct {
   180  				Phase        string `json:"phase,omitempty"`
   181  				ApiEndpoints []struct {
   182  					Host string `json:"host,omitempty"`
   183  					Port int    `json:"port,omitempty"`
   184  				} `json:"apiEndpoints,omitempty"`
   185  			} `json:"clusterApiStatus,omitempty"`
   186  			CreatedByVersion           string `json:"createdByVersion,omitempty"`
   187  			ClusterResourceSetBindings []struct {
   188  				Kind                   string `json:"kind,omitempty"`
   189  				Name                   string `json:"name,omitempty"`
   190  				Applied                bool   `json:"applied,omitempty"`
   191  				LastAppliedTime        string `json:"lastAppliedTime,omitempty"`
   192  				ClusterResourceSetName string `json:"clusterResourceSetName,omitempty"`
   193  			} `json:"clusterResourceSetBindings,omitempty"`
   194  		} `json:"capvcd,omitempty"`
   195  		Projector struct {
   196  			Name     string `json:"name,omitempty"`
   197  			Version  string `json:"version,omitempty"`
   198  			EventSet []struct {
   199  				Name              string    `json:"name,omitempty"`
   200  				OccurredAt        time.Time `json:"occurredAt,omitempty"`
   201  				VcdResourceId     string    `json:"vcdResourceId,omitempty"`
   202  				VcdResourceName   string    `json:"vcdResourceName,omitempty"`
   203  				AdditionalDetails struct {
   204  					Event string `json:"event,omitempty"`
   205  				} `json:"additionalDetails,omitempty"`
   206  			} `json:"eventSet,omitempty"`
   207  			ErrorSet []struct {
   208  				Name              string    `json:"name,omitempty"`
   209  				OccurredAt        time.Time `json:"occurredAt,omitempty"`
   210  				VcdResourceId     string    `json:"vcdResourceId,omitempty"`
   211  				VcdResourceName   string    `json:"vcdResourceName,omitempty"`
   212  				AdditionalDetails struct {
   213  					DetailedError string `json:"Detailed Error,omitempty"`
   214  				} `json:"additionalDetails,omitempty"`
   215  			} `json:"errorSet,omitempty"`
   216  		} `json:"projector,omitempty"`
   217  	} `json:"status,omitempty"`
   218  	Metadata struct {
   219  		Name                  string `json:"name,omitempty"`
   220  		Site                  string `json:"site,omitempty"`
   221  		OrgName               string `json:"orgName,omitempty"`
   222  		VirtualDataCenterName string `json:"virtualDataCenterName,omitempty"`
   223  	} `json:"metadata,omitempty"`
   224  	ApiVersion string `json:"apiVersion,omitempty"`
   225  }