AWS Cloud Provider

  • By Canonical Kubernetes
Channel Revision Published Runs on
latest/stable 15 17 Apr 2024
Ubuntu 22.04 Ubuntu 20.04
latest/candidate 15 15 Apr 2024
Ubuntu 22.04 Ubuntu 20.04
latest/beta 13 17 Apr 2024
Ubuntu 22.04 Ubuntu 20.04
latest/edge 13 09 Aug 2023
Ubuntu 22.04 Ubuntu 20.04
1.30/edge 13 13 Mar 2024
Ubuntu 22.04 Ubuntu 20.04
1.29/stable 15 17 Apr 2024
Ubuntu 22.04 Ubuntu 20.04
1.29/candidate 15 15 Apr 2024
Ubuntu 22.04 Ubuntu 20.04
1.29/beta 13 17 Apr 2024
Ubuntu 22.04 Ubuntu 20.04
1.29/edge 13 21 Aug 2023
Ubuntu 22.04 Ubuntu 20.04
1.28/stable 12 22 Aug 2023
Ubuntu 22.04 Ubuntu 20.04
1.28/candidate 10 07 Jun 2023
Ubuntu 22.04 Ubuntu 20.04
1.28/beta 12 07 Aug 2023
Ubuntu 22.04 Ubuntu 20.04
1.28/edge 13 09 Aug 2023
Ubuntu 22.04 Ubuntu 20.04
1.27/stable 10 12 Jun 2023
Ubuntu 22.04 Ubuntu 20.04
1.27/candidate 10 12 Jun 2023
Ubuntu 22.04 Ubuntu 20.04
1.27/beta 8 17 Apr 2023
Ubuntu 22.04 Ubuntu 20.04
1.27/edge 7 17 Apr 2023
Ubuntu 22.04 Ubuntu 20.04
juju deploy aws-cloud-provider
Show information

Platform:

Ubuntu
22.04 20.04

aws-cloud-provider

Description

This subordinate charm manages the cloud controller-manager components for aws.

Requirements

  • these polices are defined as prerequisites
  • the primary unit, the aws-integrator application must have access to create IAM Policies

Usage

The charm requires aws credentials and connection information, which can be provided the aws-integration relation to the AWS Integrator charm.

Deployment

Quickstart

The AWS Cloud Provider subordinate charm can be deployed alongside Charmed Kubernetes using the overlay provided in the Charmed Kubernetes bundle repository:

juju deploy charmed-kubernetes --overlay aws-cloud-overlay.yaml

The full process

juju deploy charmed-kubernetes
juju deploy aws-integrator --trust
juju deploy aws-cloud-provider

juju relate aws-cloud-provider:certificates            easyrsa
juju relate aws-cloud-provider:kube-control            kubernetes-control-plane
juju relate aws-cloud-provider:external-cloud-provider kubernetes-control-plane
juju relate aws-cloud-provider:aws-integration         aws-integrator

##  wait for the aws controller daemonset to be running
# the cloud-controller will set the node's ProviderID
kubectl describe nodes |egrep "Taints:|Name:|Provider"

Storage

Details

  • Requires a charmed-kubernetes deployment on a aws cloud launched by juju with the allow-privileged flag enabled.
  • Deploy the aws-integrator charm into the model using --trust so juju provided vsphere credentials
  • Deploy the aws-cloud-provider charm in the model relating to the integrator and to charmed-kubernetes components
  • Once the model is active/idle, the cloud-provider charm will have successfully deployed the aws controller-manager in the kube-system namespace
  • Taint the existing nodes so the controller will apply the correct provider id to those nodes.
  • Confirm the ProviderID is set on each node
  • For the controller to operate, the aws-integrator charm will apply the appropriate IAM policies and standardize the cluster-tag
  • the Kubernetes-Worker and Kuberenetes-Control-Plane charms start their binaries with --external-provider rather than the in-tree switch --cloud-provider=aws which has been removed starting in kubernetes 1.27

Contributing

Please see the Juju SDK docs for guidelines on enhancements to this charm following best practice guidelines, and CONTRIBUTING.md for developer guidance.


Help improve this document in the forum (guidelines). Last updated 9 months ago.