All notable changes to this project will be documented in this file. See updating Changelog example here
- managed load balancer: add
WaitForLoadBalancerStateandWaitForLoadBalancerDeletionhelpers for waiting load-balancer state and deletion
- kubernetes: add support for cluster upgrade end-points
- server: add relocation support
- kubernetes: add
Deprecatedfield toKubernetesPlan
- Experimental support for token-based authentication in the client and functions for token management.
- managed load balancer: support for redirect rule HTTP status
- support for Partner API
- managed databases: add support for termination protection
- server: add storage labels to server storage devices list items
- managed databases: add support for Valkey
- managed databases: deprecate Redis
- server: add
Indexfield torequest.CreateServerInterface - managed load balancer:
http_status,request_header, andresponse_headerrule matchers - managed load balancer:
set_request_header, andset_response_headerrule actions
- client: add option to configure logger for logging requests and responses
- managed load balancer:
MatchingConditionfield to frontend rule for controlling which operator to use when combining matchers - managed object storage: support for creating and deleting buckets
- managed object storage:
Deletedfield toupcloud.ManagedObjectStorageBucketMetrics
- Go version bump to 1.22
- managed object storage: support for custom domains
- managed load balancer: support for reading DNS challenge domain
- kubernetes: constant for standard storage tier
- router: add
typefield to static routes - managed databases: add support for labels
- storage:
TemplateTypefield toupcloud.Storage
- storage: typo in
StorageEncryptionDataAtRestconstant
StorageEncryptionDataAtResetin favor ofStorageEncryptionDataAtRest
- storage: constant for standard storage tier
- storage: constant for disabling storage encryption
- Experimental, gateway: add UUID support for VPN gateway connections and tunnels
- service: a more elaborate error message if get request returns an error on unmarshalling json array
- kubernetes: add support for node group custom plans
- kubernetes: add support for data at rest encryption in node groups
- Cloud:
ParentZonefield toZonestruct (only available for private zones)
- Go version bump to 1.21
- Experimental, Gateway: support for VPN feature. Note that VPN feature is currently in beta, you can learn more about it on the product page
- Network peering: add
WaitForNetworkPeeringStatehelper
- Managed Database: add support managing attached SDN networks via
networksfield. - Managed Database: add paging support to
GetManagedDatabasesmethod.
- Managed Object Storage:
ManagedObjectStoragePolicystruct - Managed Object Storage:
ManagedObjectStorageUserPolicystruct - Managed Object Storage:
IAMURLfield toManagedObjectStorageEndpoint - Managed Object Storage:
STSURLfield toManagedObjectStorageEndpoint - Managed Object Storage:
ARNfield toManagedObjectStorageUser - Managed Object Storage:
Policiesfield toManagedObjectStorageUser - Managed Object Storage:
Statusfield toManagedObjectStorageUserAccessKey
- Breaking, Managed Object Storage:
Usersfield removed fromManagedObjectStorage - Breaking, Managed Object Storage:
ARNfield removed fromManagedObjectStorageUser - Breaking, Managed Object Storage:
OperationalStatefield removed fromManagedObjectStorageUser - Breaking, Managed Object Storage:
Enabledfield removed fromManagedObjectStorageUserAccessKey - Breaking, Managed Object Storage:
Namefield removed fromManagedObjectStorageUserAccessKey - Breaking, Managed Object Storage:
UpdatedAtfield removed fromManagedObjectStorageUserAccessKey
- Breaking, Managed Object Storage:
AccessKeyIdfield inManagedObjectStorageUserAccessKeyrenamed toAccessKeyID
- Managed Load Balancer:
MaintenanceDOWandMaintenanceTimefields for controlling maintenance window occurrence - Kubernetes: support for cluster labels.
- Breaking, Managed Database:
ManagedDatabaseUserOpernSearchAccessControlfields changed to pointers - Breaking, Managed Database:
ManagedDatabaseUserPGAccessControlfields changed to pointers - Breaking, Managed Database:
ManagedDatabaseUserRedisAccessControlfields changed to pointers - Breaking, Managed Load Balancer:
LoadBalancerFrontendPropertiesfieldInboundProxyProtocolto pointer - Breaking, Managed Object Storage:
CreateManagedObjectStorageUserAccessKeyRequestfieldEnabledto pointer - Breaking, Managed Object Storage:
ModifyManagedObjectStorageUserAccessKeyRequestfieldEnabledto pointer - Breaking Kubernetes: the
ControlPlaneIPFilterofModifyKubernetesClusteris changed from[]stringto*[]string.
- Breaking, Managed Database: connection related methods in favor of session
- Breaking: remove
Timeoutoption fromWaitFor*methods. Usecontext.WithTimeoutto define a timeout for these functions. - Breaking: Managed Database:
Typefield fromCloneManagedDatabaseRequestandModifyManagedDatabaseRequest
- Server groups: Add
AddServerToServerGroupandRemoveServerFromServerGroupmethods. - Storages: Add support for encryption at rest
- Managed Object Storage: use correct path for
GetManagedObjectStorageBucketMetricsRequest
- Managed Database sub-properties support. E.g., PostgreSQL property
timescaledbis of typeobjectand hasmax_background_workerssub-property. - Managed Object Storage: add
nameproperty - Account: add
ManagedObjectStoragesfield toResourceLimits
- Managed Object Storage: omit empty labels slice when creating managed object storage instance
- Managed Load Balancer:
TLSConfigsfield toLoadBalancerBackendto control backend TLS configurations - Managed Load Balancer:
TLSEnabled,TLSUseSystemCA,TLSVerify&HTTP2Enabledfields toLoadBalancerBackendProperties - Managed Load Balancer:
HTTP2Enabledfield toLoadBalancerFrontendProperties
- kubernetes: add
Versionfield torequest.CreateKubernetesClusterRequestandupcloud.KubernetesCluster
- Breaking, kubernetes: update
GetKubernetesVersionsreturn value from[]stringto[]upcloud.KubernetesVersion. (No major version bump, because this end-point has not been included in the API docs)
- kubernetes:
WaitForKubernetesNodeGroupStatemethod for waiting the node group to achieve a desired state
- kubernetes: sleep before
GETrequest inWaitForKubernetesClusterState
- account:
NetworkPeerings,NTPExcessGiB,StorageMaxIOPS, andLoadBalancersfields to theResourceLimitsstruct.
- kubernetes:
WaitForKubernetesClusterStateignores two first 404 responses to avoid errors caused by possible false not found responses right after cluster has been created.
- Managed Object Storage support
.gitignoreeditorial commit
- network:
dhcp_routesfield to IP network for additional DHCP classless static routes to be delivered if the DHCP is enabled - network:
static_routesfield to router for defining static routes
- kubernetes:
control_plane_ip_filterfield to cluster for configuring and reading IP addresses and ranges allowed to access cluster control-plane - gateway:
addresseslist to provide IP addresses assigned to the gateway
- kubernetes:
utility_network_accessfield to node group for configuring utility network access on the given group - Managed Database session support, including methods
service.GetManagedDatabaseSessions&service.CancelManagedDatabaseSession.
service.GetManagedDatabaseConnectionsandservice.CancelManagedDatabaseConnectionin favor ofservice.GetManagedDatabaseSessionsandservice.CancelManagedDatabaseSession
- client functions
NewDefaultHTTPClientandNewDefaultHTTPTransportto provide HTTP client default properties - kubernetes: experimental support for deleting nodes from node groups
- kubernetes: consts for
scaling-upandscaling-downnode-group states
service.GetKubernetesNodeGroupmethod to returnupcloud.KubernetesNodeGroupDetailstype which is extended version of the previousupcloud.KubernetesNodeGroup
request.ModifyServerRequestdoes not set boolean propertiesMetadataandRemoteAccessEnabledto"no"by default.
- Managed Load Balancer
health_check_tls_verifyfield to backend member properties to control certificate validation for health checks utilising HTTPS
- Managed Load Balancer inverse rule matcher
- ServerGroup
AntiAffinityPolicyfield to support strict, best-effort and off policies. This replacesAntiAffinity
- ServerGroup
AntiAffinityboolean field in favor ofAntiAffinityPolicystring enum field
- GetManagedDatabaseIndices method to return a slice of structs instead of pointers
- Managed Database OpenSearch support
- Support for defining NIC model upon creating or modifying a server. Also exported constants for each support NIC model.
- Support for
PrivateNodeGroupsproperty of Kubernetes clusters.
- client: overwrite the HTTP Client Transport accordingly when
UPCLOUD_DEBUG_SKIP_CERTIFICATE_VERIFYis set to1
- method for fetching available kubernetes plans
- new
Backupsfield forDeleteServerAndStoragesRequestthat controls if backups should be kept or deleted while deleting the server - Kubernetes cluster
Planfield
- labels support for storages
- support for network gateways
Statefield to kubernetes node-groups
- errors: all service method now return
Problemtype in case of errors (BREAKING CHANGE) - Type for
NodeGroupsfieldCreateKubernetesClusterRequestis nowrequest.KubernetesNodeGroupinstead ofupcloud.KubernetesNodeGroup
- errors:
Errortype was removed (BREAKING CHANGE)
- kubernetes: experimental support for anti-affinity node groups
- request:
GetServerGroupsWithFiltersRequestis now deprecated; useGetServerGroupsRequestwithFiltersfield instead
- storage: possibility to control what to do with backups related to the storage that is about to be deleted
- labels support for: load-balancers, networks, network-peerings, routers
- request:
ServerFilterandServerGroupFiltertypes will be replaced withQueryFiltertype in the future
- kubernetes: experimental support for node group CRUD operations
- experimental support for Managed Redis Database
- load-balancer: add
Schemeproperty to front-end rule HTTP redirect action.
- servers: allow adding server to a server group during server creation
- servers: add server group UUID to server details
- HTTP status code field to
upcloud.Errortype - experimental support for internal network peering
- context-aware type
client.ClientContextrenamed toclient.Client - context-aware type
service.ServiceContextrenamed toservice.Service service.Serviceaccepts any client that implementsservice.Clientinterfaceclient.Newconstructor allows overwritebaseURL,httpClientandhttpClient.Timeoutclient properties- bump Go version to 1.18
- bump module version from
v4tov5
service.Servicetype without context supportclient.Clienttype without context support- redundant
Timeoutfield fromrequest.StartServerRequesttype
- Managed Load Balancer private network support
- Anti-affinity support for server groups (experimental)
- Managed Load Balancer fields
DNSNameandNetworkUUID
- separate kubernetes plans
- label support for server and server groups
- add support for resource permissions
- Experimental support for Kubernetes cluster, plans and versions
- Managed Load Balancer
SetForwardedHeadersfrontend rule action
- add context-aware client and service types
- Managed Load Balancer frontend and backend properties
- add support for fetching available service types for managed database service
- drop IP address family requirement from firewall rule
- typo in
ManagedDatabaseConnectionfieldWaitEventType
- Content-Type HTTP header when importing compressed storage
- Expose
GetZonesthroughZonesinterface - allow time or day of week to be empty in Managed Database maintenance request property
- add experimental support for Server Groups
- add possibility to overwrite default API URL with
UPCLOUD_DEBUG_API_BASE_URLenvironment variable
- Managed Load Balancer resolver request spelling
- Managed Load Balancer request example
- Managed Load Balancer num_members_up matcher naming convention
- add support for Managed Load Balancer (beta)
- add support for fetching available versions for managed database service
- add support for upgrading managed database version
- add support for resizing storage partition and filesystem
- add support for subaccount management and account listing
- rewrite import paths for v4
- bump go.mod major version
- add experimental support for Managed Databases #96
- We will now publish the release tags with the
v-prefix to conform with go mod
- add support for Object Storage
- support io.Reader as SourceLocation in CreateStorageImport
- pass on a custom user agent string in requests
- add storage tier support to ServerStorageDevice
- support for backuprules when creating a server
- add support for explicitly setting IP address for network interfaces (requires special privileges for your UpCloud account)
- BREAKING CHANGE: changing network router with ModifyNetwork call is no longer supported. Please use AttachNetworkRouter and DetachNetworkRouter from now on.
- bump default Go version to 1.16, keep supporting 1.15
- use a default timeout when no timeout given
- default to original storage size in CreateServerStorageDevice when Size = 0
- BREAKING CHANGE: Fix StorageImportDetails.Completed to be a time.Time rather than a string
- don't marshal empty resource limits
- allow empty BackupRules (eg. remove backup rule) to be sent to the backend
- go.mod
- delete server and all attached storages
- a build script with more code quality checks
- go-vcr to tests
- Host, Firewall, Network, Router resources from UpCloud API 1.3
- Storage import resource
- bump Go version to 1.14
- Converted API calls from XML to JSON
- default zone from hel1 to hel2
- only build PRs and merges to master
- raise mininum required go version to 1.13
- changelog format to include different lists
- bump UpCloud API from 1.2 to 1.3 and expand with new functionalities
- XML api calls
- Timeout issues
- moved project to UpCloud's own GitHub organization
- raise the minimum required Go version to 1.7
- improve documentation
- remove ability to override the API base URL and version
- remove credentials related getters and setters from
Client - hopefully fix CD-ROM integration tests for good by performing all operations while the server is stopped
- minor tweaks to the integration tests
- correct the package name in the README installation instructions
First stable release