Skip to content

Commit

Permalink
Merge branch 'main' into e2e/RHIDP-2914
Browse files Browse the repository at this point in the history
  • Loading branch information
nilgaar authored Dec 9, 2024
2 parents 4da52cd + d871ec6 commit 73afbf6
Show file tree
Hide file tree
Showing 344 changed files with 4,295 additions and 37,328 deletions.
26 changes: 10 additions & 16 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
registry-url: 'https://registry.npmjs.org'
cache: 'yarn'

- name: Setup local Turbo cache
uses: dtinth/setup-github-actions-caching-for-turbo@cc723b4600e40a6b8815b65701d8614b91e2669e # v1
Expand All @@ -52,11 +51,12 @@ jobs:
run: rm app-config.yaml && mv app-config.example.yaml app-config.yaml

- name: Install dependencies
run: |
yarn install
uses: backstage/actions/yarn-install@25145dd4117d50e1da9330e9ed2893bc6b75373e # v0.6.15
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}

- name: Build packages
run: yarn run build --concurrency=75% --affected
run: yarn run build --continue --affected

test:
name: Test with Node.js ${{ matrix.node-version }}
Expand All @@ -75,7 +75,6 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
registry-url: 'https://registry.npmjs.org'
cache: 'yarn'

- name: Setup local Turbo cache
uses: dtinth/setup-github-actions-caching-for-turbo@cc723b4600e40a6b8815b65701d8614b91e2669e # v1
Expand All @@ -84,32 +83,27 @@ jobs:
run: rm app-config.yaml && mv app-config.example.yaml app-config.yaml

- name: Install dependencies
run: |
yarn install
uses: backstage/actions/yarn-install@25145dd4117d50e1da9330e9ed2893bc6b75373e # v0.6.15
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}

- name: Run prettier
run: yarn prettier:check --concurrency=75% --affected
run: yarn prettier:check --continue --affected

- name: Run lint
run: yarn run lint:check --concurrency=75% --affected
run: yarn run lint:check --continue --affected

- name: Run monorepo tools
run: yarn run monorepo:check

- name: Run prettier for e2e
run: cd e2e-tests && yarn prettier:check --concurrency=75% --affected

- name: Run lint for e2e
run: cd e2e-tests && yarn run lint:check

- name: Regenerate dockerfiles
run: |
yarn run build:dockerfile; if [[ $(git diff --name-only | grep Dockerfile || true) != "" ]]; then \
echo "ERROR: Workspace is dirty! Must run 'yarn build:dockerfile' and commit changes!"; exit 1; \
fi
- name: Run tests
run: yarn run test --concurrency=75% --affected
run: yarn run test --continue --affected

- name: Verify wrappers
run: yarn workspace dynamic-plugins-utils run test:wrappers
21 changes: 7 additions & 14 deletions .github/workflows/techdocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,27 +43,20 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Node
uses: actions/setup-node@v4
- name: Setup Node.js
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
registry-url: 'https://registry.npmjs.org'

- name: Setup local Turbo cache
uses: dtinth/setup-github-actions-caching-for-turbo@v1

- name: Install Dependencies
run: |
yarn install
if [[ $(git diff --name-only . | grep yarn.lock || true) ]]; then
echo "After 'yarn install', workspace is dirty! The following files have changed:"
echo
git diff --name-only . || true
exit 42
fi
- name: Install dependencies
uses: backstage/actions/yarn-install@25145dd4117d50e1da9330e9ed2893bc6b75373e # v0.6.15
with:
cache-prefix: ${{ runner.os }}-v20

- name: Lint
run: |
Expand Down
13 changes: 5 additions & 8 deletions .github/workflows/update-backstage.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,6 @@ on:
Specify a glob pattern to select packages for upgrade (e.g., `@{backstage,backstage-community}/*`).
To update all Backstage-related packages, use `@{backstage,backstage-community,janus-idp,roadiehq,immobiliarelabs,pagerduty,parfuemerie-douglas}/*`.
required: false
skip-export-dynamic:
description: 'Skip updating dynamic plugins'
required: false
type: boolean
schedule:
- cron: "15 3 * * WED" # Every Wednesday at 3:15 AM

