Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
6046458
Fix RepairIPAddress controller startup failure when namespace informe…
haojiwu Mar 12, 2026
cdf6c75
Update knftables to v0.0.21
danwinship Mar 6, 2026
b5f4406
pkg/proxy/nftables: fix kube-proxy crash with newer nftables versions
kairosci Feb 11, 2026
ce78d22
Update CHANGELOG/CHANGELOG-1.33.md for v1.33.10
k8s-release-robot Mar 18, 2026
594c1ef
Merge pull request #137809 from danwinship/automated-cherry-pick-of-#…
k8s-ci-robot Mar 19, 2026
a4f94ed
Fix flaking RunTestDelayedWatchDelivery
serathius Aug 20, 2025
8489a1d
bump golang.org/x/vuln/cmd/govulncheck to v1.1.4
dims Jul 8, 2025
a4cc2ce
Bump to go 1.25
liggitt Apr 1, 2026
151cebb
Merge pull request #137998 from varshadeshmane92/automated-cherry-pic…
k8s-ci-robot Apr 9, 2026
b21f28f
Merge pull request #137677 from haojiwu/cherry-pick-137147-release-1.33
k8s-ci-robot Apr 9, 2026
04e0a33
Merge pull request #138151 from liggitt/go-1-25-release-1-33
k8s-ci-robot Apr 9, 2026
ea46dad
Bump images and versions to go 1.25.9 and distroless iptables
xmudrii Apr 9, 2026
875a0ab
Merge pull request #138306 from xmudrii/update-go-1.33
k8s-ci-robot Apr 9, 2026
4128483
update go.opentelemetry.io/otel to v1.41.0
dashpole Apr 13, 2026
28b2a45
Update github.com/moby/spdystream from v0.5.0 to v0.5.1
dims Apr 13, 2026
d02a449
Merge pull request #138350 from dashpole/update_prop_33
k8s-ci-robot Apr 14, 2026
28a08b2
Merge pull request #138358 from dims/update-moby-spdystream-v0.5.1-1.33
k8s-ci-robot Apr 14, 2026
9efa99e
Release commit for Kubernetes v1.33.11
k8s-release-robot Apr 15, 2026
2ff8016
Update CHANGELOG/CHANGELOG-1.33.md for v1.33.11
k8s-release-robot Apr 15, 2026
faa31a4
Merge tag 'v1.33.11' into bump-1.33.11
jacobsee Apr 16, 2026
fd10201
UPSTREAM: <drop>: manually resolve conflicts
jacobsee Apr 16, 2026
7c767e9
UPSTREAM: <drop>: hack/update-vendor.sh, make update and update image
jacobsee Apr 16, 2026
cd70e54
Evaluate etcd cluster health using quorum
ahrtr Apr 15, 2026
f7077de
Add a (*Client) addEndpoint method
ahrtr Apr 17, 2026
32137bf
Merge pull request #138541 from ahrtr/automated-cherry-pick-of-#13840…
k8s-ci-robot Apr 23, 2026
be0a49b
kubeadm: use the localAPIEndpoint for all API calls in 'init'
neolit123 Apr 17, 2026
ba5f1e6
Merge pull request #2648 from jacobsee/bump-1.33.11
openshift-merge-bot[bot] Apr 30, 2026
a051bd7
kubeadm: skip LocalAPIEndpoint defaulting on worker join
clwluvw Apr 29, 2026
5ea6803
kubeadm: use dedicated ClusterRole for apiserver kubelet client
micahhausler Feb 16, 2026
dd44baa
Merge pull request #138964 from neolit123/automated-cherry-pick-of-#1…
k8s-ci-robot May 11, 2026
121f890
Merge pull request #138686 from neolit123/automated-cherry-pick-of-#1…
k8s-ci-robot May 11, 2026
e978e6e
Merge pull request #138805 from neolit123/automated-cherry-pick-of-#1…
k8s-ci-robot May 11, 2026
1f348c8
Release commit for Kubernetes v1.33.12
k8s-release-robot May 12, 2026
024e61d
Update CHANGELOG/CHANGELOG-1.33.md for v1.33.12
k8s-release-robot May 12, 2026
30fc1af
Merge tag 'v1.33.12' into release-4.20
jubittajohn May 12, 2026
6ad6fcf
UPSTREAM: <drop>: hack/update-vendor.sh, make update and update image
jubittajohn May 12, 2026
2a0461f
Merge pull request #2666 from jubittajohn/rebase-v1.33.12
openshift-merge-bot[bot] May 14, 2026
2d5d3f0
fix(endpoint): avoid panic on services with empty IPFamilies
rahulbabu95 Apr 22, 2026
d9bed68
UPSTREAM: 133509: fix flake race in VAP e2e case
sdodson Jun 4, 2026
2b395ad
Merge pull request #139236 from rahulbabu95/automated-cherry-pick-of-…
k8s-ci-robot Jun 8, 2026
6907753
Merge pull request #2679 from openshift-cherrypick-robot/cherry-pick-…
openshift-merge-bot[bot] Jun 8, 2026
a5e33bd
Bump images and versions to go 1.25.11 and distroless iptables
cpanato Jun 9, 2026
e358b76
Merge pull request #139590 from cpanato/update-go-images-rel133
k8s-ci-robot Jun 9, 2026
c029d48
Release commit for Kubernetes v1.33.13
k8s-release-robot Jun 11, 2026
ec5afeb
Merge tag 'v1.33.13' into release-4.20
JSampsonIV Jun 29, 2026
4d762b9
UPSTREAM: <drop>: hack/update-vendor.sh, make update and update image
JSampsonIV Jun 29, 2026
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
2 changes: 1 addition & 1 deletion .go-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.24.13
1.25.11
521 changes: 421 additions & 100 deletions CHANGELOG/CHANGELOG-1.33.md

