@@ -945,6 +945,8 @@ func HelmReleaseReady(hr HelmRelease) HelmRelease {
945
945
946
946
// HelmReleaseAttempted registers an attempt of the given HelmRelease with the given state.
947
947
// and returns the modified HelmRelease and a boolean indicating a state change.
948
+ //
949
+ // Deprecated: in favor of HelmReleaseChanged and HelmReleaseRecordAttempt.
948
950
func HelmReleaseAttempted (hr HelmRelease , revision string , releaseRevision int , valuesChecksum string ) (HelmRelease , bool ) {
949
951
changed := hr .Status .LastAttemptedRevision != revision ||
950
952
hr .Status .LastReleaseRevision != releaseRevision ||
@@ -956,6 +958,31 @@ func HelmReleaseAttempted(hr HelmRelease, revision string, releaseRevision int,
956
958
return hr , changed
957
959
}
958
960
961
+ // HelmReleaseChanged returns if the HelmRelease has changed compared to the
962
+ // provided values.
963
+ func HelmReleaseChanged (hr HelmRelease , revision string , releaseRevision int , valuesChecksums ... string ) bool {
964
+ return hr .Status .LastAttemptedRevision != revision ||
965
+ hr .Status .LastReleaseRevision != releaseRevision ||
966
+ ! inStringSlice (hr .Status .LastAttemptedValuesChecksum , valuesChecksums )
967
+ }
968
+
969
+ // HelmReleaseRecordAttempt returns an attempt of the given HelmRelease with the
970
+ // given state in the Status of the provided object.
971
+ func HelmReleaseRecordAttempt (hr * HelmRelease , revision string , releaseRevision int , valuesChecksum string ) {
972
+ hr .Status .LastAttemptedRevision = revision
973
+ hr .Status .LastReleaseRevision = releaseRevision
974
+ hr .Status .LastAttemptedValuesChecksum = valuesChecksum
975
+ }
976
+
977
+ func inStringSlice (str string , s []string ) bool {
978
+ for _ , v := range s {
979
+ if str == v {
980
+ return true
981
+ }
982
+ }
983
+ return false
984
+ }
985
+
959
986
func resetFailureCounts (hr * HelmRelease ) {
960
987
hr .Status .Failures = 0
961
988
hr .Status .InstallFailures = 0
0 commit comments