A StatefulServerSet is a an API type that represents a set of servers with data Volumes attached in the Ionos Cloud. The number of resources created is defined by the replicas field. This includes the servers, boot volume, data volumes NICs and LANs configured in the template. It will also create a volumeselector which attaches data Volumes to the servers. Unlike a K8s StatefulSet, a StatefulServerSet does not keep the data Volumes in sync. The information on the active replica is `NOT` propagated to the passives. Each sub-resource created(server, bootvolume, datavolume, nic) will have it's own CR that can be observed using kubectl. The SSSet reads the active(master) identity from a configMap that needs to be named `config-lease`. If the configMap is not found, the master will be the first server created.
Type
CRD
Group
compute.ionoscloud.crossplane.io
Version
v1alpha1
apiVersion: compute.ionoscloud.crossplane.io/v1alpha1
kind: StatefulServerSet
A StatefulServerSetSpec defines the desired state of a StatefulServerSet.
StatefulServerSetParameters are the configurable fields of a StatefulServerSet.
BootVolumeTemplate are the configurable fields of a BootVolumeTemplate.
ServerSetBootVolumeSpec are the configurable fields of a ServerSetBootVolumeSpec.
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Public SSH keys are set on the image as authorized keys for appropriate SSH login to the instance using the corresponding private key. This field may only be set in creation requests. When reading, it always returns null. SSH keys are only supported if a public Linux image is used for the volume creation.
UpdateStrategy is the update strategy for the boot volume.
DatacenterConfig contains information about the datacenter resource on which the server will be created.
DatacenterIDRef references to a Datacenter to retrieve its ID.
Policies for referencing.
DatacenterIDSelector selects reference to a Datacenter to retrieve its DatacenterID.
Policies for selection.
DeploymentStrategy describes what strategy should be used to deploy the servers.
IdentityConfigMap is the configMap from which the identity of the ACTIVE server in the ServerSet is read. The configMap should be created separately. The stateful serverset only reads the status from it. If it does not find it, it sets the first server as the ACTIVE.
No description provided.
THIS IS A BETA FIELD. It is on by default but can be opted out through a Crossplane feature flag. ManagementPolicies specify the array of actions Crossplane is allowed to take on the managed and external resources. This field is planned to replace the DeletionPolicy field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. If both are custom, the DeletionPolicy field will be ignored. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md
ProviderConfigReference specifies how the provider that will be used to create, observe, update, and delete this managed resource should be configured.
Policies for referencing.
PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret store config to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.
WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource. This field is planned to be replaced in a future release in favor of PublishConnectionDetailsTo. Currently, both could be set independently and connection details would be published to both without affecting each other.
A StatefulServerSetStatus represents the observed state of a StatefulServerSet.
StatefulServerSetObservation are the observable fields of a StatefulServerSet.
Conditions of the resource.
No description provided.
Conditions of the resource.
No description provided.
LanObservation are the observable fields of a Lan.
Conditions of the resource.
No description provided.
Conditions of the resource.
No description provided.
Conditions of the resource.
Conditions of the resource.
sss-example
apiVersion: compute.ionoscloud.crossplane.io/v1alpha1
kind: StatefulServerSet
metadata:
name: sss-example
spec:
forProvider:
bootVolumeTemplate:
metadata:
name: boot-volume
spec:
image: ee9e5176-0d37-11ef-a582-1e0ff38e32ac
imagePassword: thisshouldwork11
size: 10
substitutions:
- key: __ipv6Address
options:
cidr: fd1d:15db:cf64:1337::/64
type: ipv6Address
unique: true
- key: ipv4Address
options:
cidr: 192.168.42.0/24
type: ipv4Address
unique: true
type: SSD
updateStrategy:
type: createBeforeDestroyBootVolume
userData: ""
datacenterConfig:
datacenterIdRef:
name: example
deploymentStrategy:
type: ZONES
identityConfigMap:
keyName: identity
name: config-lease
namespace: default
lans:
- metadata:
name: data
spec:
public: true
- metadata:
name: management
spec:
public: false
- metadata:
name: customer
spec:
ipv6cidr: AUTO
public: false
replicas: 2
template:
metadata:
name: server-name
spec:
cores: 1
nics:
- dhcp: false
dhcpv6: false
lanReference: customer
name: nic-customer
ram: 1024
volumes:
- metadata:
name: storage-disk
spec:
size: 10
type: SSD
providerConfigRef:
name: example