Cloud Computing 8 min read

How to Adapt External-DNS for Huawei Cloud: A Step‑by‑Step Guide

This article walks developers through Huawei's open‑source developer program and provides a detailed, practical guide on adapting the Kubernetes External‑DNS project for Huawei Cloud, covering project analysis, code development, secure authentication, webhook deployment, and contribution submission.

Huawei Cloud Developer Alliance
Huawei Cloud Developer Alliance
Huawei Cloud Developer Alliance
How to Adapt External-DNS for Huawei Cloud: A Step‑by‑Step Guide

Huawei's Open‑Source Developer Program offers exclusive incentive resources to encourage developers to contribute to open‑source projects, especially for the "Open‑source for Huawei" initiative.

Participating in Open‑Source Projects

External‑DNS is a Kubernetes community project that synchronizes Kubernetes resources such as Services and Ingresses with external DNS providers, simplifying domain management for cloud applications.

External-DNS overview
External-DNS overview

Understanding and Analyzing the Project

After selecting a project, download its source code (e.g., from GitHub) and study the README. The "Getting Started" or "Example" sections help you quickly grasp basic usage, while the "Contributing" section explains how to adapt the project and submit code.

Development Process

Fork the External‑DNS repository, clone it locally, and add Huawei Cloud DNS's Go SDK as a dependency. Implement the Providers interface—specifically the Records and ApplyChanges methods—using the SDK to enable automatic A‑Record updates in CI/CD pipelines.

Secure Authentication

Instead of using permanent or temporary AK/SK credentials, adopt Workload Identity. Create an OIDC identity provider in Huawei Cloud IAM, establish trust with the CCE cluster’s Service Account token, and allow pods to obtain short‑lived credentials without exposing secret keys.

Deploying via Webhook

External‑DNS introduces a webhook provider model: each DNS provider runs as a sidecar container exposing an HTTP API, while the webhook component communicates via localhost, eliminating the need to embed provider code in the main repository and improving maintainability.

Webhook sidecar deployment
Webhook sidecar deployment
Webhook diagram
Webhook diagram

Submitting Contributions

After thorough testing, submit your changes as a Pull Request following the project's Contributing guide. Include a README that links to your repository, and be prepared to sign the EasyCLA (Contributor License Agreement) if required.

KubernetesHuawei Cloudopen source contributionwebhookCloud DNSExternal DNSWorkload Identity
Huawei Cloud Developer Alliance
Written by

Huawei Cloud Developer Alliance

The Huawei Cloud Developer Alliance creates a tech sharing platform for developers and partners, gathering Huawei Cloud product knowledge, event updates, expert talks, and more. Together we continuously innovate to build the cloud foundation of an intelligent world.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.