Large diffs are not rendered by default.

31 changes: 30 additions & 1 deletion LICENSES/vendor/go.opentelemetry.io/otel/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 30 additions & 1 deletion LICENSES/vendor/go.opentelemetry.io/otel/metric/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 30 additions & 1 deletion LICENSES/vendor/go.opentelemetry.io/otel/sdk/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 30 additions & 1 deletion LICENSES/vendor/go.opentelemetry.io/otel/trace/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/build-image/cross/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v1.33.0-go1.24.13-bullseye.0
v1.33.0-go1.25.11-bullseye.0
4 changes: 2 additions & 2 deletions build/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,8 @@ readonly KUBE_RSYNC_PORT="${KUBE_RSYNC_PORT:-}"
readonly KUBE_CONTAINER_RSYNC_PORT=8730

# These are the default versions (image tags) for their respective base images.
readonly __default_distroless_iptables_version=v0.7.15
readonly __default_go_runner_version=v2.4.0-go1.24.13-bookworm.0
readonly __default_distroless_iptables_version=v0.8.11
readonly __default_go_runner_version=v2.4.0-go1.25.11-bookworm.0
readonly __default_setcap_version=bookworm-v1.0.6

# These are the base images for the Docker-wrapped binaries.
Expand Down
12 changes: 6 additions & 6 deletions build/dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,14 @@ dependencies:
# pass when building Kubernetes using a pre-release of Golang.

- name: "golang: 1.<major>"
version: 1.24
version: 1.25
refPaths:
- path: build/build-image/cross/VERSION
- path: hack/lib/golang.sh
match: minimum_go_version=go([0-9]+\.[0-9]+)
# - path: hack/lib/golang.sh
# match: minimum_go_version=go([0-9]+\.[0-9]+)

- name: "registry.k8s.io/kube-cross: dependents"
version: v1.33.0-go1.24.13-bullseye.0
version: v1.33.0-go1.25.11-bullseye.0
refPaths:
- path: build/build-image/cross/VERSION

Expand Down Expand Up @@ -162,15 +162,15 @@ dependencies:
match: registry\.k8s\.io\/build-image\/debian-base:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)

- name: "registry.k8s.io/distroless-iptables: dependents"
version: v0.7.15
version: v0.8.11
refPaths:
- path: build/common.sh
match: __default_distroless_iptables_version=
- path: test/utils/image/manifest.go
match: configs\[DistrolessIptables\] = Config{list\.BuildImageRegistry, "distroless-iptables", "v([0-9]+)\.([0-9]+)\.([0-9]+)"}