Expand All @@ -48,7 +44,7 @@ jobs:
steps:
- name: Generate token
id: generate-token
uses: actions/create-github-app-token@31c86eb3b33c9b601a1f60f98dcbfd1d70f379b4 # v1.10.3
uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
with:
app-id: ${{ vars.JANUS_IDP_GITHUB_APP_ID }}
private-key: ${{ secrets.JANUS_IDP_GITHUB_APP_PRIVATE_KEY }}
Expand All @@ -65,14 +61,15 @@ jobs:
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
run: yarn install
uses: backstage/actions/yarn-install@25145dd4117d50e1da9330e9ed2893bc6b75373e # v0.6.15
with:
cache-prefix: ${{ runner.os }}-v20

- name: Run versons:bump script
run: |
yarn versions:bump \
${{ inputs.release && format('--release {0}', inputs.release) }} \
${{ inputs.pattern && format('--pattern {0}', inputs.pattern) }} \
${{ inputs.skip-export-dynamic && '--skip-export-dynamic' }}
${{ inputs.pattern && format('--pattern {0}', inputs.pattern) }}
- name: Determine PR details
id: pr-details
Expand Down
4 changes: 1 addition & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ node_modules/
dist
dist-types
dist-scalprum
dist-dynamic

# Temporary change files created by Vim
*.swp
Expand All @@ -54,9 +55,6 @@ site
# Dynamic plugins root content
dynamic-plugins-root/*
!dynamic-plugins-root/.gitkeep
dynamic-plugins/wrappers/*/dist-dynamic/src
dynamic-plugins/imports/*/
dynamic-plugins/*/dist-dynamic/src

