Skip to content

Commit 8fdbd4c

Browse files
authored
Merge pull request #460 from epinio/user-service-variables
Document environment_grouped in app show
2 parents d890ac9 + 0823945 commit 8fdbd4c

12 files changed

Lines changed: 111 additions & 118 deletions

File tree

docs/explanations/advanced.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,11 @@ Deployments, Services, Ingresses and Secrets.
8484

8585
Reflector is a Kubernetes addon designed to monitor changes to resources (secrets and configmaps) and reflect changes to mirror resources in the same or other namespaces.
8686

87-
### Minio
87+
### SeaweedFS
8888

89-
[Minio project link](https://github.com/minio/minio)
89+
[SeaweedFS project link](https://github.com/seaweedfs/seaweedfs)
9090

91-
Minio is a storage solution implementing the same API as [Amazon S3](https://aws.amazon.com/s3/).
91+
SeaweedFS is a distributed S3-compatible storage used by Epinio to store application source code.
9292

9393
When the user pushes an application using a source code directory
9494
(with the [`epinio push`](../references/commands/cli/epinio_push.md) command),
@@ -97,16 +97,16 @@ It then uploads it to the Epinio API server.
9797
The API server copies that to the configured S3 storage for
9898
use during the staging of the application.
9999

100-
When installing Epinio, you choose to use external S3 compatible storage,
101-
or let Epinio install one of Minio or s3gw on the cluster.
102-
You can see a [How-to here](../howtos/customization/setup_external_s3.md).
100+
When installing Epinio, you can use external S3 compatible storage,
101+
or let Epinio install SeaweedFS or s3gw on the cluster.
102+
See [Setup external S3](../howtos/customization/setup_external_s3.md).
103103

104104
### s3gw
105105

106106
[The s3gw project link](https://github.com/aquarist-labs/s3gw)
107107

108108
S3gw is a lightweight S3-compatible solution.
109-
You can specify it in the Epinio Helm chart as an alternative to Minio or an external S3 provider.
109+
You can specify it in the Epinio Helm chart as an alternative to SeaweedFS or an external S3 provider.
110110

111111
### Container registry
112112

docs/explanations/detailed-push-process.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ BasicAuth, a session cookie or, if using WebSockets, a token.
2929

3030
## Copying the code to S3 (step 2)
3131

32-
The Epinio helm-chart can install either [Minio](https://min.io/) (the default)
32+
The Epinio helm-chart can install either [SeaweedFS](https://github.com/seaweedfs/seaweedfs) (the default)
3333
or [s3gw](https://s3gw.io/) on your cluster.
3434
You can also [configure external S3](../howtos/customization/setup_external_s3.md).
35-
Both Minio and s3gw are S3-compatible storage solutions which Epinio uses to store application source code.
35+
Both SeaweedFS and s3gw are S3-compatible storage solutions which Epinio uses to store application source code.
3636
The chosen S3 storage solution is later used by the staging job.
3737

3838
After successful authentication (step 1),

docs/explanations/epinio-push-detailed.svg

Lines changed: 1 addition & 1 deletion
Loading

docs/howtos/customization/setup_external_s3.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,34 @@ doc-persona: [epinio-operator]
1010
---
1111

1212
One of the steps involved in running `epinio push` is storing the requested version of the code in the configured Epinio S3 compatible storage.
13-
By default, Epinio installs and configures [Minio](https://github.com/minio/minio) to use.
14-
This document describes how to configure Epinio to use another S3 compatible storage and skip the Minio installation.
13+
By default, Epinio installs and configures [SeaweedFS](https://github.com/seaweedfs/seaweedfs) as S3-compatible storage.
14+
This document describes how to configure Epinio to use another S3 compatible storage and skip the SeaweedFS installation.
1515

1616
The Epinio Helm chart has the following optional parameters:
1717

1818
|Variable name|Description|Mandatory|Default|
1919
|:---|:---|:---:|:---:|
20-
|`minio.enabled`|Whether to install Minio or not|yes|"true"|
20+
|`seaweedfs.enabled`|Whether to install SeaweedFS or not|yes|"true"|
2121
|`s3.bucket`|S3 bucket where you want to store your apps|yes|`epinio`|
22-
|`s3.endpoint`|S3 endpoint|yes|`minio.epinio.svc.cluster.local`|
23-
|`s3.accessKeyID`|S3 access key id to authenticate to the endpoint|no|random value when Minio is enabled|
24-
|`s3.secretAccessKey`|S3 secret access key id to authenticate to the endpoint|no|random value when Minio is enabled|
22+
|`s3.endpoint`|S3 endpoint|yes|`seaweedfs-s3.epinio.svc.cluster.local:8333`|
23+
|`s3.accessKeyID`|S3 access key id to authenticate to the endpoint|no|random value when SeaweedFS is enabled|
24+
|`s3.secretAccessKey`|S3 secret access key id to authenticate to the endpoint|no|random value when SeaweedFS is enabled|
2525
|`s3.useSSL`|Use SSL for encryption|no|`true`|
2626
|`s3.region`|S3 region where your bucket is|no|""|
27-
|`s3.certificateSecret`|An existing TLS secret to be trusted (if self signed)|no|"minio-tls" if Minio is enabled|
27+
|`s3.certificateSecret`|An existing TLS secret to be trusted (if self signed)|no|"seaweedfs-tls" if SeaweedFS is enabled|
2828

2929
To configure Epinio to store application sources to an external S3 compatible storage, at least the mandatory options should be set.
3030

3131
:::note
3232

33-
Some implementations don't need the location, for example, Minio and `s3.useSSL` has a default value of "true".
33+
Some implementations don't need the location, for example, SeaweedFS and `s3.useSSL` has a default value of "true".
3434

3535
:::
3636

3737
For instance, add the following options to your Helm command to make Epinio point to AWS:
3838

3939
```console
40-
--set minio.enabled=false \
40+
--set seaweedfs.enabled=false \
4141
--set s3.endpoint=s3.amazonaws.com \
4242
--set s3.bucket=<your_bucket_here> \
4343
--set s3.region=<your_region_here> \

docs/howtos/other/minio.md

Lines changed: 0 additions & 85 deletions
This file was deleted.

docs/howtos/other/seaweedfs.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
sidebar_label: Epinio's SeaweedFS (S3) service
3+
sidebar_position: 30
4+
title: Accessing Epinio's internal SeaweedFS S3 service
5+
description: How to access Epinio's internal SeaweedFS S3-compatible service
6+
keywords: [epinio, kubernetes, internal seaweedfs, s3 service]
7+
doc-type: [how-to]
8+
doc-topic: [epinio, how-to, other, access-s3-service]
9+
doc-persona: [epinio-developer]
10+
---
11+
12+
Epinio uses [SeaweedFS](https://github.com/seaweedfs/seaweedfs) as its default S3-compatible storage for application source code.
13+
You can expose the internal S3 API for debugging, for example using the Amazon Web Services (AWS) CLI or the MinIO Client (`mc`).
14+
In both cases you expose the internal service through a Kubernetes `NodePort` service.
15+
16+
:::caution
17+
18+
For security reasons, delete the exposed services when you finish debugging.
19+
20+
:::
21+
22+
## Access Epinio's S3 storage through the AWS CLI
23+
24+
Expose the SeaweedFS S3 service and use the AWS CLI to talk to it.
25+
26+
```bash
27+
# Expose the SeaweedFS S3 service (service name may vary; typically seaweedfs-s3)
28+
kubectl expose deployment seaweedfs-s3 -n epinio --name epinio-s3-np --port=8333 --type=NodePort
29+
# If the S3 component is a different workload type, use the appropriate resource (e.g. pod or service)
30+
PORT=$(kubectl get svc -n epinio epinio-s3-np -o jsonpath='{.spec.ports[0].nodePort}')
31+
NODE=$(kubectl get nodes -o jsonpath="{.items[0].status.addresses[0].address}")
32+
S3_KEY=$(kubectl get secrets/seaweedfs-creds -n epinio -o=go-template='{{index .data "accesskey" | base64decode}}')
33+
S3_SECRET=$(kubectl get secrets/seaweedfs-creds -n epinio -o=go-template='{{index .data "secretkey" | base64decode}}')
34+
```
35+
36+
Install the [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) and configure it for the internal S3 endpoint:
37+
38+
```bash
39+
aws configure set aws_access_key_id $S3_KEY
40+
aws configure set aws_secret_access_key $S3_SECRET
41+
aws configure set default.region us-east-1
42+
echo "Usage: aws --no-verify-ssl --endpoint-url https://$NODE:$PORT s3 ls"
43+
```
44+
45+
To list the Epinio bucket:
46+
47+
```bash
48+
aws --no-verify-ssl --endpoint-url https://$NODE:$PORT s3 ls s3://epinio/
49+
```
50+
51+
When you are done, remove the NodePort service:
52+
53+
```console
54+
kubectl delete service epinio-s3-np -n epinio
55+
```
56+
57+
## Access using MinIO Client (mc)
58+
59+
You can also use the [MinIO Client](https://min.io/docs/minio/linux/reference/minio-mc.html) (`mc`), which works with any S3-compatible API.
60+
After exposing the S3 service as above, configure an alias and use `mc ls`, `mc cp`, etc. as needed.
61+
62+
For more on S3-compatible access, see [AWS CLI S3](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) and [MinIO Client with S3](https://min.io/docs/minio/linux/integrations/aws-cli-with-minio.html).

docs/installation/install_epinio.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ keywords: [epinio, kubernetes, k8s, installation, install]
99
## Introduction
1010

1111
Epinio is installed from a single Helm chart.
12-
This also installs Reflector, [`MinIO`](#s3-storage), [`Dex`](#dex) and a [container registry](#container-registry) in your Kubernetes cluster.
12+
This also installs Reflector, [SeaweedFS](#s3-storage) (S3-compatible storage), [`Dex`](#dex) and a [container registry](#container-registry) in your Kubernetes cluster.
1313
You can disable the installation of these additional "sub" charts by changing the settings as described in their sections below.
1414

1515
## Prerequisites
@@ -233,11 +233,11 @@ The configurations under `server.stagingWorkloads` gets mapped to the build scri
233233
### S3 storage
234234
235235
Epinio uses an S3 compatible storage to store the application source code.
236-
This chart will install [Minio](https://min.io/) when `.Values.minio.enabled` is
236+
This chart will install [SeaweedFS](https://github.com/seaweedfs/seaweedfs) when `.Values.seaweedfs.enabled` is
237237
`true` (default).
238238
239-
In addition to Minio, Epinio offers [s3gw](https://s3gw.io/) as another S3 compatible store.
240-
It is installed when `.Values.minio.enabled` is set to `false` and `.Values.s3gw.enabled` is set to `true`.
239+
In addition to SeaweedFS, Epinio offers [s3gw](https://s3gw.io/) as another S3 compatible store.
240+
It is installed when `.Values.seaweedfs.enabled` is set to `false` and `.Values.s3gw.enabled` is set to `true`.
241241
242242
:::caution
243243
The s3gw support is __experimental__.
@@ -248,12 +248,12 @@ If there is an outage of the node where s3gw's pod is currently deployed, k8s wi
248248
249249
Both choices for internal S3 compatible storage can be configured to use a user-defined storageClass.
250250
If no StorageClass is defined, the default storageClass is used.
251-
When using Minio set the custom storageClass to the value of `.Values.persistance.storageClass`.
251+
When using SeaweedFS set the custom storageClass to the value of `.Values.seaweedfs.persistence.storageClass`.
252252
When using s3gw set the custom storageClass to the value of `.Values.s3gw.storageClass.name`.
253253
254-
Use any external S3 compatible solution by setting `.Values.minio.enabled` to `false`
254+
Use any external S3 compatible solution by setting `.Values.seaweedfs.enabled` to `false`
255255
(`.Values.s3gw.enabled` is `false` by default) and using
256-
[the values under `s3`](https://github.com/epinio/helm-charts/blob/b389a4875af9f03b484a911c49a14f834ba04b64/chart/epinio/values.yaml#L44)
256+
[the values under `s3`](https://github.com/epinio/helm-charts/blob/main/chart/epinio/values.yaml)
257257
to point to the required S3 server.
258258
259259
### Dex

docs/references/api.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,10 @@ The endpoints are documented in the [OpenAPI Spec](https://www.openapis.org/) fo
2222
__Make sure__ you change to the Epinio release you have deployed.
2323

2424
There are various tools you can use to easily browse the API (e.g. https://editor.swagger.io/). If you have a Golang environment set up locally, you may find it easier to run `make swagger swagger-serve` from the root of the Epinio repository.
25+
26+
### App Show response (GET application)
27+
28+
The App Show endpoint returns application details including `configuration`. The configuration includes:
29+
30+
- **`environment`** — Environment variables set by the user (key-value map).
31+
- **`environment_grouped`** — Environment variables grouped by origin (user-set vs service-provided). Has the same structure as `GET .../environment?grouped=true`, with `user` and `service` keys each containing an `EnvVariableMap`. Use this when you need to distinguish user-defined variables from those injected by bound services.

docs/references/cert-manager.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,24 +54,24 @@ The Epinio chart then falls back to the data for `epinio`.
5454
The information is ignored when the `dex` and/or `ui` components are disabled.
5555

5656
The `s3` information applies to whichever internal S3-compatible store is configured when installing
57-
Epinio, i.e. `minio` or `s3gw`. The `s3` information is not applied when Epinio is configured to use
57+
Epinio, i.e. `seaweedfs` or `s3gw`. The `s3` information is not applied when Epinio is configured to use
5858
an external S3 store.
5959

6060
:::note
6161

6262
The certificates for `epinio` (including workloads) and `dex` are served through public domains and
6363
are permitted to use wildcard domains (e.g. `*.1.2.3.4.nip.io`) in their `CN`/`SAN` fields.
6464

65-
The certificates for `registry` and `s3`(minio) are inter-cluster "private" domains
65+
The certificates for `registry` and `s3` (SeaweedFS) are inter-cluster "private" domains
6666
(`registry.<ns>.svc.cluster.local` and
67-
`minio.<ns>.svc.cluster.local`).
67+
`seaweedfs-s3.<ns>.svc.cluster.local`).
6868
The placeholder `<ns>` refers to the namespace Epinio is installed in.
6969

7070
:::
7171

7272
:::caution
7373

74-
When used with Minio the `s3` certificate cannot use wildcard domains in its `CN`/`SAN` fields.
74+
When used with SeaweedFS the `s3` certificate cannot use wildcard domains in its `CN`/`SAN` fields.
7575

7676
:::
7777

docs/references/commands/cli/app/epinio_app_show.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ doc-persona: [epinio-developer, epinio-operator]
99
---
1010
## epinio app show
1111

12-
Describe the named application
12+
Describe the named application. Shows details such as status, instances, routes, bound configurations, and environment.
13+
14+
With `-o json`, the response includes application `configuration` with:
15+
16+
- **`environment`** — User-set environment variables (key-value map).
17+
- **`environment_grouped`** — Environment variables grouped by origin (`user` and `service`), same structure as [epinio app env show](env/epinio_app_env_show.md) when using the API with `?grouped=true`. Use this to tell user-defined variables apart from those injected by bound services.
1318

1419
```
1520
epinio app show NAME [flags]

0 commit comments

Comments
 (0)