v1alpha1

package
Version: v0.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2019 License: Apache-2.0 Imports: 8 Imported by: 140

Documentation

Overview

+k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kubernetes-sigs/federation-v2/pkg/apis/core +k8s:defaulter-gen=TypeMeta +groupName=core.federation.k8s.io

Copyright 2018 The Kubernetes Authors.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var (
	// Define CRDs for resources
	ClusterPropagatedVersionCRD = v1beta1.CustomResourceDefinition{
		ObjectMeta: metav1.ObjectMeta{
			Name: "clusterpropagatedversions.core.federation.k8s.io",
		},
		Spec: v1beta1.CustomResourceDefinitionSpec{
			Group:   "core.federation.k8s.io",
			Version: "v1alpha1",
			Names: v1beta1.CustomResourceDefinitionNames{
				Kind:   "ClusterPropagatedVersion",
				Plural: "clusterpropagatedversions",
			},
			Scope: "Cluster",
			Validation: &v1beta1.CustomResourceValidation{
				OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
					Properties: map[string]v1beta1.JSONSchemaProps{
						"apiVersion": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"kind": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"metadata": v1beta1.JSONSchemaProps{
							Type: "object",
						},
						"spec": v1beta1.JSONSchemaProps{
							Type:       "object",
							Properties: map[string]v1beta1.JSONSchemaProps{},
						},
						"status": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"clusterVersions": v1beta1.JSONSchemaProps{
									Type: "array",
									Items: &v1beta1.JSONSchemaPropsOrArray{
										Schema: &v1beta1.JSONSchemaProps{
											Type: "object",
											Properties: map[string]v1beta1.JSONSchemaProps{
												"clusterName": v1beta1.JSONSchemaProps{
													Type: "string",
												},
												"version": v1beta1.JSONSchemaProps{
													Type: "string",
												},
											},
										},
									},
								},
								"overridesVersion": v1beta1.JSONSchemaProps{
									Type: "string",
								},
								"templateVersion": v1beta1.JSONSchemaProps{
									Type: "string",
								},
							},
						},
					},
				},
			},
			Subresources: &v1beta1.CustomResourceSubresources{
				Status: &v1beta1.CustomResourceSubresourceStatus{},
			},
		},
	}
	// Define CRDs for resources
	FederatedClusterCRD = v1beta1.CustomResourceDefinition{
		ObjectMeta: metav1.ObjectMeta{
			Name: "federatedclusters.core.federation.k8s.io",
		},
		Spec: v1beta1.CustomResourceDefinitionSpec{
			Group:   "core.federation.k8s.io",
			Version: "v1alpha1",
			Names: v1beta1.CustomResourceDefinitionNames{
				Kind:   "FederatedCluster",
				Plural: "federatedclusters",
			},
			Scope: "Namespaced",
			Validation: &v1beta1.CustomResourceValidation{
				OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
					Properties: map[string]v1beta1.JSONSchemaProps{
						"apiVersion": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"kind": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"metadata": v1beta1.JSONSchemaProps{
							Type: "object",
						},
						"spec": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"clusterRef": v1beta1.JSONSchemaProps{
									Type:       "object",
									Properties: map[string]v1beta1.JSONSchemaProps{},
								},
								"secretRef": v1beta1.JSONSchemaProps{
									Type:       "object",
									Properties: map[string]v1beta1.JSONSchemaProps{},
								},
							},
						},
						"status": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"conditions": v1beta1.JSONSchemaProps{
									Type: "array",
									Items: &v1beta1.JSONSchemaPropsOrArray{
										Schema: &v1beta1.JSONSchemaProps{
											Type: "object",
											Properties: map[string]v1beta1.JSONSchemaProps{
												"lastProbeTime": v1beta1.JSONSchemaProps{
													Type:   "string",
													Format: "date-time",
												},
												"lastTransitionTime": v1beta1.JSONSchemaProps{
													Type:   "string",
													Format: "date-time",
												},
												"message": v1beta1.JSONSchemaProps{
													Type: "string",
												},
												"reason": v1beta1.JSONSchemaProps{
													Type: "string",
												},
												"status": v1beta1.JSONSchemaProps{
													Type: "string",
												},
												"type": v1beta1.JSONSchemaProps{
													Type: "string",
												},
											},
											Required: []string{
												"type",
												"status",
											}},
									},
								},
								"region": v1beta1.JSONSchemaProps{
									Type: "string",
								},
								"zone": v1beta1.JSONSchemaProps{
									Type: "string",
								},
							},
						},
					},
				},
			},
			Subresources: &v1beta1.CustomResourceSubresources{
				Status: &v1beta1.CustomResourceSubresourceStatus{},
			},
		},
	}
	// Define CRDs for resources
	FederatedServiceStatusCRD = v1beta1.CustomResourceDefinition{
		ObjectMeta: metav1.ObjectMeta{
			Name: "federatedservicestatuses.core.federation.k8s.io",
		},
		Spec: v1beta1.CustomResourceDefinitionSpec{
			Group:   "core.federation.k8s.io",
			Version: "v1alpha1",
			Names: v1beta1.CustomResourceDefinitionNames{
				Kind:   "FederatedServiceStatus",
				Plural: "federatedservicestatuses",
			},
			Scope: "Namespaced",
			Validation: &v1beta1.CustomResourceValidation{
				OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
					Properties: map[string]v1beta1.JSONSchemaProps{
						"apiVersion": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"clusterStatus": v1beta1.JSONSchemaProps{
							Type: "array",
							Items: &v1beta1.JSONSchemaPropsOrArray{
								Schema: &v1beta1.JSONSchemaProps{
									Type: "object",
									Properties: map[string]v1beta1.JSONSchemaProps{
										"clusterName": v1beta1.JSONSchemaProps{
											Type: "string",
										},
										"status": v1beta1.JSONSchemaProps{
											Type:       "object",
											Properties: map[string]v1beta1.JSONSchemaProps{},
										},
									},
								},
							},
						},
						"kind": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"metadata": v1beta1.JSONSchemaProps{
							Type: "object",
						},
					},
				},
			},
		},
	}
	// Define CRDs for resources
	FederatedTypeConfigCRD = v1beta1.CustomResourceDefinition{
		ObjectMeta: metav1.ObjectMeta{
			Name: "federatedtypeconfigs.core.federation.k8s.io",
		},
		Spec: v1beta1.CustomResourceDefinitionSpec{
			Group:   "core.federation.k8s.io",
			Version: "v1alpha1",
			Names: v1beta1.CustomResourceDefinitionNames{
				Kind:   "FederatedTypeConfig",
				Plural: "federatedtypeconfigs",
			},
			Scope: "Namespaced",
			Validation: &v1beta1.CustomResourceValidation{
				OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
					Properties: map[string]v1beta1.JSONSchemaProps{
						"apiVersion": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"kind": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"metadata": v1beta1.JSONSchemaProps{
							Type: "object",
						},
						"spec": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"enableStatus": v1beta1.JSONSchemaProps{
									Type: "boolean",
								},
								"federatedType": v1beta1.JSONSchemaProps{
									Type: "object",
									Properties: map[string]v1beta1.JSONSchemaProps{
										"group": v1beta1.JSONSchemaProps{
											Type: "string",
										},
										"kind": v1beta1.JSONSchemaProps{
											Type: "string",
										},
										"pluralName": v1beta1.JSONSchemaProps{
											Type: "string",
										},
										"version": v1beta1.JSONSchemaProps{
											Type: "string",
										},
									},
									Required: []string{
										"kind",
									}},
								"namespaced": v1beta1.JSONSchemaProps{
									Type: "boolean",
								},
								"propagationEnabled": v1beta1.JSONSchemaProps{
									Type: "boolean",
								},
								"status": v1beta1.JSONSchemaProps{
									Type: "object",
									Properties: map[string]v1beta1.JSONSchemaProps{
										"group": v1beta1.JSONSchemaProps{
											Type: "string",
										},
										"kind": v1beta1.JSONSchemaProps{
											Type: "string",
										},
										"pluralName": v1beta1.JSONSchemaProps{
											Type: "string",
										},
										"version": v1beta1.JSONSchemaProps{
											Type: "string",
										},
									},
									Required: []string{
										"kind",
									}},
								"target": v1beta1.JSONSchemaProps{
									Type: "object",
									Properties: map[string]v1beta1.JSONSchemaProps{
										"group": v1beta1.JSONSchemaProps{
											Type: "string",
										},
										"kind": v1beta1.JSONSchemaProps{
											Type: "string",
										},
										"pluralName": v1beta1.JSONSchemaProps{
											Type: "string",
										},
										"version": v1beta1.JSONSchemaProps{
											Type: "string",
										},
									},
									Required: []string{
										"kind",
									}},
							},
							Required: []string{
								"target",
								"namespaced",
								"propagationEnabled",
								"federatedType",
							}},
						"status": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"observedGeneration": v1beta1.JSONSchemaProps{
									Type:   "integer",
									Format: "int64",
								},
								"propagationController": v1beta1.JSONSchemaProps{
									Type: "string",
								},
								"statusController": v1beta1.JSONSchemaProps{
									Type: "string",
								},
							},
						},
					},
				},
			},
			Subresources: &v1beta1.CustomResourceSubresources{
				Status: &v1beta1.CustomResourceSubresourceStatus{},
			},
		},
	}
	// Define CRDs for resources
	PropagatedVersionCRD = v1beta1.CustomResourceDefinition{
		ObjectMeta: metav1.ObjectMeta{
			Name: "propagatedversions.core.federation.k8s.io",
		},
		Spec: v1beta1.CustomResourceDefinitionSpec{
			Group:   "core.federation.k8s.io",
			Version: "v1alpha1",
			Names: v1beta1.CustomResourceDefinitionNames{
				Kind:   "PropagatedVersion",
				Plural: "propagatedversions",
			},
			Scope: "Namespaced",
			Validation: &v1beta1.CustomResourceValidation{
				OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
					Properties: map[string]v1beta1.JSONSchemaProps{
						"apiVersion": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"kind": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"metadata": v1beta1.JSONSchemaProps{
							Type: "object",
						},
						"spec": v1beta1.JSONSchemaProps{
							Type:       "object",
							Properties: map[string]v1beta1.JSONSchemaProps{},
						},
						"status": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"clusterVersions": v1beta1.JSONSchemaProps{
									Type: "array",
									Items: &v1beta1.JSONSchemaPropsOrArray{
										Schema: &v1beta1.JSONSchemaProps{
											Type: "object",
											Properties: map[string]v1beta1.JSONSchemaProps{
												"clusterName": v1beta1.JSONSchemaProps{
													Type: "string",
												},
												"version": v1beta1.JSONSchemaProps{
													Type: "string",
												},
											},
										},
									},
								},
								"overridesVersion": v1beta1.JSONSchemaProps{
									Type: "string",
								},
								"templateVersion": v1beta1.JSONSchemaProps{
									Type: "string",
								},
							},
						},
					},
				},
			},
			Subresources: &v1beta1.CustomResourceSubresources{
				Status: &v1beta1.CustomResourceSubresourceStatus{},
			},
		},
	}
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: "core.federation.k8s.io", Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func PluralName added in v0.0.2

