mirror of
				https://github.com/siderolabs/talos.git
				synced 2025-11-04 02:11:12 +01:00 
			
		
		
		
	This extracts Docker Talos cluster provisioner as common code which might be shared between `osctl cluster` and integration-test. There should be almost no functional changes. As proof of concept, abstract cluster readiness checks were implemented based on provisioned cluster state. It implements same checks as `basic-integration.sh` in pure Go via Talos/K8s clients. `conditions` package was promoted from machined-internal to `internal/pkg` as it is used to run the checks. Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
		
			
				
	
	
		
			34 lines
		
	
	
		
			909 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			909 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
// License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
						|
 | 
						|
package docker
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"fmt"
 | 
						|
 | 
						|
	"github.com/talos-systems/talos/internal/pkg/provision"
 | 
						|
)
 | 
						|
 | 
						|
// Destroy Talos cluster as set of Docker nodes.
 | 
						|
//
 | 
						|
// Only cluster.Info().ClusterName and cluster.Info().Network.Name is being used.
 | 
						|
func (p *provisioner) Destroy(ctx context.Context, cluster provision.Cluster, opts ...provision.Option) error {
 | 
						|
	options := provision.DefaultOptions()
 | 
						|
 | 
						|
	for _, opt := range opts {
 | 
						|
		if err := opt(&options); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	if err := p.destroyNodes(ctx, cluster.Info().ClusterName, &options); err != nil {
 | 
						|
		return err
 | 
						|
	}
 | 
						|
 | 
						|
	fmt.Println("destroying network", cluster.Info().Network.Name)
 | 
						|
 | 
						|
	return p.destroyNetwork(ctx, cluster.Info().Network.Name)
 | 
						|
}
 |