Documentation
¶
Index ¶
- Constants
- func GetUCPRoleCreateJSON(serverVersion, roleName string) string
- type Interface
- type RestClient
- type UCP
- func (o *UCP) AddTridentRoleToServiceAccount(TridentPodNamespace string) (bool, error)
- func (o *UCP) CreateTridentRole() (bool, error)
- func (o *UCP) DeleteRoleByName(ucpRoleName string) (bool, error)
- func (o *UCP) DeleteTridentRole() (bool, error)
- func (o *UCP) FindRoleByName(ucpRoleName string) (*UCPRole, error)
- func (o *UCP) GetInfo() (*UCPInfo, error)
- func (o *UCP) GetRoleIDForServiceAccount(serviceAccount string) (string, error)
- func (o *UCP) GetRoles() ([]UCPRole, error)
- func (o *UCP) GetRolesForRoleID(roleID string) (*UCPRole, error)
- func (o *UCP) GetRolesForServiceAccount(serviceAccount string) (*UCPRole, error)
- func (o *UCP) RemoveTridentRoleFromServiceAccount(TridentPodNamespace string) (bool, error)
- type UCPCollectionGrants
- type UCPInfo
- type UCPRole
Constants ¶
const LegacyUCPRoleCreateJSONTemplateFullPermissions = `` /* 13614-byte string literal not displayed */
LegacyUCPRoleCreateJSONTemplateFullPermissions is the YAML required to create a new UCP Role with full control
const LegacyUCPRoleCreateJSONTemplateMinimalPermissions = `` /* 1766-byte string literal not displayed */
LegacyUCPRoleCreateJSONTemplateMinimalPermissions is the YAML required to create a new UCP Role for Trident's usecase
const UCPRoleCreateJSONTemplateFullPermissions = `` /* 49639-byte string literal not displayed */
UCPRoleCreateJSONTemplateFullPermissions is the YAML required to create a new UCP Role with full control
const UCPRoleCreateJSONTemplateMinimalPermissions = `` /* 3508-byte string literal not displayed */
UCPRoleCreateJSONTemplateMinimalPermissions is the YAML required to create a new UCP Role for Trident's usecase
Variables ¶
This section is empty.
Functions ¶
func GetUCPRoleCreateJSON ¶
GetUCPRoleCreateJSON returns the YAML neccessary to create a new UCP Role for Trident's usecase
Types ¶
type Interface ¶
type Interface interface {
GetRoleIDForServiceAccount(serviceAccount string) (string, error)
GetRolesForRoleID(roleID string) (*UCPRole, error)
GetRoles() ([]UCPRole, error)
GetRolesForServiceAccount(serviceAccount string) (*UCPRole, error)
FindRoleByName(ucpRoleName string) (*UCPRole, error)
DeleteRoleByName(ucpRoleName string) (bool, error)
CreateTridentRole() (bool, error)
DeleteTridentRole() (bool, error)
AddTridentRoleToServiceAccount(TridentPodNamespace string) (bool, error)
RemoveTridentRoleFromServiceAccount(TridentPodNamespace string) (bool, error)
}
type RestClient ¶
RestClient is a simple REST API client
func (*RestClient) Delete ¶
func (o *RestClient) Delete(query string) ([]byte, error)
Delete performs an HTTP DELETE operation
func (*RestClient) Get ¶
func (o *RestClient) Get(query string) ([]byte, error)
Get performs an HTTP GET operation
type UCP ¶
type UCP struct {
// contains filtered or unexported fields
}
UCP is an object for interacting with Docker's UCP API
func NewClient ¶
NewClient factory method to create a new client object for use against a UCP server
func (*UCP) AddTridentRoleToServiceAccount ¶
AddTridentRoleToServiceAccount adds the role to the account
func (*UCP) CreateTridentRole ¶
CreateTridentRole creates Trident's UCP role
func (*UCP) DeleteRoleByName ¶
DeleteRoleByName looks up the UCP Role object by name and deletes it
func (*UCP) DeleteTridentRole ¶
DeleteTridentRole delete Trident's UCP role
func (*UCP) FindRoleByName ¶
FindRoleByName looks up the UCP Role object by name
func (*UCP) GetRoleIDForServiceAccount ¶
GetRoleIDForServiceAccount returns the Role ID for the supplied service account
func (*UCP) GetRolesForRoleID ¶
GetRolesForRoleID returns all the Roles for the supplied Role ID
func (*UCP) GetRolesForServiceAccount ¶
GetRolesForServiceAccount retrieves the UCP Roles for the supplied Kubernetes service account
type UCPCollectionGrants ¶
type UCPCollectionGrants struct {
Grants []struct {
CollectionPath string `json:"collectionPath"`
SubjectID string `json:"subjectID"`
ObjectID string `json:"objectID"`
RoleID string `json:"roleID"`
} `json:"grants"`
Subjects []struct {
ID string `json:"id"`
SubjectType string `json:"subject_type"`
} `json:"subjects"`
}
UCPCollectionGrants holds the results from calls to "/collectionGrants"
type UCPInfo ¶
type UCPInfo struct {
ServerVersion string `json:"ServerVersion"`
}
UCPInfo holds the results from calls to "/info"
type UCPRole ¶
type UCPRole struct {
ID string `json:"id"`
Name string `json:"name"`
SystemRole bool `json:"system_role"`
Operations struct {
Config struct {
ConfigView []interface{} `json:"Config View"`
} `json:"Config"`
Container struct {
ContainerLogs []interface{} `json:"Container Logs"`
ContainerStats []interface{} `json:"Container Stats"`
ContainerTop []interface{} `json:"Container Top"`
ContainerView []interface{} `json:"Container View"`
} `json:"Container"`
Image struct {
ImageHistory []interface{} `json:"Image History"`
ImageView []interface{} `json:"Image View"`
} `json:"Image"`
KubernetesCertificateSigningRequest struct {
CertificateSigningRequestGet []interface{} `json:"CertificateSigningRequest Get"`
CertificateSigningRequestList []interface{} `json:"CertificateSigningRequest List"`
CertificateSigningRequestWatch []interface{} `json:"CertificateSigningRequest Watch"`
} `json:"Kubernetes Certificate Signing Request"`
KubernetesClusterRole struct {
ClusterRoleGet []interface{} `json:"ClusterRole Get"`
ClusterRoleList []interface{} `json:"ClusterRole List"`
ClusterRoleWatch []interface{} `json:"ClusterRole Watch"`
} `json:"Kubernetes Cluster Role"`
KubernetesClusterRoleBinding struct {
ClusterRoleBindingGet []interface{} `json:"ClusterRoleBinding Get"`
ClusterRoleBindingList []interface{} `json:"ClusterRoleBinding List"`
ClusterRoleBindingWatch []interface{} `json:"ClusterRoleBinding Watch"`
} `json:"Kubernetes Cluster Role Binding"`
KubernetesComponentStatus struct {
ComponentStatusGet []interface{} `json:"ComponentStatus Get"`
ComponentStatusList []interface{} `json:"ComponentStatus List"`
ComponentStatusWatch []interface{} `json:"ComponentStatus Watch"`
} `json:"Kubernetes Component Status"`
KubernetesConfigMap struct {
ConfigMapGet []interface{} `json:"ConfigMap Get"`
ConfigMapList []interface{} `json:"ConfigMap List"`
ConfigMapWatch []interface{} `json:"ConfigMap Watch"`
} `json:"Kubernetes Config Map"`
KubernetesControllerRevision struct {
ControllerRevisionGet []interface{} `json:"ControllerRevision Get"`
ControllerRevisionList []interface{} `json:"ControllerRevision List"`
ControllerRevisionWatch []interface{} `json:"ControllerRevision Watch"`
} `json:"Kubernetes Controller Revision"`
KubernetesCronJob struct {
CronJobGet []interface{} `json:"CronJob Get"`
CronJobList []interface{} `json:"CronJob List"`
CronJobWatch []interface{} `json:"CronJob Watch"`
} `json:"Kubernetes Cron Job"`
KubernetesCustomResourceDefinition struct {
CustomResourceDefinitionGet []interface{} `json:"CustomResourceDefinition Get"`
CustomResourceDefinitionList []interface{} `json:"CustomResourceDefinition List"`
CustomResourceDefinitionWatch []interface{} `json:"CustomResourceDefinition Watch"`
} `json:"Kubernetes Custom Resource Definition"`
KubernetesDaemonset struct {
DaemonsetGet []interface{} `json:"Daemonset Get"`
DaemonsetList []interface{} `json:"Daemonset List"`
DaemonsetWatch []interface{} `json:"Daemonset Watch"`
} `json:"Kubernetes Daemonset"`
KubernetesDeployment struct {
DeploymentGet []interface{} `json:"Deployment Get"`
DeploymentList []interface{} `json:"Deployment List"`
DeploymentWatch []interface{} `json:"Deployment Watch"`
} `json:"Kubernetes Deployment"`
KubernetesEndpoint struct {
EndpointGet []interface{} `json:"Endpoint Get"`
EndpointList []interface{} `json:"Endpoint List"`
EndpointWatch []interface{} `json:"Endpoint Watch"`
} `json:"Kubernetes Endpoint"`
KubernetesEvent struct {
EventGet []interface{} `json:"Event Get"`
EventList []interface{} `json:"Event List"`
EventWatch []interface{} `json:"Event Watch"`
} `json:"Kubernetes Event"`
KubernetesExternalAdmissionHookConfiguration struct {
ExternalAdmissionHookConfigurationGet []interface{} `json:"ExternalAdmissionHookConfiguration Get"`
ExternalAdmissionHookConfigurationList []interface{} `json:"ExternalAdmissionHookConfiguration List"`
ExternalAdmissionHookConfigurationWatch []interface{} `json:"ExternalAdmissionHookConfiguration Watch"`
} `json:"Kubernetes External Admission Hook Configuration"`
KubernetesHorizontalPodAutoscaler struct {
HorizontalPodAutoscalerGet []interface{} `json:"HorizontalPodAutoscaler Get"`
HorizontalPodAutoscalerList []interface{} `json:"HorizontalPodAutoscaler List"`
HorizontalPodAutoscalerWatch []interface{} `json:"HorizontalPodAutoscaler Watch"`
} `json:"Kubernetes Horizontal Pod Autoscaler"`
KubernetesIngress struct {
IngressGet []interface{} `json:"Ingress Get"`
IngressList []interface{} `json:"Ingress List"`
IngressWatch []interface{} `json:"Ingress Watch"`
} `json:"Kubernetes Ingress"`
KubernetesInitializerConfiguration struct {
InitializerConfigurationGet []interface{} `json:"InitializerConfiguration Get"`
InitializerConfigurationList []interface{} `json:"InitializerConfiguration List"`
InitializerConfigurationWatch []interface{} `json:"InitializerConfiguration Watch"`
} `json:"Kubernetes Initializer Configuration"`
KubernetesJob struct {
JobGet []interface{} `json:"Job Get"`
JobList []interface{} `json:"Job List"`
JobWatch []interface{} `json:"Job Watch"`
} `json:"Kubernetes Job"`
KubernetesLimitRange struct {
LimitRangeGet []interface{} `json:"LimitRange Get"`
LimitRangeList []interface{} `json:"LimitRange List"`
LimitRangeWatch []interface{} `json:"LimitRange Watch"`
} `json:"Kubernetes Limit Range"`
KubernetesNamespace struct {
NamespaceGet []interface{} `json:"Namespace Get"`
NamespaceList []interface{} `json:"Namespace List"`
NamespaceWatch []interface{} `json:"Namespace Watch"`
} `json:"Kubernetes Namespace"`
KubernetesNetworkPolicy struct {
NetworkPolicyGet []interface{} `json:"NetworkPolicy Get"`
NetworkPolicyList []interface{} `json:"NetworkPolicy List"`
NetworkPolicyWatch []interface{} `json:"NetworkPolicy Watch"`
} `json:"Kubernetes Network Policy"`
KubernetesNode struct {
NodeGet []interface{} `json:"Node Get"`
NodeList []interface{} `json:"Node List"`
NodeWatch []interface{} `json:"Node Watch"`
} `json:"Kubernetes Node"`
KubernetesPersistentVolume struct {
PersistentVolumeGet []interface{} `json:"PersistentVolume Get"`
PersistentVolumeList []interface{} `json:"PersistentVolume List"`
PersistentVolumeWatch []interface{} `json:"PersistentVolume Watch"`
} `json:"Kubernetes Persistent Volume"`
KubernetesPersistentVolumeClaim struct {
PersistentVolumeClaimGet []interface{} `json:"PersistentVolumeClaim Get"`
PersistentVolumeClaimList []interface{} `json:"PersistentVolumeClaim List"`
PersistentVolumeClaimWatch []interface{} `json:"PersistentVolumeClaim Watch"`
} `json:"Kubernetes Persistent Volume Claim"`
KubernetesPod struct {
PodGet []interface{} `json:"Pod Get"`
PodList []interface{} `json:"Pod List"`
PodWatch []interface{} `json:"Pod Watch"`
} `json:"Kubernetes Pod"`
KubernetesPodDisruptionBudget struct {
PodDisruptionBudgetGet []interface{} `json:"PodDisruptionBudget Get"`
PodDisruptionBudgetList []interface{} `json:"PodDisruptionBudget List"`
PodDisruptionBudgetWatch []interface{} `json:"PodDisruptionBudget Watch"`
} `json:"Kubernetes Pod Disruption Budget"`
KubernetesPodPreset struct {
PodPresetGet []interface{} `json:"PodPreset Get"`
PodPresetList []interface{} `json:"PodPreset List"`
PodPresetWatch []interface{} `json:"PodPreset Watch"`
} `json:"Kubernetes Pod Preset"`
KubernetesPodSecurityPolicy struct {
PodSecurityPolicyGet []interface{} `json:"PodSecurityPolicy Get"`
PodSecurityPolicyList []interface{} `json:"PodSecurityPolicy List"`
PodSecurityPolicyWatch []interface{} `json:"PodSecurityPolicy Watch"`
} `json:"Kubernetes Pod Security Policy"`
KubernetesPodTemplate struct {
PodTemplateGet []interface{} `json:"PodTemplate Get"`
PodTemplateList []interface{} `json:"PodTemplate List"`
PodTemplateWatch []interface{} `json:"PodTemplate Watch"`
} `json:"Kubernetes Pod Template"`
KubernetesReplicaSet struct {
ReplicaSetGet []interface{} `json:"ReplicaSet Get"`
ReplicaSetList []interface{} `json:"ReplicaSet List"`
ReplicaSetWatch []interface{} `json:"ReplicaSet Watch"`
} `json:"Kubernetes Replica Set"`
KubernetesReplicationController struct {
ReplicationControllerGet []interface{} `json:"ReplicationController Get"`
ReplicationControllerList []interface{} `json:"ReplicationController List"`
ReplicationControllerWatch []interface{} `json:"ReplicationController Watch"`
} `json:"Kubernetes Replication Controller"`
KubernetesResourceQuota struct {
ResourceQuotaGet []interface{} `json:"ResourceQuota Get"`
ResourceQuotaList []interface{} `json:"ResourceQuota List"`
ResourceQuotaWatch []interface{} `json:"ResourceQuota Watch"`
} `json:"Kubernetes Resource Quota"`
KubernetesRole struct {
RoleGet []interface{} `json:"Role Get"`
RoleList []interface{} `json:"Role List"`
RoleWatch []interface{} `json:"Role Watch"`
} `json:"Kubernetes Role"`
KubernetesRoleBinding struct {
RoleBindingGet []interface{} `json:"RoleBinding Get"`
RoleBindingList []interface{} `json:"RoleBinding List"`
RoleBindingWatch []interface{} `json:"RoleBinding Watch"`
} `json:"Kubernetes Role Binding"`
KubernetesSecret struct {
SecretGet []interface{} `json:"Secret Get"`
SecretList []interface{} `json:"Secret List"`
SecretWatch []interface{} `json:"Secret Watch"`
} `json:"Kubernetes Secret"`
KubernetesService struct {
ServiceGet []interface{} `json:"Service Get"`
ServiceList []interface{} `json:"Service List"`
ServiceWatch []interface{} `json:"Service Watch"`
} `json:"Kubernetes Service"`
KubernetesServiceAccount struct {
ServiceAccountGet []interface{} `json:"ServiceAccount Get"`
ServiceAccountList []interface{} `json:"ServiceAccount List"`
ServiceAccountWatch []interface{} `json:"ServiceAccount Watch"`
} `json:"Kubernetes Service Account"`
KubernetesStack struct {
StackGet []interface{} `json:"Stack Get"`
StackList []interface{} `json:"Stack List"`
StackWatch []interface{} `json:"Stack Watch"`
} `json:"Kubernetes Stack"`
KubernetesStatefulSet struct {
StatefulSetGet []interface{} `json:"StatefulSet Get"`
StatefulSetList []interface{} `json:"StatefulSet List"`
StatefulSetWatch []interface{} `json:"StatefulSet Watch"`
} `json:"Kubernetes Stateful Set"`
KubernetesStorageClass struct {
StorageClassGet []interface{} `json:"StorageClass Get"`
StorageClassList []interface{} `json:"StorageClass List"`
StorageClassWatch []interface{} `json:"StorageClass Watch"`
} `json:"Kubernetes Storage Class"`
KubernetesThirdPartyResource struct {
ThirdPartyResourceGet []interface{} `json:"ThirdPartyResource Get"`
ThirdPartyResourceList []interface{} `json:"ThirdPartyResource List"`
ThirdPartyResourceWatch []interface{} `json:"ThirdPartyResource Watch"`
} `json:"Kubernetes Third Party Resource"`
KubernetesUser struct {
UserGet []interface{} `json:"User Get"`
UserList []interface{} `json:"User List"`
UserWatch []interface{} `json:"User Watch"`
} `json:"Kubernetes User"`
Network struct {
NetworkView []interface{} `json:"Network View"`
} `json:"Network"`
Node struct {
NodeView []interface{} `json:"Node View"`
} `json:"Node"`
Secret struct {
SecretView []interface{} `json:"Secret View"`
} `json:"Secret"`
Service struct {
ServiceLogs []interface{} `json:"Service Logs"`
ServiceView []interface{} `json:"Service View"`
ServiceViewTasks []interface{} `json:"Service View Tasks"`
} `json:"Service"`
Volume struct {
VolumeView []interface{} `json:"Volume View"`
} `json:"Volume"`
} `json:"operations"`
}
UCPRole holds the results from calls to "/roles"