Aws-cloud-provider docs - index

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.