mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-18 10:08:40 +02:00
improve resilience and performance from AI review
This commit is contained in:
+18
-13
@@ -532,20 +532,25 @@ func (c *Cluster) tagEBSVolumes() error {
|
|||||||
desiredTags[labelKey] = labelValue
|
desiredTags[labelKey] = labelValue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Compute keys to delete once — keys in EBSTagsInheritLabels not present in desiredTags.
|
||||||
|
keysToDelete := make([]string, 0, len(c.OpConfig.EBSTagsInheritLabels))
|
||||||
|
for _, labelKey := range c.OpConfig.EBSTagsInheritLabels {
|
||||||
|
if _, wanted := desiredTags[labelKey]; !wanted {
|
||||||
|
keysToDelete = append(keysToDelete, labelKey)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
volumesToTag := make([]string, 0, len(c.EBSVolumes))
|
volumesToTag := make([]string, 0, len(c.EBSVolumes))
|
||||||
volumesToUntag := make([]string, 0, len(c.EBSVolumes))
|
volumesToUntag := make(map[string]bool)
|
||||||
staleKeys := make(map[string]bool)
|
|
||||||
|
|
||||||
for volumeID, volumeProps := range c.EBSVolumes {
|
for volumeID, volumeProps := range c.EBSVolumes {
|
||||||
if len(desiredTags) > 0 && c.tagsNeedUpdate(volumeProps.Tags, desiredTags) {
|
if len(desiredTags) > 0 && c.tagsNeedUpdate(volumeProps.Tags, desiredTags) {
|
||||||
volumesToTag = append(volumesToTag, volumeID)
|
volumesToTag = append(volumesToTag, volumeID)
|
||||||
}
|
}
|
||||||
for _, labelKey := range c.OpConfig.EBSTagsInheritLabels {
|
for _, labelKey := range keysToDelete {
|
||||||
if _, wanted := desiredTags[labelKey]; !wanted {
|
if _, exists := volumeProps.Tags[labelKey]; exists {
|
||||||
if _, exists := volumeProps.Tags[labelKey]; exists {
|
volumesToUntag[volumeID] = true
|
||||||
volumesToUntag = append(volumesToUntag, volumeID)
|
break
|
||||||
staleKeys[labelKey] = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -574,14 +579,14 @@ func (c *Cluster) tagEBSVolumes() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(volumesToUntag) > 0 {
|
if len(volumesToUntag) > 0 {
|
||||||
keysToDelete := make([]string, 0, len(staleKeys))
|
untagIDs := make([]string, 0, len(volumesToUntag))
|
||||||
for k := range staleKeys {
|
for id := range volumesToUntag {
|
||||||
keysToDelete = append(keysToDelete, k)
|
untagIDs = append(untagIDs, id)
|
||||||
}
|
}
|
||||||
if err := c.VolumeResizer.UntagVolumes(volumesToUntag, keysToDelete); err != nil {
|
if err := c.VolumeResizer.UntagVolumes(untagIDs, keysToDelete); err != nil {
|
||||||
c.logger.Warningf("could not remove stale EBS tags %v: %v", keysToDelete, err)
|
c.logger.Warningf("could not remove stale EBS tags %v: %v", keysToDelete, err)
|
||||||
} else {
|
} else {
|
||||||
c.logger.Infof("removed stale tags %v from %d EBS volumes", keysToDelete, len(volumesToUntag))
|
c.logger.Infof("removed stale tags %v from %d EBS volumes", keysToDelete, len(untagIDs))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -215,16 +215,16 @@ func (r *EBSVolumeResizer) ModifyVolume(volumeID string, newType *string, newSiz
|
|||||||
|
|
||||||
// TagVolumes tags the given EBS volumes with the provided tags.
|
// TagVolumes tags the given EBS volumes with the provided tags.
|
||||||
func (r *EBSVolumeResizer) TagVolumes(volumeIds []string, tags map[string]string) error {
|
func (r *EBSVolumeResizer) TagVolumes(volumeIds []string, tags map[string]string) error {
|
||||||
|
if len(volumeIds) == 0 || len(tags) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
if !r.IsConnectedToProvider() {
|
if !r.IsConnectedToProvider() {
|
||||||
if err := r.ConnectToProvider(); err != nil {
|
if err := r.ConnectToProvider(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(volumeIds) == 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
ec2Tags := make([]types.Tag, 0, len(tags))
|
ec2Tags := make([]types.Tag, 0, len(tags))
|
||||||
for key, value := range tags {
|
for key, value := range tags {
|
||||||
k, v := key, value
|
k, v := key, value
|
||||||
|
|||||||
Reference in New Issue
Block a user