Compare commits
4 Commits
pf_checks_
...
manifest-r
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9aaec986c3 | ||
|
|
9e7ec1bf8c | ||
|
|
bdb8a69ce3 | ||
|
|
d5402b61da |
@@ -140,14 +140,25 @@ func (qc *QliksenseConfig) BuildRepoPath(version string) string {
|
||||
return qc.BuildRepoPathForContext(qc.Spec.CurrentContext, version)
|
||||
}
|
||||
|
||||
func (qc *QliksenseConfig) BuildRelativeRepoPath(version string) string {
|
||||
return qc.BuildRelativeRepoPathForContext(qc.Spec.CurrentContext, version)
|
||||
}
|
||||
func (qc *QliksenseConfig) BuildRepoPathForContext(contextName, version string) string {
|
||||
return filepath.Join(qc.QliksenseHomePath, qliksenseContextsDirName, contextName, "qlik-k8s", version)
|
||||
}
|
||||
|
||||
//BuildRelativeRepoPathForContext to build relative from qliksense home, so that can be written into cr file
|
||||
// and later easy to export to different computer
|
||||
func (qc *QliksenseConfig) BuildRelativeRepoPathForContext(contextName, version string) string {
|
||||
return filepath.Join(qliksenseContextsDirName, contextName, "qlik-k8s", version)
|
||||
}
|
||||
func (qc *QliksenseConfig) BuildCurrentManifestsRoot(version string) string {
|
||||
return qc.BuildRepoPath(version)
|
||||
}
|
||||
|
||||
func (qc *QliksenseConfig) BuildCurrentRelativeManifestsRoot(version string) string {
|
||||
return qc.BuildRelativeRepoPath(version)
|
||||
}
|
||||
func (qc *QliksenseConfig) WriteCR(cr *QliksenseCR, contextName string) error {
|
||||
crf := qc.GetCRFilePath(contextName)
|
||||
if crf == "" {
|
||||
@@ -486,3 +497,10 @@ func (qc *QliksenseConfig) SetCurrentContextName(name string) {
|
||||
func (qc *QliksenseConfig) Write() error {
|
||||
return WriteToFile(qc, filepath.Join(qc.QliksenseHomePath, "config.yaml"))
|
||||
}
|
||||
|
||||
func (qc *QliksenseConfig) GetCrManifestRoot(cr *QliksenseCR) string {
|
||||
if filepath.IsAbs(cr.Spec.GetManifestsRoot()) {
|
||||
return cr.Spec.GetManifestsRoot()
|
||||
}
|
||||
return filepath.Join(qc.QliksenseHomePath, cr.Spec.GetManifestsRoot())
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ metadata:
|
||||
version: v1.0.0
|
||||
spec:
|
||||
profile: docker-desktop
|
||||
manifestsRoot: /Users/mqb/.qliksense/contexts/contx1/qlik-k8s/v0.0.1/manifests
|
||||
manifestsRoot: contexts/contx1/qlik-k8s/v0.0.1/manifests
|
||||
storageClassName: efs
|
||||
configs:
|
||||
qliksense:
|
||||
|
||||
@@ -63,7 +63,7 @@ func (qliksenseConfig *QliksenseConfig) SwitchCurrentCRToVersionAndProfile(versi
|
||||
if qcr, err := qliksenseConfig.GetCurrentCR(); err != nil {
|
||||
return err
|
||||
} else {
|
||||
versionManifestRoot := qliksenseConfig.BuildCurrentManifestsRoot(version)
|
||||
versionManifestRoot := qliksenseConfig.BuildCurrentRelativeManifestsRoot(version)
|
||||
if (qcr.Spec.ManifestsRoot != versionManifestRoot) || (profile != "" && qcr.Spec.Profile != profile) || (qcr.GetLabelFromCr("version") != version) {
|
||||
qcr.Spec.ManifestsRoot = versionManifestRoot
|
||||
if profile != "" {
|
||||
|
||||
@@ -232,7 +232,6 @@ func UntarGzFile(destination, fileToUntar string) error {
|
||||
fileAtLoc.Chmod(os.ModePerm)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func UnZipFile(destination, fileToUnzip string) error {
|
||||
|
||||
@@ -167,7 +167,7 @@ func (q *Qliksense) configExistsInCurrentContext() (exists bool, directory strin
|
||||
} else if currentCr.Spec.ManifestsRoot == "" {
|
||||
return false, "", "", nil
|
||||
} else {
|
||||
return true, currentCr.Spec.GetManifestsRoot(), currentCr.Spec.Profile, nil
|
||||
return true, q.GetCrManifestRoot(currentCr), currentCr.Spec.Profile, nil
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -82,12 +82,12 @@ func (q *Qliksense) applyConfigToK8s(qcr *qapi.QliksenseCR) error {
|
||||
fmt.Printf(`error fetching user's home directory: %v\n`, err)
|
||||
return err
|
||||
}
|
||||
fmt.Println("Manifests root: " + qcr.Spec.GetManifestsRoot())
|
||||
fmt.Println("Manifests root: " + q.GetCrManifestRoot(qcr))
|
||||
qcr.SetNamespace(qapi.GetKubectlNamespace())
|
||||
// generate patches
|
||||
cr.GeneratePatches(&qcr.KApiCr, path.Join(userHomeDir, ".kube", "config"))
|
||||
// apply generated manifests
|
||||
profilePath := filepath.Join(qcr.Spec.GetManifestsRoot(), qcr.Spec.GetProfileDir())
|
||||
profilePath := filepath.Join(q.GetCrManifestRoot(qcr), qcr.Spec.GetProfileDir())
|
||||
mByte, err := executeKustomizeBuild(profilePath)
|
||||
if err != nil {
|
||||
fmt.Println("cannot generate manifests for "+profilePath, err)
|
||||
|
||||
@@ -19,7 +19,7 @@ func (q *Qliksense) ViewCrds(opts *CrdCommandOptions) error {
|
||||
fmt.Println("cannot get the current-context cr", err)
|
||||
return err
|
||||
}
|
||||
if engineCRD, err := getQliksenseInitCrd(qcr); err != nil {
|
||||
if engineCRD, err := q.getQliksenseInitCrd(qcr); err != nil {
|
||||
return err
|
||||
} else if opts.All {
|
||||
fmt.Printf("%s\n%s", q.GetOperatorCRDString(), engineCRD)
|
||||
@@ -38,7 +38,7 @@ func (q *Qliksense) InstallCrds(opts *CrdCommandOptions) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if engineCRD, err := getQliksenseInitCrd(qcr); err != nil {
|
||||
if engineCRD, err := q.getQliksenseInitCrd(qcr); err != nil {
|
||||
return err
|
||||
} else if err = qapi.KubectlApply(engineCRD, ""); err != nil {
|
||||
return err
|
||||
@@ -52,12 +52,12 @@ func (q *Qliksense) InstallCrds(opts *CrdCommandOptions) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func getQliksenseInitCrd(qcr *qapi.QliksenseCR) (string, error) {
|
||||
func (q *Qliksense) getQliksenseInitCrd(qcr *qapi.QliksenseCR) (string, error) {
|
||||
var repoPath string
|
||||
var err error
|
||||
|
||||
if qcr.Spec.GetManifestsRoot() != "" {
|
||||
repoPath = qcr.Spec.GetManifestsRoot()
|
||||
if q.GetCrManifestRoot(qcr) != "" {
|
||||
repoPath = q.GetCrManifestRoot(qcr)
|
||||
} else {
|
||||
if repoPath, err = downloadFromGitRepoToTmpDir(defaultConfigRepoGitUrl, "master"); err != nil {
|
||||
return "", err
|
||||
|
||||
@@ -8,12 +8,13 @@ import (
|
||||
)
|
||||
|
||||
func TestGetQliksenseInitCrd(t *testing.T) {
|
||||
q := &Qliksense{}
|
||||
someTmpRepoPath, err := downloadFromGitRepoToTmpDir(defaultConfigRepoGitUrl, "master")
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
crdFromContextConfig, err := getQliksenseInitCrd(&qapi.QliksenseCR{
|
||||
crdFromContextConfig, err := q.getQliksenseInitCrd(&qapi.QliksenseCR{
|
||||
KApiCr: kapi_config.KApiCr{
|
||||
Spec: &kapi_config.CRSpec{
|
||||
ManifestsRoot: someTmpRepoPath,
|
||||
@@ -24,7 +25,7 @@ func TestGetQliksenseInitCrd(t *testing.T) {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
crdFromDownloadedConfig, err := getQliksenseInitCrd(&qapi.QliksenseCR{
|
||||
crdFromDownloadedConfig, err := q.getQliksenseInitCrd(&qapi.QliksenseCR{
|
||||
KApiCr: kapi_config.KApiCr{
|
||||
Spec: &kapi_config.CRSpec{
|
||||
ManifestsRoot: "",
|
||||
|
||||
@@ -36,7 +36,7 @@ func (q *Qliksense) PullImagesForCurrentCR() error {
|
||||
}
|
||||
version := qcr.GetLabelFromCr("version")
|
||||
profile := qcr.Spec.Profile
|
||||
repoDir := qcr.Spec.ManifestsRoot
|
||||
repoDir := q.GetCrManifestRoot(qcr)
|
||||
|
||||
imagesDir, err := setupImagesDir(q.QliksenseHome)
|
||||
if err != nil {
|
||||
@@ -125,7 +125,7 @@ func (q *Qliksense) PushImagesForCurrentCR() error {
|
||||
}
|
||||
version := qcr.GetLabelFromCr("version")
|
||||
profile := qcr.Spec.Profile
|
||||
repoDir := qcr.Spec.ManifestsRoot
|
||||
repoDir := q.GetCrManifestRoot(qcr)
|
||||
|
||||
dockerConfigJsonSecret, err := qConfig.GetPushDockerConfigJsonSecret()
|
||||
if err != nil {
|
||||
|
||||
@@ -34,7 +34,7 @@ func fetchAndUpdateCR(qConfig *qapi.QliksenseConfig, version string) error {
|
||||
} else if err = kapis_git.Checkout(repo, version, fmt.Sprintf("%v-by-operator-%v", version, uuid.New().String()), nil); err != nil {
|
||||
return err
|
||||
}
|
||||
qcr.Spec.ManifestsRoot = qConfig.BuildCurrentManifestsRoot(version)
|
||||
qcr.Spec.ManifestsRoot = qConfig.BuildCurrentRelativeManifestsRoot(version)
|
||||
qcr.AddLabelToCr("version", version)
|
||||
return qConfig.WriteCurrentContextCR(qcr)
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@ func (q *Qliksense) GetInstallableVersions(opts *LsRemoteCmdOptions) error {
|
||||
}
|
||||
|
||||
var repoPath string
|
||||
if qcr.Spec.GetManifestsRoot() != "" {
|
||||
repoPath = qcr.Spec.GetManifestsRoot()
|
||||
if q.GetCrManifestRoot(qcr) != "" {
|
||||
repoPath = q.GetCrManifestRoot(qcr)
|
||||
} else {
|
||||
repoPath, err = downloadFromGitRepoToTmpDir(defaultConfigRepoGitUrl, "master")
|
||||
if err != nil {
|
||||
|
||||
@@ -107,7 +107,7 @@ func (q *Qliksense) InstallQK8s(version string, opts *InstallCommandOptions, kee
|
||||
if err != nil {
|
||||
fmt.Println("cannot get the current-context cr", err)
|
||||
return err
|
||||
} else if qcr.Spec.GetManifestsRoot() == "" {
|
||||
} else if qConfig.GetCrManifestRoot(qcr) == "" {
|
||||
return errors.New("cannot get the manifest root. Use qliksense fetch <version> or qliksense set manifestsRoot")
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package qliksense
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"path/filepath"
|
||||
|
||||
kapis_git "github.com/qlik-oss/k-apis/pkg/git"
|
||||
qapi "github.com/qlik-oss/sense-installer/pkg/api"
|
||||
@@ -12,8 +13,8 @@ func (q *Qliksense) DiscardAllUnstagedChangesFromGitRepo(qConfig *qapi.Qliksense
|
||||
return err
|
||||
} else if version := qcr.GetLabelFromCr("version"); version == "" {
|
||||
return errors.New("version label is not set in CR")
|
||||
} else if qcr.Spec.ManifestsRoot == qConfig.BuildRepoPath(version) {
|
||||
if repo, err := kapis_git.OpenRepository(qcr.Spec.ManifestsRoot); err != nil {
|
||||
} else if qConfig.GetCrManifestRoot(qcr) == qConfig.BuildRepoPath(version) {
|
||||
if repo, err := kapis_git.OpenRepository(qConfig.GetCrManifestRoot(qcr)); err != nil {
|
||||
return err
|
||||
} else if err = kapis_git.DiscardAllUnstagedChanges(repo); err != nil {
|
||||
return err
|
||||
@@ -21,3 +22,10 @@ func (q *Qliksense) DiscardAllUnstagedChangesFromGitRepo(qConfig *qapi.Qliksense
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (q *Qliksense) GetCrManifestRoot(cr *qapi.QliksenseCR) string {
|
||||
if filepath.IsAbs(cr.Spec.GetManifestsRoot()) {
|
||||
return cr.Spec.GetManifestsRoot()
|
||||
}
|
||||
return filepath.Join(q.QliksenseHome, cr.Spec.GetManifestsRoot())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user