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

Updated references from awslabs to aws #847

Merged
merged 2 commits into from
Nov 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ assignees: ''
---

## Version
<!-- https://github.com/awslabs/karpenter/releases -->
<!-- https://github.com/aws/karpenter/releases -->
**Karpenter**: v0.0.0
<!-- kubectl version | grep Server -->
**Kubernetes**: v1.0.0
Expand Down
4 changes: 2 additions & 2 deletions .golangci.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# See https://github.com/golangci/golangci-lint/blob/master/.golangci.example.yml
run:
tests: false

timeout: 5m

build-tags:
Expand Down Expand Up @@ -30,4 +30,4 @@ linters:

linters-settings:
gci:
local-prefixes: github.com/awslabs/karpenter
local-prefixes: github.com/aws/karpenter
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ RELEASE_REPO ?= public.ecr.aws/karpenter
RELEASE_VERSION ?= $(shell git describe --tags --always)

## Inject the app version into project.Version
LDFLAGS ?= "-ldflags=-X=github.com/awslabs/karpenter/pkg/utils/project.Version=$(RELEASE_VERSION)"
LDFLAGS ?= "-ldflags=-X=github.com/aws/karpenter/pkg/utils/project.Version=$(RELEASE_VERSION)"
GOFLAGS ?= "-tags=$(CLOUD_PROVIDER) $(LDFLAGS)"
WITH_GOFLAGS = GOFLAGS=$(GOFLAGS)
WITH_RELEASE_REPO = KO_DOCKER_REPO=$(RELEASE_REPO)
Expand Down Expand Up @@ -52,8 +52,8 @@ licenses: ## Verifies dependency licenses and requires GITHUB_TOKEN to be set
apply: ## Deploy the controller into your ~/.kube/config cluster
helm template --include-crds karpenter charts/karpenter --namespace karpenter \
$(HELM_OPTS) \
--set controller.image=ko://github.com/awslabs/karpenter/cmd/controller \
--set webhook.image=ko://github.com/awslabs/karpenter/cmd/webhook \
--set controller.image=ko://github.com/aws/karpenter/cmd/controller \
--set webhook.image=ko://github.com/aws/karpenter/cmd/webhook \
| $(WITH_GOFLAGS) ko apply -B -f -

