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

Efficient development with the bosh-agent #312

Merged

Conversation

anshrupani
Copy link
Contributor

@anshrupani anshrupani commented Jul 24, 2023

This PR provides suggestions on how to test local changes in the bosh-agent in development environments. Any feedback or ideas are welcome :)

@anshrupani anshrupani force-pushed the test-bosh-agent-on-dev-environments branch from 1e2e5c3 to 3bba88a Compare July 24, 2023 14:09
Copy link

@mvach mvach left a comment

Choose a reason for hiding this comment

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

nice

@ten4o
Copy link
Contributor

ten4o commented Jul 26, 2023

Hi @anshrupani, I'm an apple silicon user and I don't understand why enabling CGO_ENABLE is significant. Can you elaborate a little bit more? It seems more relevant for me to mention that I should build with GOOS=linux and GOARCH=amd64.

@rkoster rkoster requested a review from jpalermo July 27, 2023 15:05
@jpalermo
Copy link
Member

I'd agree, although I'm not super knowledgable in the details of CGO, if you're on apple silicon you'll need to be building binaries for linux if you want to use them on a VM, and CGO gets disabled when cross compiling.

It does seem that building with CGO disabled fails on apple silicon if you are targeting apple silicon as the OS, but I don't see anything in the dev docs about why you'd want to be building an apple silicon agent.

@anshrupani
Copy link
Contributor Author

I am not very familiar with cross-compiling across various architectures, but weirdly enough I found the exact same issue I faced (with CGO_ENABLED = 0) on a github issue reported towards cloudfoundry/gosigar. I followed the suggestion there, and it worked for me. However, setting GOOS=linux and GOARCH=amd64 does not work for me. Here's the error I get in general without setting CGO_ENABLED = 0:

Building with go version go1.20.6 darwin/arm64...
# github.com/cloudfoundry/gosigar
vendor/github.com/cloudfoundry/gosigar/concrete_sigar.go:20:12: cpuUsage.Get undefined (type Cpu has no field or method Get)
vendor/github.com/cloudfoundry/gosigar/concrete_sigar.go:30:14: cpuUsage.Get undefined (type Cpu has no field or method Get)
vendor/github.com/cloudfoundry/gosigar/concrete_sigar.go:49:11: l.Get undefined (type LoadAverage has no field or method Get)
vendor/github.com/cloudfoundry/gosigar/concrete_sigar.go:55:11: m.Get undefined (type Mem has no field or method Get)
vendor/github.com/cloudfoundry/gosigar/concrete_sigar.go:61:11: m.GetIgnoringCGroups undefined (type Mem has no field or method GetIgnoringCGroups)
vendor/github.com/cloudfoundry/gosigar/concrete_sigar.go:67:11: s.Get undefined (type Swap has no field or method Get)
vendor/github.com/cloudfoundry/gosigar/sigar_shared.go:12:21: procTime.Get undefined (type *ProcTime has no field or method Get)

