Skip to content

[pull] master from kubernetes:master - #1924

Open
pull[bot] wants to merge 8486 commits into
next-stack:masterfrom
kubernetes:master
Open

[pull] master from kubernetes:master#1924
pull[bot] wants to merge 8486 commits into
next-stack:masterfrom
kubernetes:master

Conversation

@pull

@pull pull Bot commented Oct 24, 2021

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull Bot added the ⤵️ pull label Oct 24, 2021
cheftako and others added 29 commits June 18, 2026 23:03
Initially the LB sent traffic to both.
The DNS None is a new case.
Now we only send traffic to the APIServer in this case.
This protects the Control Plane nodes to do core controller work.
Remove separate tests.
Regenerated docs.
Fixing LB behavior when you have both APIServer and Control Plane.
Remove namespace from DO ClusterRole
chore(channels): promote to stable, bump node images, update recommended kOps versions
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@df4cb1c...9c091bb)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…ctions/checkout-7.0.0

build(deps): bump actions/checkout from 6.0.3 to 7.0.0
In e2e, `kops create cluster --channel=alpha` reads the channel from the
kops master branch, so a PR's edits to channels/alpha or channels/stable
are never exercised by its own e2e jobs.

When kops is built from the PR checkout, the deployer now rewrites
--channel to a file:// path into that checkout's channels/ directory
(defaulting to alpha when --channel is unset), so the build uses the PR's
channels. Downloaded release/marker binaries don't match the checkout and
keep using master's channels.
scaletest: bind etcd metrics to all interfaces
e2e: test the PR's own channels, not master's
The externalTrafficPolicy=Local source-IP-preservation tests only fail on
Cilium (the client IP is SNATed to a pod IP instead of being preserved),
tracked upstream in cilium/cilium#37613. Move the "implement NodePort and
HealthCheckNodePort correctly when ExternalTrafficPolicy changes" skip into
the Cilium block next to its sibling so other CNIs run the test.

The hostNetwork "function for service endpoints" test was fixed in k8s 1.37
by kubernetes/kubernetes#139819 (it now reads spec.nodeName via the Downward
API instead of os.Hostname()), so drop its skip gate from < 1.38 to < 1.37.

Also clean up stale/incorrect issue references in the surrounding comments
(wrong Azure issue, superseded hostname WIP PR, and the unrelated #129221).
tests/e2e: refine externalTrafficPolicy=Local and hostNetwork skips
Grow slices for explicit indexes while processing --set paths, so paths like cluster.spec.addons[0].manifest can create the first element.
Configure the scenario to install Gateway API CRDs via cluster.spec.addons, using the Gateway API version documented by Istio 1.29.
Allow setting missing slice elements from the command line
Signed-off-by: Ciprian Hacman <ciprian@hakman.dev>
Add managed Karpenter EC2NodeClass and NodePool
Preperation for something like #18495.
Moving away from direct comparison (== or !=) on IG role.
Using helper methods such as HasNode() or HasControlPlane().
Also added a hack test so we don't backtrack.
Should help prepare for supporting more control plane roles.
The "Services should implement NodePort and HealthCheckNodePort correctly
when ExternalTrafficPolicy changes" test was previously gated to Cilium
only, but the e2e-kops-aws-cni-* periodic jobs show it also fails on
flannel, kopeio and kube-router: the client source IP is SNATed to a pod IP
instead of being preserved (kube-router instead times out reaching the local
endpoint). It is the sole failure in those three jobs' latest runs.

Move it out of the Cilium block into a condition covering cilium, flannel,
kopeio and kube-router. amazon-vpc, calico and kindnet preserve the source
IP and continue running the test.

The sibling "externalTrafficPolicy=Local for type=NodePort" test passes on
every non-Cilium CNI, so it stays gated to Cilium only.
kubernetes-prow Bot and others added 30 commits July 30, 2026 18:03
chore(networking): bump aws-cni to version 1.22.4
pkg/dns/hosts (the /etc/hosts writer used by none-DNS clusters) and
pkg/etcd (etcd cluster spec parsing from volume tags) are still used
outside protokube, so relocate them ahead of the protokube removal.
protokube temporarily imports the new locations.
protokube no longer had any responsibilities after the gossip DNS
removal: nodes stopped installing and running it, and its only remaining
function was serving gossip DNS. Delete the protokube tree, the forked
memberlistmesh library, and the gcediscovery package whose only consumer
was protokube's GCE volume provider. Remove the protokube build targets
and stop publishing its release assets.

The gossip well-known ports are kept (and the two dns-controller ones
restored) as Deprecated constants so the port numbers are not reused.

The release promotion and validation scripts learn an OPTIONAL_BINARIES
mechanism, probing artifacts.k8s.io per version, so older releases that
still ship protokube (and channels, dropped in kOps 1.36) keep full
coverage while newer releases skip them. Only a confirmed 404 counts as
absent; any other probe outcome fails the scripts.
github.com/hashicorp/memberlist and github.com/weaveworks/mesh are no
longer used after the protokube removal.
Removed concept of CCM node as it is dynamic.
Fixed KubController -> KubeController.
Added setting kops role labels on nodes via kops-channel.
Fixed APIServer label test.
Fix IG HasAPIServer to RunsAPIServer
docs: gossip removal in kOps 1.37 and migration guide
The DIGITALOCEAN_ACCESS_TOKEN, HCLOUD_TOKEN and SCW_* exports in the
bootstrap script existed only for protokube's gossip seed discovery.
Workers stopped receiving them in kOps 1.36 and protokube itself was
removed in kOps 1.37, so the control-plane exports and their
persistence in /etc/sysconfig/kops-configuration have no consumer
left. All remaining consumers (etcd-manager, kops-controller,
dns-controller, CCM, CSI) receive credentials via manifests built at
kops update time.

Also write /etc/sysconfig/kops-configuration with mode 0600; it can
still contain state store and OpenStack credentials and was
previously world-readable.
Skip the dns-controller Route 53 grant on the control-plane instance
role when useServiceAccountExternalPermissions is set; dns-controller
and external-dns get dedicated IAM roles in that mode, matching how
the other addon permissions are handled.

Scope the kube-router and kindnet ec2:ModifyInstanceAttribute grants
to cluster-tagged instances, matching the CCM and IRSA variants of
the same permission. Add golden coverage for the kube-router node
policy.
Narrow instance cloud permissions to actual consumers
The list of expected files in Go was a second copy of the test data
directory, which now also has to describe conditional output: an
instance role that needs no permissions has no inline IAM policy.

Nothing is lost by dropping it. hack/update-expected.sh never deletes
existing expected files, so a file that is wrongly no longer generated
keeps failing the comparison until its expected file is deleted too.
Grant ec2:DescribeInstanceTypes only where something on the instance
calls it: nodeup Nvidia GPU detection and the kubelet MaxPods
calculation for AWS VPC CNI and Cilium ENI IPAM. The cluster
autoscaler grant now honors awsUseStaticInstanceList, whose branch was
a no-op because the action was also inserted unconditionally.

Drop ec2:DescribeRegions from the etcd-manager permissions, as it
reads the region from the instance metadata service. Move
ec2:DescribeInstances to a kops-controller helper, which needs it for
node verification and identification independently of etcd-manager.

Render policies without statements as empty documents instead of
erroring, so that roles which need no permissions, such as the bastion
role, have no inline policy. Updating an existing cluster deletes the
policy created for it before.
…sions

Narrow instance describe permissions
Clean up remaining gossip removal leftovers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.