github.com/verrazzano/verrazzano@v1.7.1/tests/e2e/clusterapi/capi/capiModels.go (about)

     1  // Copyright (c) 2023, Oracle and/or its affiliates.
     2  // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
     3  
     4  package capi
     5  
     6  import "time"
     7  
     8  type Cluster struct {
     9  	APIVersion string `json:"apiVersion"`
    10  	Kind       string `json:"kind"`
    11  	Metadata   struct {
    12  		CreationTimestamp time.Time `json:"creationTimestamp"`
    13  		Finalizers        []string  `json:"finalizers"`
    14  		Generation        int       `json:"generation"`
    15  		Labels            struct {
    16  			ClusterXK8SIoClusterName string `json:"cluster.x-k8s.io/cluster-name"`
    17  		} `json:"labels"`
    18  		Name            string `json:"name"`
    19  		Namespace       string `json:"namespace"`
    20  		ResourceVersion string `json:"resourceVersion"`
    21  		UID             string `json:"uid"`
    22  	} `json:"metadata"`
    23  	Spec struct {
    24  		ClusterNetwork struct {
    25  			Pods struct {
    26  				CidrBlocks []string `json:"cidrBlocks"`
    27  			} `json:"pods"`
    28  			ServiceDomain string `json:"serviceDomain"`
    29  			Services      struct {
    30  				CidrBlocks []string `json:"cidrBlocks"`
    31  			} `json:"services"`
    32  		} `json:"clusterNetwork"`
    33  		ControlPlaneEndpoint struct {
    34  			Host string `json:"host"`
    35  			Port int    `json:"port"`
    36  		} `json:"controlPlaneEndpoint"`
    37  		ControlPlaneRef struct {
    38  			APIVersion string `json:"apiVersion"`
    39  			Kind       string `json:"kind"`
    40  			Name       string `json:"name"`
    41  			Namespace  string `json:"namespace"`
    42  		} `json:"controlPlaneRef"`
    43  		InfrastructureRef struct {
    44  			APIVersion string `json:"apiVersion"`
    45  			Kind       string `json:"kind"`
    46  			Name       string `json:"name"`
    47  			Namespace  string `json:"namespace"`
    48  		} `json:"infrastructureRef"`
    49  		Topology struct {
    50  			Class        string `json:"class"`
    51  			ControlPlane struct {
    52  				Metadata struct {
    53  				} `json:"metadata"`
    54  				Replicas int `json:"replicas"`
    55  			} `json:"controlPlane"`
    56  			Variables []struct {
    57  				Name  string      `json:"name"`
    58  				Value interface{} `json:"value"`
    59  			} `json:"variables"`
    60  			Version string `json:"version"`
    61  			Workers struct {
    62  				MachineDeployments []struct {
    63  					Class    string `json:"class"`
    64  					Metadata struct {
    65  					} `json:"metadata"`
    66  					Name     string `json:"name"`
    67  					Replicas int    `json:"replicas"`
    68  				} `json:"machineDeployments"`
    69  			} `json:"workers"`
    70  		} `json:"topology"`
    71  	} `json:"spec"`
    72  	Status struct {
    73  		Conditions []struct {
    74  			LastTransitionTime time.Time `json:"lastTransitionTime"`
    75  			Status             string    `json:"status"`
    76  			Type               string    `json:"type"`
    77  		} `json:"conditions"`
    78  		ControlPlaneReady bool `json:"controlPlaneReady"`
    79  		FailureDomains    struct {
    80  			Field1 struct {
    81  				Attributes struct {
    82  					AvailabilityDomain string `json:"AvailabilityDomain"`
    83  				} `json:"attributes"`
    84  				ControlPlane bool `json:"controlPlane"`
    85  			} `json:"1"`
    86  			Field2 struct {
    87  				Attributes struct {
    88  					AvailabilityDomain string `json:"AvailabilityDomain"`
    89  				} `json:"attributes"`
    90  				ControlPlane bool `json:"controlPlane"`
    91  			} `json:"2"`
    92  			Field3 struct {
    93  				Attributes struct {
    94  					AvailabilityDomain string `json:"AvailabilityDomain"`
    95  				} `json:"attributes"`
    96  				ControlPlane bool `json:"controlPlane"`
    97  			} `json:"3"`
    98  		} `json:"failureDomains"`
    99  		InfrastructureReady bool   `json:"infrastructureReady"`
   100  		ObservedGeneration  int    `json:"observedGeneration"`
   101  		Phase               string `json:"phase"`
   102  	} `json:"status"`
   103  }
   104  
   105  type OCNEControlPlane struct {
   106  	APIVersion string `json:"apiVersion"`
   107  	Kind       string `json:"kind"`
   108  	Metadata   struct {
   109  		CreationTimestamp time.Time `json:"creationTimestamp"`
   110  		Finalizers        []string  `json:"finalizers"`
   111  		Generation        int       `json:"generation"`
   112  		Labels            struct {
   113  			ClusterXK8SIoClusterName string `json:"cluster.x-k8s.io/cluster-name"`
   114  		} `json:"labels"`
   115  		Name            string `json:"name"`
   116  		Namespace       string `json:"namespace"`
   117  		OwnerReferences []struct {
   118  			APIVersion         string `json:"apiVersion"`
   119  			BlockOwnerDeletion bool   `json:"blockOwnerDeletion"`
   120  			Controller         bool   `json:"controller"`
   121  			Kind               string `json:"kind"`
   122  			Name               string `json:"name"`
   123  			UID                string `json:"uid"`
   124  		} `json:"ownerReferences"`
   125  		ResourceVersion string `json:"resourceVersion"`
   126  		UID             string `json:"uid"`
   127  	} `json:"metadata"`
   128  	Spec struct {
   129  		ControlPlaneConfig struct {
   130  			ClusterConfiguration struct {
   131  				APIServer struct {
   132  					CertSANs []string `json:"certSANs"`
   133  				} `json:"apiServer"`
   134  				ControllerManager struct {
   135  				} `json:"controllerManager"`
   136  				DNS struct {
   137  					ImageRepository string `json:"imageRepository"`
   138  					ImageTag        string `json:"imageTag"`
   139  				} `json:"dns"`
   140  				Etcd struct {
   141  					Local struct {
   142  						ImageRepository string `json:"imageRepository"`
   143  						ImageTag        string `json:"imageTag"`
   144  					} `json:"local"`
   145  				} `json:"etcd"`
   146  				ImageRepository string `json:"imageRepository"`
   147  				Networking      struct {
   148  				} `json:"networking"`
   149  				Scheduler struct {
   150  				} `json:"scheduler"`
   151  			} `json:"clusterConfiguration"`
   152  			Format             string `json:"format"`
   153  			ImageConfiguration struct {
   154  				Proxy struct {
   155  					HTTPProxy  string `json:"httpProxy"`
   156  					HTTPSProxy string `json:"httpsProxy"`
   157  					NoProxy    string `json:"noProxy"`
   158  				} `json:"proxy"`
   159  			} `json:"imageConfiguration"`
   160  			InitConfiguration struct {
   161  				LocalAPIEndpoint struct {
   162  				} `json:"localAPIEndpoint"`
   163  				NodeRegistration struct {
   164  					CriSocket        string `json:"criSocket"`
   165  					KubeletExtraArgs struct {
   166  						CloudProvider string `json:"cloud-provider"`
   167  						ProviderID    string `json:"provider-id"`
   168  					} `json:"kubeletExtraArgs"`
   169  				} `json:"nodeRegistration"`
   170  			} `json:"initConfiguration"`
   171  			JoinConfiguration struct {
   172  				Discovery struct {
   173  				} `json:"discovery"`
   174  				NodeRegistration struct {
   175  					CriSocket        string `json:"criSocket"`
   176  					KubeletExtraArgs struct {
   177  						CloudProvider string `json:"cloud-provider"`
   178  						ProviderID    string `json:"provider-id"`
   179  					} `json:"kubeletExtraArgs"`
   180  				} `json:"nodeRegistration"`
   181  			} `json:"joinConfiguration"`
   182  		} `json:"controlPlaneConfig"`
   183  		MachineTemplate struct {
   184  			InfrastructureRef struct {
   185  				APIVersion string `json:"apiVersion"`
   186  				Kind       string `json:"kind"`
   187  				Name       string `json:"name"`
   188  				Namespace  string `json:"namespace"`
   189  			} `json:"infrastructureRef"`
   190  			Metadata struct {
   191  			} `json:"metadata"`
   192  		} `json:"machineTemplate"`
   193  		ModuleOperator struct {
   194  			Enabled bool `json:"enabled"`
   195  		} `json:"moduleOperator"`
   196  		VerrazzanoPlatformOperator struct {
   197  			Enabled bool `json:"enabled"`
   198  		} `json:"verrazzanoPlatformOperator"`
   199  		Replicas        int `json:"replicas"`
   200  		RolloutStrategy struct {
   201  			RollingUpdate struct {
   202  				MaxSurge int `json:"maxSurge"`
   203  			} `json:"rollingUpdate"`
   204  			Type string `json:"type"`
   205  		} `json:"rolloutStrategy"`
   206  		Version string `json:"version"`
   207  	} `json:"spec"`
   208  	Status struct {
   209  		Conditions []struct {
   210  			LastTransitionTime time.Time `json:"lastTransitionTime"`
   211  			Status             string    `json:"status"`
   212  			Type               string    `json:"type"`
   213  			Reason             string    `json:"reason"`
   214  			Severity           string    `json:"severity"`
   215  		} `json:"conditions"`
   216  		Initialized         bool   `json:"initialized"`
   217  		ObservedGeneration  int    `json:"observedGeneration"`
   218  		Ready               bool   `json:"ready"`
   219  		ReadyReplicas       int    `json:"readyReplicas"`
   220  		Replicas            int    `json:"replicas"`
   221  		Selector            string `json:"selector"`
   222  		UnavailableReplicas int    `json:"unavailableReplicas"`
   223  		UpdatedReplicas     int    `json:"updatedReplicas"`
   224  		Version             string `json:"version"`
   225  	} `json:"status"`
   226  }
   227  
   228  type Machine struct {
   229  	APIVersion string `json:"apiVersion"`
   230  	Kind       string `json:"kind"`
   231  	Metadata   struct {
   232  		Annotations struct {
   233  			ControlplaneClusterXK8SIoOcneClusterConfiguration string `json:"controlplane.cluster.x-k8s.io/ocne-cluster-configuration"`
   234  		} `json:"annotations"`
   235  		CreationTimestamp time.Time `json:"creationTimestamp"`
   236  		Finalizers        []string  `json:"finalizers"`
   237  		Generation        int       `json:"generation"`
   238  		Labels            struct {
   239  			ClusterXK8SIoClusterName      string `json:"cluster.x-k8s.io/cluster-name"`
   240  			ClusterXK8SIoControlPlane     string `json:"cluster.x-k8s.io/control-plane"`
   241  			ClusterXK8SIoControlPlaneName string `json:"cluster.x-k8s.io/control-plane-name"`
   242  		} `json:"labels"`
   243  		Name            string `json:"name"`
   244  		Namespace       string `json:"namespace"`
   245  		OwnerReferences []struct {
   246  			APIVersion         string `json:"apiVersion"`
   247  			BlockOwnerDeletion bool   `json:"blockOwnerDeletion"`
   248  			Controller         bool   `json:"controller"`
   249  			Kind               string `json:"kind"`
   250  			Name               string `json:"name"`
   251  			UID                string `json:"uid"`
   252  		} `json:"ownerReferences"`
   253  		ResourceVersion string `json:"resourceVersion"`
   254  		UID             string `json:"uid"`
   255  	} `json:"metadata"`
   256  	Spec struct {
   257  		Bootstrap struct {
   258  			ConfigRef struct {
   259  				APIVersion string `json:"apiVersion"`
   260  				Kind       string `json:"kind"`
   261  				Name       string `json:"name"`
   262  				Namespace  string `json:"namespace"`
   263  				UID        string `json:"uid"`
   264  			} `json:"configRef"`
   265  			DataSecretName string `json:"dataSecretName"`
   266  		} `json:"bootstrap"`
   267  		ClusterName       string `json:"clusterName"`
   268  		FailureDomain     string `json:"failureDomain"`
   269  		InfrastructureRef struct {
   270  			APIVersion string `json:"apiVersion"`
   271  			Kind       string `json:"kind"`
   272  			Name       string `json:"name"`
   273  			Namespace  string `json:"namespace"`
   274  			UID        string `json:"uid"`
   275  		} `json:"infrastructureRef"`
   276  		NodeDeletionTimeout string `json:"nodeDeletionTimeout"`
   277  		ProviderID          string `json:"providerID"`
   278  		Version             string `json:"version"`
   279  	} `json:"spec"`
   280  	Status struct {
   281  		Addresses []struct {
   282  			Address string `json:"address"`
   283  			Type    string `json:"type"`
   284  		} `json:"addresses"`
   285  		BootstrapReady         bool      `json:"bootstrapReady"`
   286  		CertificatesExpiryDate time.Time `json:"certificatesExpiryDate"`
   287  		Conditions             []struct {
   288  			LastTransitionTime time.Time `json:"lastTransitionTime"`
   289  			Status             string    `json:"status"`
   290  			Type               string    `json:"type"`
   291  		} `json:"conditions"`
   292  		InfrastructureReady bool      `json:"infrastructureReady"`
   293  		LastUpdated         time.Time `json:"lastUpdated"`
   294  		NodeInfo            struct {
   295  			Architecture            string `json:"architecture"`
   296  			BootID                  string `json:"bootID"`
   297  			ContainerRuntimeVersion string `json:"containerRuntimeVersion"`
   298  			KernelVersion           string `json:"kernelVersion"`
   299  			KubeProxyVersion        string `json:"kubeProxyVersion"`
   300  			KubeletVersion          string `json:"kubeletVersion"`
   301  			MachineID               string `json:"machineID"`
   302  			OperatingSystem         string `json:"operatingSystem"`
   303  			OsImage                 string `json:"osImage"`
   304  			SystemUUID              string `json:"systemUUID"`
   305  		} `json:"nodeInfo"`
   306  		NodeRef struct {
   307  			APIVersion string `json:"apiVersion"`
   308  			Kind       string `json:"kind"`
   309  			Name       string `json:"name"`
   310  			UID        string `json:"uid"`
   311  		} `json:"nodeRef"`
   312  		ObservedGeneration int    `json:"observedGeneration"`
   313  		Phase              string `json:"phase"`
   314  	} `json:"status"`
   315  }
   316  
   317  type Verrazzano struct {
   318  	APIVersion string `json:"apiVersion"`
   319  	Kind       string `json:"kind"`
   320  	Metadata   struct {
   321  		Annotations struct {
   322  			KubectlKubernetesIoLastAppliedConfiguration string `json:"kubectl.kubernetes.io/last-applied-configuration"`
   323  		} `json:"annotations"`
   324  		CreationTimestamp time.Time `json:"creationTimestamp"`
   325  		Finalizers        []string  `json:"finalizers"`
   326  		Generation        int       `json:"generation"`
   327  		Name              string    `json:"name"`
   328  		Namespace         string    `json:"namespace"`
   329  		ResourceVersion   string    `json:"resourceVersion"`
   330  		UID               string    `json:"uid"`
   331  	} `json:"metadata"`
   332  	Spec struct {
   333  		Components struct {
   334  		} `json:"components"`
   335  		EnvironmentName string `json:"environmentName"`
   336  		Profile         string `json:"profile"`
   337  		Security        struct {
   338  		} `json:"security"`
   339  	} `json:"spec"`
   340  	Status struct {
   341  		Available  string `json:"available"`
   342  		Conditions []struct {
   343  			LastTransitionTime time.Time `json:"lastTransitionTime"`
   344  			Message            string    `json:"message"`
   345  			Status             string    `json:"status"`
   346  			Type               string    `json:"type"`
   347  		} `json:"conditions"`
   348  		Instance struct {
   349  			ConsoleURL              string `json:"consoleUrl"`
   350  			GrafanaURL              string `json:"grafanaUrl"`
   351  			KeyCloakURL             string `json:"keyCloakUrl"`
   352  			KialiURL                string `json:"kialiUrl"`
   353  			OpenSearchDashboardsURL string `json:"openSearchDashboardsUrl"`
   354  			OpenSearchURL           string `json:"openSearchUrl"`
   355  			PrometheusURL           string `json:"prometheusUrl"`
   356  			RancherURL              string `json:"rancherUrl"`
   357  		} `json:"instance"`
   358  		State   string `json:"state"`
   359  		Version string `json:"version"`
   360  	} `json:"status"`
   361  }