delete: ## Delete the controller from your ~/.kube/config cluster
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
![Build Status](https://img.shields.io/github/workflow/status/awslabs/karpenter/CI/main)
![GitHub stars](https://img.shields.io/github/stars/awslabs/karpenter)
![GitHub forks](https://img.shields.io/github/forks/awslabs/karpenter)
[![GitHub License](https://img.shields.io/badge/License-Apache%202.0-ff69b4.svg)](https://github.com/awslabs/karpenter/blob/main/LICENSE)
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/awslabs/karpenter/issues)
![Build Status](https://img.shields.io/github/workflow/status/aws/karpenter/CI/main)
![GitHub stars](https://img.shields.io/github/stars/aws/karpenter)
![GitHub forks](https://img.shields.io/github/forks/aws/karpenter)
[![GitHub License](https://img.shields.io/badge/License-Apache%202.0-ff69b4.svg)](https://github.com/aws/karpenter/blob/main/LICENSE)
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/aws/karpenter/issues)

![](website/static/banner.png)
> **Note**: Karpenter is in active development and should be considered **pre-production** software. Backwards incompatible API changes are possible in future releases and support is best-effort by the Karpenter community.
Expand Down Expand Up @@ -38,7 +38,7 @@ Follow the setup recommendations of your cloud provider.
- [AWS](https://karpenter.sh/docs/getting-started/)

> ❗ Note: There may be backwards incompatible changes between versions when upgrading before v0.3.0. Karpenter follows [Kubernetes versioning guidelines](https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-changes). Before upgrading, we recommend:
> - Check the [release notes](https://github.com/awslabs/karpenter/releases)
> - Check the [release notes](https://github.com/aws/karpenter/releases)
> - Uninstall Karpenter
> - Remove all nodes launched by karpenter
> - Reinstall Karpenter
Expand Down
12 changes: 6 additions & 6 deletions TROUBLESHOOTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```

### Unable to delete nodes after uninstalling Karpenter
Karpenter adds a [finalizer](https://github.com/awslabs/karpenter/pull/466) to nodes that it provisions to support graceful node termination. If Karpenter is uninstalled, these finalizers will cause the API Server to block deletion until the finalizers are removed.
Karpenter adds a [finalizer](https://github.com/aws/karpenter/pull/466) to nodes that it provisions to support graceful node termination. If Karpenter is uninstalled, these finalizers will cause the API Server to block deletion until the finalizers are removed.

You can fix this by patching the node objects:
- `kubectl edit node <node_name>` and remove the line that says `karpenter.sh/termination` in the finalizers field.
Expand All @@ -25,13 +25,13 @@ kubectl get nodes -ojsonpath='{range .items[*].metadata}{@.name}:{@.finalizers}{
```

### Nil issues with Karpenter reallocation
If you create a Karpenter Provisioner while the webhook to default it is unavailable, it's possible to get unintentionally nil fields. [Related Issue](https://github.com/awslabs/karpenter/issues/463).
If you create a Karpenter Provisioner while the webhook to default it is unavailable, it's possible to get unintentionally nil fields. [Related Issue](https://github.com/aws/karpenter/issues/463).

You may see some logs like this.
```{bash}
github.com/awslabs/karpenter/pkg/controllers/provisioning/v1alpha1/reallocation/utilization.go:84 +0x688
github.com/awslabs/karpenter/pkg/controllers/provisioning/v1alpha1/reallocation.(*Controller).Reconcile(0xc000b004c0, 0x23354c0, 0xc000e209f0, 0x235e640, 0xc002566c40, 0x200c786, 0x5, 0xc00259c1b0, 0x1) github.com/awslabs/karpenter/pkg/controllers/provisioning/v1alpha1/reallocation/controller.go:72 +0x65
github.com/awslabs/karpenter/pkg/controllers.(*GenericController).Reconcile(0xc000b00720, 0x23354c0, 0xc000e209f0, 0xc001db9be0, 0x7, 0xc001db9bd0, 0x7, 0xc000e209f0, 0x7fc864172d20, 0xc0000be2a0, ...)
github.com/aws/karpenter/pkg/controllers/provisioning/v1alpha1/reallocation/utilization.go:84 +0x688
github.com/aws/karpenter/pkg/controllers/provisioning/v1alpha1/reallocation.(*Controller).Reconcile(0xc000b004c0, 0x23354c0, 0xc000e209f0, 0x235e640, 0xc002566c40, 0x200c786, 0x5, 0xc00259c1b0, 0x1) github.com/aws/karpenter/pkg/controllers/provisioning/v1alpha1/reallocation/controller.go:72 +0x65
github.com/aws/karpenter/pkg/controllers.(*GenericController).Reconcile(0xc000b00720, 0x23354c0, 0xc000e209f0, 0xc001db9be0, 0x7, 0xc001db9bd0, 0x7, 0xc000e209f0, 0x7fc864172d20, 0xc0000be2a0, ...)
```
This is fixed in Karpenter v0.2.7+. Reinstall Karpenter on the latest version.

Expand All @@ -40,4 +40,4 @@ If you have an EC2 instance get launched that is stuck in pending and ultimately

> No entry for c6i.xlarge in /etc/eks/eni-max-pods.txt

This means that your CNI plugin is out of date. You can find instructions on how to update your plugin [here](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html).
This means that your CNI plugin is out of date. You can find instructions on how to update your plugin [here](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html).
20 changes: 10 additions & 10 deletions WORKING_GROUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ Please contribute to our meeting notes by opening a PR.
- CPU/GPU/Memory
- What about storage? Should we support all resource requests?
- spec.limits.resources vs spec.maxResources
- This should support folks running separate provisioners per team.
- This should support folks running separate provisioners per team.
- Helps a cluster admin enforce a limit on each team.
- Setting GPU limits to 0 can help enforce that no GPU instances are launched at all.
- Discussed resource quotas and why that doesn't help us implement limits in this form.
- With quotas you can limit resourceCounts (number of PVs) but not resource properties (say size of a PV)
- Setting GPU limits to 0 can help enforce that no GPU instances are launched at all.
- Discussed resource quotas and why that doesn't help us implement limits in this form.
- With quotas you can limit resourceCounts (number of PVs) but not resource properties (say size of a PV)
# Meeting notes (10/28/21)
## Attendees
- Brandon Wagner
Expand Down Expand Up @@ -105,7 +105,7 @@ Please contribute to our meeting notes by opening a PR.
- Shaun

## Announcements:
- v1alpha4 Proposal is in [PR - MERGED](https://github.com/awslabs/karpenter/pull/676)
- v1alpha4 Proposal is in [PR - MERGED](https://github.com/aws/karpenter/pull/676)

## Notes:
- [EL] Working on Cluster API provider for Karpenter. We have a management cluster and a workload cluster. Need to get a kubeconfig for the cloud provider to use in order to create Cluster API resources like MachineSets.
Expand All @@ -116,7 +116,7 @@ Please contribute to our meeting notes by opening a PR.
- [EL] Is the CloudProvider interface for returning Zones specifically for AWS or can any freeform string be returned to support other cloud provider concepts?
- [ET] The Zones func is meant to be cloud provider agnostic, so the return string could be whatever makes sense for the cloud provider.
- [EL] ClusterAPI cloud provider would increment a MachineSet right now. There might be some issues with multiple things touching the replica count of the sets, but starting with a simple model and see what breaks.
- [READING v1alpha4 proposal](https://github.com/awslabs/karpenter/pull/676)
- [READING v1alpha4 proposal](https://github.com/aws/karpenter/pull/676)
- [BW] How would the pluralization of Arch and OS work and why would we want to support Linux and Windows in the same provisioner?
- [ET] We would default to Linux and AMD64 most likely and then allow the user to configure if they'd like to expand the constraints to use both Arch's or OS.
- [BW] I don't think Windows would be a popular or practical choice if the pod could be run on Linux. But I can see how the semantics make it nice and uniform. I'm okay with the pluralization approach here.
Expand Down Expand Up @@ -231,7 +231,7 @@ Notes:
- [KM]: It worked well after I removed the custom launch template ID.
- [ET]: We've been playing with the idea of not even allowing custom launch templates because they're tricky to get right due to bad configurations that are hard to validate and won't work at runtime.
- [KM]: What is the intention around deleting LTs when you delete the cluster?
- [ET]: We'd like to not have to use launch templates with the EC2 fleet api. The best we have today is the command in the [karpenter repo demo](https://github.com/awslabs/karpenter/blob/f202d3e68fcdf583717245763b0338a478649bc2/docs/aws/README.md#cleanup) to find resources created by karpenter based on tags. The Launch Templates are tied to a provisioner since it's a hash of the constraints. We could add a k8s finalizer on the provisioner to clean up the resources in AWS.
- [ET]: We'd like to not have to use launch templates with the EC2 fleet api. The best we have today is the command in the [karpenter repo demo](https://github.com/aws/karpenter/blob/f202d3e68fcdf583717245763b0338a478649bc2/docs/aws/README.md#cleanup) to find resources created by karpenter based on tags. The Launch Templates are tied to a provisioner since it's a hash of the constraints. We could add a k8s finalizer on the provisioner to clean up the resources in AWS.
- [KM]: It's hard to use the vpc-cni because of the flags you have to pass to the kubelet for max pods.
- [ET]: We use bottlerocket by default in karpenter. In an ipv6 world, the pod limit is basically infinite. So you (KM) don't work with the defaults?
- [KM]: If we use karpenter, we'd probably just use the defaults. We're also looking at calico, which requires changing the max pods (increasing instead of decreasing).
Expand All @@ -248,7 +248,7 @@ Notes:
- [VS]: There are agents that companies will want to install on all of their nodes for security or monitoring purposes. So there definitely needs to be a mechanism to change AMIs or add user-data.
- [ET]: How was your (KM) experience with karpenter's use of label selectors?
- [KM]: It depends on how many fields users are overriding. When I specified no label selectors it just worked. But I understand that you'll need to customize stuff at some point and that can be a little tricky. For example, the LaunchTemplate version didn't accept Default because of the $. Maybe a CRD or configmap would work on syntax limited fields.
- [ET]: Security groups at the pod level would simplify this a lot. For the LT version problem (https://github.com/awslabs/karpenter/issues/434), if you don't specify the version, we'd just use DEFAULT. And for LATEST, maybe we just don't support it and tell users to set DEFAULT to the LATEST. It's also generally a bad practice to use LATEST in docker registries since you might update containers without realizing it.
- [ET]: Security groups at the pod level would simplify this a lot. For the LT version problem (https://github.com/aws/karpenter/issues/434), if you don't specify the version, we'd just use DEFAULT. And for LATEST, maybe we just don't support it and tell users to set DEFAULT to the LATEST. It's also generally a bad practice to use LATEST in docker registries since you might update containers without realizing it.
- [KM]: I think DEFAULT support would be fine. Just using the ID would be tedious.
- [Elmiko]: Still going over the karpenter code. Would still like to build a cloud provider for karpenter to get it working with OpenShift and Cluster API stuff. But it's hard w/ the cluster api machine sets. Need to create a bunch of MachineSets to size 0 and then pick one. Which seems kind of clunky.
- [ET]: Would the machine template work in cluster API?
Expand All @@ -274,7 +274,7 @@ Notes:

## Notes
- [PG] Made a release for 0.2.5
- [PG] We're working on termination design [here](https://github.com/awslabs/karpenter/blob/main/docs/designs/termination.md)
- [PG] We're working on termination design [here](https://github.com/aws/karpenter/blob/main/docs/designs/termination.md)
- [VS] I was using a launch template to specify instance types but it wasn't working
- [BW] Launch templates only allow one instance type, so we don't use launch templates to get instance types, but rather use the EC2 API to get that information
- [BW] Is there a use case to use launch templates?
Expand Down Expand Up @@ -424,7 +424,7 @@ Notes:
- [BW] CAPI moving from run instances API to fleet API in the next release
- [ET] How does the preemption work?
- [El] They are planning to change the way to its done today and need to go deep dive to understand
- Reading [AWS Provisioner Launch Template Options](https://github.com/awslabs/karpenter/pull/330/files?short_path=3078f76) Proposal from Jacob
- Reading [AWS Provisioner Launch Template Options](https://github.com/aws/karpenter/pull/330/files?short_path=3078f76) Proposal from Jacob
- [JG] Its hard to specify if LT is arch specific? Hard to know what arch LT supports? If LT doesn't specify an AMI its not going to work.
- [El] Depends some people like webhook pattern, some don't, CAPI has this pattern
- [El] You can return an error in validating webhook or have an error when the request hit cloud provider. Could potentially just resolve this via validation at pod and provisioner level
Expand Down
Loading