GithubHelp home page GithubHelp logo

back-stack's Issues

Discrepancy between name of host cluster in Argo and Backstage

In backstage/catalog/resources/hostcluster.yaml, the Host cluster is named hostcluster. However, when it's registered with Argo, it is named in-cluster. This leads to a discrepancy when creating an application to run on the cluster (i.e. without creating "spoke" clusters), since line 65 of backstage/catalog/templates/application/template.yaml extracts the name of the Catalog-resource cluster as the cluster_id - resulting in an Argo Application trying to deploy to hostcluster when Argo only knows about a cluster named in-cluster.

I'm not sure how to resolve this. I was able to make a successful application deployment by manually changing Argo's view of the name of the cluster to hostcluster, to match the name in the Backstage catalog, but I'd rather find a way to do so from GitOps configuration rather than manual action. Some ideas:

  • when I tried changing the name in hostcluster.yaml to in-cluster (so that it would match what Argo calls the "self" cluster), Backstage became inaccessible - I got 502 Bad Gateway when accessing https://backstage-7f000001.nip.io, despite the pods, service, ingress etc. all looking healthy.
  • presumably if there was a way to override Argo's cluster-naming via GitOps configuration, that would work - but I don't see any such configuration in the source repo
  • alternatively, the backstage/catalog/templates/application/template.yaml file could be updated with some (pseudo-code) if (.name == 'hostcluster') then {'in-cluster'} else {.name} - but, as my pseudo-code probably makes clear, I have no idea how to accomplish that.

Hub Cluster Up

Bash script to install:

  • Crossplane

Compositions to bootstrap:

  • Argo
  • Kyverno
  • Backstage

`helm upgrade ... --set-json` requires some version of `helm` >3.93 <=3.13.1

Issue

This line of the local-install.sh script uses --set-json, which appears to be unsupported on the version of helm I was previously using:

$ helm version
version.BuildInfo{Version:"v3.9.3", GitCommit:"414ff28d4029ae8c8b05d62aa06c7fe3dee2bc58", GitTreeState:"clean", GoVersion:"go1.17.13"}

$ helm upgrade --install ess-plugin-vault oci://xpkg.upbound.io/crossplane-contrib/ess-plugin-vault --namespace crossplane-system --set-json podAnnotations='{"vault.hashicorp.com/agent-inject": "true", "vault.hashicorp.com/agent-inject-token": "true", "vault.hashicorp.com/role": "crossplane", "vault.hashicorp.com/agent-run-as-user": "65532"}'

Error: unknown flag: --set-json

However, after upgrading helm, the command completed with no issues:

$ helm version
version.BuildInfo{Version:"v3.13.1", GitCommit:"3547a4b5bf5edb5478ce352e18858d8a552a4110", GitTreeState:"clean", GoVersion:"go1.20.8"}

$ helm upgrade --install ess-plugin-vault oci://xpkg.upbound.io/crossplane-contrib/ess-plugin-vault --namespace crossplane-system --set-json podAnnotations='{"vault.hashicorp.com/agent-inject": "true", "vault.hashicorp.com/agent-inject-token": "true", "vault.hashicorp.com/role": "crossplane", "vault.hashicorp.com/agent-run-as-user": "65532"}'

Pulled: xpkg.upbound.io/crossplane-contrib/ess-plugin-vault:0.1.0
Digest: sha256:449ccc4791b7d6e047bb4c1b3e6ec3bc42c2ad0d5ed2a5122ffaa1e16478b40b
Release "ess-plugin-vault" has been upgraded. Happy Helming!
NAME: ess-plugin-vault
LAST DEPLOYED: Fri Nov 10 16:19:05 2023
NAMESPACE: crossplane-system
STATUS: deployed
REVISION: 2
TEST SUITE: None

Proposed fix

Simple: Update to README.md mentioning the minimum required version of helm
Better: version check in local-install.sh which errors out if unsupported version of helm is present

Other notes

Right now I'm focused on getting my own version of the Stack up-and-running - I had a quick Google to look for the helm version which introduced --set-json, but couldn't find it. If no-one's picked this up by the time I have a working Stack, I'd be happy to address this myself.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.