This Pull Request updates the eks-support branch with the following changes:
Updates the CLM entry point support both Zalando AWS end EKS provisioning. I replaced the main provisioner instance with a map of provisioners. This map replaces the single provisioner parameter in the control loop, while command line picks the provisioner based on the specified provider.
Splits EKS and self-managed provisioning in two structs: ZalandoAWSProvisioner and ZalandoEKSProvisioner:
ZalandoAWSProvisioner: just calls the provisioning/decommissioning methods of clusterPyProvisioner.
ZalandoEKSProvisioner: creates the EKS token source before calling provisioning/decommissioning methods of clusterPyProvisioner. Additionally for decommissioning passes the specific Certificate Authority data.
Adds a ProvisionModifier interface. EKS Provisioning implements this interface, and the clusterPyProvisioner calls back GetPostOptions. When provisioning EKS, only after this stage it is possible to know some configuration necessary to provision a cluster, like: API Server endpoint, custom Certificate Authority, and Availability Zone information.
Updates clusterpyProvisioner in the following:
Adds a provider field and implements a common Supports method.
Adds an optional modifier, which maybe used at a later provisioning stage
Hides the interface from outside provisioner (the provisioners have a clusterPyProvisioner as a field).
Provides the AWS Adapter as a parameter to provision(). The EKS provisioner needs this adapter before provisioning, to build a token source.
Refactors prepareProvision() to only apply default valuers to the various manifests. Gathering instance type information from AWS is now done by provision.
Calls back a modifier interface right after applying the first cluster.yaml CloudFormation.
Adds an optional Certificate Authority data to decommission(), necessary for decommissioning an EKS cluster.
Updates the lower level Kubernetes functions (found in pkg/kubernetes) with support an optional parameter with custom Certificate Authority data. This certificate is necessary when provisioning an EKS cluster.
Removes the token source parameter when creating the AWS Adapter. The token source is not used by the adapter.
This Pull Request does not add tests. A follow-up Pull Request to master will have more testing.
This Pull Request updates the
eks-support
branch with the following changes:provisioner
parameter in the control loop, while command line picks the provisioner based on the specified provider.structs
:ZalandoAWSProvisioner
andZalandoEKSProvisioner
:ZalandoAWSProvisioner
: just calls the provisioning/decommissioning methods ofclusterPyProvisioner
.ZalandoEKSProvisioner
: creates the EKS token source before calling provisioning/decommissioning methods ofclusterPyProvisioner
. Additionally for decommissioning passes the specific Certificate Authority data.ProvisionModifier
interface. EKS Provisioning implements this interface, and theclusterPyProvisioner
calls backGetPostOptions
. When provisioning EKS, only after this stage it is possible to know some configuration necessary to provision a cluster, like: API Server endpoint, custom Certificate Authority, and Availability Zone information.clusterpyProvisioner
in the following:provider
field and implements a commonSupports
method.modifier
, which maybe used at a later provisioning stageprovisioner
(the provisioners have aclusterPyProvisioner
as a field).provision()
. The EKS provisioner needs this adapter before provisioning, to build a token source.prepareProvision()
to only apply default valuers to the various manifests. Gathering instance type information from AWS is now done byprovision
.cluster.yaml
CloudFormation.decommission()
, necessary for decommissioning an EKS cluster.pkg/kubernetes
) with support an optional parameter with custom Certificate Authority data. This certificate is necessary when provisioning an EKS cluster.This Pull Request does not add tests. A follow-up Pull Request to master will have more testing.