Skip to content

Latest commit

 

History

History
627 lines (440 loc) · 21.8 KB

CHANGELOG.md

File metadata and controls

627 lines (440 loc) · 21.8 KB

Changelog

All notable changes to this project will be documented in this file. See updating Changelog example here

Added

  • support for Partner API

Added

  • managed databases: add support for termination protection

Fixed

  • server: add storage labels to server storage devices list items

Added

  • managed databases: add support for Valkey

Deprecated

  • managed databases: deprecate Redis

Added

  • server: add Index field to request.CreateServerInterface
  • managed load balancer: http_status, request_header, and response_header rule matchers
  • managed load balancer: set_request_header, and set_response_header rule actions

Added

  • client: add option to configure logger for logging requests and responses

Added

  • managed load balancer: MatchingCondition field to frontend rule for controlling which operator to use when combining matchers
  • managed object storage: support for creating and deleting buckets
  • managed object storage: Deleted field to upcloud.ManagedObjectStorageBucketMetrics

Changed

  • Go version bump to 1.22

Added

  • managed object storage: support for custom domains
  • managed load balancer: support for reading DNS challenge domain

Added

  • kubernetes: constant for standard storage tier

Added

  • router: add type field to static routes
  • managed databases: add support for labels

Added

  • storage: TemplateType field to upcloud.Storage

Fixed

  • storage: typo in StorageEncryptionDataAtRest constant

Deprecated

  • StorageEncryptionDataAtReset in favor of StorageEncryptionDataAtRest

Added

  • storage: constant for standard storage tier
  • storage: constant for disabling storage encryption

Added

  • 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

Added

  • kubernetes: add support for node group custom plans
  • kubernetes: add support for data at rest encryption in node groups

Added

  • Cloud: ParentZone field to Zone struct (only available for private zones)

Changed

  • Go version bump to 1.21

Added

  • Experimental, Gateway: support for VPN feature. Note that VPN feature is currently in beta, you can learn more about it on the product page

Added

  • Network peering: add WaitForNetworkPeeringState helper

Added

  • Managed Database: add support managing attached SDN networks via networks field.
  • Managed Database: add paging support to GetManagedDatabases method.

Added

  • Managed Object Storage: ManagedObjectStoragePolicy struct
  • Managed Object Storage: ManagedObjectStorageUserPolicy struct
  • Managed Object Storage: IAMURL field to ManagedObjectStorageEndpoint
  • Managed Object Storage: STSURL field to ManagedObjectStorageEndpoint
  • Managed Object Storage: ARN field to ManagedObjectStorageUser
  • Managed Object Storage: Policies field to ManagedObjectStorageUser
  • Managed Object Storage: Status field to ManagedObjectStorageUserAccessKey

Removed

  • Breaking, Managed Object Storage: Users field removed from ManagedObjectStorage
  • Breaking, Managed Object Storage: ARN field removed from ManagedObjectStorageUser
  • Breaking, Managed Object Storage: OperationalState field removed from ManagedObjectStorageUser
  • Breaking, Managed Object Storage: Enabled field removed from ManagedObjectStorageUserAccessKey
  • Breaking, Managed Object Storage: Name field removed from ManagedObjectStorageUserAccessKey
  • Breaking, Managed Object Storage: UpdatedAt field removed from ManagedObjectStorageUserAccessKey

Changed

  • Breaking, Managed Object Storage: AccessKeyId field in ManagedObjectStorageUserAccessKey renamed to AccessKeyID

Added

  • Managed Load Balancer: MaintenanceDOW and MaintenanceTime fields for controlling maintenance window occurrence
  • Kubernetes: support for cluster labels.

