Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
c20beea
docs(Add new git config reference material):
dcharles525 Jul 10, 2026
55fdc9b
docs(Add additional information about the GitHub Enterprise differenc…
dcharles525 Jul 14, 2026
091a79e
docs(Update docs with latest git config information and upgrade infor…
dcharles525 Jul 15, 2026
a173a96
feat: update developer section of how to docs with crd crud ui
johnlcos Jul 17, 2026
8ab65c6
docs(Update app watch docs based on 1.14.1 tweaks):
dcharles525 Jul 22, 2026
05cfa15
Merge branch '1.14.1' of github.com:epinio/docs into 1.14.1
dcharles525 Jul 22, 2026
f8843cc
docs(added draft blog and missing links):
dcharles525 Jul 23, 2026
71a7412
docs(update permissions with latest crud endpoints)
dcharles525 Jul 23, 2026
ec59c63
Merge pull request #489 from epinio/feat/git-config-updates
dcharles525 Jul 24, 2026
dc3b13c
Merge pull request #491 from epinio/docs/permissions-update
dcharles525 Jul 24, 2026
0a5451a
docs(updating statuses of different items stability):
dcharles525 Jul 24, 2026
baee5de
docs(Update MCP docs for beta):
dcharles525 Jul 26, 2026
0d7d57b
docs(Explicitly say you need 1.14.1 for mcp):
dcharles525 Jul 26, 2026
1d4d08a
docs(migration notes for 1.14.1):
dcharles525 Jul 27, 2026
3c7af96
feat: cli crud updates
AustinLoudermilk Jul 27, 2026
28687e4
feat: updated how to cli docs
AustinLoudermilk Jul 27, 2026
492f768
Merge pull request #490 from epinio/feat/EPINIO-672__crd_crud_docs
dcharles525 Jul 27, 2026
e525f38
fix(logical error in docs): Correct information about builderimage_read
dcharles525 Jul 28, 2026
fee9b5b
Merge branch '1.14.1' of github.com:epinio/docs into 1.14.1
dcharles525 Jul 28, 2026
7d652e1
Revise Epinio Gateway API setup documentation
dcharles525 Jul 29, 2026
0227c48
docs(Update a few links in preperation for rollout):
dcharles525 Jul 29, 2026
22572a8
Merge branch '1.14.1' of github.com:epinio/docs into 1.14.1
dcharles525 Jul 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions blog/2026-07-27-epinio-1-14-1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
slug: epinio-1-14-1
title: Announcing Epinio 1.14.1!
authors: [epinio]
tags: [release]
date: 2026-07-27
---

Epinio 1.14.1 is here, and there is a lot to talk about! This release includes the
usual bug fixes, dependency updates, and maintenance, along with several new features.

We encourage you to review the documentation for [upgrading Epinio](https://docs.epinio.io/reference/upgrading). In this release specifically we have made changes to CRDs and added new user permissions, so it is important to review the upgrade documentation before upgrading.

<!-- truncate -->

## New Features and Improvements

- AppCharts can be managed via the UI or CLI.
- Catalog Services can be managed via the UI or CLI.
- Builder images can be managed via the UI or CLI, search existing builder images, and manually enter remote ones.
- [Git configs](https://docs.epinio.io/reference/concepts/git_configuration) have been overhauled for wider provider support and ease of use:
- Use git configs for GitHub, GitHub Enterprise, and GitLab.
- Manage git configs via the UI or CLI.
- Use a global configuration for org-wide git configs.
- Explicitly select a git config from the application creation flow.
- Bulk delete for applications, service instances, and configurations is now available via the UI.
- [Gateway API](https://docs.epinio.io/how-to/operator/networking/enable_gateway_api) support.

## App Watch (Experimental)

Due to feedback from multiple users, we have added [Epinio App Watch](https://docs.epinio.io/how-to/developer/concepts/app_watch) as a experimental feature. App Watch watches your application for changes and automatically redeploys it when changes are detected, so you can develop the way you deploy and rapidly iterate on applications in-cluster. Below is a short demo of it in action.

<video controls loop muted playsInline width="100%" style={{maxWidth: '800px'}}>
<source src="/img/app-watch-1411.mp4" type="video/mp4" />
Your browser does not support the video tag.
</video>

## MCP

The [Epinio MCP server](https://github.com/epinio/mcp) has been promoted from experimental to beta! A lot of work has gone into reducing external dependencies and using Epinio natively to accomplish much of the MCP server's functionality. We have also made various bug fixes and improvements, and
a v1.0.0 version is coming soon.

## Documentation

This release includes a significant overhaul of the [documentation site](https://docs.epinio.io).

- Reorganized and cleaned up the documentation for easier navigation.
- Removed documentation for releases prior to 1.11.0.
- Refreshed the community tab and removed the Related Projects tab.
- Added documentation for Minio to SeaweedFS migration.
- Added documentation for the Epinio MCP server.
- Updated to the majority of pages to reflect the current state of Epinio and its features.

## Fixes

- The Application Detail page now refreshes regularly to show the latest application state.
- Improved error handling for application creation and deployment.
- Fixed Export Application failing silently.
- Several fixes and improvements around table and dropdown loading.

## Dependency updates
Updated server, UI, and Helm chart dependencies.

---

For the complete technical changelog, see the
[1.14.1 release on GitHub](https://github.com/epinio/epinio/releases/tag/v1.14.1).
94 changes: 39 additions & 55 deletions docs/getting-started/install-mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,51 +12,44 @@ doc-topic: [epinio, getting-started, mcp]
The [Epinio MCP server](https://github.com/epinio/mcp) exposes Epinio as tools for
AI agents over the [Model Context Protocol](https://modelcontextprotocol.io). It
runs on your cluster and talks to the Epinio API on the agent's behalf. For the
full tool list and the optional capabilities, see the
full tool list and the optional elevated tier, see the
[MCP server reference](../reference/mcp).

:::caution Experimental
The MCP server is under active development and not yet stable. Tool names,
capabilities, and install steps may change. It is not recommended for production
use.
:::caution Beta
The MCP server is in beta. Tool names and options may still change, and it is
not yet recommended for production use.
:::

## Prerequisites

- A Kubernetes cluster with [Epinio](./install-epinio.md) installed.
- A Kubernetes cluster with [Epinio](./install-epinio.md) **1.14.1 or later**
installed. The server relies on the builder-image, catalog-service, and
app-chart CRUD API and the source-retrieval endpoint added in 1.14.1, so it
will not work against earlier releases.
- `kubectl` and the [`epinio` CLI](./install-cli.md) pointed at your cluster.
- An Epinio namespace to deploy into (default: `epinio`).
- [`task`](https://taskfile.dev) (optional, used by the `epinio push` path below).
- `make` and a Go toolchain, plus a clone of [epinio/mcp](https://github.com/epinio/mcp).

## Choose an install path

There are two ways to install the server. Most users want the first.

| Path | Use when |
| --- | --- |
| **`epinio push` (managed)** | You want Epinio to own the lifecycle (push, logs, restart, scale), just like any other app. |
| **`make setup` (managed)** | You want Epinio to own the lifecycle (push, logs, restart, scale), just like any other app. |
| **`kubectl apply` (adopted)** | You want the server managed outside Epinio's REST path, and prefer to finish setup through conversation with the agent. |

## Install with `epinio push` (recommended)
## Install with `make setup` (recommended)

The repository ships a `Taskfile.yml` that automates the full setup. After
cloning [epinio/mcp](https://github.com/epinio/mcp) and editing `epinio.yml` with
your cluster credentials:
Clone [epinio/mcp](https://github.com/epinio/mcp), set your cluster details in
`epinio.yml`, and run:

```bash
task setup
make setup
```

`task setup` runs these steps in order, and each can be run on its own for partial
runs or re-runs:

```bash
task cluster-prep # (cluster-admin, once per cluster) manifests + namespace label
task s3-service # create and wait for the epinio-s3-gateway service
task configure-s3 # create the epinio-s3-gateway Epinio configuration (idempotent)
task push # epinio push from the repo root
task verify # smoke-test /healthz and /readyz
```
This targets the `mcp` namespace (creating it if needed), pushes the server, and
smoke-tests `/healthz` and `/readyz`. Override the namespace with
`make setup NAMESPACE=<name>`, and run `make help` to see every target.

`epinio.yml` carries the connection details. Fill in the `environment` section
with your cluster's API URL and credentials (default `admin` / `password`):
Expand All @@ -72,18 +65,31 @@ For OIDC clusters, leave the username and password empty and set `EPINIO_TOKEN`,
`EPINIO_REFRESH_TOKEN`, and `EPINIO_TOKEN_ENDPOINT` instead.

The push runs the full build cycle (upload source, stage, deploy, wait for ready)
and assigns a route, for example `https://epinio-mcp.192.168.X.X.sslip.io/mcp`.
and assigns a route, for example `https://epinio-mcp.192.168.X.X.sslip.io`. The
MCP endpoint is that route's root — point your agent at the URL as-is (no `/mcp`
suffix).

For the manual, step-by-step walkthrough (useful when a step fails), see
[`INSTALL.md`](https://github.com/epinio/mcp/blob/main/INSTALL.md) in the
repository.
### Elevated tier (optional)

The core install wires only to the Epinio API. To turn on the opt-in
[elevated tier](../reference/mcp#elevated-tier) — workload adoption, which reaches
directly into Kubernetes — edit `epinio-elevated.yml` and run:

```bash
make elevated-setup
```

This registers the `standard-elevated` app chart (a one-time, cluster-admin step)
and pushes the server with `EPINIO_MCP_ELEVATED` set. Switching a running server
between the core and elevated installs recreates it (the app chart can't change in
place).

## Install with `kubectl apply`

This path stands the server up as a plain Kubernetes workload. The install
manifest is self-contained: it creates the namespace, the server's ServiceAccount
and RBAC, the Deployment and Service, and an Epinio `App` record so
`epinio app list/show/logs/exec` keep working.
This path stands the server up as a plain Kubernetes workload with the adoption
RBAC. The install manifest is self-contained: it creates the namespace, the
server's ServiceAccount and RBAC, the Deployment and Service, and an Epinio `App`
record so `epinio app list/show/logs` keep working.

Deploy the server (edit the image tag, credentials, and Ingress host first):

Expand All @@ -101,28 +107,6 @@ Run enable_capability for self_adoption.
To upgrade, edit the image tag and re-apply `install/epinio-mcp.yaml`; to
uninstall, run `kubectl delete -f install/epinio-mcp.yaml`.

### Enable source-reading tools (app_editing)

The `app_editing` capability (`get_app_source`, `list_app_files`) needs an S3
gateway. The prerequisites ship in the repo's
[`manifests/`](https://github.com/epinio/mcp/tree/main/manifests). As a cluster
admin, register the S3 gateway catalog entry and let Epinio manage the `epinio`
namespace:

```bash
kubectl apply -f manifests/s3-gateway-catalog-entry.yaml
kubectl label namespace epinio app.kubernetes.io/component=epinio-namespace --overwrite
```

Then have the agent provision and wire up the gateway:

```text
Run enable_capability for app_editing.
```

`enable_capability` creates the `s3-gateway` service instance, reads its
credentials, binds them to the server, and restarts the pod.

## Verify the server is up

The server exposes two plain-HTTP probes:
Expand All @@ -138,7 +122,7 @@ curl https://epinio-mcp.<your-route>/readyz
A healthy `/readyz` response reports the Epinio version it reached:

```json
{"epinio":{"kube_version":"...","platform":"...","version":"..."},"status":"ok","version":"0.6.0"}
{"epinio":{"kube_version":"...","platform":"...","version":"..."},"status":"ok","version":"..."}
```

## See also
Expand Down
91 changes: 90 additions & 1 deletion docs/how-to/developer/concepts/app-charts/app-charts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import TabItem from '@theme/TabItem';
This guide explores working with application charts. App charts are reusable application templates packaged as Helm charts that allow users to deploy preconfigured applications. For more information see the [application charts reference](../../../../reference/concepts/appcharts.md) page.

## View Application Charts

<Tabs>
<TabItem value="ui" label="UI" default>

Expand All @@ -37,7 +38,95 @@ epinio app chart list
</TabItem>
</Tabs>

### Application Charts CRUD Coming Soon!
## Create an Application Chart

<Tabs>
<TabItem value="ui" label="UI" default>

Click **Create** on the Application Charts page to open the creation modal. Here you can provide a name and short description which will be displayed when creating an application, a detailed description for display in the table, as well as a Helm Chart URL and/or a Helm Repo URL. You can also establish settings that will prompt the user for values during app creation if they select the corresponding chart.

<img
src={require('./charts-create-modal.png').default}
alt="Create App Chart Modal"
width="800"
/>

</TabItem>

<TabItem value="cli" label="CLI">

Create an application chart:

```console
epinio app chart create --name mychart \
--short-description "My application chart" \
--description "A longer description of my application chart" \
--helm-repo https://charts.example.com \
--helm-chart https://charts.example.com/mychart-1.0.0.tgz \
--set replicaCount=2 \
--set image.tag=latest
```

The `--set` flag takes a `key=value` pair and can be repeated to provide multiple values.

</TabItem>
</Tabs>

## Edit an Application Chart

<Tabs>
<TabItem value="ui" label="UI" default>

Select **Edit** from the action menu for the row of the app chart you wish to edit. Use caution when editing charts that are being used by applications, as you may cause issues for future rebuilds.

<img
src={require('./charts-edit-modal.png').default}
alt="Edit App Chart Modal"
width="800"
/>

</TabItem>

<TabItem value="cli" label="CLI">

Update an application chart. Flags you do not set leave the corresponding fields unchanged:

```console
epinio app chart update mychart \
--short-description "An updated description" \
--helm-chart https://charts.example.com/mychart-1.1.0.tgz \
--set replicaCount=3
```

</TabItem>
</Tabs>

## Delete an Application Chart

<Tabs>
<TabItem value="ui" label="UI" default>

Open the action menu for the application chart and select **Delete**. Confirm the deletion.

<img
src={require('./charts-delete-modal.png').default}
alt="Delete App Chart Modal"
width="400"
/>

</TabItem>

<TabItem value="cli" label="CLI">

Delete an application chart:

```console
epinio app chart delete mychart
```

</TabItem>
</Tabs>


## Additional CLI Commands
For additional documentation on the CLI commands above, along with additional commands, see the [epinio app chart](../../../../reference/cli/app/chart/epinio_app_chart.md) CLI reference.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/how-to/developer/concepts/app-charts/charts-screen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading