Cloud-native build system and release tools tailored to building, releasing, and maintaining Enterprise Linux distributions and forks
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
resf-prow[bot] ebedf766c9
Merge pull request #75 from NeilHanlon/security/golang
6 hours ago
.github/ISSUE_TEMPLATE add issue templates 5 months ago
.ijwb Default copyright profile 1 month ago
apollo Multiple changes related to build, modules and cloning 3 weeks ago
bases Fine tune manual targets 1 month ago
build/bazel Initial commit 5 months ago
ci Multiple changes related to build, modules and cloning 3 weeks ago
common Initial Helm support 1 month ago
config Block PRs with merge commits 1 month ago
docs docs: Pretty up the yumrepofs doc, pending further expansion 5 months ago
dotui Initial commit 5 months ago
google Initial commit 5 months ago
hack Fetch all refs, then use HEAD~ to get previous merge, then checkout back to current commit 1 month ago
hydra Fix references to resfdeploy 1 month ago
infrastructure Rename all to rules_resf and resf_frontend 1 month ago
initdb Rename all to rules_resf and resf_frontend 1 month ago
koji Initial commit 5 months ago
modulemd Support modulemd v3 and module sync 1 month ago
nofussvendor Initial commit 5 months ago
obsidian Obsidian: Explain callbackForwarder 1 month ago
patches Initial commit 5 months ago
peridot Properly delete excluded rpms after a catalog change 2 weeks ago
platforms Initial Helm support 1 month ago
proto Initial commit 5 months ago
protoc-gen-openapiv2 Initial commit 5 months ago
publisher Rename all to rules_resf and resf_frontend 1 month ago
rules_raw_ts_library Initial commit 5 months ago
rules_resf Deploy objects with force_normal_tags should only apply 1 month ago
servicecatalog Rename all to rules_resf and resf_frontend 1 month ago
spicedb Fix references to resfdeploy 1 month ago
tailwind Initial commit 5 months ago
temporalutils Rename all to rules_resf and resf_frontend 1 month ago
third_party Initial commit 5 months ago
tools Support changing local domain 1 month ago
utils Multiple changes related to build, modules and cloning 3 weeks ago
validate Initial commit 5 months ago
vendor Multiple changes related to build, modules and cloning 3 weeks ago
views Initial commit 5 months ago
wrksp Initial commit 5 months ago
.bazelignore Initial commit 5 months ago
.bazelrc Remove repo downloader for now 1 month ago
.bazelversion Initial commit 5 months ago
.editorconfig Initial commit 5 months ago
.envrc Add support for .envrc.local 1 month ago
.envrc.prod.extarches Initial commit 5 months ago
.envrc.prod.mustafarocky Sync-01 - 10/30/2022 1 month ago
.envrc.prod.quaymirror Initial commit 5 months ago
.envrc.prod.resf Initial commit 5 months ago
.gitignore Add .envrc.local to gitignore 1 month ago
.gitlab-ci.yml Initial commit 5 months ago
.prettierrc Initial commit 5 months ago
BUILD.bazel Downgrade gazelle again and switch to bazel-diff 1 month ago
CONTRIBUTORS Fix maintainers list 5 months ago
COPYRIGHT Initial commit 5 months ago
LICENSE Initial commit 5 months ago
OWNERS Add owners and prow config 1 month ago
OWNERS_ALIASES Add owners and prow config 1 month ago
README.md Rename all to rules_resf and resf_frontend 1 month ago
WORKSPACE bump golang to 1.18.9 for several CVEs 1 day ago
go.mod Multiple changes related to build, modules and cloning 3 weeks ago
go.sum Multiple changes related to build, modules and cloning 3 weeks ago
nogo.json Initial commit 5 months ago
package.json Update errata visual design and add additional filters 1 month ago
peridot.code-workspace Initial commit 5 months ago
tsconfig.json Add Cancel button to running tasks 1 month ago
yarn.lock Update errata visual design and add additional filters 1 month ago

README.md

Peridot

Named after the Gemstone, Peridot (pronounced - PERR-ih-dot) is a cloud-native build and release tool used for building, releasing and maintaining Linux distributions and forks.

Structure

Other components pending

  • publisher - Composer for Peridot (currently only includes legacy mode)
  • peridot - Modern build system
  • apollo - Errata mirroring and publishing platform
  • utils - Common utilities
  • modulemd - Modulemd parser in Go

Development

Before the setup install jq, bazelisk, docker and kubectl. A local Kubernetes cluster is also required. Docker Desktop is a good solution.

Initial setup (will soon be replaced by one command dev cluster)

# In the directory where you downloaded istio
bin/istioctl install --set profile=default --set hub=docker.io/querycapistio --set tag=1.12.1 -y
# On aarch64 (ex. M1 Mac) only and add arm64 to list of preferred schedule archs
# Run this while install is running
kubectl -n istio-system edit deployment istio-ingressgateway
sudo hack/deploy_dev_registry
hack/setup_external_dev_services
# Run `kubectl get svc` and add the port of postgres-postgresql to your rc file
# Example:
# postgres-postgresql          NodePort    10.102.68.75     <none>        5432:32442/TCP                  3m32s
# export POSTGRES_PORT="32442"
hack/setup_k8s_dev_env
git clone https://github.com/temporalio/temporal /tmp/temporal && pushd /tmp/temporal && make temporal-sql-tool && popd && hack/setup_dev_temporal /tmp/temporal
# Sometimes the namespace registration may fail because
# Temporal tools CrashLooped before we could run the migrations.
# Run `kubectl delete pods -l "app.kubernetes.io/name=temporal"` and then re-run
# `kubectl exec -it services/temporal-admintools -- tctl --namespace default namespace re`
hack/setup_base_internal_services
# For the cert, mkcert is recommended (mkcert.dev)
# Add default cert using `kubectl -n istio-system create secret tls default-cert --cert=cert.pem --key=cert.key`
# Create the Istio gateway
bazel run //infrastructure/istio-dev

Running ./hack/govendor should create the necessary structure for development

For best experience use IntelliJ+Bazel but govendor creates structure that is compatible with all other Go tools

Auto generate (only) BUILD files for Go

bazel run //:gazelle

Vendor Go dependencies

./hack/govendor

Run UI in development mode

ibazel run //TARGET:TARGET.server - example: ibazel run //apollo/ui:apollo.server

Find UI server targets

bazel query 'attr(tags, "resf_frontend_server", //...)'