Skip to content
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4436bca
Added new fields to image/images datasources and resource
ezilber-akamai Oct 9, 2025
ac250a5
Project: Linode Interfaces (#1862)
zliang-akamai Oct 15, 2025
920e625
Added datasource/resource for Image Share Group
ezilber-akamai Oct 16, 2025
e44d976
Normalize null value for Images to [] for consistent behavior
ezilber-akamai Oct 16, 2025
c2da843
Add logging for Linode interface resource (#2132)
zliang-akamai Oct 21, 2025
5fa026b
Add 30s waiting period for OBJ temp key for E2/3 endpoints; update do…
zliang-akamai Oct 21, 2025
44d3e91
Added Image Share Groups datasource and Image Share Group Member reso…
ezilber-akamai Oct 21, 2025
f041149
Added datasource for Image Shares
ezilber-akamai Oct 22, 2025
205a9d5
VPC Dual Stack: Add support for IPv6 VPC in linode_interface resource…
lgarber-akamai Oct 22, 2025
78ddd49
Remove unnecessary sweep function (#2135)
zliang-akamai Oct 22, 2025
225c684
Add ID for firewall setting resource and data source (#2136)
zliang-akamai Oct 22, 2025
277bdbf
Added Image Share Group Token resource
ezilber-akamai Oct 23, 2025
da06e94
Add Linode interface related packages to the integration test CI (#2138)
zliang-akamai Oct 23, 2025
a95fe04
Added docs and integration tests for ImageShareGroupToken and ImageSh…
ezilber-akamai Oct 27, 2025
0b5392d
Added Image Share Group Member datasource
ezilber-akamai Oct 27, 2025
fd32af4
Added ImageShareGroupMembers datasource
ezilber-akamai Oct 28, 2025
9bf69ac
Added ImageShareGroupToken datasource
ezilber-akamai Oct 28, 2025
8691552
Added ImageShareGroupTokens datasource
ezilber-akamai Oct 29, 2025
ffafd4a
Added datasource for Consumer Image Share Group
ezilber-akamai Oct 29, 2025
69032cd
Added ConsumerImageShareGroupImageShares datasource
ezilber-akamai Oct 30, 2025
41451bf
Merge dev into branch
ezilber-akamai Oct 30, 2025
d5ed6d2
Point to more recent linodego commit
ezilber-akamai Nov 3, 2025
8ffc85f
Fixes
ezilber-akamai Nov 3, 2025
474dab1
Added LA notices to docs
ezilber-akamai Nov 4, 2025
80d6cf8
Added documentation links
ezilber-akamai Nov 5, 2025
4c8b893
Point at latest linodego release
ezilber-akamai Nov 7, 2025
307dc91
Added new tokens to integration_tests.yml
ezilber-akamai Nov 12, 2025
5776cd1
Added new tokens to integration_tests_pr.yml
ezilber-akamai Nov 12, 2025
ea64be2
Fix test
ezilber-akamai Nov 13, 2025
fb0a874
Addressed PR comments
ezilber-akamai Nov 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions .github/workflows/integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,19 +55,21 @@ jobs:
run: |
case "${{ matrix.user }}" in
"USER_1")
echo "TEST_SUITE=acceptance,backup,domain,domainrecord,domains,domainzonefile,helper,instance,provider" >> $GITHUB_ENV
echo "TEST_SUITE=acceptance,backup,consumerimagesharegroup,consumerimagesharegroupimageshares,consumerimagesharegrouptoken,consumerimagesharegrouptokens,producerimagesharegroup,producerimagesharegroupimageshares,producerimagesharegroupmember,producerimagesharegroupmembers,producerimagesharegroups,domain,domainrecord,domains,domainzonefile,helper,instance,provider" >> $GITHUB_ENV
echo "LINODE_TOKEN=${{ secrets.LINODE_TOKEN_USER_1 }}" >> $GITHUB_ENV
echo "LINODE_PRODUCER_TOKEN=${{ secrets.LINODE_TOKEN_USER_1 }}" >> $GITHUB_ENV
echo "LINODE_CONSUMER_TOKEN=${{ secrets.LINODE_TOKEN_USER_2 }}" >> $GITHUB_ENV
;;
"USER_2")
echo "TEST_SUITE=databasemysqlv2,firewall,firewalldevice,firewalls,image,images,instancenetworking,instancesharedips,instancetype,instancetypes,ipv6range,ipv6ranges,kernel,kernels,nb,nbconfig,nbconfigs,nbnode,nbs,nbvpc,nbvpcs,sshkey,sshkeys,vlan,volume,volumes,vpc,vpcs,vpcsubnets,vpcips" >> $GITHUB_ENV
echo "TEST_SUITE=databasemysqlv2,firewall,firewallsettings,firewalltemplate,firewalltemplates,firewalldevice,firewalls,image,images,instancenetworking,instancesharedips,instancetype,instancetypes,ipv6range,ipv6ranges,kernel,kernels,nb,nbconfig,nbconfigs,nbnode,nbs,nbvpc,nbvpcs,sshkey,sshkeys,vlan,volume,volumes,vpc,vpcs,vpcsubnets,vpcips" >> $GITHUB_ENV
echo "LINODE_TOKEN=${{ secrets.LINODE_TOKEN_USER_2 }}" >> $GITHUB_ENV
;;
"USER_3")
echo "TEST_SUITE=databasepostgresqlv2,instanceconfig,instancedisk,instanceip,networkingip,objcluster,objkey,profile,rdns,region,regions,stackscript,stackscripts" >> $GITHUB_ENV
echo "LINODE_TOKEN=${{ secrets.LINODE_TOKEN_USER_3 }}" >> $GITHUB_ENV
;;
"USER_4")
echo "TEST_SUITE=lke,lkeclusters,lkenodepool,lkeversions,obj,objbucket,placementgroup,placementgroups,placementgorupassignment,token,user,users" >> $GITHUB_ENV
echo "TEST_SUITE=linodeinterface,lke,lkeclusters,lkenodepool,lkeversions,obj,objbucket,placementgroup,placementgroups,placementgorupassignment,token,user,users" >> $GITHUB_ENV
echo "LINODE_TOKEN=${{ secrets.LINODE_TOKEN_USER_4 }}" >> $GITHUB_ENV
;;
esac
Expand All @@ -80,6 +82,8 @@ jobs:
make TEST_SUITE="${{ env.TEST_SUITE }}" PARALLEL="${{ github.event.inputs.parallel_value || '5' }}" test-int | go-junit-report -set-exit-code -iocopy -out $REPORT_FILENAME
env:
LINODE_TOKEN: ${{ env.LINODE_TOKEN }}
LINODE_PRODUCER_TOKEN: ${{ env.LINODE_PRODUCER_TOKEN }}
LINODE_CONSUMER_TOKEN: ${{ env.LINODE_CONSUMER_TOKEN }}

- name: Upload Test Report as Artifact
if: always()
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/integration_tests_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,10 @@ jobs:
if: ${{ steps.disallowed-character-check.outputs.result == 'pass' }}
env:
LINODE_TOKEN: ${{ secrets.DX_LINODE_TOKEN }}
LINODE_PRODUCER_TOKEN: ${{ secrets.DX_LINODE_TOKEN }}
LINODE_CONSUMER_TOKEN: ${{ secrets.LINODE_TOKEN_USER_2 }}
RUN_LONG_TESTS: ${{ inputs.run_long_tests }}

- name: Get the hash value of the latest commit from the PR branch
uses: octokit/graphql-action@v2.x
id: commit-hash
Expand Down
2 changes: 2 additions & 0 deletions docs/data-sources/account_settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ data "linode_account_settings" "example" {}

* `longview_subscription` - The Longview Pro tier you are currently subscribed to.

* `interfaces_for_new_linodes` - Type of interfaces for new Linode instances.

* `managed` - Enables monitoring for connectivity, response, and total request time.

* `network_helper` - Enables network helper across all users by default for new Linodes and Linode Configs.
Expand Down
42 changes: 42 additions & 0 deletions docs/data-sources/consumer_image_share_group.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
page_title: "Linode: linode_consumer_image_share_group"
description: |-
Provides details about an Image Share Group a consumer's token has been accepted into.
---

# Data Source: linode\_consumer\_image\_share\_group

`linode_consumer_image_share_group` provides details about an Image Share Group that the user's token has been accepted into.
For more information, see the [Linode APIv4 docs](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-by-token). May not be currently available to all users even under v4beta.

## Example Usage

The following example shows how the datasource might be used to obtain additional information about an Image Share Group.

```hcl
data "linode_consumer_image_share_group" "sg" {
token_uuid = "7548d17e-8db4-4a91-b47c-a8e1203063d9"
}
```

## Argument Reference

* `token_uuid` - (Required) The UUID of the token that has been accepted into the Image Share Group.

## Attributes Reference

In addition to all arguments above, the following attributes are exported:

* `id` - The ID of the Image Share Group.

* `uuid` - The UUID of the Image Share Group.

* `label` - The label of the Image Share Group.

* `description` - The description of the Image Share Group.

* `is_suspended` - Whether the Image Share Group is suspended.

* `created` - The date and time the Image Share Group was created.

* `updated` - The date and time the Image Share Group was last updated.
95 changes: 95 additions & 0 deletions docs/data-sources/consumer_image_share_group_image_shares.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
page_title: "Linode: linode_consumer_image_share_group_image_shares"
description: |-
Lists Images shared in the Image Share Group the provided Token has been accepted into.
---

# Data Source: linode\_consumer\_image\_share\_group\_image\_shares

Provides information about a list of Images that match a set of filters that have been
shared in the Image Share Group that the provided Token has been accepted into.
For more information, see the [Linode APIv4 docs](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-images-by-token). May not be currently available to all users even under v4beta.

## Example Usage

The following example shows how one might use this data source to list Images shared in an Image Share Group.

```hcl
data "linode_consumer_image_share_group_image_shares" "all" {}

data "linode_consumer_image_share_group_image_shares" "filtered" {
token_uuid = "54e1adf3-e499-4685-82be-10d29d4e8fae"
filter {
name = "label"
values = ["my-label"]
}
}

output "all-shared-images" {
value = data.linode_consumer_image_share_group_image_shares.all.image_shares
}

output "filtered-shared-images" {
value = data.linode_consumer_image_share_group_image_shares.filtered.image_shares
}
```

## Argument Reference

The following arguments are supported:

* `token_uuid` - (Required) The UUID of the Token that has been accepted into the Image Share Group to list shared Images from.

* [`filter`](#filter) - (Optional) A set of filters used to select Image Share Groups that meet certain requirements.

### Filter

* `name` - (Required) The name of the field to filter by. See the [Filterable Fields section](#filterable-fields) for a complete list of filterable fields.

* `values` - (Required) A list of values for the filter to allow. These values should all be in string form.

* `match_by` - (Optional) The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)

## Attributes Reference

Each Image Share will be stored in the `images_shares` attribute and will export the following attributes:

* `id` - The unique ID assigned to this Image Share.

* `label` - The label of the Image Share.

* `capabilities` - The capabilities of the Image represented by the Image Share.

* `created` - When this Image Share was created.

* `deprecated` - Whether this Image is deprecated.

* `description` - A description of the Image Share.

* `is_public` - True if the Image is public.

* `image_sharing` - Details about image sharing, including who the image is shared with and by.
* `shared_with` - Details about who the image is shared with.
* `sharegroup_count` - The number of sharegroups the private image is present in.
* `sharegroup_list_url` - The GET api url to view the sharegroups in which the image is shared.
* `shared_by` - Details about who the image is shared by.
* `sharegroup_id` - The sharegroup_id from the im_ImageShare row.
* `sharegroup_uuid` - The sharegroup_uuid from the im_ImageShare row.
* `sharegroup_label` - The label from the associated im_ImageShareGroup row.
* `source_image_id` - The image id of the base image (will only be shown to producers, will be null for consumers).

* `size` - The minimum size this Image needs to deploy. Size is in MB. example: 2500

* `status` - The current status of this image. (`creating`, `pending_upload`, `available`)

* `type` - How the Image was created. Manual Images can be created at any time. "Automatic" Images are created automatically from a deleted Linode. (`manual`, `automatic`)

* `tags` - A list of customized tags.

* `total_size` - The total size of the image in all available regions.

## Filterable Fields

* `id`

* `label`
46 changes: 46 additions & 0 deletions docs/data-sources/consumer_image_share_group_token.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
page_title: "Linode: linode_consumer_image_share_group_token"
description: |-
Provides details about a Token for an Image Share Group.
---

# Data Source: linode\_consumer\_image\_share\_group\_token

`linode_consumer_image_share_group_token` provides details about a Token for an Image Share Group.
For more information, see the [Linode APIv4 docs](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token). May not be currently available to all users even under v4beta.

## Example Usage

The following example shows how the datasource might be used to obtain additional information about a Token for an Image Share Group.

```hcl
data "linode_consumer_image_share_group_token" "token" {
token_uuid = "db58ab2e-3021-4b08-9426-8e456f6dd268"
}
```

## Argument Reference

The following arguments are supported:

* `token_uuid` - (Required) The UUID of the token.

## Attributes Reference

In addition to all the arguments above, the following attributes are exported.

* `label` - A label for the token.

* `status` - The status of the token.

* `created` - When the token was created.

* `updated` - When the token was last updated.

* `expiry` - When the token will expire.

* `valid_for_sharegroup_uuid` - The UUID of the Image Share Group for which to create a token.

* `sharegroup_uuid` - The UUID of the Image Share Group that the token is for.

* `sharegroup_label` - The label of the Image Share Group that the token is for.
83 changes: 83 additions & 0 deletions docs/data-sources/consumer_image_share_group_tokens.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
page_title: "Linode: linode_consumer_image_share_group_tokens"
description: |-
Lists Image Share Group Tokens on your account.
---

# Data Source: linode\_consumer\_image\_share\_group\_tokens

Provides information about a list of Image Share Group Tokens that match a set of filters.
For more information, see the [Linode APIv4 docs](https://techdocs.akamai.com/linode-api/reference/get-user-tokens). May not be currently available to all users even under v4beta.

## Example Usage

The following example shows how one might use this data source to list Image Share Groups.

```hcl
data "linode_consumer_image_share_group_tokens" "all" {}

data "linode_consumer_image_share_group_tokens" "filtered" {
filter {
name = "label"
values = ["my-label"]
}
}

output "all-share-group-tokens" {
value = data.linode_consumer_image_share_group_tokens.all.tokens
}

output "filtered-share-group-tokens" {
value = data.linode_consumer_image_share_group_tokens.filtered.tokens
}
```

## Argument Reference

The following arguments are supported:

* [`filter`](#filter) - (Optional) A set of filters used to select Image Share Groups that meet certain requirements.

### Filter

* `name` - (Required) The name of the field to filter by. See the [Filterable Fields section](#filterable-fields) for a complete list of filterable fields.

* `values` - (Required) A list of values for the filter to allow. These values should all be in string form.

* `match_by` - (Optional) The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)

## Attributes Reference

In addition to all arguments above, the following attributes are exported:

* `token_uuid` - The UUID of the token.

* `label` - A label for the token.

* `status` - The status of the token.

* `created` - When the token was created.

* `updated` - When the token was last updated.

* `expiry` - When the token will expire.

* `valid_for_sharegroup_uuid` - The UUID of the Image Share Group for which to create a token.

* `sharegroup_uuid` - The UUID of the Image Share Group that the token is for.

* `sharegroup_label` - The label of the Image Share Group that the token is for.

## Filterable Fields

* `token_uuid`

* `label`

* `status`

* `valid_for_sharegroup_uuid`

* `sharegroup_uuid`

* `sharegroup_label`
2 changes: 2 additions & 0 deletions docs/data-sources/firewall.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ In addition to all arguments above, the following attributes are exported:

* `nodebalancers` - The IDs of NodeBalancers assigned to this Firewall.

* `interfaces` - The IDs of Linode interfaces assigned to this Firewall.

* `status` - The status of the firewall. (`enabled`, `disabled`, `deleted`)

* `created` - When this firewall was created.
Expand Down
39 changes: 39 additions & 0 deletions docs/data-sources/firewall_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
page_title: "Linode: linode_firewall_template"
description: |-
Provides details about a Linode Firewall Template.
---

# Data Source: linode\_firewall\_template

Provides information about a Linode Firewall Template.

## Example Usage

The following example shows how one might use this data source to access information about a specific Firewall Template:

```hcl
data "linode_firewall_template" "public-template" {
slug = "public"
}

output "firewall_template_id" {
value = data.linode_firewall_template.public-template.id
}
```

## Argument Reference

The following arguments are supported:

* `slug` - (Required) The slug of the firewall template.

## Attributes Reference

The following attributes are exported:

* `id` - The computed ID of the data source, which matches the `slug` attribute.
* `inbound` - A list of firewall rules specifying allowed inbound network traffic.
* `inbound_policy` - The default behavior for inbound traffic. This can be overridden by individual firewall rules.
* `outbound` - A list of firewall rules specifying allowed outbound network traffic.
* `outbound_policy` - The default behavior for outbound traffic. This can be overridden by individual firewall rules.
Loading