Skip to content

blogpost: Gateway API Quickstart with KinD - #53581

Merged
k8s-ci-robot merged 3 commits into
kubernetes:mainfrom
rikatz:quickstart-gateway-api-blog
Jan 19, 2026
Merged

blogpost: Gateway API Quickstart with KinD#53581
k8s-ci-robot merged 3 commits into
kubernetes:mainfrom
rikatz:quickstart-gateway-api-blog

Conversation

@rikatz

@rikatz rikatz commented Dec 11, 2025

Copy link
Copy Markdown
Member

Description

This PR adds a blog post about experimenting Gateway API with KinD. The idea is to allow users to test, have the feeling of it on their own local machine without needing to deploy a cluster or without needing the burden (right now) to chose an implementation.

Issue

Closes: #

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Dec 11, 2025
@k8s-ci-robot k8s-ci-robot added area/blog Issues or PRs related to the Kubernetes Blog subproject language/en Issues or PRs related to English language size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Dec 11, 2025
@netlify

netlify Bot commented Dec 11, 2025

Copy link
Copy Markdown

Pull request preview available for checking

Built without sensitive environment variables

Name Link
🔨 Latest commit d635107
🔍 Latest deploy log https://app.netlify.com/projects/kubernetes-io-main-staging/deploys/696e99232be4c5000896c5fc
😎 Deploy Preview https://deploy-preview-53581--kubernetes-io-main-staging.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@rikatz
rikatz force-pushed the quickstart-gateway-api-blog branch from 6cb88a3 to 1189ec5 Compare December 11, 2025 22:04
- A LoadBalancer controller that assigns addresses to LoadBalancer-type Services
- A Gateway API controller that implements the Gateway API specification

Cloud-provider-kind also automatically installs the Gateway API Custom Resource Definitions (CRDs) in your cluster.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Cloud-provider-kind also automatically installs the Gateway API Custom Resource Definitions (CRDs) in your cluster.
Cloud-provider-kind can run a Gateway API controller (alpha). Enable it by selecting a Gateway API channel, for example --gateway-channel standard.
Cloud-provider-kind also automatically installs the Gateway API Custom Resource Definitions (CRDs) in your cluster.

Considering cloud-provider-kind's support for gateway API is alpha, should we clarify it?
https://github.com/kubernetes-sigs/cloud-provider-kind/?tab=readme-ov-file#gateway-api-support-alpha

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cloud-provider-kind defaults to installing the CRDs and running the controller: https://github.com/kubernetes-sigs/cloud-provider-kind/blob/600a7713a50ef910b3910ee812e49e5ac1474837/cmd/app.go#L55

@aojea thoughts?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jayeshmahajan Antonio fixed it on cloud-provider-kind README

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, sorry, forget to update the docs but we consider gateway api now officially supported in kind, thanks for catching this

- `ResolvedRefs=False` with reason `BackendNotFound` - The backend Service doesn't exist or has the wrong name
- `Accepted=False` - The route couldn't attach to the Gateway (check namespace permissions or hostname matching)

Example error when a backend is not found:

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't follow how is this related with a Gateway Class.

Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated

@graz-dev graz-dev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some nits, good quickstart!
Thx @rikatz

---
layout: blog
title: "Experimenting with Gateway API using KinD"
date: 2025-12-11

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The scheduling for feature blog should end on Jan 12, so we will schedule this post after this date.
It's ok to leave this date here since it will be merged as draft first.

Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
- `ResolvedRefs=False` with reason `BackendNotFound` - The backend Service doesn't exist or has the wrong name
- `Accepted=False` - The route couldn't attach to the Gateway (check namespace permissions or hostname matching)

Example error when a backend is not found:

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't follow how is this related with a Gateway Class.

@rikatz
rikatz force-pushed the quickstart-gateway-api-blog branch 2 times, most recently from b1e11b0 to b16671e Compare January 2, 2026 15:16
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated

@lmktfy lmktfy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you get a Gateway maintainer to provide a technical review for this @rikatz?

It's technical enough that I think it's worth getting one (I'm sure you've done a good job, but we ought to check on the content not on the provenance).


Here's some feedback. I think we can merge this even with zero changes, if necessary, but it would be nice to be aligned with the Kubernetes website style guide before we merge.

Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
Comment thread content/en/blog/_posts/2025-12-11-experimenting-gateway-api-with-kind.md Outdated
This document will guide you through setting up a local experimental environment with [Gateway API](https://gateway-api.sigs.k8s.io/) on [kind](https://kind.sigs.k8s.io/). This setup is designed for learning and testing. It helps you understand Gateway API concepts without production complexity.

{{< caution >}}
This is an experimentation learning setup, and must not be used for production.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe "should", or explain more about why it's a bad idea.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added some more details that the components not being suited for production usage.

Now that your cluster is set up, you can start experimenting with Gateway API resources.

cloud-provider-kind automatically provisions a GatewayClass called `cloud-provider-kind`. You'll use this class to create your Gateway.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: we could clarify that kind is not really a cloud provider; it's more that it pretends to be to help with testing / learning.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added "It is worth noticing that while kind is not a cloud provider, the project is named as cloud-provider-kind as it provides features that simulate a cloud-enabled environment."

@rikatz
rikatz force-pushed the quickstart-gateway-api-blog branch from b16671e to d635107 Compare January 19, 2026 20:50
@rikatz

rikatz commented Jan 19, 2026

Copy link
Copy Markdown
Member Author

thanks @lmktfy I have pushed a new commit addressing your comments

@lmktfy

lmktfy commented Jan 19, 2026

Copy link
Copy Markdown
Member

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 19, 2026
@k8s-ci-robot

Copy link
Copy Markdown
Contributor

LGTM label has been added.

DetailsGit tree hash: 77c23290f7f8c79bfa905d0bcbbc38255d02ce18

@k8s-ci-robot

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: lmktfy

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 19, 2026
@k8s-ci-robot
k8s-ci-robot merged commit 4510678 into kubernetes:main Jan 19, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/blog Issues or PRs related to the Kubernetes Blog subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. language/en Issues or PRs related to English language lgtm "Looks good to me", indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants