mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Migrate the controller to use TokenRequest and rotate token periodically
This commit is contained in:
		@@ -108,7 +108,7 @@ type SAControllerClientBuilder struct {
 | 
			
		||||
// config returns a complete clientConfig for constructing clients.  This is separate in anticipation of composition
 | 
			
		||||
// which means that not all clientsets are known here
 | 
			
		||||
func (b SAControllerClientBuilder) Config(name string) (*restclient.Config, error) {
 | 
			
		||||
	sa, err := b.getOrCreateServiceAccount(name)
 | 
			
		||||
	sa, err := getOrCreateServiceAccount(b.CoreClient, b.Namespace, name)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -177,30 +177,6 @@ func (b SAControllerClientBuilder) Config(name string) (*restclient.Config, erro
 | 
			
		||||
	return clientConfig, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (b SAControllerClientBuilder) getOrCreateServiceAccount(name string) (*v1.ServiceAccount, error) {
 | 
			
		||||
	sa, err := b.CoreClient.ServiceAccounts(b.Namespace).Get(name, metav1.GetOptions{})
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		return sa, nil
 | 
			
		||||
	}
 | 
			
		||||
	if !apierrors.IsNotFound(err) {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Create the namespace if we can't verify it exists.
 | 
			
		||||
	// Tolerate errors, since we don't know whether this component has namespace creation permissions.
 | 
			
		||||
	if _, err := b.CoreClient.Namespaces().Get(b.Namespace, metav1.GetOptions{}); err != nil {
 | 
			
		||||
		b.CoreClient.Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: b.Namespace}})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Create the service account
 | 
			
		||||
	sa, err = b.CoreClient.ServiceAccounts(b.Namespace).Create(&v1.ServiceAccount{ObjectMeta: metav1.ObjectMeta{Namespace: b.Namespace, Name: name}})
 | 
			
		||||
	if apierrors.IsAlreadyExists(err) {
 | 
			
		||||
		// If we're racing to init and someone else already created it, re-fetch
 | 
			
		||||
		return b.CoreClient.ServiceAccounts(b.Namespace).Get(name, metav1.GetOptions{})
 | 
			
		||||
	}
 | 
			
		||||
	return sa, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (b SAControllerClientBuilder) getAuthenticatedConfig(sa *v1.ServiceAccount, token string) (*restclient.Config, bool, error) {
 | 
			
		||||
	username := apiserverserviceaccount.MakeUsername(sa.Namespace, sa.Name)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user