hack/setup_external_dev_services: Improve postgresql installation |
1 week ago | |
---|---|---|
.github/ISSUE_TEMPLATE | 9 months ago | |
.ijwb | 5 months ago | |
.yarn/releases | 2 months ago | |
apollo | 1 month ago | |
bases | 5 months ago | |
build/bazel | 9 months ago | |
ci | 1 month ago | |
common | 5 months ago | |
config | 5 months ago | |
docs | 9 months ago | |
dotui | 9 months ago | |
9 months ago | ||
hack | 2 weeks ago | |
hydra | 1 month ago | |
infrastructure | 5 months ago | |
initdb | 5 months ago | |
koji | 9 months ago | |
modulemd | 5 months ago | |
nofussvendor | 9 months ago | |
obsidian | 5 months ago | |
patches | 9 months ago | |
peridot | 1 month ago | |
platforms | 5 months ago | |
proto | 9 months ago | |
protoc-gen-openapiv2 | 9 months ago | |
rules_raw_ts_library | 9 months ago | |
rules_resf | 1 month ago | |
servicecatalog | 5 months ago | |
spicedb | 1 month ago | |
tailwind | 9 months ago | |
temporalutils | 5 months ago | |
third_party | 9 months ago | |
tools | 5 months ago | |
utils | 4 months ago | |
validate | 9 months ago | |
vendor | 1 month ago | |
views | 9 months ago | |
wrksp | 9 months ago | |
.bazelignore | 9 months ago | |
.bazelrc | 5 months ago | |
.bazelversion | 9 months ago | |
.editorconfig | 9 months ago | |
.envrc | 5 months ago | |
.envrc.prod.extarches | 9 months ago | |
.envrc.prod.mustafarocky | 5 months ago | |
.envrc.prod.quaymirror | 9 months ago | |
.envrc.prod.resf | 9 months ago | |
.gitignore | 1 month ago | |
.gitlab-ci.yml | 9 months ago | |
.prettierrc | 9 months ago | |
.yarnrc.yml | 2 months ago | |
BUILD.bazel | 5 months ago | |
CONTRIBUTORS | 9 months ago | |
COPYRIGHT | 9 months ago | |
LICENSE | 9 months ago | |
OWNERS | 5 months ago | |
OWNERS_ALIASES | 5 months ago | |
README.md | 2 weeks ago | |
WORKSPACE | 1 month ago | |
go.mod | 1 month ago | |
go.sum | 4 months ago | |
nogo.json | 9 months ago | |
package.json | 1 month ago | |
peridot.code-workspace | 9 months ago | |
tsconfig.json | 5 months ago | |
yarn.lock | 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
, golang
, make
, bazelisk
, docker
, helm
, and kubectl
:
On Linux, jq, golang, make and docker can be installed using the package manager.
Links for installing the other software:
- Bazelisk: https://github.com/bazelbuild/bazelisk/releases
- Helm: https://helm.sh/docs/intro/install/
- Kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
A local Kubernetes cluster is also required. Docker Desktop is a good solution.
Configure kubectl to manage the local Kubernetes cluster by placing the
KubeConfig yaml into $HOME/.kube/config
and do chmod 600 $HOME/.kube/config
Then download istio into a local directory: https://istio.io/latest/docs/setup/getting-started/
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", //...)'