From 194cb31dd2c2a6cfcb19f6da01aea0ffdd23629b Mon Sep 17 00:00:00 2001 From: Vojtech Mares Date: Sat, 20 Aug 2022 19:03:25 +0200 Subject: [PATCH] feat(sites): add signpost.cloud.mareshq.com --- .gitlab-ci.yml | 5 +- .../signpost.cloud.mareshq.com/.eslintrc.json | 3 + sites/signpost.cloud.mareshq.com/.gitignore | 42 ++++++++++++ .../signpost.cloud.mareshq.com/.gitlab-ci.yml | 32 +++++++++ .../.vscode/settings.json | 7 ++ .../signpost.cloud.mareshq.com/NEXT.README.md | 34 ++++++++++ sites/signpost.cloud.mareshq.com/README.md | 3 + .../content/sections.json | 62 ++++++++++++++++++ .../helm-values.yaml | 18 +++++ .../signpost.cloud.mareshq.com/next-env.d.ts | 6 ++ .../signpost.cloud.mareshq.com/next.config.js | 10 +++ sites/signpost.cloud.mareshq.com/package.json | 29 ++++++++ .../signpost.cloud.mareshq.com/pages/_app.tsx | 8 +++ .../pages/index.tsx | 36 ++++++++++ .../postcss.config.js | 6 ++ .../public/kubernetes.ico | Bin 0 -> 24905 bytes .../styles/globals.css | 3 + .../tailwind.config.js | 10 +++ .../signpost.cloud.mareshq.com/tsconfig.json | 20 ++++++ 19 files changed, 332 insertions(+), 2 deletions(-) create mode 100644 sites/signpost.cloud.mareshq.com/.eslintrc.json create mode 100644 sites/signpost.cloud.mareshq.com/.gitignore create mode 100644 sites/signpost.cloud.mareshq.com/.gitlab-ci.yml create mode 100644 sites/signpost.cloud.mareshq.com/.vscode/settings.json create mode 100644 sites/signpost.cloud.mareshq.com/NEXT.README.md create mode 100644 sites/signpost.cloud.mareshq.com/README.md create mode 100644 sites/signpost.cloud.mareshq.com/content/sections.json create mode 100644 sites/signpost.cloud.mareshq.com/helm-values.yaml create mode 100644 sites/signpost.cloud.mareshq.com/next-env.d.ts create mode 100644 sites/signpost.cloud.mareshq.com/next.config.js create mode 100644 sites/signpost.cloud.mareshq.com/package.json create mode 100644 sites/signpost.cloud.mareshq.com/pages/_app.tsx create mode 100644 sites/signpost.cloud.mareshq.com/pages/index.tsx create mode 100644 sites/signpost.cloud.mareshq.com/postcss.config.js create mode 100644 sites/signpost.cloud.mareshq.com/public/kubernetes.ico create mode 100644 sites/signpost.cloud.mareshq.com/styles/globals.css create mode 100644 sites/signpost.cloud.mareshq.com/tailwind.config.js create mode 100644 sites/signpost.cloud.mareshq.com/tsconfig.json diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1a31354..b45056d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,8 @@ trigger: only: changes: - .gitlab-ci.yml - - sites/ant.k8s.vxm.cz/**/* + - sites/signpost.cloud.mareshq.com/**/* + - themes/signpost/**/* trigger: - include: sites/ant.k8s.vxm.cz/.gitlab-ci.yml + include: sites/signpost.cloud.mareshq.com/.gitlab-ci.yml strategy: depend diff --git a/sites/signpost.cloud.mareshq.com/.eslintrc.json b/sites/signpost.cloud.mareshq.com/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/sites/signpost.cloud.mareshq.com/.gitignore b/sites/signpost.cloud.mareshq.com/.gitignore new file mode 100644 index 0000000..bbac7be --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/.gitignore @@ -0,0 +1,42 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo + +.yarn/* +!.yarn/cache +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions diff --git a/sites/signpost.cloud.mareshq.com/.gitlab-ci.yml b/sites/signpost.cloud.mareshq.com/.gitlab-ci.yml new file mode 100644 index 0000000..4b2b5af --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/.gitlab-ci.yml @@ -0,0 +1,32 @@ +default: + image: sikalabs/ci + +stages: + - build + - deploy + +variables: + IMAGE: $CI_REGISTRY_IMAGE/signpost.cloud.mareshq.com + IMAGE_TAG: $CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA + +build: + stage: build + image: sikalabs/ci-node + before_script: + - docker info + script: + - cd sites/signpost.cloud.mareshq.com + - yarn install --frozen-lockfile + - yarn build + - docker build --tag $IMAGE:$IMAGE_TAG --file /build/Containerfile . + - docker push $IMAGE:$IMAGE_TAG + +deploy: + stage: deploy + script: + - helm upgrade --install signpost-cloud-mareshq-com ./deploy/charts/static-site --namespace internal-static-sites -f ./sites/signpost.cloud.mareshq.com/helm-values.yaml --set image.tag=${CI_COMMIT_BRANCH}-${CI_COMMIT_SHORT_SHA} + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + environment: + name: signpost-cloud-mareshq-com + url: https://signpost.cloud.mareshq.com diff --git a/sites/signpost.cloud.mareshq.com/.vscode/settings.json b/sites/signpost.cloud.mareshq.com/.vscode/settings.json new file mode 100644 index 0000000..f62af99 --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } +} diff --git a/sites/signpost.cloud.mareshq.com/NEXT.README.md b/sites/signpost.cloud.mareshq.com/NEXT.README.md new file mode 100644 index 0000000..c87e042 --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/NEXT.README.md @@ -0,0 +1,34 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file. + +[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`. + +The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/sites/signpost.cloud.mareshq.com/README.md b/sites/signpost.cloud.mareshq.com/README.md new file mode 100644 index 0000000..7ab04c8 --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/README.md @@ -0,0 +1,3 @@ +# signpost.cloud.mareshq.com + +Crossroad for all my services currently running diff --git a/sites/signpost.cloud.mareshq.com/content/sections.json b/sites/signpost.cloud.mareshq.com/content/sections.json new file mode 100644 index 0000000..2f0ac4b --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/content/sections.json @@ -0,0 +1,62 @@ +[ + { + "name": "DevOps", + "items": [ + { + "name": "Argo CD", + "url": "https://argocd.cloud.mareshq.com" + }, + { + "name": "GitLab (MaresHQ / GitOps)", + "url": "https://gitlab.mareshq.com/gitops/mareshq/bee" + } + ] + }, + { + "name": "Monitoring", + "items": [ + { + "name": "Prometheus", + "url": "https://prometheus.cloud.mareshq.com" + }, + { + "name": "Alert Manager", + "url": "https://alertmanager.cloud.mareshq.com" + }, + { + "name": "Grafana", + "url": "https://grafana.cloud.mareshq.com" + } + ] + }, + { + "name": "Cluster / Nodes", + "items": [ + { + "name": "Loris (loris.vxm.cz)", + "url": "#" + }, + { + "name": "Otary (otary.vxm.cz)", + "url": "#" + }, + { + "name": "Rhino (rhino.vxm.cz)", + "url": "#" + } + ] + }, + { + "name": "Cluster / Storage", + "items": [ + { + "name": "Longhorn Dashboard", + "url": "https://longhorn.cloud.mareshq.com/" + }, + { + "name": "MinIO", + "url": "https://minio.cloud.mareshq.com/" + } + ] + } +] diff --git a/sites/signpost.cloud.mareshq.com/helm-values.yaml b/sites/signpost.cloud.mareshq.com/helm-values.yaml new file mode 100644 index 0000000..5653f62 --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/helm-values.yaml @@ -0,0 +1,18 @@ +image: + repository: registry.mareshq.com/mareshq/internal-static-sites/signpost.cloud.mareshq.com + +ingress: + enabled: true + className: nginx + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + kubernetes.io/tls-acme: 'true' + hosts: + - host: signpost.cloud.mareshq.com + paths: + - path: / + pathType: ImplementationSpecific + tls: + - secretName: signpost-cloud-mareshq-com + hosts: + - signpost.cloud.mareshq.com diff --git a/sites/signpost.cloud.mareshq.com/next-env.d.ts b/sites/signpost.cloud.mareshq.com/next-env.d.ts new file mode 100644 index 0000000..9bc3dd4 --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/next-env.d.ts @@ -0,0 +1,6 @@ +/// +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/sites/signpost.cloud.mareshq.com/next.config.js b/sites/signpost.cloud.mareshq.com/next.config.js new file mode 100644 index 0000000..b95cb7c --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/next.config.js @@ -0,0 +1,10 @@ +/** @type {import('next').NextConfig} */ +module.exports = { + reactStrictMode: true, +}; + +const withTM = require('next-transpile-modules')([ + '@themes/signpost', +]); + +module.exports = withTM(module.exports); diff --git a/sites/signpost.cloud.mareshq.com/package.json b/sites/signpost.cloud.mareshq.com/package.json new file mode 100644 index 0000000..831a6d3 --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/package.json @@ -0,0 +1,29 @@ +{ + "name": "@sites/signpost.cloud.mareshq.com", + "private": true, + "version": "0.0.0", + "scripts": { + "dev": "next dev", + "build": "next build && next export", + "start": "next start", + "lint": "next lint", + "fmt": "prettier --write .", + "fmt-check": "prettier --check ." + }, + "dependencies": { + "next": "12.0.7", + "react": "17.0.2", + "react-dom": "17.0.2" + }, + "devDependencies": { + "@types/node": "16.11.7", + "@types/react": "17.0.34", + "autoprefixer": "^10.4.0", + "eslint": "7", + "eslint-config-next": "12.0.3", + "next-transpile-modules": "^9.0.0", + "postcss": "^8.3.11", + "tailwindcss": "^3.0.8", + "typescript": "4.4.4" + } +} diff --git a/sites/signpost.cloud.mareshq.com/pages/_app.tsx b/sites/signpost.cloud.mareshq.com/pages/_app.tsx new file mode 100644 index 0000000..b3c651a --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/pages/_app.tsx @@ -0,0 +1,8 @@ +import '../styles/globals.css'; +import type { AppProps } from 'next/app'; + +function App({ Component, pageProps }: AppProps) { + return ; +} + +export default App; diff --git a/sites/signpost.cloud.mareshq.com/pages/index.tsx b/sites/signpost.cloud.mareshq.com/pages/index.tsx new file mode 100644 index 0000000..d2559d8 --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/pages/index.tsx @@ -0,0 +1,36 @@ +import type { NextPage } from 'next'; +import Head from 'next/head'; +import Layout from '@themes/signpost/components/Layout'; +import Grid from '@themes/signpost/components/Grid'; +import sections from '../content/sections.json'; + +const Home: NextPage = () => { + return ( + <> + + + Bee Kubernetes Cluster Signpost (bee.k8s.vxm.cz) + + + + + + +

bee.k8s.vxm.cz

+ +
+

+ Bee Kubernetes Cluster Signpost +

+ + +
+
+ + ); +}; + +export default Home; diff --git a/sites/signpost.cloud.mareshq.com/postcss.config.js b/sites/signpost.cloud.mareshq.com/postcss.config.js new file mode 100644 index 0000000..12a703d --- /dev/null +++ b/sites/signpost.cloud.mareshq.com/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/sites/signpost.cloud.mareshq.com/public/kubernetes.ico b/sites/signpost.cloud.mareshq.com/public/kubernetes.ico new file mode 100644 index 0000000000000000000000000000000000000000..14cd0f951947a04ed05ed9d628b56b6569b191a2 GIT binary patch literal 24905 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
>x;=t7?F29xXAr#qelieM(j|l@t#r15
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