Skip to content

Use Location instead of removed Datacenter field on server create - #26

Open
christianhuening wants to merge 19 commits into
23technologies:mainfrom
opendefensecloud:main
Open

Use Location instead of removed Datacenter field on server create#26
christianhuening wants to merge 19 commits into
23technologies:mainfrom
opendefensecloud:main

Conversation

@christianhuening

Copy link
Copy Markdown

Hetzner removed the datacenter property from the server-create request body on 2026-07-01 (https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated), so createMachine failed for every machine. Placement now uses the location derived from the zone (hel1-dc2 -> hel1); hcloud-go already exposes ServerCreateOpts.Location and the API rejects both fields set at once, so this is a swap. Node topology labels are unchanged.

christianhuening and others added 19 commits July 17, 2026 17:29
Hetzner removed the datacenter property from the server-create request body on
2026-07-01 (https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated),
so createMachine failed for every machine. Placement now uses the location
derived from the zone (hel1-dc2 -> hel1); hcloud-go already exposes
ServerCreateOpts.Location and the API rejects both fields set at once, so this
is a swap. Node topology labels are unchanged.
The workflow was forked from 23technologies without adjusting token
permissions or the image namespace, so both jobs failed:

- create-release lacked contents: write and failed with
  "Resource not accessible by integration" when creating the GitHub Release.
- on-publish lacked packages: write and pushed to a hardcoded
  ghcr.io/23technologies/... namespace while authenticating as the current
  owner, failing with "denied: The requested installation does not exist".

Add the required per-job permissions and publish to
ghcr.io/${{ github.repository_owner }}/machine-controller-manager-provider-hcloud
so images land under the opendefensecloud org.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…defensecloud

Fix release pipeline to publish under opendefensecloud
…8s v0.35.5, go 1.26.2); hcloud-go v2 migration follows

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Move all imports from github.com/hetznercloud/hcloud-go/hcloud[/schema]
to the /v2 module and switch resource IDs (Server.ID, FloatingIP.ID,
PlacementGroup.ID) from int to int64:

- transcoder: ServerData.ID int64; DecodeServerIDFromProviderID returns
  (int64, error); EncodeProviderID takes int64; strconv.Atoi->ParseInt,
  Itoa->FormatInt at the ID sites.
- types: CreateMachineMethodData.ServerID/FloatingIPID int64.
- machine_controller: serverID local int64; PlacementGroupID parsed via
  strconv.ParseInt for PlacementGroup.GetByID.
- tests: transcoder assertions compare against int64.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Makefile's install target has always passed -X .../pkg/version.Version=$(VERSION)
to the linker, but no pkg/version package existed, so the flag was silently
ignored. Add the package with an exported Version var defaulting to "dev".
…e; dependabot

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Without QEMU binfmt emulation registered on the amd64 ubuntu-latest
runner, docker/build-push-action's linux/arm64 leg fails (the
Dockerfile builds each arch via `RUN make install`, no
cross-compilation), aborting the whole multi-arch build so no image
publishes at all on a tagged release.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…oolchain

Catch up to extension toolchain: hcloud-go v2, gardener v1.146.4, module rename, P0 fixes (v0.4.0-odp.1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant