-
Notifications
You must be signed in to change notification settings - Fork 33
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
80 changed files
with
30,983 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
.git | ||
.yarn/cache | ||
.yarn/install-state.gz | ||
node_modules | ||
packages/*/src | ||
packages/*/node_modules | ||
plugins | ||
*.local.yaml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
playwright.config.ts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
module.exports = { | ||
root: true, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# macOS | ||
.DS_Store | ||
|
||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
lerna-debug.log* | ||
|
||
# Coverage directory generated when running tests with coverage | ||
coverage | ||
|
||
# Dependencies | ||
node_modules/ | ||
|
||
# Yarn 3 files | ||
.pnp.* | ||
.yarn/* | ||
!.yarn/patches | ||
!.yarn/plugins | ||
!.yarn/releases | ||
!.yarn/sdks | ||
!.yarn/versions | ||
|
||
# Node version directives | ||
.nvmrc | ||
|
||
# dotenv environment variables file | ||
.env | ||
.env.test | ||
|
||
# Build output | ||
dist | ||
dist-types | ||
|
||
# Temporary change files created by Vim | ||
*.swp | ||
|
||
# MkDocs build output | ||
site | ||
|
||
# Local configuration files | ||
*.local.yaml | ||
|
||
# Sensitive credentials | ||
*-credentials.yaml | ||
|
||
# vscode database functionality support files | ||
*.session.sql | ||
|
||
# E2E test reports | ||
e2e-test-report/ | ||
|
||
# Ignore duplicate files to create template | ||
backstage\packages\template-cluster\content |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
dist | ||
dist-types | ||
coverage | ||
.vscode |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
FROM node:20-bookworm-slim | ||
|
||
# Install isolate-vm dependencies, these are needed by the @backstage/plugin-scaffolder-backend. | ||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ | ||
--mount=type=cache,target=/var/lib/apt,sharing=locked \ | ||
apt-get update && \ | ||
apt-get install -y --no-install-recommends python3 g++ build-essential && \ | ||
yarn config set python /usr/bin/python3 | ||
|
||
# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, | ||
# in which case you should also move better-sqlite3 to "devDependencies" in package.json. | ||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ | ||
--mount=type=cache,target=/var/lib/apt,sharing=locked \ | ||
apt-get update && \ | ||
apt-get install -y --no-install-recommends libsqlite3-dev | ||
|
||
# From here on we use the least-privileged `node` user to run the backend. | ||
USER node | ||
|
||
# This should create the app dir as `node`. | ||
# If it is instead created as `root` then the `tar` command below will | ||
# fail: `can't create directory 'packages/': Permission denied`. | ||
# If this occurs, then ensure BuildKit is enabled (`DOCKER_BUILDKIT=1`) | ||
# so the app dir is correctly created as `node`. | ||
WORKDIR /app | ||
|
||
# This switches many Node.js dependencies to production mode. | ||
ENV NODE_ENV=production | ||
|
||
# Copy repo skeleton first, to avoid unnecessary docker cache invalidation. | ||
# The skeleton contains the package.json of each package in the monorepo, | ||
# and along with yarn.lock and the root package.json, that's enough to run yarn install. | ||
COPY --chown=node:node yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./ | ||
RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz | ||
|
||
RUN --mount=type=cache,target=/home/node/.cache/yarn,sharing=locked,uid=1000,gid=1000 \ | ||
yarn install --frozen-lockfile --production --network-timeout 300000 | ||
|
||
# Then copy the rest of the backend bundle, along with any other files we might want. | ||
COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./ | ||
RUN tar xzf bundle.tar.gz && rm bundle.tar.gz | ||
|
||
# Copy the examples directory to the same folder as frontend and backend | ||
COPY --chown=node:node packages/examples ./examples | ||
COPY --chown=node:node packages/template-cluster ./template-cluster | ||
|
||
ENV NODE_EXTRA_CA_CERTS=/etc/tls/tls.crt | ||
ENV NODE_OPTIONS=--no-node-snapshot | ||
|
||
RUN printenv | ||
|
||
CMD ["node", "packages/backend", "--config", "app-config.yaml"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,177 @@ | ||
app: | ||
title: Microsoft - Platform Engineering | ||
baseUrl: http://localhost:3000 | ||
|
||
|
||
organization: | ||
name: Microsoft - Platform Engineering | ||
|
||
backend: | ||
# Used for enabling authentication, secret is shared by all backend plugins | ||
# See https://backstage.io/docs/auth/service-to-service-auth for | ||
# information on the format | ||
# auth: | ||
# keys: | ||
# - secret: ${BACKEND_SECRET} | ||
baseUrl: http://localhost:7007 | ||
listen: | ||
host: 0.0.0.0 | ||
port: 7007 | ||
# Uncomment the following host directive to bind to specific interfaces | ||
# host: 127.0.0.1 | ||
csp: | ||
upgrade-insecure-requests: false | ||
connect-src: ["'self'", 'http:', 'https:'] | ||
# Content-Security-Policy directives follow the Helmet format: https://helmetjs.github.io/#reference | ||
# Default Helmet Content-Security-Policy values can be removed by setting the key to false | ||
cors: | ||
origin: http://localhost:3000 | ||
methods: [GET, HEAD, PATCH, POST, PUT, DELETE] | ||
credentials: true | ||
Access-Control-Allow-Origin: '*' | ||
headers: ['Content-Type', 'X-Requested-With', 'Authorization'] | ||
https: | ||
certificate: | ||
type: 'pem' | ||
key: | ||
$file: ../terraform/tls.key #When running a YARN build you will need to make this resolve to the correct path in this case add a . however that will need to change when you build the image for the actual mount point. Alternativley create a local app-config with this removed to run YARN builds. | ||
cert: | ||
$file: ../terraform/tls.crt | ||
# This is for local development only, it is not recommended to use this in production | ||
# The production database configuration is stored in app-config.production.yaml | ||
database: | ||
client: pg | ||
connection: | ||
host: ${POSTGRES_HOST} | ||
port: ${POSTGRES_PORT} | ||
user: ${POSTGRES_USER} | ||
password: ${POSTGRES_PASSWORD} | ||
database: ${POSTGRES_DB} | ||
ssl: | ||
require: true | ||
rejectUnauthorized: false | ||
integrations: | ||
github: | ||
- host: github.com | ||
# This is a Personal Access Token or PAT from GitHub. You can find out how to generate this token, and more information | ||
# about setting up the GitHub integration here: https://backstage.io/docs/getting-started/configuration#setting-up-a-github-integration | ||
token: ${GITHUB_TOKEN} | ||
### Example for how to add your GitHub Enterprise instance using the API: | ||
# - host: ghe.example.net | ||
# apiBaseUrl: https://ghe.example.net/api/v3 | ||
# token: ${GHE_TOKEN} | ||
|
||
proxy: | ||
### Example for how to add a proxy endpoint for the frontend. | ||
### A typical reason to do this is to handle HTTPS and CORS for internal services. | ||
# endpoints: | ||
# '/test': | ||
# target: 'https://example.com' | ||
# changeOrigin: true | ||
|
||
# Reference documentation http://backstage.io/docs/features/techdocs/configuration | ||
# Note: After experimenting with basic setup, use CI/CD to generate docs | ||
# and an external cloud storage when deploying TechDocs for production use-case. | ||
# https://backstage.io/docs/features/techdocs/how-to-guides#how-to-migrate-from-techdocs-basic-to-recommended-deployment-approach | ||
techdocs: | ||
builder: 'local' # Alternatives - 'external' | ||
generator: | ||
runIn: 'docker' # Alternatives - 'local' | ||
publisher: | ||
type: 'local' # Alternatives - 'googleGcs' or 'awsS3'. Read documentation for using alternatives. | ||
|
||
auth: | ||
environment: development | ||
providers: | ||
microsoft: | ||
development: | ||
clientId: ${AZURE_CLIENT_ID} | ||
clientSecret: ${AZURE_CLIENT_SECRET} | ||
tenantId: ${AZURE_TENANT_ID} | ||
domainHint: ${AZURE_TENANT_ID} | ||
signIn: | ||
resolvers: | ||
- resolver: emailMatchingUserEntityAnnotation | ||
- resolver: emailMatchingUserEntityProfileEmail | ||
- resolver: emailLocalPartMatchingUserEntityName | ||
additionalScopes: | ||
- Mail.Send | ||
|
||
kubernetes: | ||
serviceLocatorMethod: | ||
type: 'multiTenant' | ||
clusterLocatorMethods: | ||
- type: 'config' | ||
clusters: | ||
- name: ${K8S_CLUSTER_NAME} | ||
url: ${K8S_CLUSTER_URL} | ||
authProvider: 'serviceAccount' | ||
serviceAccountToken: ${K8S_SERVICE_ACCOUNT_TOKEN} | ||
skipTLSVerify: true | ||
skipMetricsLookup: true | ||
|
||
scaffolder: | ||
# see https://backstage.io/docs/features/software-templates/configuration for software template options | ||
|
||
catalog: | ||
providers: | ||
microsoftGraphOrg: | ||
default: | ||
tenantId: ${AZURE_TENANT_ID} | ||
user: | ||
filter: accountEnabled eq true and userType eq 'member' | ||
group: | ||
filter: > | ||
securityEnabled eq false | ||
and mailEnabled eq true | ||
and groupTypes/any(c:c+eq+'Unified') | ||
schedule: | ||
frequency: { hours: 0, minutes: 10 } | ||
timeout: { minutes: 10 } | ||
# providerId: | ||
# target: https://graph.microsoft.com/v1.0 | ||
# authority: https://login.microsoftonline.com | ||
# tenantId: ${AZURE_TENANT_ID} | ||
# clientId: ${AZURE_CLIENT_ID} | ||
# clientSecret: ${AZURE_CLIENT_SECRET} | ||
# queryMode: basic | ||
|
||
import: | ||
entityFilename: catalog-info.yaml | ||
pullRequestBranchName: backstage-integration | ||
rules: | ||
- allow: [Component, System, API, Resource, Location] | ||
locations: | ||
# Local example data, file locations are relative to the backend process, typically `packages/backend` | ||
- type: file | ||
target: ./examples/entities.yaml | ||
|
||
# Deploy App to K8s Example | ||
- type: file | ||
target: ./examples/template/template.yaml | ||
rules: | ||
- allow: [Template] | ||
|
||
|
||
# Deploy App to K8s Example | ||
- type: file | ||
target: ./template-cluster/template.yaml | ||
rules: | ||
- allow: [Template] | ||
|
||
|
||
# Local example organizational data | ||
- type: file | ||
target: ./examples/org.yaml | ||
rules: | ||
- allow: [User, Group] | ||
|
||
## Uncomment these lines to add more example data | ||
# - type: url | ||
# target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all.yaml | ||
|
||
## Uncomment these lines to add an example org | ||
# - type: url | ||
# target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme-corp.yaml | ||
# rules:c | ||
# - allow: [User, Group] |
Oops, something went wrong.