/
environments.go
55 lines (51 loc) · 1.71 KB
/
environments.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package opts
import (
jenkinsv1 "github.com/jenkins-x/jx/v2/pkg/apis/jenkins.io/v1"
"github.com/jenkins-x/jx/v2/pkg/kube"
"github.com/jenkins-x/jx/v2/pkg/kube/services"
"github.com/jenkins-x/jx/v2/pkg/log"
)
// RegisterEnvironmentCRD registers the CRD for environmnt
func (o *CommonOptions) RegisterEnvironmentCRD() error {
apisClient, err := o.ApiExtensionsClient()
if err != nil {
return err
}
err = kube.RegisterEnvironmentCRD(apisClient)
return err
}
// GetDevEnv gets the Development Environment CRD as devEnv,
// and also tells the user whether the development environment is using gitOps
func (o *CommonOptions) GetDevEnv() (gitOps bool, devEnv *jenkinsv1.Environment) {
// We're going to need to know whether the team is using GitOps for the dev env or not,
// and also access the team settings, so load those
jxClient, ns, err := o.JXClientAndDevNamespace()
if err != nil {
log.Logger().Errorf("Error loading team settings. %v", err)
return false, &jenkinsv1.Environment{}
} else {
devEnv, err := kube.GetDevEnvironment(jxClient, ns)
if err != nil {
log.Logger().Errorf("Error loading team settings. %v", err)
return false, &jenkinsv1.Environment{}
}
gitOps := false
if devEnv == nil {
devEnv = &jenkinsv1.Environment{}
devEnv.Spec.Namespace = ns
}
if devEnv.Spec.Source.URL != "" {
gitOps = true
}
return gitOps, devEnv
}
}
// ResolveChartMuseumURL resolves the current Chart Museum URL so we can pass it into a remote Environment's
// git repository
func (o *CommonOptions) ResolveChartMuseumURL() (string, error) {
kubeClient, ns, err := o.KubeClientAndDevNamespace()
if err != nil {
return "", err
}
return services.FindServiceURL(kubeClient, ns, kube.ServiceChartMuseum)
}