in substrate/pkg/controller/substrate/cluster/config.go [63:92]
func (c *Config) Create(ctx context.Context, substrate *v1alpha1.Substrate) (reconcile.Result, error) {
if substrate.Status.Cluster.Address == nil {
return reconcile.Result{Requeue: true}, nil
}
// ensure S3 bucket
if err := c.ensureBucket(ctx, substrate); err != nil {
return reconcile.Result{}, fmt.Errorf("ensuring S3 bucket, %w", err)
}
// create all configs file
cfg := defaultClusterConfig(substrate)
if err := c.generateCerts(cfg, substrate); err != nil {
return reconcile.Result{}, fmt.Errorf("generating certs, %w", err)
}
if err := c.kubeConfigs(cfg, substrate); err != nil {
return reconcile.Result{}, fmt.Errorf("generating kube config, %w", err)
}
if err := c.generateStaticPodManifests(cfg, substrate); err != nil {
return reconcile.Result{}, fmt.Errorf("generating manifests, %w", err)
}
if err := c.kubeletSystemService(cfg, substrate); err != nil {
return reconcile.Result{}, fmt.Errorf("generating kubelet service config, %w", err)
}
// upload to s3 bucket
if err := c.S3Uploader.UploadWithIterator(ctx, NewDirectoryIterator(
aws.StringValue(discovery.Name(substrate)), path.Join(clusterCertsBasePath, aws.StringValue(discovery.Name(substrate))))); err != nil {
return reconcile.Result{}, fmt.Errorf("uploading to S3 %w", err)
}
logging.FromContext(ctx).Infof("Uploaded cluster configuration to s3://%s", aws.StringValue(discovery.Name(substrate)))
return reconcile.Result{}, nil
}