Documentation ¶
Index ¶
- Constants
- func AcceptGenerationChangePredicate() predicate.Predicate
- func BuildAndCreateTestKubeConfig(k8sClient1, k8sClient2 client.Client)
- func BuildContextConfig(kubeconfigPath, context string) (*restclient.Config, error)
- func CleanupTestObjects(k8sClient1, k8sClient2 client.Client, ...)
- func DeleteObjInMemberCluster(ctx context.Context, c client.Client, obj client.Object, cname string) error
- func FetchMemberClusterContexts(ctx context.Context, amkoCluster *amkov1alpha1.AMKOCluster) ([]KubeContextDetails, []ClusterErrorMsg, error)
- func GetClusterErrMsg(errClusters []ClusterErrorMsg) string
- func GetLogWriter() (*lumberjack.Logger, bool, error)
- func InitMemberClusterContexts(ctx context.Context, currentContext string, clusterList []string) ([]KubeContextDetails, []ClusterErrorMsg, error)
- func InitialiseMemberClusterClient(cfg *restclient.Config) (client.Client, error)
- func IsMemberClusterLeader(objs []amkov1alpha1.AMKOCluster) bool
- func IsObjAMKOClusterType(ctx context.Context, name string) bool
- func TestGCGDPExist(k8sClient client.Client)
- func TestGCGDPNotFederated(k8sClient client.Client)
- func UpdateObjOnMemberCluster(ctx context.Context, c client.Client, source, target client.Object, ...) error
- func ValidateMemberClusters(ctx context.Context, memberClusters []KubeContextDetails, currVersion string) ([]KubeContextDetails, []ClusterErrorMsg, error)
- func VerifyAMKOClusterSanity(amkoCluster *amkov1alpha1.AMKOCluster) error
- func VerifySuccessForAllStatusFields(k8sClient client.Client)
- func VerifyTestAMKOClusterStatus(k8sClient client.Client, statusType, statusMsg, failureMsg string)
- type AMKOClusterReconciler
- func (r *AMKOClusterReconciler) FederateGDP(ctx context.Context, memberClusters []KubeContextDetails) ([]ClusterErrorMsg, error)
- func (r *AMKOClusterReconciler) FederateGDPAndUpdateStatus(ctx context.Context, validClusters []KubeContextDetails, ...) error
- func (r *AMKOClusterReconciler) FederateGSLBConfig(ctx context.Context, memberClusters []KubeContextDetails) ([]ClusterErrorMsg, error)
- func (r *AMKOClusterReconciler) FederateGSLBConfigAndUpdateStatus(ctx context.Context, validClusters []KubeContextDetails, ...) error
- func (r *AMKOClusterReconciler) FetchMemberClusterContexts(ctx context.Context, amkoCluster *amkov1alpha1.AMKOCluster) ([]KubeContextDetails, []ClusterErrorMsg, error)
- func (r *AMKOClusterReconciler) FetchMemberClusterContextsAndUpdateStatus(ctx context.Context, amkoCluster *amkov1alpha1.AMKOCluster) ([]KubeContextDetails, error)
- func (r *AMKOClusterReconciler) GetObjectsToBeFederated(ctx context.Context) ([]client.Object, error)
- func (r *AMKOClusterReconciler) PatchAMKOClusterStatus(ctx context.Context, amkoCluster, updatedAMKOCluster *amkov1alpha1.AMKOCluster) error
- func (r *AMKOClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
- func (r *AMKOClusterReconciler) SetupWithManager(mgr ctrl.Manager) error
- func (r *AMKOClusterReconciler) UpdateAMKOClusterStatus(ctx context.Context, statusType int, statusMsg, reason string, ...) error
- func (r *AMKOClusterReconciler) UpdateStatus(updatedAMKOCluster *amkov1alpha1.AMKOCluster)
- func (r *AMKOClusterReconciler) ValidateAMKOClusterSanityAndUpdateStatus(ctx context.Context, amkoCluster *amkov1alpha1.AMKOCluster) error
- func (r *AMKOClusterReconciler) ValidateMemberClustersAndUpdateStatus(ctx context.Context, memberClusters []KubeContextDetails, ...) ([]KubeContextDetails, error)
- type ClusterData
- type ClusterErrorMsg
- func DeleteObjsOnAllMemberClusters(ctx context.Context, memberClusters []KubeContextDetails, namespace string, ...) []ClusterErrorMsg
- func FederateGCObjectOnMemberClusters(ctx context.Context, memberClusters []KubeContextDetails, ...) []ClusterErrorMsg
- func FederateGDPObjectOnMemberClusters(ctx context.Context, memberClusters []KubeContextDetails, ...) []ClusterErrorMsg
- type ClusterServerData
- type ClustersKubeConfig
- type ContextData
- type KubeContextData
- type KubeContextDetails
- type StatusMsgRecord
- type UserData
- type UserID
Constants ¶
View Source
const ( // Status field types CurrentAMKOClusterValidationStatusType = 0 ClusterContextsStatusType = 1 MemberValidationStatusType = 2 GSLBConfigFederationStatusType = 3 GDPFederationStatusType = 4 // Status field type values CurrentAMKOClusterValidationStatusField = "current AMKOCluster Validation" ClusterContextsStatusField = "member cluster initialisation" MemberValidationStatusField = "member cluster validation" GSLBConfigFederationStatusField = "GSLBConfig Federation" GDPFederationStatusField = "GDP Federation" StatusMsgInvalidAMKOCluster = "invalid AMKOCluster object" StatusMsgValidAMKOCluster = "valid AMKOCluster object" StatusMsgClusterClientsInvalid = "member cluster clients invalid" StatusMsgSomeClusterClientsInvalid = "some member cluster clients couldn't be fetched" StatusMsgClusterClientsSuccess = "all cluster clients fetched" StatusMemberValidationFailure = "validation of member clusters failed" StatusMembersInvalid = "error in validating some member clusters" StatusMembersValidationSuccess = "validated all member clusters" StatusGSLBConfigFederationFailure = "failure in federation" StatusSomeGSLBConfigFederationFailure = "error in federating to some clusters" StatusGSLBConfigFederationSuccess = "federated to all valid clusters successfully" StatusGDPFederationFailure = "failure in federation" StatusSomeGDPFederationFailure = "error in federating to some clusters" StatusGDPFederationSuccess = "federated to all valid clusters successfully" StatusMsgFederationFailure = "failure in federating objects" StatusMsgFederationSuccess = "federation successful" StatusMsgNotALeader = "won't federate objects" ErrMembersValidation = "failure in validating some members" ErrFederationFailure = "object couldn't be federated to all clusters" ErrInitClientContext = "error in initializing member custer context" AMKONotALeaderReason = "AMKO not a leader" )
View Source
const ( Cluster1 = "cluster1" Cluster2 = "cluster2" TestAMKOVersion = "1.4.2" TestAMKODifferentVersion = "1.5.1" TestAMKOClusterName = "test-amko-cluster" TestGSLBSecret = "gslb-config-secret" AMKOCRDs = "../../helm/amko/crds" TestGCName = "test-gc" TestGDPName = "test-gdp" TestLeaderIP = "10.10.10.10" )
View Source
const ( FederationTypeStatusStr = "Federation" AviSystemNS = "avi-system" MembersKubePath = "/tmp/members-kubeconfig" GCSuffix = "--amko.gslbconfig-" GDPSuffix = "--amko.gdp-" AMKOGroup = "amko.vmware.com" GCKind = "GSLBConfig" GDPKind = "GlobalDeploymentPolicy" GCVersion = "v1alpha1" GDPVersion = "v1alpha2" FederatorFieldManager = "AMKO-Federator" )
View Source
const (
DEFAULT_FILE_SUFFIX = "avi.log"
)
View Source
const KubeConfigData = `
apiVersion: v1
clusters: []
contexts: []
kind: Config
preferences: {}
users: []
`
Variables ¶
This section is empty.
Functions ¶
func BuildContextConfig ¶
func BuildContextConfig(kubeconfigPath, context string) (*restclient.Config, error)
BuildContextConfig builds the kubernetes/openshift context config
func CleanupTestObjects ¶
func CleanupTestObjects(k8sClient1, k8sClient2 client.Client, amkoCluster1, amkoCluster2 *amkovmwarecomv1alpha1.AMKOCluster, gcObj *gslbalphav1.GSLBConfig, gdpObj *gdpalphav2.GlobalDeploymentPolicy)
func FetchMemberClusterContexts ¶
func FetchMemberClusterContexts(ctx context.Context, amkoCluster *amkov1alpha1.AMKOCluster) ([]KubeContextDetails, []ClusterErrorMsg, error)
func GetClusterErrMsg ¶
func GetClusterErrMsg(errClusters []ClusterErrorMsg) string
func GetLogWriter ¶
GetLogWriter returns a log writer if USE_PVC is set to true. If USE_PVC is not defined, it returns a false indicating that the default console should be used for logging.
func InitMemberClusterContexts ¶
func InitMemberClusterContexts(ctx context.Context, currentContext string, clusterList []string) ([]KubeContextDetails, []ClusterErrorMsg, error)
func InitialiseMemberClusterClient ¶
func InitialiseMemberClusterClient(cfg *restclient.Config) (client.Client, error)
func IsMemberClusterLeader ¶
func IsMemberClusterLeader(objs []amkov1alpha1.AMKOCluster) bool
func TestGCGDPExist ¶
func TestGCGDPNotFederated ¶
func ValidateMemberClusters ¶
func ValidateMemberClusters(ctx context.Context, memberClusters []KubeContextDetails, currVersion string) ([]KubeContextDetails, []ClusterErrorMsg, error)
TODO: Move functions used by both federator and main gslb to a common library
func VerifyAMKOClusterSanity ¶
func VerifyAMKOClusterSanity(amkoCluster *amkov1alpha1.AMKOCluster) error
Types ¶
type AMKOClusterReconciler ¶
AMKOClusterReconciler reconciles a AMKOCluster object
func (*AMKOClusterReconciler) FederateGDP ¶
func (r *AMKOClusterReconciler) FederateGDP(ctx context.Context, memberClusters []KubeContextDetails) ([]ClusterErrorMsg, error)
func (*AMKOClusterReconciler) FederateGDPAndUpdateStatus ¶
func (r *AMKOClusterReconciler) FederateGDPAndUpdateStatus(ctx context.Context, validClusters []KubeContextDetails, amkoCluster *amkov1alpha1.AMKOCluster) error
func (*AMKOClusterReconciler) FederateGSLBConfig ¶
func (r *AMKOClusterReconciler) FederateGSLBConfig(ctx context.Context, memberClusters []KubeContextDetails) ([]ClusterErrorMsg, error)
func (*AMKOClusterReconciler) FederateGSLBConfigAndUpdateStatus ¶
func (r *AMKOClusterReconciler) FederateGSLBConfigAndUpdateStatus(ctx context.Context, validClusters []KubeContextDetails, amkoCluster *amkov1alpha1.AMKOCluster) error
func (*AMKOClusterReconciler) FetchMemberClusterContexts ¶
func (r *AMKOClusterReconciler) FetchMemberClusterContexts(ctx context.Context, amkoCluster *amkov1alpha1.AMKOCluster) ([]KubeContextDetails, []ClusterErrorMsg, error)
func (*AMKOClusterReconciler) FetchMemberClusterContextsAndUpdateStatus ¶
func (r *AMKOClusterReconciler) FetchMemberClusterContextsAndUpdateStatus(ctx context.Context, amkoCluster *amkov1alpha1.AMKOCluster) ([]KubeContextDetails, error)
func (*AMKOClusterReconciler) GetObjectsToBeFederated ¶
func (*AMKOClusterReconciler) PatchAMKOClusterStatus ¶
func (r *AMKOClusterReconciler) PatchAMKOClusterStatus(ctx context.Context, amkoCluster, updatedAMKOCluster *amkov1alpha1.AMKOCluster) error
func (*AMKOClusterReconciler) SetupWithManager ¶
func (r *AMKOClusterReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
func (*AMKOClusterReconciler) UpdateAMKOClusterStatus ¶
func (r *AMKOClusterReconciler) UpdateAMKOClusterStatus(ctx context.Context, statusType int, statusMsg, reason string, errClusters []ClusterErrorMsg, updatedAMKOCluster *amkov1alpha1.AMKOCluster) error
func (*AMKOClusterReconciler) UpdateStatus ¶
func (r *AMKOClusterReconciler) UpdateStatus(updatedAMKOCluster *amkov1alpha1.AMKOCluster)
func (*AMKOClusterReconciler) ValidateAMKOClusterSanityAndUpdateStatus ¶
func (r *AMKOClusterReconciler) ValidateAMKOClusterSanityAndUpdateStatus(ctx context.Context, amkoCluster *amkov1alpha1.AMKOCluster) error
func (*AMKOClusterReconciler) ValidateMemberClustersAndUpdateStatus ¶
func (r *AMKOClusterReconciler) ValidateMemberClustersAndUpdateStatus(ctx context.Context, memberClusters []KubeContextDetails, amkoCluster *amkov1alpha1.AMKOCluster) ([]KubeContextDetails, error)
type ClusterData ¶
type ClusterData struct { Cluster ClusterServerData `yaml:"cluster"` Name string `yaml:"name"` }
type ClusterErrorMsg ¶
type ClusterErrorMsg struct {
// contains filtered or unexported fields
}
func DeleteObjsOnAllMemberClusters ¶
func DeleteObjsOnAllMemberClusters(ctx context.Context, memberClusters []KubeContextDetails, namespace string, obj client.Object) []ClusterErrorMsg
func FederateGCObjectOnMemberClusters ¶
func FederateGCObjectOnMemberClusters(ctx context.Context, memberClusters []KubeContextDetails, currObj *gslbalphav1.GSLBConfig) []ClusterErrorMsg
func FederateGDPObjectOnMemberClusters ¶
func FederateGDPObjectOnMemberClusters(ctx context.Context, memberClusters []KubeContextDetails, currObj *gdpalphav2.GlobalDeploymentPolicy) []ClusterErrorMsg
type ClusterServerData ¶
type ClustersKubeConfig ¶
type ClustersKubeConfig struct { APIVersion string `yaml:"apiVersion"` Clusters []ClusterData `yaml:"clusters"` Contexts []KubeContextData `yaml:"contexts"` Kind string `yaml:"kind"` Users []UserData `yaml:"users"` }
type ContextData ¶
type KubeContextData ¶
type KubeContextData struct { Context ContextData `yaml:"context"` Name string `yaml:"name"` }
type KubeContextDetails ¶
type KubeContextDetails struct {
// contains filtered or unexported fields
}
type StatusMsgRecord ¶
type StatusMsgRecord struct {
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.