Skip to content

[FEAT]: github_enterprise_actions_runner_group / github_actions_runner_group - Support network configuration #2302

Open

Description

@audunsolemdal

Describe the need

For the resources github_enterprise_actions_runner_group and github_actions_runner_group I would like support for configuring private networking via Terraform. This would help ease setup and maintenance of a great and cost efficient feature.

data "github_enterprise" "example" {
  slug = "example-co"
}

resource "azapi_resource" "subnet_integration" {
  type                      = "GitHub.Network/networkSettings@2024-04-02"
  name                      = "test-subnet-integration"
  location                  = module.vnet.vnet.location
  parent_id                 = module.vnet.rg.id
  schema_validation_enabled = false
  body = jsonencode({
    properties = {
      subnetId   = module.vnet.subnets["test-subnet"].id
      businessId = data.github_enterprise.example.database_id
    }
  })

  lifecycle {
    ignore_changes = [tags]
  }
}

resource "github_enterprise_actions_runner_group" "example" {
  name                       = "my-awesome-runner-group"
  enterprise_slug            = data.github_enterprise.enterprise.slug
  selected_organization_ids  = [github_enterprise_organization.enterprise_organization.database_id]
  
  # NEW
  network_configuration_id   = azapi_resource.subnet_integration.tags["GithubId"] # optional
  disable_network_configuration = false # optional. Only has an effect if network_configuration_id is set
}

resource "azapi_resource" "subnet_integration2" {
  type                      = "GitHub.Network/networkSettings@2024-04-02"
  name                      = "test-subnet-integration"
  location                  = module.vnet.vnet.location
  parent_id                 = module.vnet.rg.id
  schema_validation_enabled = false
  body = jsonencode({
    properties = {
      subnetId   = module.vnet.subnets["test-subnet2"].id
      businessId = data.github_enterprise.example.database_id
    }
  })

  lifecycle {
    ignore_changes = [tags]
  }
}


resource "github_actions_runner_group" "example" {
  name                    = "xxx"
  selected_repository_ids = ["yyy"]

  # NEW
  network_configuration_id   = azapi_resource.subnet_integration2.tags["GithubId"] # optional
  disable_network_configuration = false # optional. Only has an effect if network_configuration_id is set
}

Alternatively an optional block can be used to configue this

resource "github_actions_runner_group" "example" {
...
network_configuration {
  id   = azapi_resource.subnet_integration2.tags["GithubId"] # optional
  disable_configuration = false # optional, defaults to false
}
...
}

Enterprise:

Github team:

SDK Version

No response

API Version

No response

Relevant log output

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Activity

  1. changed the title [-][FEAT]: github_enterprise_actions_runner_group - Support network configurations and static IP[/-] [+][FEAT]: github_enterprise_actions_runner_group - Support network configuration[/+] on Jun 28, 2024
  2. changed the title [-][FEAT]: github_enterprise_actions_runner_group - Support network configuration[/-] [+][FEAT]: github_enterprise_actions_runner_group / github_actions_runner_group - Support network configuration[/+] on Jun 28, 2024
  3. added
    Status: Up for grabsIssues that are ready to be worked on by anyone
    and removed
    Status: TriageThis is being looked at and prioritized
    on Jul 1, 2024
  4. moved this from 🆕 Triage to 🔥 Backlog in 🧰 Octokit Activeon Jul 1, 2024
  5. ilmax commented on Jul 23, 2024

    @ilmax
    Contributor

    I wanted to give it a go at this one because I would like to automate this part but AFAIK there's no support for it in go-github. It seems like we can only create self-hosted runner but not a runner group that's GitHub hosted. Looking at the API it seems like to me this is not even exposed at the API level according to the documentation.

    Am I missing something obvious?

  6. ilmax commented on Jul 31, 2024

    @ilmax
    Contributor
  7. Laffs2k5 commented on Dec 11, 2024

    @Laffs2k5

    There does not seem to be any mention about support for this in the REST API in the GitHub Public Roadmap.

    I urge anyone to vote and discuss on this community discussion to raise awareness about missing support in the REST API: https://github.com/orgs/community/discussions/139852

  8. matt-buchanan commented on Jan 30, 2025

    @matt-buchanan

    Looks like the APIs for this have just been released: https://github.com/orgs/community/discussions/149651

  9. CpuID commented on Apr 30, 2025

    @CpuID

    Can't wait for this functionality to appear in the TF Provider ❤

  10. 4 remaining items

  11. ilmax commented on Mar 4, 2026

    @ilmax
    Contributor

    This functionality has been added to the SDK in v70

    Once we've released v7 of the provider this Feature can be added!

    Not sure why there's the need to release version v7 of the provider, AFAIK this is already using a version of go-github that supports the functionality.

  12. deiga commented on Mar 4, 2026

    @deiga
    Collaborator

    @ilmax at the time of writing we we're about to release v7 due to some breaking changes.
    But we changed direction and a major release for go-github upgrades is not currently necessary.

  13. deiga commented on Mar 4, 2026

    @deiga
    Collaborator

    I wonder if #3080 is already addressing this need?

  14. ilmax commented on Mar 4, 2026

    @ilmax
    Contributor

    Understood, thank you for the clarification.

    I wonder if #3080 is already addressing this need?

    I don't think so. I think here we need to create an additional resource for the network configuration (at the organization and enterprise level) + add the ability to set that value on a hosted runner.

    In #3080 AFAIK doesn't add the option to create a network configuration

  15. deiga commented on Mar 4, 2026

    @deiga
    Collaborator

    Ah, yes, you are right.
    Sorry, I didn't look too deep into the comparison 😬

    Do these PRs fulfill all use-cases from this issue?

  16. ilmax commented on Mar 4, 2026

    @ilmax
    Contributor

    #2895 is implementing just the organization network configuration so 1 out of 4 things, but it's a good starting point. Needs to be rebased on top of main and probably it would be wise to add the enterprise network configuration in the same PR.

    #3017 Seems to add feature parity between organization and enterprise hoste runners resource and data sources

  17. jndz2 commented on Mar 4, 2026

    @jndz2

    If there is anything I can do to help, please let me know. If everything is already in progress, then that's fine.

  18. ilmax commented on Mar 4, 2026

    @ilmax
    Contributor

    I would love to get this one implemented, I think #2895 is just partially implemented (need a rebase + implement the enterprise version of the network configuration) Getting that part over the line would be awesome along completing and merging #3017.

  19. deiga commented on Mar 4, 2026

    @deiga
    Collaborator

    Considering that #2895 hasn't responded since November last year, it could make sense for that to be picked up by someone else

  20. austenstone commented on Mar 15, 2026

    @austenstone
    Contributor

    I'll try to get this merged!

  21. johannespostler commented on Mar 15, 2026

    @johannespostler

    @austenstone I actually spent some time rebasing this, but I didn't get around to test it yet. Feel free to check it out:
    https://github.com/johannespostler/terraform-provider-github/tree/feature/github-organization-network-configurations

  22. jakub-rdr commented on Aug 25, 2026

    @jakub-rdr

    Is there any movement on this? It would be great to see this implemented soon.

  23. deiga commented on Aug 28, 2026

    @deiga
    Collaborator

    @jakub-rdr please help us with reviewing open PRs like the one linked to this issue.
    That can help get this and other features implemented faster 🙏

    For review guidance, familiarize yourself with our Contributing and Architecture guidelines ☺️

  24. moved this from Backlog to In Progress in Terraform Provideron Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions