in cmd/resource/resource.go [45:113]
func Read(req handler.Request, _ *Model, currentModel *Model) (handler.ProgressEvent, error) {
data, err := DecodeID(currentModel.ID)
if err != nil {
return makeEvent(nil, NoStage, NewError(ErrCodeInvalidException, err.Error())), nil
}
// Load model with decode values of ID.
currentModel.Name = data.Name
currentModel.Namespace = data.Namespace
currentModel.ClusterID = data.ClusterID
currentModel.KubeConfig = data.KubeConfig
currentModel.VPCConfiguration = data.VPCConfiguration
client, err := NewClients(currentModel.ClusterID, currentModel.KubeConfig, data.Namespace, req.Session, currentModel.RoleArn, nil, currentModel.VPCConfiguration)
if err != nil {
return makeEvent(currentModel, NoStage, NewError(ErrCodeInvalidException, err.Error())), nil
}
if IsZero(currentModel.VPCConfiguration) && currentModel.ClusterID != nil {
currentModel.VPCConfiguration, err = getVpcConfig(client.AWSClients.EKSClient(nil, nil), client.AWSClients.EC2Client(nil, nil), currentModel)
if err != nil {
return makeEvent(currentModel, NoStage, NewError(ErrCodeInvalidException, err.Error())), nil
}
// generate lambda resource when auto detected vpc configs
if !IsZero(currentModel.VPCConfiguration) {
client.LambdaResource = newLambdaResource(client.AWSClients.STSClient(nil, nil), currentModel.ClusterID, currentModel.KubeConfig, currentModel.VPCConfiguration)
}
}
e := &Event{}
e.Model = currentModel
vpc := false
if !IsZero(currentModel.VPCConfiguration) {
vpc = true
e.Kubeconfig, err = getLocalKubeConfig()
if err != nil {
return makeEvent(currentModel, NoStage, NewError(ErrCodeKubeException, err.Error())), nil
}
u, err := client.initializeLambda(client.LambdaResource)
if err != nil {
return makeEvent(currentModel, NoStage, NewError(ErrCodeLambdaException, err.Error())), nil
}
if !u {
return makeEvent(currentModel, NoStage, NewError(ErrCodeInvalidException, "vpc connector didn't stabilize in time")), nil
}
}
e.Action = CheckReleaseAction
_, err = client.helmStatusWrapper(currentModel.Name, e, client.LambdaResource.functionName, vpc)
if err != nil {
if err.Error() == ErrCodeNotFound {
return makeEvent(nil, NoStage, NewError(ErrCodeNotFound, err.Error())), nil
}
return makeEvent(nil, NoStage, NewError(ErrCodeHelmActionException, err.Error())), nil
}
//currentModel.Chart = aws.String(s.ChartName)
//currentModel.Version = aws.String(s.ChartVersion)
/* Disable fetching resources created by helm
e.ReleaseData = &ReleaseData{
Name: aws.StringValue(data.Name),
Namespace: s.Namespace,
Chart: s.Chart,
Manifest: s.Manifest,
}
e.Action = GetResourcesAction
currentModel.Resources, err = client.kubeResourcesWrapper(e, client.LambdaResource.functionName, vpc)
if err != nil {
return makeEvent(currentModel, NoStage, err), nil
}*/
return makeEvent(currentModel, CompleteStage, nil), nil
}