#dev caches
.webpack-cache
Expand Down
2 changes: 1 addition & 1 deletion .ibm/pipelines/auth/secrets-rhdh-secrets.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ data:
KEYCLOAK_CLIENT_ID: bXljbGllbnQ=
KEYCLOAK_CLIENT_SECRET: dGVtcA==
ACR_SECRET: dGVtcA==
DH_TARGET_URL: aHR0cDovL3Rlc3QtYmFja3N0YWdlLWN1c3RvbWl6YXRpb24tcHJvdmlkZXItc2hvd2Nhc2UtY2kucmhkaC1wci1vcy1hOTgwNTY1MDgzMGIyMmMzYWVlMjQzZTUxZDc5NTY1ZC0wMDAwLnVzLWVhc3QuY29udGFpbmVycy5hcHBkb21haW4uY2xvdWQ=
DH_TARGET_URL: dGVzdC1iYWNrc3RhZ2UtY3VzdG9taXphdGlvbi1wcm92aWRlci1zaG93Y2FzZS1jaS5yaGRoLXByLW9zLWE5ODA1NjUwODMwYjIyYzNhZWUyNDNlNTFkNzk1NjVkLTAwMDAudXMtZWFzdC5jb250YWluZXJzLmFwcGRvbWFpbi5jbG91ZA==
GOOGLE_CLIENT_ID: dGVtcA==
GOOGLE_CLIENT_SECRET: dGVtcA==
type: Opaque
4 changes: 1 addition & 3 deletions .ibm/pipelines/cluster/aks/deployment.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
initiate_aks_deployment() {
install_helm
add_helm_repos
delete_namespace "${NAME_SPACE_RBAC_K8S}"
configure_namespace "${NAME_SPACE_K8S}"
Expand All @@ -20,7 +19,6 @@ initiate_aks_deployment() {
}

initiate_rbac_aks_deployment() {
install_helm
add_helm_repos
delete_namespace "${NAME_SPACE_K8S}"
configure_namespace "${NAME_SPACE_RBAC_K8S}"
Expand All @@ -38,4 +36,4 @@ initiate_rbac_aks_deployment() {
--set global.host="${K8S_CLUSTER_ROUTER_BASE}" \
--set upstream.backstage.image.repository="${QUAY_REPO}" \
--set upstream.backstage.image.tag="${TAG_NAME}"
}
}
4 changes: 1 addition & 3 deletions .ibm/pipelines/cluster/gke/deployment.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
initiate_gke_deployment() {
gcloud_ssl_cert_create $GKE_CERT_NAME $GKE_INSTANCE_DOMAIN_NAME $GOOGLE_CLOUD_PROJECT
install_helm
add_helm_repos
delete_namespace "${NAME_SPACE_RBAC_K8S}"
configure_namespace "${NAME_SPACE_K8S}"
Expand All @@ -24,7 +23,6 @@ initiate_gke_deployment() {

initiate_rbac_gke_deployment() {
gcloud_ssl_cert_create $GKE_CERT_NAME $GKE_INSTANCE_DOMAIN_NAME $GOOGLE_CLOUD_PROJECT
install_helm
add_helm_repos
delete_namespace "${NAME_SPACE_K8S}"
configure_namespace "${NAME_SPACE_RBAC_K8S}"
Expand All @@ -43,4 +41,4 @@ initiate_rbac_gke_deployment() {
--set upstream.backstage.image.repository="${QUAY_REPO}" \
--set upstream.backstage.image.tag="${TAG_NAME}" \
--set upstream.ingress.annotations."ingress\.gcp\.kubernetes\.io/pre-shared-cert"="${GKE_CERT_NAME}"
}
}
31 changes: 30 additions & 1 deletion .ibm/pipelines/env_variables.sh
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ KEYCLOAK_REALM='myrealm'
KEYCLOAK_CLIENT_ID='myclient'
KEYCLOAK_CLIENT_SECRET=$(cat /tmp/secrets/KEYCLOAK_CLIENT_SECRET)
ACR_SECRET=$(cat /tmp/secrets/ACR_SECRET)
DH_TARGET_URL=aHR0cDovL3Rlc3QtYmFja3N0YWdlLWN1c3RvbWl6YXRpb24tcHJvdmlkZXItc2hvd2Nhc2UtY2kucmhkaC1wci1vcy1hOTgwNTY1MDgzMGIyMmMzYWVlMjQzZTUxZDc5NTY1ZC0wMDAwLnVzLWVhc3QuY29udGFpbmVycy5hcHBkb21haW4uY2xvdWQ=
DH_TARGET_URL=dGVzdC1iYWNrc3RhZ2UtY3VzdG9taXphdGlvbi1wcm92aWRlci1zaG93Y2FzZS1jaS5yaGRoLXByLW9zLWE5ODA1NjUwODMwYjIyYzNhZWUyNDNlNTFkNzk1NjVkLTAwMDAudXMtZWFzdC5jb250YWluZXJzLmFwcGRvbWFpbi5jbG91ZA==
GOOGLE_CLIENT_ID=$(cat /tmp/secrets/GOOGLE_CLIENT_ID)
GOOGLE_CLIENT_SECRET=$(cat /tmp/secrets/GOOGLE_CLIENT_SECRET)
GOOGLE_ACC_COOKIE=$(cat /tmp/secrets/GOOGLE_ACC_COOKIE)
Expand Down Expand Up @@ -107,4 +107,33 @@ GKE_SERVICE_ACCOUNT_NAME=$(cat /tmp/secrets/GKE_SERVICE_ACCOUNT_NAME)
GKE_CERT_NAME=$(cat /tmp/secrets/GKE_CERT_NAME)
GOOGLE_CLOUD_PROJECT=$(cat /tmp/secrets/GOOGLE_CLOUD_PROJECT)

# authentication providers variables
RHSSO76_ADMIN_USERNAME=$(cat /tmp/secrets/RHSSO76_ADMIN_USERNAME)
RHSSO76_ADMIN_PASSWORD=$(cat /tmp/secrets/RHSSO76_ADMIN_PASSWORD)
RHSSO76_DEFAULT_PASSWORD=$(cat /tmp/secrets/RHSSO76_DEFAULT_PASSWORD)
RHSSO76_URL=$(cat /tmp/secrets/RHSSO76_URL)
RHSSO76_CLIENT_SECRET=$(cat /tmp/secrets/RHSSO76_CLIENT_SECRET)
RHSSO76_CLIENT_ID="myclient"
AUTH_PROVIDERS_REALM_NAME="authProviders"

AZURE_LOGIN_USERNAME=$(cat /tmp/secrets/AZURE_LOGIN_USERNAME)
AZURE_LOGIN_PASSWORD=$(cat /tmp/secrets/AZURE_LOGIN_PASSWORD)
AUTH_PROVIDERS_AZURE_CLIENT_ID=$(cat /tmp/secrets/AUTH_PROVIDERS_AZURE_CLIENT_ID)
AUTH_PROVIDERS_AZURE_CLIENT_SECRET=$(cat /tmp/secrets/AUTH_PROVIDERS_AZURE_CLIENT_SECRET)
AUTH_PROVIDERS_AZURE_TENANT_ID=$(cat /tmp/secrets/AUTH_PROVIDERS_AZURE_TENANT_ID)

AUTH_PROVIDERS_GH_ORG_NAME="rhdhqeauthorg"
AUTH_ORG_APP_ID=$(cat /tmp/secrets/AUTH_ORG_APP_ID)
AUTH_ORG_CLIENT_ID=$(cat /tmp/secrets/AUTH_ORG_CLIENT_ID)
AUTH_ORG_CLIENT_SECRET=$(cat /tmp/secrets/AUTH_ORG_CLIENT_SECRET)
AUTH_ORG1_PRIVATE_KEY=$(cat /tmp/secrets/AUTH_ORG1_PRIVATE_KEY)
AUTH_ORG_PK=$(cat /tmp/secrets/AUTH_ORG_PK)
AUTH_ORG_WEBHOOK_SECRET=$(cat /tmp/secrets/AUTH_ORG_WEBHOOK_SECRET)
GH_USER_PASSWORD=$(cat /tmp/secrets/GH_USER_PASSWORD)

AUTH_PROVIDERS_RELEASE="rhdh-auth-providers"
AUTH_PROVIDERS_NAMESPACE="showcase-auth-providers"
STATIC_API_TOKEN="somecicdtoken"
AUTH_PROVIDERS_CHART="rhdh-chart/backstage"

set +a # Stop automatically exporting variables
30 changes: 30 additions & 0 deletions .ibm/pipelines/jobs/aks.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/sh

handle_aks() {
echo "Starting AKS deployment"
for file in ${DIR}/cluster/aks/*.sh; do source $file; done

export K8S_CLUSTER_URL=$(cat /tmp/secrets/RHDH_AKS_CLUSTER_URL)
export K8S_CLUSTER_TOKEN=$(cat /tmp/secrets/RHDH_AKS_CLUSTER_TOKEN)
export K8S_CLUSTER_ROUTER_BASE=$AKS_INSTANCE_DOMAIN_NAME
export NAME_SPACE_K8S="showcase-k8s-ci-nightly"
export NAME_SPACE_RBAC_K8S="showcase-rbac-k8s-ci-nightly"

url="https://${K8S_CLUSTER_ROUTER_BASE}"

az_login
az_aks_start "${AKS_NIGHTLY_CLUSTER_NAME}" "${AKS_NIGHTLY_CLUSTER_RESOURCEGROUP}"
az_aks_approuting_enable "${AKS_NIGHTLY_CLUSTER_NAME}" "${AKS_NIGHTLY_CLUSTER_RESOURCEGROUP}"
az_aks_get_credentials "${AKS_NIGHTLY_CLUSTER_NAME}" "${AKS_NIGHTLY_CLUSTER_RESOURCEGROUP}"

set_github_app_3_credentials

initiate_aks_deployment
check_and_test "${RELEASE_NAME}" "${NAME_SPACE_K8S}" "${url}"
delete_namespace "${NAME_SPACE_K8S}"
initiate_rbac_aks_deployment
check_and_test "${RELEASE_NAME_RBAC}" "${NAME_SPACE_RBAC_K8S}"
delete_namespace "${NAME_SPACE_RBAC_K8S}"
}


24 changes: 24 additions & 0 deletions .ibm/pipelines/jobs/gke.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh

handle_gke() {
echo "Starting GKE deployment"
for file in ${DIR}/cluster/gke/*.sh; do source $file; done

export K8S_CLUSTER_ROUTER_BASE=$GKE_INSTANCE_DOMAIN_NAME
export NAME_SPACE_K8S="showcase-k8s-ci-nightly"
export NAME_SPACE_RBAC_K8S="showcase-rbac-k8s-ci-nightly"
url="https://${K8S_CLUSTER_ROUTER_BASE}"

gcloud_auth "${GKE_SERVICE_ACCOUNT_NAME}" "/tmp/secrets/GKE_SERVICE_ACCOUNT_KEY"
gcloud_gke_get_credentials "${GKE_CLUSTER_NAME}" "${GKE_CLUSTER_REGION}" "${GOOGLE_CLOUD_PROJECT}"

set_github_app_3_credentials

initiate_gke_deployment
check_and_test "${RELEASE_NAME}" "${NAME_SPACE_K8S}" "${url}"
delete_namespace "${NAME_SPACE_K8S}"
initiate_rbac_gke_deployment
check_and_test "${RELEASE_NAME_RBAC}" "${NAME_SPACE_RBAC_K8S}"
delete_namespace "${NAME_SPACE_RBAC_K8S}"

}
42 changes: 42 additions & 0 deletions .ibm/pipelines/jobs/main.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/sh

set -x

set_namespace() {
# Enable parallel PR testing for main branch by utilizing a pool of namespaces
local namespaces_pool=("pr-1" "pr-2" "pr-3")
local namespace_found=false
# Iterate through namespace pool to find an available set
for ns in "${namespaces_pool[@]}"; do
if ! oc get namespace "showcase-$ns" >/dev/null 2>&1; then
echo "Namespace "showcase-$ns" does not exist, Using NS: showcase-$ns, showcase-rbac-$ns, postgress-external-db-$ns"
export NAME_SPACE="showcase-$ns"
export NAME_SPACE_RBAC="showcase-rbac-$ns"
export NAME_SPACE_POSTGRES_DB="postgress-external-db-$ns"
namespace_found=true
break
fi
done
if ! $namespace_found; then
echo "Error: All namespaces $namespaces_pool already in Use"
exit 1
fi
}

handle_main() {
echo "Configuring namespace: ${NAME_SPACE}"
set_github_app_4_credentials
set_namespace
oc_login

API_SERVER_URL=$(oc whoami --show-server)
ENCODED_API_SERVER_URL=$(echo "${API_SERVER_URL}" | base64)
ENCODED_CLUSTER_NAME=$(echo "my-cluster" | base64)

export K8S_CLUSTER_ROUTER_BASE=$(oc get route console -n openshift-console -o=jsonpath='{.spec.host}' | sed 's/^[^.]*\.//')
local url="https://${RELEASE_NAME}-backstage-${NAME_SPACE}.${K8S_CLUSTER_ROUTER_BASE}"
initiate_deployments
deploy_test_backstage_provider "${NAME_SPACE}"
check_and_test "${RELEASE_NAME}" "${NAME_SPACE}" "${url}"
check_and_test "${RELEASE_NAME_RBAC}" "${NAME_SPACE_RBAC}" "${url}"
}
21 changes: 21 additions & 0 deletions .ibm/pipelines/jobs/ocp-v4-15.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/sh

handle_ocp_4_15() {
K8S_CLUSTER_URL=$(cat /tmp/secrets/RHDH_OS_2_CLUSTER_URL)
K8S_CLUSTER_TOKEN=$(cat /tmp/secrets/RHDH_OS_2_CLUSTER_TOKEN)

oc_login

API_SERVER_URL=$(oc whoami --show-server)
ENCODED_API_SERVER_URL=$(echo "${API_SERVER_URL}" | base64)
ENCODED_CLUSTER_NAME=$(echo "my-cluster" | base64)

export K8S_CLUSTER_ROUTER_BASE=$(oc get route console -n openshift-console -o=jsonpath='{.spec.host}' | sed 's/^[^.]*\.//')
apply_yaml_files "${DIR}" "${NAME_SPACE}"
deploy_test_backstage_provider "${NAME_SPACE}"
local url="https://${release_name}-backstage-${namespace}.${K8S_CLUSTER_ROUTER_BASE}"

initiate_deployments
check_and_test "${RELEASE_NAME}" "${NAME_SPACE}" "${url}"
check_and_test "${RELEASE_NAME_RBAC}" "${NAME_SPACE_RBAC}" "${url}"
}
Loading

0 comments on commit 73afbf6

Please sign in to comment.