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

Add Codespaces configuration dev container #113019

Open
craiglpeters opened this issue Oct 12, 2022 · 20 comments · May be fixed by #121561 or #124584
Open

Add Codespaces configuration dev container #113019

craiglpeters opened this issue Oct 12, 2022 · 20 comments · May be fixed by #121561 or #124584
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@craiglpeters
Copy link

craiglpeters commented Oct 12, 2022

What would you like to be added?

For contributors to Kubernetes, a configuration to assure that Codespaces will work with Kubernetes will enable the use of a cloud-based development environment to easily provision an environment with all the requirements and dependencies automatically installed and configured. This will make life easy for new and existing contributors when they are working on multiple branches with different dependencies, or don't have access to a computer or network powerful enough to build Kubernetes.

The Codespaces configuration consists of a Development Container (devcontainer) file devcontainer.json which encodes the configuration of the environment.

Why is this needed?

sig/contribex is working on a new self-paced course for Kubernetes contribution to be hosted on k8s.dev. Codespaces will be one option for working through the course material

cc: @mrbobbytables

@craiglpeters craiglpeters added the kind/feature Categorizes issue or PR as related to a new feature. label Oct 12, 2022
@k8s-ci-robot k8s-ci-robot added needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Oct 12, 2022
@k8s-ci-robot
Copy link
Contributor

@craiglpeters: The label(s) sig/contribex cannot be applied, because the repository doesn't have them.

In response to this:

/sig contribex

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/test-infra repository.

@craiglpeters
Copy link
Author

/sig contributor-experience

@k8s-ci-robot k8s-ci-robot added sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. and removed needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Oct 12, 2022
@MadhavJivrajani
Copy link
Contributor

@Debanitrkl
Copy link
Member

We had a discussion on permission based issues regarding enabling code spaces for k/k, I think it would be better to run it through SIG-Infra once to see how can we set it up for k/k, because at the moment building kubernetes on code spaces base tier isn't possible yet.

@craiglpeters
Copy link
Author

We had a discussion on permission based issues regarding enabling code spaces for k/k, I think it would be better to run it through SIG-Infra once to see how can we set it up for k/k, because at the moment building kubernetes on code spaces base tier isn't possible yet.

@Debanitrkl can you help me understand what you mean? I am currently testing building kubernetes in a default codespace and haven't faced any issues yet.

@mrbobbytables
Copy link
Member

We had a discussion on permission based issues regarding enabling code spaces for k/k, I think it would be better to run it through SIG-Infra once to see how can we set it up for k/k, because at the moment building kubernetes on code spaces base tier isn't possible yet.

AFAIK we don't need to do any permissions change to create a default code space. We don't have to configure it so spinning things up would come out of the orgs allocation.

@Debanitrkl
Copy link
Member

We had a discussion on permission based issues regarding enabling code spaces for k/k, I think it would be better to run it through SIG-Infra once to see how can we set it up for k/k, because at the moment building kubernetes on code spaces base tier isn't possible yet.

@Debanitrkl can you help me understand what you mean? I am currently testing building kubernetes in a default codespace and haven't faced any issues yet.

I was trying out the the make verify and make all and I get the following message:
High codespace CPU (98.5%) utilization detected. Consider stopping some processes for the best experience.

@Debanitrkl
Copy link
Member

Debanitrkl commented Oct 14, 2022

The Codespaces configuration consists of a Development Container (devcontainer) file devcontainer.json which encodes the configuration of the environment.

Also, since it directly spins-up a development environment, we need to have the pre-requisite environment configuration defined in devcontainer.json, but since that may vary for different use cases are we planning to have all the pre-requisites to be set-up by default in the environment.

@Debanitrkl
Copy link
Member

We had a discussion on permission based issues regarding enabling code spaces for k/k, I think it would be better to run it through SIG-Infra once to see how can we set it up for k/k, because at the moment building kubernetes on code spaces base tier isn't possible yet.

@Debanitrkl can you help me understand what you mean? I am currently testing building kubernetes in a default codespace and haven't faced any issues yet.

I was trying out the the make verify and make all and I get the following message: High codespace CPU (98.5%) utilization detected. Consider stopping some processes for the best experience.

Presently these all tests fail for less disk space on running make verify

FAILED   verify-publishing-bot.py       1s
========================
FAILED TESTS
========================
hack/make-rules/../../hack/verify-conformance-requirements.sh
hack/make-rules/../../hack/verify-golangci-lint.sh
hack/make-rules/../../hack/verify-govet.sh
hack/make-rules/../../hack/verify-import-aliases.sh
hack/make-rules/../../hack/verify-import-boss.sh
hack/make-rules/../../hack/verify-imports.sh
hack/make-rules/../../hack/verify-internal-modules.sh
hack/make-rules/../../hack/verify-mocks.sh
hack/make-rules/../../hack/verify-openapi-spec.sh
hack/make-rules/../../hack/verify-spelling.sh
hack/make-rules/../../hack/verify-typecheck.sh
hack/make-rules/../../hack/verify-vendor-licenses.sh
hack/make-rules/../../hack/verify-vendor.sh
hack/make-rules/../../hack/verify-yamlfmt.sh
hack/make-rules/../../hack/verify-publishing-bot.py
make: *** [Makefile:128: verify] Error 1

@craiglpeters
Copy link
Author

@Debanitrkl it seems that you are using a machine with too few resources. It may be the case that you don't (yet) have access to larger machines. Soon everyone will have access to larger machines, but I can help you get access to a larger machine to test on now.

@craiglpeters
Copy link
Author

Update: I tested with a 4 core codespace and could make verify without issue, and provided @Debanitrkl with access to the same to verify.

@yardenshoham
Copy link

I would also hope for gitpod

@mrbobbytables
Copy link
Member

We'd accept a gitpod config, but would need someone to take ownership of maintaining it.

@mrbobbytables
Copy link
Member

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Oct 17, 2022
@craiglpeters
Copy link
Author

cc: @pymander

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 16, 2023
@mrbobbytables
Copy link
Member

/remove-lifecycle stale
/lifecycle frozen

@k8s-ci-robot k8s-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jan 16, 2023
@BenTheElder
Copy link
Member

This seems to have moved beyond just a config file in the repo: kubernetes/test-infra#30454 (comment), kubernetes/org#4468

@Sharpz7
Copy link
Contributor

Sharpz7 commented Oct 9, 2023

@BenTheElder Just to be clear - I think support for devcontainers can come in many forms, based on speed to launch, complexity and reliability. Depending on how Kubernetes would like "per-repo" tools to work, the implementation can change.

@Sharpz7 Sharpz7 linked a pull request Oct 27, 2023 that will close this issue
@bells17
Copy link
Contributor

bells17 commented Apr 27, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
10 participants