ByteBuilders Resource Models
Fig: Import Cluster FlowTo show or to store basic cluster information for future reference, some public information is stored using ClusterInfo resource. The information that is stored is shown bellow.
- Name
- UID
- OwnerID
- ExternalID
- Provider
- Endpoint
- Location
- Project
- KubernetesVersion
- NodeCountThis resource is actually a template for necessary data to connect to the cluster. It contains CertificateAuthorityData for the cluster and also User authentication data of the cluster owner. If the cluster provides kube config, then it's also stored. Only when the necessary information or kube config is provided, ClusterAuthInfoTemplate is stored.
- UID
- OwnerID
- KubeConfig
- CertificateAuthorityData
- ClientCertificateData
- ClientKeyData
- Token
- Username
- PasswordThis resource contains user specific authentication data. These data are used to create kube config for accessing the cluster. In some cases, the cluster provides kube config which is also stored by this resource. When an user imports a cluster, user specific credential is stored in ClusterUserAuth .
- ClusterUID
- UserID
- KubeConfig
- ClientCertificateData
- ClientKeyData
- Token
- Username
- PasswordSometimes these direct authentication data isn't stored. Instead some auxiliary data are provided from which we can generate Token which can be used for accessing the cluster.
For example:
# GKEProvider
- ClientID
- ClientSecret
- AccessToken
- RefreshToken
- Expiry# AWSProvider
- AccessKeyID
- SecretAccessKeyThis resource is used to store credentials to list and import clusters.
Credential formats
typeGKECredentialstruct {
ClientIDstringClientSecretstringAccessTokenstringRefreshTokenstringScopes []stringExpiryint64
}
typeGCECredentialstruct {
ProjectIDstringServiceAccountstring
}
typeDigitalOceanCredentialstruct {
Tokenstring
}
typeAzureCredentialstruct {
TenantIDstringSubscriptionIDstringClientIDstringClientSecretstring
}
typeAWSCredentialstruct {
AccessKeyIDstringSecretAccessKeystring
}
typePacketCredentialstruct {
ProjectIDstringAPIKeystring
}
typeScalewayCredentialstruct {
OrganizationstringTokenstring
}
typeLinodeCredentialstruct {
Tokenstring
}
typeVultrCredentialstruct {
Tokenstring
}