cluster-api-provider-aws

command module
v2.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2023 License: Apache-2.0 Imports: 43 Imported by: 0

README

Kubernetes Cluster API Provider AWS

Powered by AWS Cloud Computing


Kubernetes-native declarative infrastructure for AWS.

What is the Cluster API Provider AWS

The Cluster API brings declarative, Kubernetes-style APIs to cluster creation, configuration and management.

The API itself is shared across multiple cloud providers allowing for true AWS hybrid deployments of Kubernetes. It is built atop the lessons learned from previous cluster managers such as kops and kubicorn.

Documentation

Please see our book for in-depth documentation.

Launching a Kubernetes cluster on AWS

Check out the Cluster API Quick Start for launching a cluster on AWS.

Features

  • Native Kubernetes manifests and API
  • Manages the bootstrapping of VPCs, gateways, security groups and instances.
  • Choice of Linux distribution among Amazon Linux 2, CentOS 7, Ubuntu(18.04, 20.04) and Flatcar using pre-baked AMIs.
  • Deploys Kubernetes control planes into private subnets with a separate bastion server.
  • Doesn't use SSH for bootstrapping nodes.
  • Installs only the minimal components to bootstrap a control plane and workers.
  • Supports control planes on EC2 instances.
  • EKS support

Compatibility with Cluster API and Kubernetes Versions

This provider's versions are compatible with the following versions of Cluster API and support all Kubernetes versions that is supported by its compatible Cluster API version:

Cluster API v1alpha4 (v0.4) Cluster API v1beta1 (v1.x)
CAPA v1alpha4 (v0.7)
CAPA v1beta1 (v1.x)
CAPA v1beta2 (v2.x, main)

(See Kubernetes support matrix of Cluster API versions).


Kubernetes versions with published AMIs

See amis for the list of most recently published AMIs.


clusterawsadm

clusterawsadm CLI tool provides bootstrapping, AMI, EKS, and controller related helpers.

clusterawsadm binaries are released with each release, can be found under assets section.

clusterawsadm could also be installed via Homebrew on macOS and linux OS. Install the latest release using homebrew:

brew install clusterawsadm

Test to ensure the version you installed is up-to-date:

clusterawsadm version

Getting involved and contributing

Are you interested in contributing to cluster-api-provider-aws? We, the maintainers and community, would love your suggestions, contributions, and help! Also, the maintainers can be contacted at any time to learn more about how to get involved.

In the interest of getting more new people involved we tag issues with good first issue. These are typically issues that have smaller scope but are good ways to start to get acquainted with the codebase.

We also encourage ALL active community participants to act as if they are maintainers, even if you don't have "official" write permissions. This is a community effort, we are here to serve the Kubernetes community. If you have an active interest and you want to get involved, you have real power! Don't assume that the only people who can get things done around here are the "maintainers".

We also would love to add more "official" maintainers, so show us what you can do!

This repository uses the Kubernetes bots. See a full list of the commands here.

Build the images locally

If you want to just build the CAPA containers locally, run

  REGISTRY=docker.io/my-reg make docker-build
Tilt-based development environment

See development section for details.

Implementer office hours

Maintainers hold office hours every two weeks, with sessions open to all developers working on this project.

Office hours are hosted on a zoom video chat every other Monday at 09:00 (Pacific) / 12:00 (Eastern) / 17:00 (Europe/London), and are published on the Kubernetes community meetings calendar.

Other ways to communicate with the contributors

Please check in with us in the #cluster-api-aws channel on Slack.

Github issues

Bugs

If you think you have found a bug please follow the instructions below.

  • Please spend a small amount of time giving due diligence to the issue tracker. Your issue might be a duplicate.
  • Get the logs from the cluster controllers. Please paste this into your issue.
  • Open a new issue.
  • Remember that users might be searching for your issue in the future, so please give it a meaningful title to help others.
  • Feel free to reach out to the cluster-api community on the kubernetes slack.
Tracking new features

We also use the issue tracker to track features. If you have an idea for a feature, or think you can help kops become even more awesome follow the steps below.

  • Open a new issue.
  • Remember that users might be searching for your issue in the future, so please give it a meaningful title to help others.
  • Clearly define the use case, using concrete examples. EG: I type this and cluster-api-provider-aws does that.
  • Some of our larger features will require some design. If you would like to include a technical design for your feature please include it in the issue.
  • After the new feature is well understood, and the design agreed upon, we can start coding the feature. We would love for you to code it. So please open up a WIP (work in progress) pull request, and happy coding.

“Amazon Web Services, AWS, and the “Powered by AWS” logo materials are trademarks of Amazon.com, Inc. or its affiliates in the United States and/or other countries."

Our Contributors

Thank you to all contributors and a special thanks to our current maintainers & reviewers:

Maintainers Reviewers
@richardcase (from 2020-12-04) @shivi28 (from 2021-08-27)
@Skarlso (from 2022-10-19) @dthorsen (from 2020-12-04)
@Ankitasw (from 2022-10-19) @pydctw (from 2021-12-09)
@dlipovetsky (from 2021-10-31) @AverageMarcus (from 2022-10-19)
@luthermonson (from 2023-03-08)

and the previous/emeritus maintainers & reviewers:

Emeritus Maintainers Emeritus Reviewers
@chuckha @ashish-amarnath
@detiber @davidewatson
@ncdc @enxebre
@randomvariable @ingvagabund
@rudoi @michaelbeaumont
@sedefsavas @sethp-nr
@vincepri

