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

CCM Doesn't Work When VLAN IP Is Configured As Node's Internal IP #111

Closed
2 tasks done
lots0logs opened this issue Nov 30, 2022 · 2 comments · Fixed by #141
Closed
2 tasks done

CCM Doesn't Work When VLAN IP Is Configured As Node's Internal IP #111

lots0logs opened this issue Nov 30, 2022 · 2 comments · Fixed by #141
Assignees

Comments

@lots0logs
Copy link

lots0logs commented Nov 30, 2022

General:

  • Have you removed all sensitive information, including but not limited to access keys and passwords?
  • Have you checked to ensure there aren't other open or closed Pull Requests for the same bug/feature/question?

Bug Reporting

The problem is that the Linode API /instance/{instance_id}/ips endpoint does not include VLAN IP address in its response. That causes this check to fail because it does not find the configured IP address in the list of IPs that the CCM provided for the instance:

https://github.com/kubernetes-sigs/cloud-provider-azure/blob/deef381acb3c34b95223c3789e7a3edbbc32c1b4/pkg/nodemanager/nodemanager.go#L558

Expected Behavior

VLAN IP should be supported for the node's internal IP

Steps to Reproduce the Problem

  1. Deploy CCM onto a new single node RKE cluster with the internal IP set to VLAN IP
  2. Check logs of the CCM pod

Environment Specifications

Kubernetes: 1.21.7
RKE: 1.3.15

Screenshots, Code Blocks, and Logs