@beyhan beyhan merged commit 886060f into cloudfoundry:main Aug 10, 2023
max-soe added a commit to max-soe/community that referenced this pull request Jun 20, 2024
# Foundational Infrastructure: VM deployment lifecycle (BOSH) Contributions
### PRs Commented on/Reviewed:
- 2024-05-02T00:33:35Z: [Refactor the `client` package](cloudfoundry/bosh-s3cli#38)
### Issues that may be relevant:
- 2023-04-28T11:54:45Z: [BOSH Agent not reachable due to issues with blobstore settings](cloudfoundry/bosh-aws-cpi-release#149)
- 2023-05-15T09:53:53Z: [Update CONTRIBUTING.md](cloudfoundry/bosh#2443)
- 2023-05-16T08:07:09Z: [support instance tags and include relevant specs](cloudfoundry/bosh#2444)
- 2023-05-24T05:01:42Z: [Prevent gcc version check for non xenial stemcells](cloudfoundry/bosh-azure-cpi-release#685)
- 2023-05-31T17:49:02Z: [Support instance group tags](cloudfoundry/bosh#2448)
- 2023-07-24T14:07:16Z: [Efficient development with the bosh-agent](cloudfoundry/bosh-agent#312)
- 2023-08-14T14:17:13Z: [Enable support for verify-ca SSL mode for cases when hostname verification is not possible/required](cloudfoundry/bosh#2461)
- 2023-08-14T14:20:56Z: [Enable support for verify-ca SSL mode for cases when hostname verification is not possible/required](cloudfoundry/bosh#2462)
- 2023-08-17T11:42:28Z: [Use config properties with hyphens to prevent verification clashes in the agent](cloudfoundry/bosh-azure-storage-cli#9)
- 2023-08-17T11:53:04Z: [Unifying azure storage cli config across director and agent to prevent conflicts](cloudfoundry/bosh#2465)
- 2023-11-14T12:56:35Z: [Truncate downloaded blobs](cloudfoundry/bosh-azure-storage-cli#13)
- 2023-11-16T10:19:43Z: [Adding disaster recovery documentation for bosh in case of AZ outages](cloudfoundry/docs-bosh#815)
- 2023-12-18T14:27:56Z: [set server-side timeout for GET requests](cloudfoundry/bosh-azure-storage-cli#14)
- 2024-02-09T16:27:17Z: [retry CPI calls in case of SSL_read errors as well](cloudfoundry/bosh-azure-cpi-release#689)
- 2024-02-16T12:56:19Z: [fix failing unit tests](cloudfoundry/bosh-azure-cpi-release#690)
- 2024-04-24T12:44:52Z: [Revert ssl read workaround](cloudfoundry/bosh-azure-cpi-release#694)
- 2024-04-24T15:23:13Z: [support swift tempURLs](cloudfoundry/bosh-s3cli#37)
- 2024-05-02T13:58:07Z: [fix swift tempURLs and add unit/integration tests](cloudfoundry/bosh-s3cli#39)
### Code contributions:
- 2022-11-15T15:17:30Z: [Initial client offering Put functionality (cloudfoundry#2)](cloudfoundry/bosh-azure-storage-cli@9deb735)
- 2022-11-16T07:40:28Z: [initial get functionality (cloudfoundry#3)](cloudfoundry/bosh-azure-storage-cli@77df9a7)
- 2022-11-17T15:17:26Z: [initial exists functionality (cloudfoundry#6)](cloudfoundry/bosh-azure-storage-cli@e82b78b)
- 2023-05-23T05:52:41Z: [prevent gcc version check for fast_jsonparser for bionic and jammy stemcells](cloudfoundry/bosh-azure-cpi-release@dfc9402)
- 2023-05-24T05:05:08Z: [prevent gcc version check for fast_jsonparser for bionic and jammy stemcells](cloudfoundry/bosh-azure-cpi-release@dfc9402)
- 2023-07-24T13:57:00Z: [Efficient development with the bosh-agent](cloudfoundry/bosh-agent@3bba88a)
- 2023-07-24T14:09:00Z: [Efficient development with the bosh-agent](cloudfoundry/bosh-agent@3bba88a)
- 2023-08-14T14:06:32Z: [Enable support for verify-full SSL mode for cases when hostname verification is not possible/required](cloudfoundry/bosh@45a062f)
- 2023-08-17T11:39:50Z: [Use config properties with hyphens to prevent verification clashes in the agent](cloudfoundry/bosh-azure-storage-cli@1c46f43)
- 2023-08-17T11:45:44Z: [Unifying azure storage cli config across director and agent to prevent conflicts](cloudfoundry/bosh@d5cc637)
- 2023-11-16T10:12:44Z: [Adding disaster recovery documentation for bosh in case of AZ outages](cloudfoundry/docs-bosh@3427377)
- 2023-12-06T20:07:15Z: [updated docs](cloudfoundry/docs-bosh@7be327e)
- 2023-12-06T20:48:22Z: [updated docs](cloudfoundry/docs-bosh@7be327e)
- 2023-12-18T14:21:43Z: [set server-side timeout for GET requests](cloudfoundry/bosh-azure-storage-cli@759862b)
- 2023-12-18T15:09:12Z: [include comment for reasoning](cloudfoundry/bosh-azure-storage-cli@749bf5a)
- 2023-12-19T09:10:09Z: [add timeout for PUT requests as well](cloudfoundry/bosh-azure-storage-cli@22372ec)
- 2023-12-21T12:49:26Z: [include further changes and comments](cloudfoundry/docs-bosh@95ad588)
- 2023-12-21T14:02:00Z: [include further changes and comments](cloudfoundry/docs-bosh@95ad588)
- 2024-02-09T16:16:21Z: [retry CPI calls in case of SSL_read errors as well](cloudfoundry/bosh-azure-cpi-release@f291148)
- 2024-02-13T12:49:12Z: [fixed typo](cloudfoundry/bosh-azure-cpi-release@d15f44a)
- 2024-02-15T12:27:32Z: [make the changes more readable](cloudfoundry/bosh-azure-cpi-release@f7dd849)
- 2024-02-16T12:54:10Z: [fix failing unit tests](cloudfoundry/bosh-azure-cpi-release@28f4ab3)
- 2024-04-17T14:08:21Z: [support swift tempURLs](cloudfoundry/bosh-s3cli@c6fc710)
- 2024-04-24T12:07:12Z: [Revert "fix failing unit tests"](cloudfoundry/bosh-azure-cpi-release@7a2e45f)
- 2024-04-24T12:07:31Z: [Revert "Remove retry logic"](cloudfoundry/bosh-azure-cpi-release@1a6dad7)
- 2024-04-24T12:39:47Z: [Revert "make the changes more readable"](cloudfoundry/bosh-azure-cpi-release@913ec21)
- 2024-04-24T12:40:07Z: [Revert "Ignore EOF Error during ssl_read"](cloudfoundry/bosh-azure-cpi-release@7e8817c)
- 2024-04-24T12:40:22Z: [Revert "fixed typo"](cloudfoundry/bosh-azure-cpi-release@b3f1c99)
- 2024-04-24T12:40:33Z: [Revert "retry CPI calls in case of SSL_read errors as well"](cloudfoundry/bosh-azure-cpi-release@0b1b2bc)
- 2024-05-02T13:43:27Z: [fix swift tempURLs and add unit/integration tests](cloudfoundry/bosh-s3cli@d3389dd)
- 2024-05-02T14:01:48Z: [fix swift tempURLs and add unit/integration tests](cloudfoundry/bosh-s3cli@d3389dd)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

6 participants