func PluralName(kind string) string

PluralName computes the plural name from the kind by lowercasing and suffixing with 's' or `es`.

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

func SetFederatedTypeConfigDefaults

func SetFederatedTypeConfigDefaults(obj *FederatedTypeConfig)

Types

type APIResource

type APIResource struct {

	// Group of the resource.
	Group string `json:"group,omitempty"`
	// Version of the resource.
	Version string `json:"version,omitempty"`
	// Camel-cased singular name of the resource (e.g. ConfigMap)
	Kind string `json:"kind"`
	// Lower-cased plural name of the resource (e.g. configmaps).  If
	// not provided, it will be computed by lower-casing the kind and
	// suffixing an 's'.
	PluralName string `json:"pluralName,omitempty"`
}

APIResource defines how to configure the dynamic client for an API resource.

func (*APIResource) DeepCopy

func (in *APIResource) DeepCopy() *APIResource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIResource.

func (*APIResource) DeepCopyInto

func (in *APIResource) DeepCopyInto(out *APIResource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterCondition

type ClusterCondition struct {
	// Type of cluster condition, Ready or Offline.
	Type common.ClusterConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status apiv1.ConditionStatus `json:"status"`
	// Last time the condition was checked.
	// +optional
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// Last time the condition transit from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// (brief) reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Human readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

ClusterCondition describes current state of a cluster.

func (*ClusterCondition) DeepCopy

func (in *ClusterCondition) DeepCopy() *ClusterCondition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCondition.

func (*ClusterCondition) DeepCopyInto

func (in *ClusterCondition) DeepCopyInto(out *ClusterCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterObjectVersion

type ClusterObjectVersion struct {
	// The name of the cluster the version is for.
	ClusterName string `json:"clusterName,omitempty"`
	// The last version produced for the resource by a federation
	// operation.
	Version string `json:"version,omitempty"`
}

func (*ClusterObjectVersion) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterObjectVersion.

func (*ClusterObjectVersion) DeepCopyInto

func (in *ClusterObjectVersion) DeepCopyInto(out *ClusterObjectVersion)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterPropagatedVersion added in v0.0.3

type ClusterPropagatedVersion struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ClusterPropagatedVersionSpec `json:"spec,omitempty"`
	Status PropagatedVersionStatus      `json:"status,omitempty"`
}

ClusterPropagatedVersion holds version information about the state propagated from cluster-scoped federation APIs configured by FederatedTypeConfig to target clusters. The name of a ClusterPropagatedVersion encodes the kind and name of the resource it stores information for. The type of version information stored in ClusterPropagatedVersion will be the metadata.resourceVersion or metadata.Generation of the resource depending on the value of spec.comparisonField in the FederatedTypeConfig associated with the resource.

+k8s:openapi-gen=true +kubebuilder:resource:path=clusterpropagatedversions +kubebuilder:subresource:status

func (*ClusterPropagatedVersion) DeepCopy added in v0.0.3

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterPropagatedVersion.

func (*ClusterPropagatedVersion) DeepCopyInto added in v0.0.3

func (in *ClusterPropagatedVersion) DeepCopyInto(out *ClusterPropagatedVersion)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterPropagatedVersion) DeepCopyObject added in v0.0.3

func (in *ClusterPropagatedVersion) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterPropagatedVersionList added in v0.0.3

type ClusterPropagatedVersionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ClusterPropagatedVersion `json:"items"`
}

