2022-09-05 07:06:08 +00:00
|
|
|
/*
|
|
|
|
Copyright (c) Edgeless Systems GmbH
|
|
|
|
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
*/
|
|
|
|
|
2022-06-21 15:59:12 +00:00
|
|
|
package metadata
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
2022-09-21 11:47:57 +00:00
|
|
|
"github.com/edgelesssys/constellation/v2/internal/role"
|
2022-06-21 15:59:12 +00:00
|
|
|
)
|
|
|
|
|
2022-07-08 08:59:59 +00:00
|
|
|
// InstanceMetadata describes metadata of a peer.
|
2022-06-21 15:59:12 +00:00
|
|
|
type InstanceMetadata struct {
|
2022-08-04 09:08:20 +00:00
|
|
|
Name string
|
|
|
|
ProviderID string
|
|
|
|
Role role.Role
|
|
|
|
// VPCIP is the primary IP address of the instance in the VPC.
|
|
|
|
VPCIP string
|
2022-11-11 07:44:36 +00:00
|
|
|
|
2022-10-25 22:27:40 +00:00
|
|
|
// SecondaryIPRange is the VPC wide CIDR from which subnets are attached to VMs as AliasIPRanges.
|
|
|
|
// May be empty on certain CSPs.
|
|
|
|
SecondaryIPRange string
|
|
|
|
// AliasIPRanges is a list of IP ranges that are attached.
|
2022-10-24 22:49:58 +00:00
|
|
|
// May be empty on certain CSPs.
|
2022-10-25 22:27:40 +00:00
|
|
|
AliasIPRanges []string
|
2022-06-21 15:59:12 +00:00
|
|
|
}
|
|
|
|
|
2022-11-09 14:57:54 +00:00
|
|
|
// InstanceSelfer provide instance metadata about themselves.
|
2022-06-28 14:08:05 +00:00
|
|
|
type InstanceSelfer interface {
|
|
|
|
// Self retrieves the current instance.
|
|
|
|
Self(ctx context.Context) (InstanceMetadata, error)
|
|
|
|
}
|
|
|
|
|
2022-11-09 14:57:54 +00:00
|
|
|
// InstanceLister list information about instance metadata.
|
2022-06-28 14:08:05 +00:00
|
|
|
type InstanceLister interface {
|
|
|
|
// List retrieves all instances belonging to the current constellation.
|
|
|
|
List(ctx context.Context) ([]InstanceMetadata, error)
|
|
|
|
}
|