All notable changes to this project will be documented in this file. See updating Changelog example here
5.16.0 - 2024-12-03
- upcloud_managed_database_*: add
termination_protection
field.
5.15.0 - 2024-11-14
- upcloud_managed_object_storage_bucket resource for managing buckets in managed object storage services.
- upcloud_server:
index
field tonetwork_interfaces
. - upcloud_managed_database_valkey: add support for Valkey.
- upcloud_managed_database_*: Update available properties to match listing provided by the API, see #626 for details.
- upcloud_server: When modifying
network_interfaces
, match configured network interfaces to the server's actual network interfaces byindex
andip_address
(in addition to list order). This is to avoid public and utility network interfaces being re-assigned when the interfaces are re-ordered or when interface is removed from middle of the list. This might result to inaccurate diffs in the Terraform plan when interfaces are re-ordered or when interface is removed from middle of the list. We recommend explicitly setting the value forindex
in configuration, when interfaces are re-ordered or when interface is removed from middle of the list.
- upcloud_managed_database_redis: Redis is deprecated in favor of Valkey. Please use Valkey for new key value store instances.
5.14.0 - 2024-10-28
- Terraform: Introduce support for Terraform protocol version 6. Protocol version 6 requires Terraform CLI version 1.0 and later.
- upcloud_loadbalancer: Handling a changed value for
nodes
attribute on re-apply no longer causes an error.
5.13.2 - 2024-10-25
- upcloud_loadbalancer_frontend_rule: include
set_request_header
, andset_response_header
in the at least one action validator.
5.13.1 - 2024-10-24
- upcloud_managed_database_*: Handle
["object", "null"]
property type (e.g. inmigration
property of MySQL databases) as an object when building API request to create and update DB properties.
5.13.0 - 2024-10-23
- Log UpCloud API requests and responses with debug level to Terraform logs.
- upcloud_loadbalancer_frontend_rule: add
http_status
,http_status_range
,request_header
, andresponse_header
rule matchers. - upcloud_loadbalancer_frontend_rule: add
set_request_header
, andset_response_header
rule actions.
- upcloud_loadbalancer_frontend_rule:
header
rule matcher. Userequest_header
rule matcher instead.
- upcloud_loadbalancer: allow
stopped
value to be set forconfigured_status
field.
5.12.0 - 2024-10-10
- upcloud_loadbalancer_frontend_rule: added
matching_condition
field. - provider:
ProviderConfigure()
andNewWithUserAgent()
to allow setting user agent
- upcloud_router: use state for unknown
static_route.type
value as user defined routes always haveuser
as type.
5.11.3 - 2024-10-09
- upcloud_router: allow
no-nexthop
as static route nexthop value.
5.11.2 - 2024-10-02
- upcloud_loadbalancer_backend: added missing UpgradeState() to fix issue when upgrading the provider
5.11.1 - 2024-09-25
- dependencies: bump
github.com/UpCloudLtd/upcloud-go-api
tov8.8.1
5.11.0 - 2024-09-11
- upcloud_storage (data source):
encrypt
,labels
andsystem_labels
read-only fields. - upcloud_managed_object_storage_custom_domain resource for managing custom domains for managed object storage end-points.
- upcloud_load_balancer_dns_challenge_domain data source for configuring DNS settings required for validating certificates.
- upcloud_storage (data source): allow using
id
andtitle
fields to find the storage. - upcloud_storage (data source): make
type
field optional.
- upcloud_storage (data source):
name
,name_regex
andmost_recent
fields.
- upcloud_storage: when uploading compressed image, set
Content-Type
header based on the file-extension of the path defined insource_location
.
- upcloud_loadbalancer_backend:
tls_configs
removed from properties. The computed field exists on main level of the resource.
5.10.1 - 2024-08-21
- upcloud_kubernetes_node_group: do not set default value for
storage_encryption
in the provider implementation. Instead, use value returned from the API when updating the node group state. This fixes data consistency error when creating node group without defining value forstorage_encryption
and does not try to replace node group when running apply after updating provider tov5.10.0
. - upcloud_network_peering: add errors to diagnostics correctly, if fetching peering details fails while waiting for peering state, instead of crashing due to a segfault.
5.10.0 - 2024-08-19
- upcloud_storage: add support for labels
- upcloud_storage_template: add support for creating custom templates
- upcloud_kubernetes_node_group:
standard
storage tier when using a custom plan - upcloud_managed_database_opensearch:
azure_migration
,gcs_migration
,index_rollup
, ands3_migration
properties.
- upcloud_managed_object_storage_policy: store configured value instead of the value returned by the API in the Terraform state. The provider will raise an error if these documents do not match
- System defined labels (i.e. labels prefixed with
_
) are filtered out from thelabels
maps.
- upcloud_storage: use
source_hash
to automatically verify the integrity of the imported data. Previously, the value was stored to state, but no validations were done - upcloud_managed_object_storage_policy: ignore whitespace and unnecessary escapes when determining if policy document has changed
5.9.1 - 2024-08-05
- upcloud_managed_database_mysql:
ignore_roles
property (supported by PostgreSQL only at the moment) - upcloud_managed_database_postgresql:
ignore_roles
property - upcloud_managed_database_postgresql:
max_prepared_statements
property - upcloud_managed_database_redis:
ignore_roles
property (supported by PostgreSQL only at the moment) - upcloud_storage: add
standard
as a supported storage tier
- upcloud_managed_object_storage: modifying
region
requires replacing the resource.
5.9.0 - 2024-07-29
- upcloud_managed_database_*: support for labels
- upcloud_router: add
static_routes
set for listing both user and service defined static routes
- upcloud_router: store
attached_networks
values in alphabetical order - upcloud_router: do not include service defined routes in the
static_route
set, as those can not be modified or removed by the user
- upcloud_router: remove empty strings from
attached_networks
value
5.8.1 - 2024-07-18
- upcloud_storage: sync title length constraint with API, allows 1-255 characters now
5.8.0 - 2024-07-16
- upcloud_kubernetes_node_group: support for non-encrypted node groups in encrypted cluster
- upcloud_managed_database_opensearch:
knn_memory_circuit_breaker_enabled
andknn_memory_circuit_breaker_limit
properties.
- upcloud_loadbalancer_frontend: use set type for
networks
as the backend returns them in alphabetical order instead of maintaining the order - upcloud_loadbalancer_frontend: only store networks in state when the networks have been configured using
networks
blocks instead of deprecatedupcloud_loadbalancer.network
field.
- upcloud_loadbalancer_frontend: handle changes in the
networks
- upcloud_loadbalancer: set
maintenance_dow
andmaintenance_time
as computed to avoid planning them to be removed when missing from configuration.
5.7.0 - 2024-07-02
- upcloud_managed_database_postgresql: support for Postgres 16
- upcloud_kubernetes_cluster (data source): make
kubeconfig
value sensitive.
- upcloud_managed_database_postgresql:
pgaudit
property
5.6.1 - 2024-06-25
- dependencies: bump
github.com/hashicorp/go-retryablehttp
tov0.7.7
to avoid potentially leaking basic auth credentials to logs.
5.6.0 - 2024-06-19
- upcloud_router: support
labels
field
- upcloud_network: detect if resource was deleted outside of Terraform
- upcloud_network_peering: detect if resource was deleted outside of Terraform
- upcloud_floating_ip_address: replace floating IP address, if
family
orzone
have changes. - provider: do not replace zero value with default when configuring plugin framework provider. For example,
request_timeout_sec = 0
will now disable request timeout also for resources migrated to plugin framework (e.g.upcloud_network
).
5.5.0 - 2024-06-04
- upcloud_zone:
parent_zone
field. - upcloud_network: support
labels
field - gateway: uuid field for
upcloud_gateway_connection
resource - gateway: uuid field for
upcloud_gateway_connection_tunnel
resource
- upcloud_managed_database_*: do not include empty or unmodified nested properties values in the API request. I.e., filter nested properties similarly than main level properties.
- upcloud_zone:
name
field will be removed as the same value is available throughid
field.
5.4.0 - 2024-05-21
- kubernetes: support for node group custom plans
- kubernetes: support for node storage data at rest encryption
5.3.0 - 2024-05-13
- upcloud_network_peering: support for network peerings.
- upcloud_managed_database_opensearch:
max_index_count
property in favor ofindex_patterns
- upcloud_managed_object_storage_user_policy: fix error with handling when policy is not found
5.2.3 - 2024-04-30
- upcloud_managed_object_storage_user_policy: fix issue with refreshing state after the resouce was deleted outside of Terraform
- upcloud_firewall_rules: fix issue with refreshing state after the resouce was deleted outside of Terraform
- upcloud_managed_database: removed additional properties are not stored in the state even if API returns them
- upcloud_managed_database_logical_database: fix issue with refreshing state after the resource was deleted outside of Terraform
5.2.2 - 2024-04-15
- upcloud_server:
additional_ip_address
block underneathnetwork_interface
for adding a maximum of 4 IP addresses to a server network interface
- managed object storage: fix error when refreshing a state after the resource was deleted outside of Terraform; applies to all upcloud_managed_object_storage* resources
- Go version bump to 1.21
5.2.1 - 2024-03-28
- upcloud_managed_database: do not populate removed properties after upgrading the provider
5.2.0 - 2024-03-26
- upcloud_gateway: support for VPN feature (note that VPN feature is currently in beta)
- upcloud_gateway:
upcloud_gateway_connection
resource for creating VPN connections - upcloud_gateway:
upcloud_gateway_connection_tunnel
resource for creating VPN tunnels
5.1.1 - 2024-03-13
- upcloud_managed_database: update properties for each database type to match upstream.
- upcloud_managed_database: set all fields when importing database resources
- docs: update provider version to
~> 5.0
5.1.0 - 2024-03-07
- upcloud_managed_database: support for attaching private networks
- upcloud_managed_database: set all relevant fields when importing
logical_database
anduser
resources
5.0.3 - 2024-03-05
- upcloud_managed_object_storage: fix import of
user*
andpolicy
resources
5.0.2 - 2024-03-04
- upcloud_managed_object_storage: set
service_uuid
on import based on the given id
5.0.1 - 2024-03-01
- Added missing data sources and resources to Terraform provider documentation
5.0.0 - 2024-02-29
- upcloud_managed_object_storage:
upcloud_managed_storage_policy
resource for setting up policies - upcloud_managed_object_storage:
upcloud_managed_storage_policies
data source for policies - upcloud_managed_object_storage:
upcloud_managed_storage_user
resource for user management - upcloud_managed_object_storage:
upcloud_managed_storage_user_policy
resource for attaching policies to users - upcloud_managed_object_storage:
iam_url
property toupcloud_managed_storage.endpoint
- upcloud_managed_object_storage:
sts_url
property toupcloud_managed_storage.endpoint
- upcloud_managed_object_storage: required
status
property toupcloud_managed_storage_user_access_key
- Breaking, upcloud_managed_object_storage:
users
property fromupcloud_managed_storage
resource - Breaking, upcloud_managed_object_storage:
enabled
property fromupcloud_managed_storage_user_access_key
resource - Breaking, upcloud_managed_object_storage:
name
property fromupcloud_managed_storage_user_access_key
resource - Breaking, upcloud_managed_object_storage:
updated_at
property fromupcloud_managed_storage_user_access_key
resource
4.1.0 - 2024-02-16
- upcloud_loadbalancer:
maintenance_dow
andmaintenance_time
for managing maintenance windows settings - upcloud_kubernetes_cluster: support for labels
- docs: update provider version to
~> 4.0
4.0.0 - 2024-01-26
- upcloud_managed_database_redis:
redis_version
property
- Breaking, upcloud_managed_database_mysql: changing property
admin_password
oradmin_username
forces resource re-creation - Breaking, upcloud_managed_database_postgresql: changing property
admin_password
oradmin_username
forces resource re-creation - Breaking, upcloud_managed_database resources:
title
field is required
- Breaking, upcloud_managed_database_postgresql:
pg_read_replica
property - Breaking, upcloud_managed_database_postgresql:
pg_service_to_fork_from
property
3.4.0 - 2024-01-25
- server: Add
server_group
field to allow configuring anti-affinity group when creating the server. - upcloud_loadbalancer_frontend_rule: add
inverse
option to rule matchers. - storage: Add support for encryption.
3.3.1 - 2024-01-10
- docs: add links to related UpCloud product documentation and tutorials.
- docs: update provider version to
~> 3.0
- docs: in
upcloud_kubernetes_node_group
example, fix references and add missing required parameters
3.3.0 - 2023-12-20
- managed_object_storage: add required
name
property
- managed_object_storage: support for not configuring
labels
3.2.0 - 2023-12-19
- load_balancer:
upcloud_loadbalancer_backend_tls_config
resource for backend TLS config management - load_balancer: fields
tls_enabled
,tls_verify
&tls_use_system_ca
toupcloud_loadbalancer_backend
resource'sproperties
- load_balancer:
http2_enabled
toupcloud_loadbalancer_backend
resource'sproperties
for enabling HTTP/2 backend support - managed_database_mysql: Add
service_log
property - managed_database_postgresql: Add
service_log
property - managed_database_redis: Add
service_log
property - server: Add
address_position
field tostorage_devices
andtemplate
- provider:
request_timeout_sec
field toupcloud
provider for managing the duration (in seconds) that the provider waits for an HTTP request towards UpCloud API to complete. Defaults to 120 seconds.
3.1.1 - 2023-11-21
- docs: group resources and data-sources by product
3.1.0 - 2023-11-09
- kubernetes:
version
field toupcloud_kubernetes_cluster
resource
upcloud_object_storage
: the target product will reach its end of life by the end of 2024.
3.0.3 - 2023-10-31
- kubernetes:
upcloud_kubernetes_node_group
resource re-creation waits for destruction before creation - managed_object_storage:
upcloud_managed_object_storage
resource network related documentation improved - ip:
upcloud_floating_ip_address
resource'saccess
field to allow onlypublic
value
3.0.2 - 2023-10-24
- managed_object_storage:
upcloud_managed_object_storage
resource public network validation
3.0.1 - 2023-10-23
- managed_object_storage:
upcloud_managed_object_storage
resource update to retain service users in all cases
3.0.0 - 2023-10-23
- Breaking, kubernetes:
control_plane_ip_filter
field toupcloud_kubernetes_cluster
resource. This changes default behavior from allow access from any IP to block access from all IPs. To be able to connect to the cluster, define list of allowed IP addresses and/or CIDR blocks or allow access from any IP. - gateway: add read-only
addresses
field - dbaas:
upcloud_managed_database_mysql_sessions
,upcloud_managed_database_postgresql_sessions
andupcloud_managed_database_redis_sessions
data sources - network:
dhcp_routes
field toip_network
block inupcloud_network
resource - router:
static_routes
block toupcloud_router
resource - managed_object_storage:
managed_object_storage
&managed_object_storage_user_access_key
resources andmanaged_object_storage_regions
data source
- kubernetes: remove node group maximum value validation. The maximum number of nodes (in the cluster) is determined by the cluster plan and the validation is done on the API side.
- Breaking, server: change tags from
List
toSet
. The list order has already been ignored earlier and API does not support defining the order of tags. - servergroup: use valid value as default for
anti_affinity_policy
.
2.12.0 - 2023-07-21
- lbaas: add
health_check_tls_verify
field to backend properties - kubernetes:
utility_network_access
field toupcloud_kubernetes_node_group
resource
2.11.0 - 2023-06-07
- kubernetes:
private_node_groups
field toupcloud_kubernetes_cluster
resource - server: properties
timezone
,video_model
andnic_model
- servergroup:
anti_affinity_policy
field toupcloud_server_group
resource for supporting strict anti-affinity - dbaas:
upcloud_managed_database_opensearch
resource - dbaas:
opensearch_access_control
block toupcloud_managed_database_user
resource - dbaas:
upcloud_managed_database_opensearch_indices
data source
- dbaas: modifying
upcloud_managed_database_mysql
resource version field forces a new resource
- servergroup:
anti_affinity
field fromupcloud_server_group
in favor of anti_affinity_policy
2.10.0 - 2023-04-26
- kubernetes: plan field to
upcloud_kubernetes_cluster
resource - dbaas: support for PostgreSQL version 15
- update upcloud-go-api to v6.1.0
2.9.1 - 2023-04-03
- lbaas: add
labels
support - server, server group: add validation for
labels
keys and values
- gateway: wait for gateway to reach running state during resource create
2.9.0 - 2023-03-13
- gateway: new
upcloud_gateway
resource
- update upcloud-go-api to v6.0.0
2.8.4 - 2023-02-21
- kubernetes:
upcloud_kubernetes_cluster
data source now providesclient_certificate
,client_key
, andcluster_ca_certificate
as PEM strings instead of base64 encoded PEM strings
2.8.3 - 2023-01-31
- kubernetes: anti-affinity option for
upcloud_kubernetes_node_group
resource
- update upcloud-go-api to v5.4.0
2.8.2 - 2023-01-30
- server: support for
daily
simple backup plan
2.8.1 - 2023-01-26
- kubernetes: experimental
upcloud_kubernetes_node_group
resource
- update upcloud-go-api to v5.2.1
- kubernetes: experimental
node_group
field fromupcloud_kubernetes_cluster
resource - dbaas: properties
additional_backup_regions
,enable_ipv6
andrecovery_basebackup_name
2.8.0 - 2022-12-21
- dbaas: experimental support for Managed Redis Database
- dbaas: user ACL properties for Redis and PostgreSQL
- dbaas: MySQL user authentication type field
- lbaas:
scheme
field to frontend rule HTTP redirect action.
- update upcloud-go-api to v5.2.0
2.7.1 - 2022-11-29
- dbaas: new DB properties causing error when updating the state
- dbaas: new properties to MySQL and PostgreSQL resources
- server: rebuild network interfaces without re-creating server
- new upcloud-go-api version 5
2.7.0 - 2022-11-16
- lbaas: private network support
- new server group resource with experimental anti affinity support
- Update terraform-plugin-sdk to v2.24.0
- Update upcloud-go-api to v4.10.0
- lbaas:
upcloud_loadbalancer
resource fieldsdns_name
andnetwork
- kubernetes: kubernetes plan datasource
2.6.1 - 2022-10-12
- kubernetes: add mention about k8s resources being in alpha to the docs
2.6.0 - 2022-10-11
- dbaas: property validators
- dbaas: PostgreSQL properties
default_toast_compression
andmax_slot_wal_keep_size
- server: Labels
- kubernetes: experimental:
upcloud_kubernetes_cluster
resource andupcloud_kubernetes_cluster
&upcloud_kubernetes_plan
data sources
- dbaas: fractional values in PostgreSQL properties
autovacuum_analyze_scale_factor
,autovacuum_vacuum_scale_factor
andbgwriter_lru_multiplier
- dbaas: removed logic to replace last
_
with.
inpg_stat_statements_track
,pg_partman_bgw_role
,pg_partman_bgw_interval
property names as these are now handled in snake case also in the API.
- dbaas: updated property descriptions
- structured logging with
tflog
- storage: update maximum storage size from 2048 to 4096 gigabytes
- provider: changed
username
andpassword
into optional parameters. This does not change how these parameters are used: providing these values in the provider block has already been optional, if credentials were defined as environment variables.
2.5.0 - 2022-06-20
- lbaas: frontend and backend properties
- lbaas:
set_forwarded_headers
frontend rule action - firewall: allow specifying default rules
- New upcloud-go-api version 4.7.0 with context support
2.4.2 - 2022-05-10
- Update GoReleaser to v1.8.3
2.4.1 - 2022-05-05
- server: Remove all tags when tags change into an empty value
- server: Delete unused tags created with server resource on server delete
- server: Improve tags validation: check for case-insensitive duplicates, supress diff when only order of tags changes, print warning when trying to create existing tag with different letter casing
- dbaas: require that both
maintenance_window_time
andmaintenance_window_dow
are set when defining maintenance window - dbaas:
maintenance_window_time
format
- New upcloud-go-api version v4.5.1
- Update terraform-plugin-sdk to v2.15.0
- Update Go version to 1.17
2.4.0 - 2022-04-12
- Support for UpCloud Managed Load Balancers (beta)
- dbaas: upgrading database version
2.3.0 - 2022-03-14
- object storage: allow passing access and secret key as environment variables
- object storage: enable import feature
- storage: add support for autoresizing partition and filesystem
- dbaas: fix PostgreSQL properties: pg_stat_statements_track, pg_partman_bgw_role, pg_partman_bgw_interval
2.2.0 - 2022-02-14
- storage: upcloud_storage data source to retrieve specific storage details
- docs: set provider username and password as required arguments
- provider: return underlying error from initial login check instead of custom error
- provider: fix dangling resource references by removing a binding to an remote object if it no longer exists
- provider: fix runtime error when importing managed database
2.1.5 - 2022-01-27
- storage: fix missing backup_rule when importing resource
- provider: fix user-agent for release builds
- server: fix missing template id if resource creation fails on tag errors
- Update documentation
2.1.4 - 2022-01-18
- server: validate plan and zone field values before executing API commands
- Support for UpCloud Managed Databases
- Support for debuggers like Delve
- firewall: fix missing server_id when importing firewall resource
- firewall: change port types from int to string to avoid having zero values in state when importing rules with undefined port number(s).
- firewall: remove proto field's default value "tcp" as this prevents settings optional fields value to null and update validator to accept empty string which corresponds to any protocol
- object storage: fix issue where order of storage buckets in an object storage resource would incorrectly trigger changes
- server: return more descriptive error message if subaccount tries to edit server tags
- Upgraded terraform-plugin-sdk from v2.7.1 to v2.10.0
2.1.3 - 2021-11-18
- Added title field to the server resource
- server: fix custom plan updates (cpu/mem)
- server: new hostname validator
2.1.2 - 2021-11-01
- Added simple backups support (#188)
- Prevent empty tags from replanning a server (#178)
- Make sure either storage devices or template are required on the server resource
2.1.1 - 2021-06-22
- fix(client): fix user-agent value (#165)
2.1.0 - 2021-06-01
- Support for UpCloud ObjectStorage S3 compatible storage.
- Add host field to the server resource
- server: add tags attribute support (#150)
- chore: Add more examples
- Server not started after updating storage device
- router: fix creation of attachedNetworks for routers #144
- chore: fix example in upcloud_tag #125
- server: prevent some attribute update from restarting (#146)
- router: allow detaching router and deleting attached routers (#151)
- storage: check size before cloning a device (#152)
- storage: fix address formating (#153)
- Update documentation
- Update README
- tag resource
- zone and zones datasources
- tag datasource
2.0.0 - 2021-01-27
- Missing documentation server resource #89
- Missing documentation for zone datasource #120
- New examples of using the provider
- Updated workflow to run acceptance tests when opening pull request / pushing to master
- Add user-agent header to the requests
- Can now explicitly set IP address for network interfaces (requires special priviledes for your UpCloud account)
- Expose metadata field for server resource
- Breaking: the template (os storage) is described with a separate block within the server resource, note that removing / recreating server resource also recreates the storage
- Breaking: other storages are now managed outside of the server resource and attached to server using
storage_devices
block
- Moved multiple utility functions to
/internal
- Better drift detection #106
- Fixed issue where a change in server storages would replace the server network interfaces and recreate the server
- Addressed issue where a change in server networking would replace the previous storages (the template will still be created anew)
- Inconsistent documentation
1.0.0 - 2020-10-19
Updated upcloud-go-api, added build/CI scripts, and repackaged 0.1.0 as 1.0.0.
0.1.0 - 2020-09-24
- Changelog to highlight key alterations across future releases
- Website directory for future provider documentation
- Vendor directory through go modules to cover CI builds
- datasource_upcloud_hosts to view hosts data
- datasource_upcloud_ip_addresses to retrieve account wide ip address data
- datasource_upcloud_networks to retrieve account wide networks data
- datasource_upcloud_tags to retrieve account wide tag data
- datasource_upcloud_zone to retrieve specific zone details
- datasource_upcloud_zones to retrieve account wide zone data
- resource_upcloud_firewall_rules add to allow rules to be applied to server
- resource_upcloud_floating_ip_address to allow the management of floating ip addresses
- resource_upcloud_network to allow the management of networks
- resource_upcloud_router to allow the management of routers
- README and examples/README to cover local builds, setup and test execution
- Go version to 1.14 and against Go master branch in Travis CI
- Travis CI file to execute website-test covering provider documentation
- Provider uses Terraform Plugin SDK V2
- resource_upcloud_server expanded with new functionality from UpCloud API 1.3
- resource_upcloud_storage expaned with new functionality from UpCloud API 1.3
- resource_upcloud_tag expanded to implement read function
- Removed storage HCL blocks that failed due to referencing older UpCloud template ID
- Removed the plan, price, price_zone and timezone UpCloud resources
- resource_upcloud_ip removed and replaced by resource_upcloud_floating_ip_address
- resource_upcloud_firewall_rule removed and replaced by resource_upcloud_firewall_rules
- resource_upcloud_zone removed and replaced by zone and zones datasources