func (*ClusterPropagatedVersionList) DeepCopy added in v0.0.3

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterPropagatedVersionList.

func (*ClusterPropagatedVersionList) DeepCopyInto added in v0.0.3

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterPropagatedVersionList) DeepCopyObject added in v0.0.3

func (in *ClusterPropagatedVersionList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterPropagatedVersionSpec added in v0.0.3

type ClusterPropagatedVersionSpec struct {
}

ClusterPropagatedVersionSpec defines the desired state of ClusterPropagatedVersion

func (*ClusterPropagatedVersionSpec) DeepCopy added in v0.0.3

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterPropagatedVersionSpec.

func (*ClusterPropagatedVersionSpec) DeepCopyInto added in v0.0.3

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControllerStatus added in v0.0.4

type ControllerStatus string

ControllerStatus defines the current state of the controller

const (
	// ControllerStatusRunning means controller is in "running" state
	ControllerStatusRunning ControllerStatus = "Running"
	// ControllerStatusNotRunning means controller is in "notrunning" state
	ControllerStatusNotRunning ControllerStatus = "NotRunning"
)

type FederatedCluster

type FederatedCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FederatedClusterSpec   `json:"spec,omitempty"`
	Status FederatedClusterStatus `json:"status,omitempty"`
}

FederatedCluster configures federation to be aware of a Kubernetes cluster from the cluster-registry and provides a Kubeconfig for federation to use to communicate with the cluster.