Changed

  • Breaking, Managed Database: ManagedDatabaseUserOpernSearchAccessControl fields changed to pointers
  • Breaking, Managed Database: ManagedDatabaseUserPGAccessControl fields changed to pointers
  • Breaking, Managed Database: ManagedDatabaseUserRedisAccessControl fields changed to pointers
  • Breaking, Managed Load Balancer: LoadBalancerFrontendProperties field InboundProxyProtocol to pointer
  • Breaking, Managed Object Storage: CreateManagedObjectStorageUserAccessKeyRequest field Enabled to pointer
  • Breaking, Managed Object Storage: ModifyManagedObjectStorageUserAccessKeyRequest field Enabled to pointer
  • Breaking Kubernetes: the ControlPlaneIPFilter of ModifyKubernetesCluster is changed from []string to *[]string.

Removed

  • Breaking, Managed Database: connection related methods in favor of session
  • Breaking: remove Timeout option from WaitFor* methods. Use context.WithTimeout to define a timeout for these functions.
  • Breaking: Managed Database: Type field from CloneManagedDatabaseRequest and ModifyManagedDatabaseRequest

Added

  • Server groups: Add AddServerToServerGroup and RemoveServerFromServerGroup methods.
  • Storages: Add support for encryption at rest

Fixed

  • Managed Object Storage: use correct path for GetManagedObjectStorageBucketMetricsRequest

Added

  • Managed Database sub-properties support. E.g., PostgreSQL property timescaledb is of type object and has max_background_workers sub-property.
  • Managed Object Storage: add name property
  • Account: add ManagedObjectStorages field to ResourceLimits

Fixed

  • Managed Object Storage: omit empty labels slice when creating managed object storage instance

Added

  • Managed Load Balancer: TLSConfigs field to LoadBalancerBackend to control backend TLS configurations
  • Managed Load Balancer: TLSEnabled, TLSUseSystemCA, TLSVerify & HTTP2Enabled fields to LoadBalancerBackendProperties
  • Managed Load Balancer: HTTP2Enabled field to LoadBalancerFrontendProperties

Added

  • kubernetes: add Version field to request.CreateKubernetesClusterRequest and upcloud.KubernetesCluster

Changed

  • Breaking, kubernetes: update GetKubernetesVersions return value from []string to []upcloud.KubernetesVersion. (No major version bump, because this end-point has not been included in the API docs)

Added

  • kubernetes: WaitForKubernetesNodeGroupState method for waiting the node group to achieve a desired state

Changed

  • kubernetes: sleep before GET request in WaitForKubernetesClusterState

Added

  • account: NetworkPeerings, NTPExcessGiB, StorageMaxIOPS, and LoadBalancers fields to the ResourceLimits struct.

Changed

  • kubernetes: WaitForKubernetesClusterState ignores two first 404 responses to avoid errors caused by possible false not found responses right after cluster has been created.
  • Managed Object Storage support

Changed

  • .gitignore editorial commit

Added

  • network: dhcp_routes field to IP network for additional DHCP classless static routes to be delivered if the DHCP is enabled
  • network: static_routes field to router for defining static routes

Added

  • kubernetes: control_plane_ip_filter field to cluster for configuring and reading IP addresses and ranges allowed to access cluster control-plane
  • gateway: addresses list to provide IP addresses assigned to the gateway

Added

  • kubernetes: utility_network_access field to node group for configuring utility network access on the given group
  • Managed Database session support, including methods service.GetManagedDatabaseSessions & service.CancelManagedDatabaseSession.

Deprecated

  • service.GetManagedDatabaseConnections and service.CancelManagedDatabaseConnection in favor of service.GetManagedDatabaseSessions and service.CancelManagedDatabaseSession

Added

  • client functions NewDefaultHTTPClient and NewDefaultHTTPTransport to provide HTTP client default properties
  • kubernetes: experimental support for deleting nodes from node groups
  • kubernetes: consts for scaling-up and scaling-down node-group states

Changed

  • service.GetKubernetesNodeGroup method to return upcloud.KubernetesNodeGroupDetails type which is extended version of the previous upcloud.KubernetesNodeGroup

Fixed

  • request.ModifyServerRequest does not set boolean properties Metadata and RemoteAccessEnabled to "no" by default.

Added

  • Managed Load Balancer health_check_tls_verify field to backend member properties to control certificate validation for health checks utilising HTTPS

Added

  • Managed Load Balancer inverse rule matcher

