mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
* [incubator/stellar-core]: Release 0.1.0 (initial release) Signed-off-by: André Gaul <andre@gaul.io> * [incubator/stellar-core]: use http readiness probe Signed-off-by: André Gaul <andre@gaul.io> * [incubator/stellar-core]: update NOTES Signed-off-by: André Gaul <andre@gaul.io> * [incubator/stellar-core]: update requirements.yaml with repo url Signed-off-by: André Gaul <andre@gaul.io> * [incubator/stellar-core]: add rendhalver as maintainer/owner Signed-off-by: André Gaul <andre@gaul.io> * [incubator/stellar-core]: properly handle postgresql name override in helpers Signed-off-by: André Gaul <andre@gaul.io> * [stable/stellar-core]: move stellar-core to stable Signed-off-by: André Gaul <andre@gaul.io> * [stable/stellar-core]: adapt install command in README Signed-off-by: André Gaul <andre@gaul.io> * [stable/stellar-core]: enable 10.0.0-2 features (flavors, archive init) Signed-off-by: André Gaul <andre@gaul.io> * [stable/stellar-core]: use deployment strategy recreate Signed-off-by: André Gaul <andre@gaul.io> * [stable/stellar-core]: add serviceaccount Signed-off-by: André Gaul <andre@gaul.io> * [stable/stellar-core]: add default timeout for postgres Signed-off-by: André Gaul <andre@gaul.io> * [stable/stellar-core]: fix versions Signed-off-by: André Gaul <andre@gaul.io> * [stable/stellar-core]: update postgresql Signed-off-by: André Gaul <andre@gaul.io> * [stable/stellar-core]: fix version in readme Signed-off-by: André Gaul <andre@gaul.io> * [stable/stellar-core]: fix bug in secret template Signed-off-by: André Gaul <andre@gaul.io>
102 lines
11 KiB
Markdown
102 lines
11 KiB
Markdown
# Stellar Core
|
|
|
|
[Stellar](https://www.stellar.org) is an open-source and distributed payments infrastructure. Stellar Core is the software that powers the backbone of the Stellar network and validates and agrees on transactions. For more information see the [Stellar network overview](https://www.stellar.org/developers/guides/get-started/).
|
|
|
|
## Introduction
|
|
|
|
This chart bootstraps a [Stellar Core](https://github.com/stellar/stellar-core/) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. By default the deployment includes a PostgreSQL database. The chart is based on the Kubernetes-ready [Stellar Core images provided by SatoshiPay](https://github.com/satoshipay/docker-stellar-core/).
|
|
|
|
## Prerequisites
|
|
|
|
- You need a node seed to run Stellar Core. If you don't have one you can generate one with the following command:
|
|
```bash
|
|
$ docker run --rm -it --entrypoint '' satoshipay/stellar-core stellar-core --genseed
|
|
```
|
|
The output will look like
|
|
```
|
|
Secret seed: SDUFQA7YL3KTWZNKOXX7XXIYU4R5R6JKELMREKHDQOYY2WPUGXFVJN52
|
|
Public: GDJFYQK2VFVMQAOFSBM7RVE4I5HCUT7VNWOKSJKGI5JEODIH6F3EM6YX
|
|
```
|
|
The node seed must be kept secret but the public key can (and should) be shared with other Stellar node operators.
|
|
- Kubernetes 1.8+ with Beta APIs enabled
|
|
- PV provisioner support in the underlying infrastructure (Only when persisting data)
|
|
|
|
## Installing the Chart
|
|
|
|
To install the chart with the release name `my-release`:
|
|
|
|
```bash
|
|
$ helm install --name my-release stable/stellar-core
|
|
```
|
|
|
|
🚨 **Warning:** Make sure to use your own node seed, either via setting `nodeSeed` or `existingNodeSeedSecret`. See [prerequisites](#prerequisites) for how to generate a new node seed.
|
|
|
|
## Configuration
|
|
|
|
The following table lists the configurable parameters of the Stellar Core chart and their default values.
|
|
|
|
| Parameter | Description | Default |
|
|
| ----------------------- | --------------------------------------------- | --------------------------------------------- |
|
|
| `nodeSeed` | Stellar Core node seed (if `existingNodeSeedSecret` is not set) | Not set |
|
|
| `existingNodeSeedSecret` | Existing secret with the node seed (if `nodeSeed` is not set) | Not set |
|
|
| `existingNodeSeedSecret.name` | Secret containing the node seed | Not set |
|
|
| `existingNodeSeedSecret.key` | Key of the node seed in the secret | Not set |
|
|
| `nodeIsValidator` | Should the node participate in SCP? Otherwise it is only observing | `true` |
|
|
| `networkPassphrase` | The network this instance should talk to | `Public Global Stellar Network ; September 2015` |
|
|
| `catchupRecent` | Number of ledgers to catch up (`0` means minimal catchup) | `0` |
|
|
| `maxPeerConnections` | Maximum number of connections to other peers | `50` |
|
|
| `knownPeers` | List of hostnames/IPs and ports of peers to connect to initially | Default peers, see `values.yaml` |
|
|
| `preferredPeers` | List of hostnames/IPs and ports of peers to stay connected to | Default peers, see `values.yaml` |
|
|
| `nodeNames` | List of node public keys and node names | Default node names, see `values.yaml` |
|
|
| `nodeNames[].publicKey` | Public key of a node | See above |
|
|
| `nodeNames[].name` | Name of a node | See above |
|
|
| `quorumSet` | List of quorum set definitions | Default quorum set, see `values.yaml` |
|
|
| `quorumSet.thresholdPercent` | Threshold in percent for the quorum set | See above |
|
|
| `quorumSet.validators` | List of node names (prefixed with `$$`) or public keys in this set | See above |
|
|
| `quorumSet.path` | Path for sub-quorum-sets | See above |
|
|
| `history` | Definition for fetching and storing the history of the network | Default history, see `values.yaml` |
|
|
| `history.$name.get` | Command for fetching from the history archive | See above |
|
|
| `history.$name.put` | Command for storing the history in an archive | See above |
|
|
| `initializeHistoryArchives` | Set to `true` if you want history archives to be initialized | `false` |
|
|
| `gcloudServiceAccountKey` | Gcloud service account key for `gcloud` flavor | Not set |
|
|
| `environment` | Additional environment variables for Stellar Core | `{}` |
|
|
| `postgresql.enabled` | Enable PostgreSQL database | `true` |
|
|
| `postgresql.postgresDatabase` | PostgreSQL database name | `stellar-core` |
|
|
| `postgresql.postgresUser` | PostgreSQL username | `postgres` |
|
|
| `postgresql.postgresPassword` | PostgreSQL password | Random password (see PostgreSQL chart) |
|
|
| `postgresql.persistence` | PostgreSQL persistence options | See PostgreSQL chart |
|
|
| `postgresql.*` | Any PostgreSQL option | See PostgreSQL chart |
|
|
| `existingDatabase` | Provide existing database (used if `postgresql.enabled` is `false`)| |
|
|
| `existingDatabase.passwordSecret` | Existing secret with the database password | `{name: 'postgresql-core', value: 'password'}` |
|
|
| `existingDatabase.url` | Existing database URL (use `$(DATABASE_PASSWORD` as the password) | Not set |
|
|
| `image.repository` | `stellar-core` image repository | `satoshipay/stellar-core` |
|
|
| `image.tag` | `stellar-core` image tag | `10.0.0-2` |
|
|
| `image.flavor` | `stellar-core` flavor (e.g., `aws` or `gcloud`) | Not set |
|
|
| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
|
|
| `peerService.type` | p2p service type | `LoadBalancer` |
|
|
| `peerService.port` | p2p service TCP port | `11625` |
|
|
| `peerService.loadBalancerIP` | p2p service load balancer IP | Not set |
|
|
| `peerService.externalTrafficPolicy` | p2p service traffic policy | Not set |
|
|
| `httpService.type` | Non-public HTTP admin endpoint service type | `ClusterIP` |
|
|
| `httpService.port` | Non-public HTTP admin endpoint TCP port | `11626` |
|
|
| `persistence.enabled` | Use a PVC to persist data | `true` |
|
|
| `persistence.existingClaim` | Provide an existing PersistentVolumeClaim | Not set |
|
|
| `persistence.storageClass` | Storage class of backing PVC | Not set (uses alpha storage class annotation) |
|
|
| `persistence.accessMode` | Use volume as ReadOnly or ReadWrite | `ReadWriteOnce` |
|
|
| `persistence.annotations` | Persistent Volume annotations | `{}` |
|
|
| `persistence.size` | Size of data volume | `8Gi` |
|
|
| `persistence.subPath` | Subdirectory of the volume to mount at | `stellar-core` |
|
|
| `persistence.mountPath` | Mount path of data volume | `/data` |
|
|
| `resources` | CPU/Memory resource requests/limits | Requests: `512Mi` memory, `100m` CPU |
|
|
| `nodeSelector` | Node labels for pod assignment | {} |
|
|
| `tolerations` | Toleration labels for pod assignment | [] |
|
|
| `affinity` | Affinity settings for pod assignment | {} |
|
|
| `serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` |
|
|
| `serviceAccount.name` | The name of the ServiceAccount to create | Generated using the fullname template |
|
|
|
|
## Persistence
|
|
|
|
Both Stellar Core and PostgreSQL (if `postgresql.enabled` is `true`) need to store data and thus this chart creates [Persistent Volumes](http://kubernetes.io/docs/user-guide/persistent-volumes/) by default. Make sure to size them properly for your needs and use an appropriate storage class, e.g. SSDs.
|
|
|
|
You can also use existing claims with the `persistence.existingClaim` and `postgresql.persistence.existingClaim` options.
|