@@ -10,60 +10,60 @@ import (
1010 "github.com/replicatedhq/embedded-cluster/pkg/release"
1111)
1212
13- func (e * Engine ) licenseFieldValue (name string ) string {
13+ func (e * Engine ) licenseFieldValue (name string ) ( string , error ) {
1414 if e .license == nil {
15- return ""
15+ return "" , fmt . Errorf ( "license is nil" )
1616 }
1717
1818 // Update docs at https://github.com/replicatedhq/kots.io/blob/main/content/reference/template-functions/license-context.md
1919 // when adding new values
2020 switch name {
2121 case "isSnapshotSupported" :
22- return fmt .Sprintf ("%t" , e .license .Spec .IsSnapshotSupported )
22+ return fmt .Sprintf ("%t" , e .license .Spec .IsSnapshotSupported ), nil
2323 case "IsDisasterRecoverySupported" :
24- return fmt .Sprintf ("%t" , e .license .Spec .IsDisasterRecoverySupported )
24+ return fmt .Sprintf ("%t" , e .license .Spec .IsDisasterRecoverySupported ), nil
2525 case "isGitOpsSupported" :
26- return fmt .Sprintf ("%t" , e .license .Spec .IsGitOpsSupported )
26+ return fmt .Sprintf ("%t" , e .license .Spec .IsGitOpsSupported ), nil
2727 case "isSupportBundleUploadSupported" :
28- return fmt .Sprintf ("%t" , e .license .Spec .IsSupportBundleUploadSupported )
28+ return fmt .Sprintf ("%t" , e .license .Spec .IsSupportBundleUploadSupported ), nil
2929 case "isEmbeddedClusterMultiNodeEnabled" :
30- return fmt .Sprintf ("%t" , e .license .Spec .IsEmbeddedClusterMultiNodeEnabled )
30+ return fmt .Sprintf ("%t" , e .license .Spec .IsEmbeddedClusterMultiNodeEnabled ), nil
3131 case "isIdentityServiceSupported" :
32- return fmt .Sprintf ("%t" , e .license .Spec .IsIdentityServiceSupported )
32+ return fmt .Sprintf ("%t" , e .license .Spec .IsIdentityServiceSupported ), nil
3333 case "isGeoaxisSupported" :
34- return fmt .Sprintf ("%t" , e .license .Spec .IsGeoaxisSupported )
34+ return fmt .Sprintf ("%t" , e .license .Spec .IsGeoaxisSupported ), nil
3535 case "isAirgapSupported" :
36- return fmt .Sprintf ("%t" , e .license .Spec .IsAirgapSupported )
36+ return fmt .Sprintf ("%t" , e .license .Spec .IsAirgapSupported ), nil
3737 case "licenseType" :
38- return e .license .Spec .LicenseType
38+ return e .license .Spec .LicenseType , nil
3939 case "licenseSequence" :
40- return fmt .Sprintf ("%d" , e .license .Spec .LicenseSequence )
40+ return fmt .Sprintf ("%d" , e .license .Spec .LicenseSequence ), nil
4141 case "signature" :
42- return string (e .license .Spec .Signature )
42+ return string (e .license .Spec .Signature ), nil
4343 case "appSlug" :
44- return e .license .Spec .AppSlug
44+ return e .license .Spec .AppSlug , nil
4545 case "channelID" :
46- return e .license .Spec .ChannelID
46+ return e .license .Spec .ChannelID , nil
4747 case "channelName" :
48- return e .license .Spec .ChannelName
48+ return e .license .Spec .ChannelName , nil
4949 case "isSemverRequired" :
50- return fmt .Sprintf ("%t" , e .license .Spec .IsSemverRequired )
50+ return fmt .Sprintf ("%t" , e .license .Spec .IsSemverRequired ), nil
5151 case "customerName" :
52- return e .license .Spec .CustomerName
52+ return e .license .Spec .CustomerName , nil
5353 case "licenseID" , "licenseId" :
54- return e .license .Spec .LicenseID
54+ return e .license .Spec .LicenseID , nil
5555 case "endpoint" :
5656 if e .releaseData == nil {
57- return ""
57+ return "" , fmt . Errorf ( "release data is nil" )
5858 }
5959 ecDomains := utils .GetDomains (e .releaseData )
60- return netutils .MaybeAddHTTPS (ecDomains .ReplicatedAppDomain )
60+ return netutils .MaybeAddHTTPS (ecDomains .ReplicatedAppDomain ), nil
6161 default :
6262 entitlement , ok := e .license .Spec .Entitlements [name ]
6363 if ok {
64- return fmt .Sprintf ("%v" , entitlement .Value .Value ())
64+ return fmt .Sprintf ("%v" , entitlement .Value .Value ()), nil
6565 }
66- return ""
66+ return "" , nil
6767 }
6868}
6969
@@ -74,6 +74,9 @@ func (e *Engine) licenseDockerCfg() (string, error) {
7474 if e .releaseData == nil {
7575 return "" , fmt .Errorf ("release data is nil" )
7676 }
77+ if e .releaseData .ChannelRelease == nil {
78+ return "" , fmt .Errorf ("channel release is nil" )
79+ }
7780
7881 auth := fmt .Sprintf ("%s:%s" , e .license .Spec .LicenseID , e .license .Spec .LicenseID )
7982 encodedAuth := base64 .StdEncoding .EncodeToString ([]byte (auth ))
@@ -111,3 +114,25 @@ func getRegistryProxyInfo(releaseData *release.ReleaseData) *registryProxyInfo {
111114 Registry : ecDomains .ReplicatedRegistryDomain ,
112115 }
113116}
117+
118+ func (e * Engine ) channelName () (string , error ) {
119+ if e .license == nil {
120+ return "" , fmt .Errorf ("license is nil" )
121+ }
122+ if e .releaseData == nil {
123+ return "" , fmt .Errorf ("release data is nil" )
124+ }
125+ if e .releaseData .ChannelRelease == nil {
126+ return "" , fmt .Errorf ("channel release is nil" )
127+ }
128+
129+ for _ , channel := range e .license .Spec .Channels {
130+ if channel .ChannelID == e .releaseData .ChannelRelease .ChannelID {
131+ return channel .ChannelName , nil
132+ }
133+ }
134+ if e .license .Spec .ChannelID == e .releaseData .ChannelRelease .ChannelID {
135+ return e .license .Spec .ChannelName , nil
136+ }
137+ return "" , fmt .Errorf ("channel %s not found in license" , e .releaseData .ChannelRelease .ChannelID )
138+ }
0 commit comments