Added

  • ServerGroup AntiAffinityPolicy field to support strict, best-effort and off policies. This replaces AntiAffinity

Removed

  • ServerGroup AntiAffinity boolean field in favor of AntiAffinityPolicy string enum field

Changed

  • GetManagedDatabaseIndices method to return a slice of structs instead of pointers

Added

  • 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 PrivateNodeGroups property of Kubernetes clusters.

Changed

  • client: overwrite the HTTP Client Transport accordingly when UPCLOUD_DEBUG_SKIP_CERTIFICATE_VERIFY is set to 1

Added

  • method for fetching available kubernetes plans

Added

  • new Backups field for DeleteServerAndStoragesRequest that controls if backups should be kept or deleted while deleting the server
  • Kubernetes cluster Plan field

Added

  • labels support for storages
  • support for network gateways
  • State field to kubernetes node-groups

Changed

  • errors: all service method now return Problem type in case of errors (BREAKING CHANGE)
  • Type for NodeGroups field CreateKubernetesClusterRequest is now request.KubernetesNodeGroup instead of upcloud.KubernetesNodeGroup

Removed

  • errors: Error type was removed (BREAKING CHANGE)

Added

  • kubernetes: experimental support for anti-affinity node groups

Deprecated

  • request: GetServerGroupsWithFiltersRequest is now deprecated; use GetServerGroupsRequest with Filters field instead

Added

  • 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

Deprecated

  • request: ServerFilter and ServerGroupFilter types will be replaced with QueryFilter type in the future

Added

  • kubernetes: experimental support for node group CRUD operations

Added

  • experimental support for Managed Redis Database
  • load-balancer: add Scheme property to front-end rule HTTP redirect action.

Added

  • 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.Error type
  • experimental support for internal network peering

Changed

  • context-aware type client.ClientContext renamed to client.Client
  • context-aware type service.ServiceContext renamed to service.Service
  • service.Service accepts any client that implements service.Client interface
  • client.New constructor allows overwrite baseURL, httpClient and httpClient.Timeout client properties
  • bump Go version to 1.18
  • bump module version from v4 to v5

Removed

  • service.Service type without context support
  • client.Client type without context support
  • redundant Timeout field from request.StartServerRequest type

Added

  • Managed Load Balancer private network support
  • Anti-affinity support for server groups (experimental)

Deprecated

  • Managed Load Balancer fields DNSName and NetworkUUID

Removed

  • separate kubernetes plans

Added

  • label support for server and server groups
  • add support for resource permissions
  • Experimental support for Kubernetes cluster, plans and versions

Added

  • Managed Load Balancer SetForwardedHeaders frontend rule action

Added

  • add context-aware client and service types
  • Managed Load Balancer frontend and backend properties

Added

  • add support for fetching available service types for managed database service

Fixed

  • drop IP address family requirement from firewall rule
  • typo in ManagedDatabaseConnection field WaitEventType

Fixed

  • Content-Type HTTP header when importing compressed storage

Fixed

  • Expose GetZones through Zones interface
  • allow time or day of week to be empty in Managed Database maintenance request property

Added

  • add experimental support for Server Groups
  • add possibility to overwrite default API URL with UPCLOUD_DEBUG_API_BASE_URL environment variable

Fixed

  • Managed Load Balancer resolver request spelling

Added

  • Managed Load Balancer request example

Fixed

  • Managed Load Balancer num_members_up matcher naming convention

Added

  • add support for Managed Load Balancer (beta)

Added

  • add support for fetching available versions for managed database service
  • add support for upgrading managed database version

Added

  • add support for resizing storage partition and filesystem

Added

  • add support for subaccount management and account listing

Fixed

  • rewrite import paths for v4

Fixed

  • bump go.mod major version

Added

  • add experimental support for Managed Databases #96

Changed

  • We will now publish the release tags with the v-prefix to conform with go mod

Added

  • 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)

Changed

  • 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

Fixed

  • 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

Added

  • 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

Changed

  • 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

Removed

  • XML api calls

Fixed

  • 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