- name: "registry.k8s.io/go-runner: dependents"
version: v2.4.0-go1.24.13-bookworm.0
version: v2.4.0-go1.25.11-bookworm.0
refPaths:
- path: build/common.sh
match: __default_go_runner_version=
Expand Down
58 changes: 30 additions & 28 deletions cmd/kubeadm/app/cmd/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,8 @@ package cmd
import (
"fmt"
"io"
"net"
"os"
"path/filepath"
"strconv"

"github.com/pkg/errors"
"github.com/spf13/cobra"
Expand Down Expand Up @@ -92,6 +90,7 @@ type initData struct {
skipTokenPrint bool
dryRun bool
kubeconfig *clientcmdapi.Config
kubeconfigOriginal *clientcmdapi.Config
kubeconfigDir string
kubeconfigPath string
ignorePreflightErrors sets.Set[string]
Expand Down Expand Up @@ -462,6 +461,9 @@ func (d *initData) CertificateDir() string {
}

// KubeConfig returns a kubeconfig after loading it from KubeConfigPath().
// If the default kubeconfig path is used (admin.conf), instead of constructing
// a kubeconfig that points to the control plane endpoint, make it point to the localAPIEndpoint.
// This would allow 'kubeadm init' to only talk to the local kube-apiserver instance.
func (d *initData) KubeConfig() (*clientcmdapi.Config, error) {
if d.kubeconfig != nil {
return d.kubeconfig, nil
Expand All @@ -472,10 +474,26 @@ func (d *initData) KubeConfig() (*clientcmdapi.Config, error) {
if err != nil {
return nil, err
}
d.kubeconfigOriginal = d.kubeconfig.DeepCopy()

if d.kubeconfigPath == kubeadmconstants.GetAdminKubeConfigPath() {
kubeconfigutil.PointKubeConfigToLocalAPIEndpoint(d.kubeconfig, &d.Cfg().LocalAPIEndpoint)
}

return d.kubeconfig, nil
}

// KubeConfigOriginal returns the original kubeconfig loaded from file, without any modifications.
func (d *initData) KubeConfigOriginal() (*clientcmdapi.Config, error) {
if d.kubeconfigOriginal == nil {
if _, err := d.KubeConfig(); err != nil {
return nil, err
}
}

return d.kubeconfigOriginal, nil
}

// KubeConfigDir returns the path of the Kubernetes configuration folder or the temporary folder path in case of DryRun.
func (d *initData) KubeConfigDir() string {
if d.dryRun {
Expand Down Expand Up @@ -520,8 +538,12 @@ func (d *initData) OutputWriter() io.Writer {

// getDryRunClient creates a fake client that answers some GET calls in order to be able to do the full init flow in dry-run mode.
func getDryRunClient(d *initData) (clientset.Interface, error) {
kubeconfig, err := d.KubeConfig()
if err != nil {
return nil, err
}
dryRun := apiclient.NewDryRun()
if err := dryRun.WithKubeConfigFile(d.KubeConfigPath()); err != nil {
if err := dryRun.WithKubeConfig(kubeconfig); err != nil {
return nil, err
}
dryRun.WithDefaultMarshalFunction().
Expand Down Expand Up @@ -549,7 +571,11 @@ func (d *initData) Client() (clientset.Interface, error) {
// and if the bootstrapping was not already done
if !d.adminKubeConfigBootstrapped && isDefaultKubeConfigPath {
// Call EnsureAdminClusterRoleBinding() to obtain a working client from admin.conf.
d.client, err = kubeconfigphase.EnsureAdminClusterRoleBinding(kubeadmconstants.KubernetesDir, nil)
d.client, err = kubeconfigphase.EnsureAdminClusterRoleBinding(
kubeadmconstants.KubernetesDir,
&d.Cfg().LocalAPIEndpoint,
nil,
)
if err != nil {
return nil, errors.Wrapf(err, "could not bootstrap the admin user in file %s", kubeadmconstants.AdminKubeConfigFileName)
}
Expand All @@ -570,30 +596,6 @@ func (d *initData) Client() (clientset.Interface, error) {
return d.client, nil
}

// WaitControlPlaneClient returns a basic client used for the purpose of waiting
// for control plane components to report 'ok' on their respective health check endpoints.
// It uses the admin.conf as the base, but modifies it to point at the local API server instead
// of the control plane endpoint.
func (d *initData) WaitControlPlaneClient() (clientset.Interface, error) {
config, err := clientcmd.LoadFromFile(d.KubeConfigPath())
if err != nil {
return nil, err
}
for _, v := range config.Clusters {
v.Server = fmt.Sprintf("https://%s",
net.JoinHostPort(
d.Cfg().LocalAPIEndpoint.AdvertiseAddress,
strconv.Itoa(int(d.Cfg().LocalAPIEndpoint.BindPort)),
),
)
}
client, err := kubeconfigutil.ToClientSet(config)
if err != nil {
return nil, err
}
return client, nil
}

// Tokens returns an array of token strings.
func (d *initData) Tokens() []string {
tokens := []string{}
Expand Down
7 changes: 6 additions & 1 deletion cmd/kubeadm/app/cmd/phases/init/bootstraptoken.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func runBootstrapToken(c workflow.RunData) error {
if err != nil {
return err
}
kubeconfig, err := data.KubeConfig()
kubeconfig, err := data.KubeConfigOriginal()
if err != nil {
return err
}
Expand Down Expand Up @@ -109,6 +109,11 @@ func runBootstrapToken(c workflow.RunData) error {
return err
}

// Create RBAC rules that allow the API server kubelet client to access the kubelet API
if err := nodebootstraptokenphase.AllowAPIServerToAccessKubeletAPI(client); err != nil {
return errors.Wrap(err, "error allowing API server to access kubelet API")
}

// Create the cluster-info ConfigMap with the associated RBAC rules
if err := clusterinfophase.CreateBootstrapConfigMapIfNotExists(client, kubeconfig); err != nil {
return errors.Wrap(err, "error creating bootstrap ConfigMap")
Expand Down
Loading