@@ -8,14 +8,18 @@ import (
8
8
"path/filepath"
9
9
"strings"
10
10
11
+ "github.com/blang/semver/v4"
12
+ "github.com/joho/godotenv"
11
13
operatorv1 "github.com/openshift/api/operator/v1"
14
+ "github.com/operator-framework/api/pkg/lib/version"
12
15
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
13
16
"sigs.k8s.io/controller-runtime/pkg/client"
14
17
logf "sigs.k8s.io/controller-runtime/pkg/log"
15
18
16
19
dsciv1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/dscinitialization/v1"
17
20
infrav1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/infrastructure/v1"
18
21
"github.com/opendatahub-io/opendatahub-operator/v2/components"
22
+ "github.com/opendatahub-io/opendatahub-operator/v2/controllers/status"
19
23
"github.com/opendatahub-io/opendatahub-operator/v2/pkg/cluster"
20
24
"github.com/opendatahub-io/opendatahub-operator/v2/pkg/deploy"
21
25
)
@@ -110,6 +114,35 @@ func (k *Kserve) GetComponentName() string {
110
114
return ComponentName
111
115
}
112
116
117
+ func (k * Kserve ) GetUpstreamReleaseStatus () status.UpstreamReleases {
118
+ var componentVersion semver.Version
119
+ var repositoryURL string
120
+ var releaseDetails = make ([]status.ComponentReleaseStatus , 0 )
121
+ var releaseStatus status.UpstreamReleases
122
+
123
+ env , err := godotenv .Read (filepath .Join (deploy .DefaultManifestPath , ComponentName , ".env" ))
124
+
125
+ if err != nil {
126
+ return status.UpstreamReleases {}
127
+ }
128
+ if env != nil {
129
+ componentVersion , err = semver .Parse (env ["UPSTREAM_RELEASE_VERSION" ])
130
+
131
+ if err != nil {
132
+ return status.UpstreamReleases {}
133
+ }
134
+ repositoryURL = env ["REPOSITORY_URL" ]
135
+ }
136
+ componentReleaseStatus := status.ComponentReleaseStatus {
137
+ Name : status .Platform (ComponentName ),
138
+ DisplayName : ComponentName ,
139
+ Version : version.OperatorVersion {Version : componentVersion },
140
+ RepoURL : repositoryURL }
141
+ releaseDetails = append (releaseDetails , componentReleaseStatus )
142
+ releaseStatus .UpstreamRelease = releaseDetails
143
+ return releaseStatus
144
+ }
145
+
113
146
func (k * Kserve ) ReconcileComponent (ctx context.Context , cli client.Client ,
114
147
owner metav1.Object , dscispec * dsciv1.DSCInitializationSpec , platform cluster.Platform , _ bool ) error {
115
148
l := logf .FromContext (ctx )
0 commit comments