Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OCPBUGS-35462: rebase CPO master on upstream 1.30 #286

Closed
wants to merge 24 commits into from

Conversation

EmilienM
Copy link
Member

dulek and others added 24 commits January 29, 2024 17:54
Seems like in 1.29 there are issues with cri-dockerd. There's no reason
to use Docker anymore and this commit makes sure k3s uses containerd.
This commit makes sure we're fetching and putting the logs of the
DevStack services as well as k3s into the artifacts for every CI job.
PR kubernetes#2468 used an incorrect condition when updating the listener timeout
values and only updates them when listener's allowedCIDRs are updated.
This commit fixes this by making sure timeout values are checked too.
* Add support to only run selected CSI services of the cinder CSI driver

* Add support to only run selected CSI services of the manila CSI driver

* Clean up source files to successfully complete linting

* Update description of the `nodeid` command line parameter

* Update documentation for the CSI service parameters

This commit updates the documentation for the CSI controller and node service providing parameters.
The test image was recently changed and now ships with go1.22rc2. We
need to use a version of golangci-lint that is compatible with it.
* fix: add missing labels to resources
otherwise upgrades fail with `resource already exists, add missing labels`

* chore: bump version
…or specify an existing floating IP (kubernetes#2166)

* Add annotation to keep floationIP

* Add annotation to specify floating ip to use on LB when creating ingress

* Add doc for octavia.ingress.kubernetes.io/keep-floatingip & octavia.ingress.kubernetes.io/floatingip annotations

* Remove debug logs

* Change annotation syntax, don't create a new FIP, if user requested a particular one, add additional check if FIP already binded to correct port, add ability to update FIP of an existing ingress by updating annotation

* Add missing else

* Log format

* Create fonctions to attach/detach fips to port

* Fix bug when no fip provided in annotation the lb was created in private mode and improve openstack neutron fip logic
`subnet-id` is cumbersome to use in dual-stack environments, this commit
documents that.
KMS v1 API is deprecated and in v1.29 core K8s won't allow it with
default feature gates set. This commit makes sure we're proposing
configuration of v2 API in example EncryptionConfigs.
In OpenStack IPv6 that uses GUAs don't require NAT
to access the outside world, so IPv6 can be
rechable without Floating IPs, which makes the
enforcement of IPv6 LB as internal in CPO not necessary.
This commit removes this enforcement, which results in
IPv6 load-balancers being allowed to be shared between
Services. Also, now it's possible to make the load-balancer
use the IPv6 stateful address defined in the loadBalancerIP
of the Service.
* magnum-auto-healer: Stop registering klog options

Per [1], this is no longer desirable. We are already registering the
minimal options that the KEP suggests so we can simply stop registering
the others.

[1] https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components

Signed-off-by: Stephen Finucane <[email protected]>

* client-keystone-auth: Stop registering klog options

As with magnum-auto-healer, we don't need/want to do this anymore.
Don't.

Signed-off-by: Stephen Finucane <[email protected]>

* cinder-csi-plugin: Use binary name in help page

Signed-off-by: Stephen Finucane <[email protected]>

* client-keystone-auth: Migrate to cobra

This one is relatively trivial since the 'Run' function in
'k8s.io/component-base/cli' does most of the heavy lifting for us now,
including registering logging arguments.

Signed-off-by: Stephen Finucane <[email protected]>

* k8s-keystone-auth: Migrate to cobra

This one is slightly trickier due to how we're doing configuration but
there's still nothing crazy confusing here.

Signed-off-by: Stephen Finucane <[email protected]>

* occm: Remove unnecessary flag handling code

k8s.io/cloud-provider switched to cobra some time back [1] and cobra
uses 'pflag' rather than 'flag' under the hood. As such, there's no
reason to keep the handling code for 'flag' options around. Remove it.

[1] https://github.com/kubernetes/cloud-provider/blob/v0.28.0/app/controllermanager.go#L87-L124

Signed-off-by: Stephen Finucane <[email protected]>

* occm: Register additional options correctly

The 'NewCloudControllerManagerCommand' function, which generates the cobra
Command that forms the basis of a cloud provider binary, accepts an
'additionalFlags' argument that allows us to (surprise) pass in
additional provider-specific arguments. We were not making use of this,
which means our options were not showing in the usage string shown on
e.g. '--help'. Correct this on our end, while we wait for the fix in
k8s.io/cloud-provider [1] to close the loop fully.

In additional, move our 'InitLogs' call higher up the function to before
our first logging call so that everything is initialised correctly.

[1] kubernetes/kubernetes#120522

Signed-off-by: Stephen Finucane <[email protected]>

* magnum-auto-healer: Remove use of 'init' methods

Instead, register the health checks and cloud provider plugins on
controller start up. This avoids side-effects from merely importing the
modules - which are polluting the output of '--help' - and is generally
"less weird".

To do this, we must make the registration methods part of the public API
and remove the 'pkg/autohealing/cloudprovider/register' package in
favour of a public registration method in the
'pkg/autohealing/cloudprovider/openstack' package.

Signed-off-by: Stephen Finucane <[email protected]>

---------

Signed-off-by: Stephen Finucane <[email protected]>
Seems like the point explaining how to promote images from staging is
gone, this commit adds it back, fixes formatting and moves the file into
the `docs` directory.
It's a common issue that clusters are deployed with the default
`--cluster-name=kubernetes` and later on it's discovered that next
deployments on the same cloud will have conflicts when trying to manage
LBs of the same namespace and name.

This commit aims at allowing to change the cluster-name on a running
environment and handling all the renames of the LB resources and their
tags.
…ernetes#2569)

* define availability zone for snapshot backup

* fix to volume backup & restore creation

* add doc
The above option seems to be causing CCM to create clients using
ServiceAccount from the `kube-system` namespace, so requires users to
either run in `kube-system` namespace, or manage 2 ServiceAccounts, one
in `kube-system` and other in regular CCM namespace. See [1].

This commit changes this setting.

[1] https://github.com/kubernetes/cloud-provider/blob/c3862938334ba18226098015193374fda40ab7a9/options/options.go#L230-L237
The GitHub account brtknr does not exist anymore and our chart linter
complains about this. This commit adds Matt and Michał as the maintainers.

Co-authored-by: Michał Dulko <[email protected]>
I also needed to flip order of mocks in Cinder CSI nodeserver tests and
honestly I'm not exactly sure why.
* KEP-1860: Add support for LoadBalancer ipMode

* cleaner: use assertEqual for test
* Bump versions for 1.30

* use rc2 for k3s

---------

Co-authored-by: Michał Dulko <[email protected]>
…rvices (kubernetes#2603)

* POC of TargetNodeLabels selector on OpenStack LB

* Fix type errors

* Update implementation of getKeyValuePropertiesFromServiceAnnotation

* gofmt -w -s ./pkg

* Polish the code and add documentation

---------

Co-authored-by: Ririko Nakamura <[email protected]>
Co-authored-by: kayrus <[email protected]>
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jun 14, 2024
@openshift-ci-robot
Copy link

@EmilienM: This pull request references Jira Issue OCPBUGS-35462, which is invalid:

  • expected the bug to be in one of the following states: NEW, ASSIGNED, POST, but it is ON_QA instead

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

In response to this:

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot added the jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. label Jun 14, 2024
@openshift-ci openshift-ci bot requested review from mdbooth and pierreprinetti June 14, 2024 12:36
Copy link

openshift-ci bot commented Jun 14, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: EmilienM

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

The pull request process is described here

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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 14, 2024
@EmilienM
Copy link
Member Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jun 14, 2024
@openshift-ci-robot
Copy link

@EmilienM: This pull request references Jira Issue OCPBUGS-35462, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.17.0) matches configured target version for branch (4.17.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)

No GitHub users were found matching the public email listed for the QA contact in Jira ([email protected]), skipping review request.

In response to this:

/jira refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Copy link

openshift-ci bot commented Jun 14, 2024

@EmilienM: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-openstack a98f558 link true /test e2e-openstack
ci/prow/images a98f558 link true /test images
ci/prow/e2e-openstack-csi-manila a98f558 link true /test e2e-openstack-csi-manila
ci/prow/unit a98f558 link true /test unit
ci/prow/e2e-openstack-csi-cinder a98f558 link false /test e2e-openstack-csi-cinder

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@EmilienM EmilienM closed this Jun 14, 2024
@openshift-ci-robot
Copy link

@EmilienM: This pull request references Jira Issue OCPBUGS-35462. The bug has been updated to no longer refer to the pull request using the external bug tracker.

In response to this:

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@EmilienM EmilienM deleted the sync-master branch June 14, 2024 12:47
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. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.
Projects
None yet
Development

Successfully merging this pull request may close these issues.