+k8s:openapi-gen=true +kubebuilder:resource:path=federatedclusters +kubebuilder:subresource:status

func (*FederatedCluster) DeepCopy

func (in *FederatedCluster) DeepCopy() *FederatedCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedCluster.

func (*FederatedCluster) DeepCopyInto

func (in *FederatedCluster) DeepCopyInto(out *FederatedCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FederatedCluster) DeepCopyObject

func (in *FederatedCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FederatedClusterList

type FederatedClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []FederatedCluster `json:"items"`
}

func (*FederatedClusterList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedClusterList.

func (*FederatedClusterList) DeepCopyInto

func (in *FederatedClusterList) DeepCopyInto(out *FederatedClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FederatedClusterList) DeepCopyObject

func (in *FederatedClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FederatedClusterSpec

type FederatedClusterSpec struct {
	// Name of the cluster registry Cluster resource from which to source api
	// endpoints.
	// TODO(marun) should this go away in favor of a 1:1 mapping?
	ClusterRef apiv1.LocalObjectReference `json:"clusterRef,omitempty"`

	// Name of the secret containing kubeconfig to access the referenced cluster.
	//
	// Admin needs to ensure that the required secret exists. Secret
	// should be in the same namespace where federation control plane
	// is hosted and it should have kubeconfig in its data with key
	// "kubeconfig".
	//
	// This will later be changed to a reference to secret in
	// federation control plane when the federation control plane
	// supports secrets.
	//
	// This can be left empty if the cluster allows insecure access.
	// +optional
	SecretRef *apiv1.LocalObjectReference `json:"secretRef,omitempty"`
}

FederatedClusterSpec defines the desired state of FederatedCluster

func (*FederatedClusterSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedClusterSpec.

func (*FederatedClusterSpec) DeepCopyInto

func (in *FederatedClusterSpec) DeepCopyInto(out *FederatedClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FederatedClusterStatus

type FederatedClusterStatus struct {
	// Conditions is an array of current cluster conditions.
	// +optional
	Conditions []ClusterCondition `json:"conditions,omitempty"`
	// Zone is the name of availability zone in which the nodes of the cluster exist, e.g. 'us-east1-a'.
	// +optional
	Zone string `json:"zone,omitempty"`
	// Region is the name of the region in which all of the nodes in the cluster exist.  e.g. 'us-east1'.
	// +optional
	Region string `json:"region,omitempty"`
}

FederatedClusterStatus contains information about the current status of a cluster updated periodically by cluster controller.

func (*FederatedClusterStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedClusterStatus.

func (*FederatedClusterStatus) DeepCopyInto

func (in *FederatedClusterStatus) DeepCopyInto(out *FederatedClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FederatedServiceClusterStatus added in v0.0.3

type FederatedServiceClusterStatus struct {
	ClusterName string               `json:"clusterName,omitempty"`
	Status      corev1.ServiceStatus `json:"status,omitempty"`
}

FederatedServiceClusterStatus is the observed status of the resource for a named cluster

func (*FederatedServiceClusterStatus) DeepCopy added in v0.0.3

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedServiceClusterStatus.

func (*FederatedServiceClusterStatus) DeepCopyInto added in v0.0.3

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FederatedServiceStatus

type FederatedServiceStatus struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	ClusterStatus []FederatedServiceClusterStatus `json:"clusterStatus,omitempty"`
}

FederatedServiceStatus +k8s:openapi-gen=true +kubebuilder:resource:path=federatedservicestatuses

func (*FederatedServiceStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedServiceStatus.

func (*FederatedServiceStatus) DeepCopyInto

func (in *FederatedServiceStatus) DeepCopyInto(out *FederatedServiceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FederatedServiceStatus) DeepCopyObject added in v0.0.3

func (in *FederatedServiceStatus) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FederatedServiceStatusList added in v0.0.3

type FederatedServiceStatusList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []FederatedServiceStatus `json:"items"`
}

func (*FederatedServiceStatusList) DeepCopy added in v0.0.3

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedServiceStatusList.

func (*FederatedServiceStatusList) DeepCopyInto added in v0.0.3

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FederatedServiceStatusList) DeepCopyObject added in v0.0.3

func (in *FederatedServiceStatusList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FederatedTypeConfig

type FederatedTypeConfig struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FederatedTypeConfigSpec   `json:"spec,omitempty"`
	Status FederatedTypeConfigStatus `json:"status,omitempty"`
}

FederatedTypeConfig programs federation to know about a single API type - the "target type" - that a user wants to federate. For each target type, there is a corresponding FederatedType that has the following fields:

  • The "template" field specifies the basic definition of a federated resource
  • The "placement" field specifies the placement information for the federated resource
  • The "overrides" field specifies how the target resource should vary across clusters.

+k8s:openapi-gen=true +kubebuilder:resource:path=federatedtypeconfigs +kubebuilder:subresource:status

func (*FederatedTypeConfig) DeepCopy

func (in *FederatedTypeConfig) DeepCopy() *FederatedTypeConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedTypeConfig.

func (*FederatedTypeConfig) DeepCopyInto

func (in *FederatedTypeConfig) DeepCopyInto(out *FederatedTypeConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FederatedTypeConfig) DeepCopyObject

func (in *FederatedTypeConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*FederatedTypeConfig) GetEnableStatus added in v0.0.3

func (f *FederatedTypeConfig) GetEnableStatus() bool

func (*FederatedTypeConfig) GetFederatedNamespaced added in v0.0.5

func (f *FederatedTypeConfig) GetFederatedNamespaced() bool

TODO(marun) Remove in favor of using 'true' for namespaces and the value from target otherwise.

func (*FederatedTypeConfig) GetFederatedType added in v0.0.6

func (f *FederatedTypeConfig) GetFederatedType() metav1.APIResource

func (*FederatedTypeConfig) GetNamespaced

func (f *FederatedTypeConfig) GetNamespaced() bool

func (*FederatedTypeConfig) GetObjectMeta added in v0.0.3

func (f *FederatedTypeConfig) GetObjectMeta() metav1.ObjectMeta

func (*FederatedTypeConfig) GetPropagationEnabled

func (f *FederatedTypeConfig) GetPropagationEnabled() bool

func (*FederatedTypeConfig) GetStatus added in v0.0.3

func (f *FederatedTypeConfig) GetStatus() *metav1.APIResource

func (*FederatedTypeConfig) GetTarget

func (f *FederatedTypeConfig) GetTarget() metav1.APIResource

type FederatedTypeConfigList

type FederatedTypeConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []FederatedTypeConfig `json:"items"`
}

func (*FederatedTypeConfigList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedTypeConfigList.

func (*FederatedTypeConfigList) DeepCopyInto

func (in *FederatedTypeConfigList) DeepCopyInto(out *FederatedTypeConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FederatedTypeConfigList) DeepCopyObject

func (in *FederatedTypeConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FederatedTypeConfigSpec

type FederatedTypeConfigSpec struct {
	// The configuration of the target type. If not set, the pluralName and
	// groupName fields will be set from the metadata.name of this resource. The
	// kind field must be set.
	Target APIResource `json:"target"`
	// Whether or not the target type is namespaced. The federation
	// types (FederatedType, Status) for the type will share this
	// characteristic.
	//
	// TODO(marun) Remove in favor of using the value from Target and
	// FederatedType (depending on context).
	Namespaced bool `json:"namespaced"`
	// Whether or not propagation to member clusters should be enabled.
	PropagationEnabled bool `json:"propagationEnabled"`
	// Configuration for the federated type that defines (via
	// template, placement and overrides fields) how the target type
	// should appear in multiple cluster.
	FederatedType APIResource `json:"federatedType"`
	// Configuration for the status type that holds information about which type
	// holds the status of the federated resource. If not provided, the group
	// and version will default to those provided for the federated type api
	// resource.
	// +optional
	Status *APIResource `json:"status,omitempty"`
	// Whether or not Status object should be populated.
	// +optional
	EnableStatus bool `json:"enableStatus,omitempty"`
}

FederatedTypeConfigSpec defines the desired state of FederatedTypeConfig.

func (*FederatedTypeConfigSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedTypeConfigSpec.

func (*FederatedTypeConfigSpec) DeepCopyInto

func (in *FederatedTypeConfigSpec) DeepCopyInto(out *FederatedTypeConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FederatedTypeConfigStatus

type FederatedTypeConfigStatus struct {
	// ObservedGeneration is the generation as observed by the controller consuming the FederatedTypeConfig.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// PropagationController tracks the status of the sync controller.
	// +optional
	PropagationController ControllerStatus `json:"propagationController,omitempty"`
	// StatusController tracks the status of the status controller.
	// +optional
	StatusController ControllerStatus `json:"statusController,omitempty"`
}

FederatedTypeConfigStatus defines the observed state of FederatedTypeConfig

func (*FederatedTypeConfigStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedTypeConfigStatus.

func (*FederatedTypeConfigStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PropagatedVersion

type PropagatedVersion struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PropagatedVersionSpec   `json:"spec,omitempty"`
	Status PropagatedVersionStatus `json:"status,omitempty"`
}

PropagatedVersion holds version information about the state propagated from federation APIs configured by FederatedTypeConfig to target clusters. The name of a PropagatedVersion encodes the kind and name of the resource it stores information for. The type of version information stored in PropagatedVersion will be the metadata.resourceVersion or metadata.Generation of the resource depending on the value of spec.comparisonField in the FederatedTypeConfig associated with the resource.

+k8s:openapi-gen=true +kubebuilder:resource:path=propagatedversions +kubebuilder:subresource:status

func (*PropagatedVersion) DeepCopy

func (in *PropagatedVersion) DeepCopy() *PropagatedVersion

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PropagatedVersion.

func (*PropagatedVersion) DeepCopyInto

func (in *PropagatedVersion) DeepCopyInto(out *PropagatedVersion)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PropagatedVersion) DeepCopyObject

func (in *PropagatedVersion) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PropagatedVersionList

type PropagatedVersionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PropagatedVersion `json:"items"`
}

func (*PropagatedVersionList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PropagatedVersionList.

func (*PropagatedVersionList) DeepCopyInto

func (in *PropagatedVersionList) DeepCopyInto(out *PropagatedVersionList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PropagatedVersionList) DeepCopyObject

func (in *PropagatedVersionList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PropagatedVersionSpec

type PropagatedVersionSpec struct {
}

PropagatedVersionSpec defines the desired state of PropagatedVersion

func (*PropagatedVersionSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PropagatedVersionSpec.

func (*PropagatedVersionSpec) DeepCopyInto

func (in *PropagatedVersionSpec) DeepCopyInto(out *PropagatedVersionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PropagatedVersionStatus

type PropagatedVersionStatus struct {
	// The observed version of the template for this resource.
	TemplateVersion string `json:"templateVersion,omitempty"`
	// The observed version of the overrides for this resource.
	OverrideVersion string `json:"overridesVersion,omitempty"`
	// The last versions produced in each cluster for this resource.
	ClusterVersions []ClusterObjectVersion `json:"clusterVersions,omitempty"`
}

PropagatedVersionStatus defines the observed state of PropagatedVersion

func (*PropagatedVersionStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PropagatedVersionStatus.

func (*PropagatedVersionStatus) DeepCopyInto

func (in *PropagatedVersionStatus) DeepCopyInto(out *PropagatedVersionStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL