pkg/cmd/serviceaccount/phases/create/data.go (25 lines of code) (raw):
package phases
import (
"time"
"github.com/microsoftgraph/msgraph-sdk-go/models"
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/Azure/azure-workload-identity/pkg/cloud"
)
// CreateData is the interface to use for create phase.
// The "createData" type from cmd/create.go must satisfy this interface.
type CreateData interface {
// ServiceAccountName returns the name of the service account.
ServiceAccountName() string
// ServiceAccountNamespace returns the namespace of the service account.
ServiceAccountNamespace() string
// ServiceAccountIssuerURL returns the issuer URL of the service account.
ServiceAccountIssuerURL() string
// ServiceAccountTokenExpiration returns the expiration time of the service account token.
ServiceAccountTokenExpiration() time.Duration
// AADApplication returns the AAD application object.
// This will return the cached value if it has been created.
AADApplication() (models.Applicationable, error)
// AADApplicationName returns the name of the AAD application.
AADApplicationName() string
// AADApplicationClientID returns the client ID of the AAD application.
// This will be used for annotating the service account.
AADApplicationClientID() string
// AADApplicationObjectID returns the object ID of the AAD application.
// This will be used for creating or removing the federated identity credential.
AADApplicationObjectID() string
// ServicePrincipal returns the service principal object.
// This will return the cached value if it has been created.
ServicePrincipal() (models.ServicePrincipalable, error)
// ServicePrincipalName returns the name of the service principal.
ServicePrincipalName() string
// ServicePrincipalObjectID returns the object ID of the service principal.
// This will be used for creating or removing the role assignment.
ServicePrincipalObjectID() string
// AzureRole returns the Azure role.
AzureRole() string
// AzureScope returns the Azure scope.
AzureScope() string
// AzureTenantID returns the Azure tenant ID.
AzureTenantID() string
// AzureClient returns the Azure client.
AzureClient() cloud.Interface
// KubeClient returns the Kubernetes client.
KubeClient() (client.Client, error)
}