fix: cache lag retry, go.work, провайдер rollback, test v4 no -target
This commit is contained in:
@@ -253,15 +253,23 @@ func (r *JobResource) Create(ctx context.Context, req resource.CreateRequest, re
|
||||
}
|
||||
}
|
||||
|
||||
// Загружаем код если задан source_dir — контроллер начнёт kaniko сборку после upload
|
||||
// Загружаем код если задан source_dir — контроллер начнёт kaniko сборку после upload.
|
||||
// deleteOnFail — откат: удаляем CR если upload провалился,
|
||||
// иначе при следующем apply будет 409 (CR есть, state пустой).
|
||||
if !plan.SourceDir.IsNull() && plan.SourceDir.ValueString() != "" {
|
||||
zipData, hash, err := zipDir(plan.SourceDir.ValueString())
|
||||
if err != nil {
|
||||
resp.Diagnostics.AddError("zip source_dir", err.Error())
|
||||
if delErr := r.client.DeleteJob(ctx, ns, plan.Name.ValueString()); delErr != nil {
|
||||
resp.Diagnostics.AddWarning("rollback delete job", delErr.Error())
|
||||
}
|
||||
return
|
||||
}
|
||||
if err := r.client.UploadJobCode(ctx, ns, plan.Name.ValueString(), "function.zip", bytes.NewReader(zipData)); err != nil {
|
||||
resp.Diagnostics.AddError("upload job code", err.Error())
|
||||
if delErr := r.client.DeleteJob(ctx, ns, plan.Name.ValueString()); delErr != nil {
|
||||
resp.Diagnostics.AddWarning("rollback delete job", delErr.Error())
|
||||
}
|
||||
return
|
||||
}
|
||||
plan.CodeHash = types.StringValue(hash)
|
||||
|
||||
@@ -192,22 +192,31 @@ func (r *ServiceResource) Create(ctx context.Context, req resource.CreateRequest
|
||||
return
|
||||
}
|
||||
|
||||
// deleteOnFail — откат: удаляем CR если upload провалился,
|
||||
// иначе при следующем apply будет 409 (CR есть, state пустой).
|
||||
deleteOnFail := func(addErr string, err error) {
|
||||
resp.Diagnostics.AddError(addErr, err.Error())
|
||||
if delErr := r.client.DeleteService(ctx, ns, svc.Name); delErr != nil {
|
||||
resp.Diagnostics.AddWarning("rollback delete service", delErr.Error())
|
||||
}
|
||||
}
|
||||
|
||||
var codeUploaded bool
|
||||
if !plan.SourceDir.IsNull() && plan.SourceDir.ValueString() != "" {
|
||||
zipData, hash, err := zipDir(plan.SourceDir.ValueString())
|
||||
if err != nil {
|
||||
resp.Diagnostics.AddError("zip source_dir", err.Error())
|
||||
deleteOnFail("zip source_dir", err)
|
||||
return
|
||||
}
|
||||
if err := r.client.UploadServiceCodeReader(ctx, ns, svc.Name, "code.zip", bytes.NewReader(zipData)); err != nil {
|
||||
resp.Diagnostics.AddError("upload service code", err.Error())
|
||||
deleteOnFail("upload service code", err)
|
||||
return
|
||||
}
|
||||
plan.CodeHash = types.StringValue(hash)
|
||||
codeUploaded = true
|
||||
} else if !plan.CodePath.IsNull() && plan.CodePath.ValueString() != "" {
|
||||
if err := r.client.UploadServiceCode(ctx, ns, svc.Name, plan.CodePath.ValueString()); err != nil {
|
||||
resp.Diagnostics.AddError("upload service code", err.Error())
|
||||
deleteOnFail("upload service code", err)
|
||||
return
|
||||
}
|
||||
codeUploaded = true
|
||||
|
||||
Reference in New Issue
Block a user