All the CAPA contributors:

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1beta1
Package v1beta1 contains the v1beta1 API implementation.
Package v1beta1 contains the v1beta1 API implementation.
v1beta2
package v1beta2 contains the v1beta2 API implementation.
package v1beta2 contains the v1beta2 API implementation.
bootstrap
eks/api/v1beta1
Package v1beta1 contains API Schema definitions for the Amazon EKS Bootstrap v1beta1 API group +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io
Package v1beta1 contains API Schema definitions for the Amazon EKS Bootstrap v1beta1 API group +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io
cmd
clusterawsadm/api/ami/v1beta1
Package v1beta1 contains API Schema definitions for the AMI v1beta1 API group +kubebuilder:object:generate=true +k8s:defaulter-gen=TypeMeta +groupName=ami.aws.infrastructure.cluster.x-k8s.io
Package v1beta1 contains API Schema definitions for the AMI v1beta1 API group +kubebuilder:object:generate=true +k8s:defaulter-gen=TypeMeta +groupName=ami.aws.infrastructure.cluster.x-k8s.io
clusterawsadm/api/bootstrap/v1alpha1
Package v1alpha1 contains API Schema definitions for the bootstrap v1alpha1 API group +kubebuilder:object:generate=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=bootstrap.aws.infrastructure.cluster.x-k8s.io +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-aws/v2/cmd/clusterawsadm/api/bootstrap/v1beta1
Package v1alpha1 contains API Schema definitions for the bootstrap v1alpha1 API group +kubebuilder:object:generate=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=bootstrap.aws.infrastructure.cluster.x-k8s.io +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-aws/v2/cmd/clusterawsadm/api/bootstrap/v1beta1
clusterawsadm/api/bootstrap/v1beta1
Package v1beta1 contains API Schema definitions for the bootstrap v1beta1 API group +kubebuilder:object:generate=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=bootstrap.aws.infrastructure.cluster.x-k8s.io +gencrdrefdocs:force
Package v1beta1 contains API Schema definitions for the bootstrap v1beta1 API group +kubebuilder:object:generate=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=bootstrap.aws.infrastructure.cluster.x-k8s.io +gencrdrefdocs:force
clusterawsadm/cloudformation/service
Package cloudformation provides the API operation methods for making requests to AWS CloudFormation.
Package cloudformation provides the API operation methods for making requests to AWS CloudFormation.
controlplane
eks/api/v1beta1
Package v1beta1 contains API Schema definitions for the controlplane v1beta1 API group +gencrdrefdocs:force +groupName=controlplane.cluster.x-k8s.io +k8s:defaulter-gen=TypeMeta +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-aws/v2/controlplane/eks/api/v1beta2
Package v1beta1 contains API Schema definitions for the controlplane v1beta1 API group +gencrdrefdocs:force +groupName=controlplane.cluster.x-k8s.io +k8s:defaulter-gen=TypeMeta +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-aws/v2/controlplane/eks/api/v1beta2
eks/api/v1beta2
package v1beta2 contains API Schema definitions for the controlplane v1beta2 API group +gencrdrefdocs:force +groupName=controlplane.cluster.x-k8s.io +k8s:defaulter-gen=TypeMeta
package v1beta2 contains API Schema definitions for the controlplane v1beta2 API group +gencrdrefdocs:force +groupName=controlplane.cluster.x-k8s.io +k8s:defaulter-gen=TypeMeta
docs
exp
api/v1beta1
Package v1beta1 contains API Schema definitions for experimental v1beta1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
Package v1beta1 contains API Schema definitions for experimental v1beta1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
api/v1beta2
package v1beta2 contains API Schema definitions for experimental v1beta2 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
package v1beta2 contains API Schema definitions for experimental v1beta2 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
hack
iam
api/v1beta1
+k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=iam.aws.infrastructure.cluster.x-k8s.io +gencrdrefdocs:force
+k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=iam.aws.infrastructure.cluster.x-k8s.io +gencrdrefdocs:force
pkg
cloud/services/autoscaling/mock_autoscalingiface
Package mock_autoscalingiface is a generated GoMock package.
Package mock_autoscalingiface is a generated GoMock package.
cloud/services/eks/mock_eksiface
Package mock_eksiface is a generated GoMock package.
Package mock_eksiface is a generated GoMock package.
cloud/services/iamauth/mock_iamauth
Package mock_iamauth is a generated GoMock package.
Package mock_iamauth is a generated GoMock package.
cloud/services/instancestate/mock_eventbridgeiface
Package mock_eventbridgeiface is a generated GoMock package.
Package mock_eventbridgeiface is a generated GoMock package.
cloud/services/instancestate/mock_sqsiface
Package mock_sqsiface is a generated GoMock package.
Package mock_sqsiface is a generated GoMock package.
cloud/services/mock_services
Package mock_services is a generated GoMock package.
Package mock_services is a generated GoMock package.
cloud/services/s3/mock_s3iface
Run go generate to regenerate this mock.
Run go generate to regenerate this mock.
cloud/services/s3/mock_stsiface
Run go generate to regenerate this mock.
Run go generate to regenerate this mock.
cloud/services/secretsmanager/mock_secretsmanageriface
Package mock_secretsmanageriface is a generated GoMock package.
Package mock_secretsmanageriface is a generated GoMock package.
cloud/services/ssm/mock_ssmiface
Package mock_ssmiface is a generated GoMock package.
Package mock_ssmiface is a generated GoMock package.
cloud/services/sts/mock_stsiface
Package mock_stsiface is a generated GoMock package.
Package mock_stsiface is a generated GoMock package.
eks
internal/rate
Package rate provides a rate limiter.
Package rate provides a rate limiter.
logger
Package logger
Package logger
test
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
util

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL