{"id":19132759,"url":"https://github.com/parca-dev/demo-deployments","last_synced_at":"2025-05-06T18:12:29.250Z","repository":{"id":103096678,"uuid":"572100820","full_name":"parca-dev/demo-deployments","owner":"parca-dev","description":"Kubernetes Configuration for the Demo Environment","archived":false,"fork":false,"pushed_at":"2025-05-02T17:52:31.000Z","size":2922,"stargazers_count":3,"open_issues_count":11,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-02T18:46:33.687Z","etag":null,"topics":["hacktoberfest","kubernetes"],"latest_commit_sha":null,"homepage":"https://demo.parca.dev","language":"Jsonnet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/parca-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-11-29T14:56:24.000Z","updated_at":"2025-04-30T19:50:48.000Z","dependencies_parsed_at":"2023-12-16T05:02:23.738Z","dependency_job_id":"c669afc5-5db3-4912-abd3-72dc35f4a67b","html_url":"https://github.com/parca-dev/demo-deployments","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parca-dev%2Fdemo-deployments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parca-dev%2Fdemo-deployments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parca-dev%2Fdemo-deployments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parca-dev%2Fdemo-deployments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parca-dev","download_url":"https://codeload.github.com/parca-dev/demo-deployments/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252741458,"owners_count":21797027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","kubernetes"],"created_at":"2024-11-09T06:19:39.534Z","updated_at":"2025-05-06T18:12:29.229Z","avatar_url":"https://github.com/parca-dev.png","language":"Jsonnet","readme":"# Parca Demo Deployments\n\nThis is our [demo.parca.dev](https://demo.parca.dev) cluster configuration.\n\n* argocd - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-argocd)](https://argocd.parca.dev/applications/scaleway-parca-demo-argocd)\n* argocd-applications - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-argocd-applications)](https://argocd.parca.dev/applications/scaleway-parca-demo-argocd-applications)\n* cert-manager - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-cert-manager)](https://argocd.parca.dev/applications/scaleway-parca-demo-cert-manager)\n* cluster-config - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-cluster-config)](https://argocd.parca.dev/applications/scaleway-parca-demo-cluster-config)\n* flux - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-flux)](https://argocd.parca.dev/applications/scaleway-parca-demo-flux)\n* grafana - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-grafana)](https://argocd.parca.dev/applications/scaleway-parca-demo-grafana)\n* ingress-nginx - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-ingress-nginx)](https://argocd.parca.dev/applications/scaleway-parca-demo-ingress-nginx)\n* monitoring - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-monitoring)](https://argocd.parca.dev/applications/scaleway-parca-demo-monitoring)\n* oauth2-proxy - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-oauth2-proxy)](https://argocd.parca.dev/applications/scaleway-parca-demo-oauth2-proxy)\n* parca - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-parca)](https://argocd.parca.dev/applications/scaleway-parca-demo-parca)\n* parca-devel - [![App Status](https://argocd.parca.dev/api/badge?name=scaleway-parca-demo-parca-devel)](https://argocd.parca.dev/applications/scaleway-parca-demo-parca-devel)\n\nAsk in one of our channels to be invited to the Scaleway Organization.\nOnce you have access you can download the kubeconfig via the UI.\n\n## File structure\n\n```shell\n.\n├── README.md\n└── \u003capplication\u003e/  # Kubernetes resources configuration of an appliciation\n```\n\n## Deployment types\n\nAll the manifest outputs can be passed to `kubectl`, example:\n\n```shell\n${COMMAND} | kubectl diff --namespace \"${NAMESPACE}\" --filename -\n```\n\nOur **strongly opinionated** order of preference:\n\n* preferred upstream method\n  (must be 1st class, not derived from another. If more than 1, follow our order of preference)\n* Kustomize\n* Jsonnet\n* Helm\n\nEnvironment names are generally `\u003ccluster_name\u003e` or `\u003ccluster_name\u003e-\u003cinstance\u003e`.\n\n### Kustomize\n\n```shell\n${APPLICATION}/\n├── base/                          # Common resources\n│   ├── kustomization.yaml\n│   ├── resource1.yaml\n│   ...\n│   └── resourceN.yaml\n├── components/\n│   └── ${FEATURE}/                # Optional feature resources and overrides\n│       ├── kustomization.yaml\n│       ├── resource1.yaml\n│       ...\n│       └── resourceN.yaml\n└── overlays/\n    └── ${ENVIRONMENT}/            # Environment-specific resources and overrides\n        ├── kustomization.yaml\n        ├── extra-resource1.yaml\n        ...\n        └── extra-resourceN.yaml\n```\n\nBuild manifest locally:\n\n```shell\ncd \"${APPLICATION}/overlays/${ENVIRONMENT}\"\nkustomize build\n```\n\nRequires [Kustomize](https://kustomize.io).\n\n### Jsonnet\n\n```shell\n${APPLICATION}/\n├── environements/\n│  └── ${ENVIRONMENT}/       # Environment-specific resources and overrides\n│      ├── main.jsonnet      # Jsonnet \"entrypoint\" file\n│      └── spec.json         # Tanka environment configuration\n├── lib/                     # Jsonnet libraries\n├── vendor/                  # Third-party libraries\n├── jsonnetfile.json         # Jsonnet-bundler dependency tracking\n└── jsonnetfile.lock.json    # Jsonnet-bundler dependency lock file\n```\n\nBuild manifest locally:\n\n```shell\ncd \"${APPLICATION}\"\njb install    # optional, 3rd-party libraries are checked in Git\njsonnet -J vendor -J lib \"environments/${ENVIRONMENT}/main.jsonnet\"\n```\n\nRequires [Jsonnet](https://github.com/google/go-jsonnet) and [jsonnet-bundler](https://github.com/jsonnet-bundler/jsonnet-bundler).\n\nOr with Tanka:\n\n```shell\ntk show \"environments/${ENVIRONMENT}\"\n```\n\nRequires [Tanka](https://tanka.dev).\n\n### Helm\n\n```shell\n${APPLICATION}/\n├── Chart.lock\n├── Chart.yaml\n├── values.yaml               # Common values\n└── values/\n    └── ${ENVIRONMENT}.yaml   # Environment-specific values and overrides\n```\n\nBuild manifest locally:\n\n```shell\ncd \"${APPLICATION}/\"\nhelm dependency build\nhelm template \"${RELEASE_NAME}\" --namespace \"${NAMESPACE}\" . \\\n  --values values/${ENVIRONMENT}.yaml\n```\n\nRequires [Helm](https://helm.sh).\n\n## Manifests validation\n\nManifests validation is performed by [kubeconform](https://github.com/yannh/kubeconform).\nJSON schemas are extracted from custom resource definitions under `.schemas/`.\nEdit `.schemas/Makefile` to update them and use `make -C .schemas` to re-generate them.\n\nValidation can be performed by passing the manifest output to `kubeconform`:\n\n```shell\n${COMMAND} | kubeconform \\\n  -schema-location '.schemas/{{ .ResourceKind }}{{ .KindSuffix }}.json' \\\n  -schema-location 'https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master' \\\n  -skip CustomResourceDefinition \\\n  -strict\n```\n\n## Continuous deployment\n\n* Our [Argo CD](https://argoproj.github.io/cd/) instance is available at: https://argocd.parca.dev (see also [argocd/](argocd))\n* Argo CD Applications are configured under [argocd-applications/](argocd-applications)\n* [Flux](https://fluxcd.io/) is used to automate the Parca server and agent image updates (see [flux/](flux))\n* [Renovate](https://docs.renovatebot.com/) is used to update community dependencies (see [GitHub App](https://github.com/apps/renovate) and [renovate.json](renovate.json))\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparca-dev%2Fdemo-deployments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparca-dev%2Fdemo-deployments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparca-dev%2Fdemo-deployments/lists"}