E1130 18:33:49.503962       1 node_controller.go:212] error syncing 'rancher-dev': failed to get node modifiers from cloud provider: failed to find kubelet node IP from cloud provider, requeuing
2022/11/30 18:34:22.375645 DEBUG RESTY
==============================================================================
~~~ REQUEST ~~~
GET  /v4/linode/instances/redacted  HTTP/1.1
HOST   : api.linode.com
HEADERS:
Accept: application/json
Authorization: Bearer redacted
Content-Type: application/json
User-Agent: linode-cloud-controller-manager linodego/v0.32.2 https://github.com/linode/linodego
BODY   :
***** NO CONTENT *****
------------------------------------------------------------------------------
~~~ RESPONSE ~~~
STATUS       : 200 OK
RECEIVED AT  : 2022-11-30T18:34:22.375520522Z
TIME DURATION: 95.928433ms
HEADERS      :
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter
Access-Control-Allow-Methods: HEAD, GET, OPTIONS, POST, PUT, DELETE
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status
Cache-Control: private, max-age=0, s-maxage=0, no-cache, no-store, private, max-age=60, s-maxage=60
Connection: keep-alive
Content-Length: 736
Content-Security-Policy: default-src 'none'
Content-Type: application/json
Date: Wed, 30 Nov 2022 18:34:22 GMT
Retry-After: 27
Server: nginx
Strict-Transport-Security: max-age=31536000
Vary: Authorization, X-Filter, Authorization, X-Filter
X-Accepted-Oauth-Scopes: linodes:read_only
X-Content-Type-Options: nosniff
X-Customer-Uuid: redacted
X-Frame-Options: DENY, DENY
X-Oauth-Scopes: *
X-Ratelimit-Limit: 800
X-Ratelimit-Remaining: 796
X-Ratelimit-Reset: 1669833290
X-Spec-Version: 4.141.0
X-Xss-Protection: 1; mode=block
BODY         :
{
"id": redacted,
"label": "redacted",
"group": "redacted",
"status": "running",
"created": "2022-11-28T23:38:51",
"updated": "2022-11-28T23:38:51",
"type": "g6-standard-4",
"ipv4": [
"redacted",
"redacted"
],
"ipv6": "redacted",
"image": null,
"region": "us-southeast",
"specs": {
"disk": 163840,
"memory": 8192,
"vcpus": 4,
"gpus": 0,
"transfer": 5000
},
"alerts": {
"cpu": 360,
"network_in": 10,
"network_out": 10,
"transfer_quota": 80,
"io": 10000
},
"backups": {
"enabled": false,
"available": false,
"schedule": {
"day": null,
"window": null
},
"last_successful": null
},
"hypervisor": "kvm",
"watchdog_enabled": true,
"tags": [
"redacted"
],
"host_uuid": "redacted"
}
==============================================================================
2022/11/30 18:34:22.496147 DEBUG RESTY
==============================================================================
~~~ REQUEST ~~~
GET  /v4/linode/instances/redacted/ips  HTTP/1.1
HOST   : api.linode.com
HEADERS:
Accept: application/json
Authorization: Bearer redacted
Content-Type: application/json
User-Agent: linode-cloud-controller-manager linodego/v0.32.2 https://github.com/linode/linodego
BODY   :
***** NO CONTENT *****
------------------------------------------------------------------------------
~~~ RESPONSE ~~~
STATUS       : 200 OK
RECEIVED AT  : 2022-11-30T18:34:22.496016304Z
TIME DURATION: 120.189321ms
HEADERS      :
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter
Access-Control-Allow-Methods: HEAD, GET, OPTIONS, POST, PUT, DELETE
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status
Cache-Control: private, max-age=0, s-maxage=0, no-cache, no-store, private, max-age=60, s-maxage=60
Connection: keep-alive
Content-Length: 973
Content-Security-Policy: default-src 'none'
Content-Type: application/json
Date: Wed, 30 Nov 2022 18:34:22 GMT
Retry-After: 27
Server: nginx
Strict-Transport-Security: max-age=31536000
Vary: Authorization, X-Filter, Authorization, X-Filter
X-Accepted-Oauth-Scopes: linodes:read_only
X-Content-Type-Options: nosniff
X-Customer-Uuid: redacted
X-Frame-Options: DENY, DENY
X-Oauth-Scopes: *
X-Ratelimit-Limit: 800
X-Ratelimit-Remaining: 798
X-Ratelimit-Reset: 1669833290
X-Spec-Version: 4.141.0
X-Xss-Protection: 1; mode=block
BODY         :
{
"ipv4": {
"public": [
{
"address": "redacted",
"gateway": "redacted",
"subnet_mask": "255.255.255.0",
"prefix": 24,
"type": "ipv4",
"public": true,
"rdns": "redacted",
"linode_id": redacted,
"region": "us-southeast"
}
],
"private": [
{
"address": "redacted",
"gateway": null,
"subnet_mask": "255.255.128.0",
"prefix": 17,
"type": "ipv4",
"public": false,
"rdns": null,
"linode_id": redacted,
"region": "us-southeast"
}
],
"shared": [],
"reserved": []
},
"ipv6": {
"slaac": {
"address": "redacted",
"gateway": "fe80::1",
"subnet_mask": "ffff:ffff:ffff:ffff::",
"prefix": 64,
"type": "ipv6",
"rdns": null,
"linode_id": redacted,
"region": "us-southeast",
"public": true
},
"link_local": {
"address": "fe80::f03c:93ff:fe09:0573",
"gateway": "fe80::1",
"subnet_mask": "ffff:ffff:ffff:ffff::",
"prefix": 64,
"type": "ipv6",
"rdns": null,
"linode_id": redacted,
"region": "us-southeast",
"public": false
},
"global": []
}
}
==============================================================================
@lots0logs lots0logs changed the title Error When Deploying CCM On New Cluster CCM Doesn't Work When VLAN IP Is Configured As Cluster's Internal IP Nov 30, 2022
@lots0logs lots0logs changed the title CCM Doesn't Work When VLAN IP Is Configured As Cluster's Internal IP CCM Doesn't Work When VLAN IP Is Configured As Node's Internal IP Nov 30, 2022
@glennpratt
Copy link
Contributor

Likely fix in #141

@glennpratt
Copy link
Contributor

@lots0logs hopefully #141 can be used as a workaround. Let us know!

I plan to do more testing and hopefully automate this feature in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants