Merge ~athos-ribeiro/ubuntu-docker-images:update-templates-21.04-makefile into ~valentinviennot/ubuntu-docker-images:update-templates-21.04

Proposed by Athos Ribeiro
Status: Merged
Merged at revision: 65a3b15045408f995f8fd6912de0da020c139534
Proposed branch: ~athos-ribeiro/ubuntu-docker-images:update-templates-21.04-makefile
Merge into: ~valentinviennot/ubuntu-docker-images:update-templates-21.04
Diff against target: 1415 lines (+53/-95)
7 files modified
Makefile (+35/-0)
README.md (+14/-3)
data/cassandra.yaml (+1/-1)
dev/null (+0/-88)
docs/docker.io/ubuntu/cassandra.md (+1/-1)
docs/public.ecr.aws/lts/cassandra.md (+1/-1)
docs/public.ecr.aws/ubuntu/cassandra.md (+1/-1)
Reviewer Review Type Date Requested Status
Valentin Viennot Approve
Sergio Durigan Junior Pending
Review via email: mp+408495@code.launchpad.net

Description of the change

Hi Valentin,

This MP is a proposal for adding a Makefile into the new OCI docs structure.

This also proposes a change for the build directory where the built docs artifacts should live, moving them from out* to a docs/REGISTRY/NAMESPACE structure.

Finally, while the last commit moves the files from out/* to the new structure, it also removed the files from out-lts, since I could not find the templates that generated those files.

To post a comment you must log in.
Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Note that I do have some remaining questions over the new structure:

1 - Should we remove all the documentation bits from the individial OCI repositories in favor of the new structure? i.e., remove data?* and README.md from those repositories.

2 - How about the HACKING files? Should we still maintain those in the individual repositories?

Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

On Monday, September 13 2021, Athos Ribeiro wrote:

> Note that I do have some remaining questions over the new structure:
>
> 1 - Should we remove all the documentation bits from the individial OCI repositories in favor of the new structure? i.e., remove data?* and README.md from those repositories.

Yes, I think that's the way to go here. AFAIU everything will now live
in the templates.git repository.

> 2 - How about the HACKING files? Should we still maintain those in the individual repositories?

My opinion is that the HACKING files belong to the git repositories.
Right now they are also generated using templates, but maybe we can make
them generic enough that they can be static files.

Thanks,

--
Sergio
GPG key ID: E92F D0B3 6B14 F1F4 D8E0 EB2F 106D A1C8 C3CB BF14

Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

Thanks for the MP, Athos.

I think this is OK, but I'd like to hear what Valentin has to say first.

Cheers.

Revision history for this message
Valentin Viennot (valentinviennot) wrote :

Thanks Athos! A few changes:

In the README:
- we can get rid of all the "Getting data from images repositories" instructions, as data?* files will now live in this repository.
- also, the .devcontainer could run the steps describe in the README for us :)

For the cassandra.yaml file:
- I think we need to change the version to remove the "rc" modifier as it wouldn't be part of the image tag. I also believe the 20.04 version is not an LTS, right?
- There's a "dead" link for the Kubernetes part, "TBD". This would need the absolute link to the proper configuration files.

With these changes this works well for me!

PS: I have a commit ready to fix the 3 first bullets but I don't know what to do with it. This is what my .devcontainer/Dockerfile looks like: (feel free to commit it yourself directly)
---
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.148.1/containers/python-3/.devcontainer/base.Dockerfile
ARG VARIANT="3"
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
    && apt-get -y install --no-install-recommends python3-mako python3-yaml

RUN cd /usr/bin && git clone https://github.com/misterw97/RenderDown \
    && pip3 --disable-pip-version-check --no-cache-dir install -r /usr/bin/RenderDown/requirements.txt \
    && rm -rf /tmp/pip-tmp
ENV RENDERDOWN /usr/bin/RenderDown/renderdown.py

review: Needs Fixing
Revision history for this message
Valentin Viennot (valentinviennot) wrote :

Oh, and what I've done for the README is that I removed the instructions related to "data" files and refactored the Installation section as following:
---
## Installing

### DevContainer

This repository contains a `.devcontainer` config folder to allow isolated-environment-controlled execution with [VScode](https://code.visualstudio.com/docs/remote/containers).

The DevContainer will provide you with a working environment out of the box. **You don't need any configuration.**

### Manually

```bash
git clone https://github.com/misterw97/RenderDown
sudo apt update -y && sudo apt install -y python3-mako python3-yaml
pip3 install -r RenderDown/requirements.txt
```

Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Thanks for the reviews, Sergio and Valentin.

Valentin, I fixed the 4th bullet by adding the URL for the Cassandra k8s deployment example. Would you like to rebase your remaining changes and merge them on top of my recent changes after merging this MP or would you rather me to go ahead and add those changes here?

Revision history for this message
Valentin Viennot (valentinviennot) wrote :

Happy to do a rebase if that's easier

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/Makefile b/Makefile
2new file mode 100644
3index 0000000..a179a07
4--- /dev/null
5+++ b/Makefile
6@@ -0,0 +1,35 @@
7+RENDERDOWN ?= ../RenderDown/renderdown.py
8+PYTHON ?= python3
9+BUILDDIR ?= docs
10+DATADIR ?= data
11+
12+NS_DOCKERHUB = docker.io/ubuntu
13+NS_ECR = public.ecr.aws/ubuntu
14+NS_ECR_LTS = public.ecr.aws/lts
15+
16+README_TEMPLATE_DOCKERHUB = templates/README_DOCKERHUB.md
17+README_TEMPLATE_ECR = templates/README_ECR.md
18+README_TEMPLATE_ECR_LTS = templates/README_ECR_LTS.md
19+
20+all: all-doc
21+
22+all-doc: clean-doc dockerhub-docs ecr-docs ecr-lts-docs
23+
24+dockerhub-docs:
25+ mkdir -p $(BUILDDIR)/$(NS_DOCKERHUB)
26+ $(PYTHON) $(RENDERDOWN) $(README_TEMPLATE_DOCKERHUB) --outdir $(BUILDDIR)/$(NS_DOCKERHUB) --data $(DATADIR)
27+
28+ecr-docs:
29+ mkdir -p $(BUILDDIR)/$(NS_ECR)
30+ $(PYTHON) $(RENDERDOWN) $(README_TEMPLATE_ECR) --outdir $(BUILDDIR)/$(NS_ECR) --data $(DATADIR)
31+
32+ecr-lts-docs:
33+ mkdir -p $(BUILDDIR)/$(NS_ECR_LTS)
34+ $(PYTHON) $(RENDERDOWN) $(README_TEMPLATE_ECR_LTS) --outdir $(BUILDDIR)/$(NS_ECR_LTS) --data $(DATADIR)
35+
36+clean: clean-doc
37+
38+clean-doc:
39+ rm -rf $(BUILDDIR)
40+
41+.PHONY: clean clean-doc all all-doc dockerhub-docs ecr-docs ecr-lts-docs
42diff --git a/README.md b/README.md
43index d9b66cb..f0402b2 100644
44--- a/README.md
45+++ b/README.md
46@@ -35,8 +35,19 @@ python3 ./RenderDown/renderdown.py templates/README_DOCKERHUB.md --outdir out --
47
48 #### Useful commands
49
50+Create README files for all resigtries and namespaces:
51+
52+```bash
53+make
54+```
55+
56+Create a README file for a specific registry/namespace combination:
57+
58 ```bash
59-python3 ./RenderDown/renderdown.py templates/README_DOCKERHUB.md --outdir ./out/DockerHub/Ubuntu --data ./data
60-python3 ./RenderDown/renderdown.py templates/README_ECR.md --outdir ./out/ECR/Ubuntu --data ./data
61-python3 ./RenderDown/renderdown.py templates/README_ECR_LTS.md --outdir ./out/ECR/LTS --data ./data
62+make dockerhub-docs
63+make ecr-docs
64+make ecr-lts-docs
65 ```
66+
67+The documentation will be available under `docs`, respecting the image
68+registry/namespace format.
69diff --git a/data/cassandra.yaml b/data/cassandra.yaml
70index bfdf4f7..7e640cb 100644
71--- a/data/cassandra.yaml
72+++ b/data/cassandra.yaml
73@@ -61,5 +61,5 @@ debug:
74 - nothing
75 microk8s:
76 deploy:
77- link: TBD
78+ link: https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cassandra/plain/examples/cassandra-deployment.yml
79 access: You can now access the cassandra server on port 9042 (e.g., cqlsh localhost 9042)
80diff --git a/out/DockerHub/Ubuntu/apache2.md b/docs/docker.io/ubuntu/apache2.md
81similarity index 100%
82rename from out/DockerHub/Ubuntu/apache2.md
83rename to docs/docker.io/ubuntu/apache2.md
84diff --git a/out/DockerHub/Ubuntu/cassandra.md b/docs/docker.io/ubuntu/cassandra.md
85similarity index 96%
86rename from out/DockerHub/Ubuntu/cassandra.md
87rename to docs/docker.io/ubuntu/cassandra.md
88index e71ed9e..7ae1de4 100644
89--- a/out/DockerHub/Ubuntu/cassandra.md
90+++ b/docs/docker.io/ubuntu/cassandra.md
91@@ -73,7 +73,7 @@ docker exec -it cassandra-container /bin/bash
92 Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
93
94 Download
95-[cassandra-deployment.yml](TBD) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `ubuntu/cassandra:4.0-rc1-21.04_beta`), then:
96+[cassandra-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cassandra/plain/examples/cassandra-deployment.yml) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `ubuntu/cassandra:4.0-rc1-21.04_beta`), then:
97
98 ```sh
99 kubectl apply -f cassandra-deployment.yml
100diff --git a/out/DockerHub/Ubuntu/cortex.md b/docs/docker.io/ubuntu/cortex.md
101similarity index 100%
102rename from out/DockerHub/Ubuntu/cortex.md
103rename to docs/docker.io/ubuntu/cortex.md
104diff --git a/out/DockerHub/Ubuntu/grafana.md b/docs/docker.io/ubuntu/grafana.md
105similarity index 100%
106rename from out/DockerHub/Ubuntu/grafana.md
107rename to docs/docker.io/ubuntu/grafana.md
108diff --git a/out/DockerHub/Ubuntu/memcached.md b/docs/docker.io/ubuntu/memcached.md
109similarity index 100%
110rename from out/DockerHub/Ubuntu/memcached.md
111rename to docs/docker.io/ubuntu/memcached.md
112diff --git a/out/DockerHub/Ubuntu/mysql.md b/docs/docker.io/ubuntu/mysql.md
113similarity index 100%
114rename from out/DockerHub/Ubuntu/mysql.md
115rename to docs/docker.io/ubuntu/mysql.md
116diff --git a/out/DockerHub/Ubuntu/nginx.md b/docs/docker.io/ubuntu/nginx.md
117similarity index 100%
118rename from out/DockerHub/Ubuntu/nginx.md
119rename to docs/docker.io/ubuntu/nginx.md
120diff --git a/out/DockerHub/Ubuntu/postgres.md b/docs/docker.io/ubuntu/postgres.md
121similarity index 100%
122rename from out/DockerHub/Ubuntu/postgres.md
123rename to docs/docker.io/ubuntu/postgres.md
124diff --git a/out/DockerHub/Ubuntu/prometheus-alertmanager.md b/docs/docker.io/ubuntu/prometheus-alertmanager.md
125similarity index 100%
126rename from out/DockerHub/Ubuntu/prometheus-alertmanager.md
127rename to docs/docker.io/ubuntu/prometheus-alertmanager.md
128diff --git a/out/DockerHub/Ubuntu/prometheus.md b/docs/docker.io/ubuntu/prometheus.md
129similarity index 100%
130rename from out/DockerHub/Ubuntu/prometheus.md
131rename to docs/docker.io/ubuntu/prometheus.md
132diff --git a/out/DockerHub/Ubuntu/redis.md b/docs/docker.io/ubuntu/redis.md
133similarity index 100%
134rename from out/DockerHub/Ubuntu/redis.md
135rename to docs/docker.io/ubuntu/redis.md
136diff --git a/out/DockerHub/Ubuntu/telegraf.md b/docs/docker.io/ubuntu/telegraf.md
137similarity index 100%
138rename from out/DockerHub/Ubuntu/telegraf.md
139rename to docs/docker.io/ubuntu/telegraf.md
140diff --git a/out/ECR/LTS/apache2.md b/docs/public.ecr.aws/lts/apache2.md
141similarity index 100%
142rename from out/ECR/LTS/apache2.md
143rename to docs/public.ecr.aws/lts/apache2.md
144diff --git a/out/ECR/LTS/cassandra.md b/docs/public.ecr.aws/lts/cassandra.md
145similarity index 96%
146rename from out/ECR/LTS/cassandra.md
147rename to docs/public.ecr.aws/lts/cassandra.md
148index f44bd91..48ac796 100644
149--- a/out/ECR/LTS/cassandra.md
150+++ b/docs/public.ecr.aws/lts/cassandra.md
151@@ -74,7 +74,7 @@ docker exec -it cassandra-container /bin/bash
152 Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
153
154 Download
155-[cassandra-deployment.yml](TBD) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `public.ecr.aws/lts/cassandra:4.0-rc1-20.04_beta`), then:
156+[cassandra-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cassandra/plain/examples/cassandra-deployment.yml) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `public.ecr.aws/lts/cassandra:4.0-rc1-20.04_beta`), then:
157
158 ```sh
159 kubectl apply -f cassandra-deployment.yml
160diff --git a/out/ECR/LTS/cortex.md b/docs/public.ecr.aws/lts/cortex.md
161similarity index 100%
162rename from out/ECR/LTS/cortex.md
163rename to docs/public.ecr.aws/lts/cortex.md
164diff --git a/out/ECR/LTS/grafana.md b/docs/public.ecr.aws/lts/grafana.md
165similarity index 100%
166rename from out/ECR/LTS/grafana.md
167rename to docs/public.ecr.aws/lts/grafana.md
168diff --git a/out/ECR/LTS/memcached.md b/docs/public.ecr.aws/lts/memcached.md
169similarity index 100%
170rename from out/ECR/LTS/memcached.md
171rename to docs/public.ecr.aws/lts/memcached.md
172diff --git a/out/ECR/LTS/mysql.md b/docs/public.ecr.aws/lts/mysql.md
173similarity index 100%
174rename from out/ECR/LTS/mysql.md
175rename to docs/public.ecr.aws/lts/mysql.md
176diff --git a/out/ECR/LTS/nginx.md b/docs/public.ecr.aws/lts/nginx.md
177similarity index 100%
178rename from out/ECR/LTS/nginx.md
179rename to docs/public.ecr.aws/lts/nginx.md
180diff --git a/out/ECR/LTS/postgres.md b/docs/public.ecr.aws/lts/postgres.md
181similarity index 100%
182rename from out/ECR/LTS/postgres.md
183rename to docs/public.ecr.aws/lts/postgres.md
184diff --git a/out/ECR/LTS/prometheus-alertmanager.md b/docs/public.ecr.aws/lts/prometheus-alertmanager.md
185similarity index 100%
186rename from out/ECR/LTS/prometheus-alertmanager.md
187rename to docs/public.ecr.aws/lts/prometheus-alertmanager.md
188diff --git a/out/ECR/LTS/prometheus.md b/docs/public.ecr.aws/lts/prometheus.md
189similarity index 100%
190rename from out/ECR/LTS/prometheus.md
191rename to docs/public.ecr.aws/lts/prometheus.md
192diff --git a/out/ECR/LTS/redis.md b/docs/public.ecr.aws/lts/redis.md
193similarity index 100%
194rename from out/ECR/LTS/redis.md
195rename to docs/public.ecr.aws/lts/redis.md
196diff --git a/out/ECR/LTS/telegraf.md b/docs/public.ecr.aws/lts/telegraf.md
197similarity index 100%
198rename from out/ECR/LTS/telegraf.md
199rename to docs/public.ecr.aws/lts/telegraf.md
200diff --git a/out/ECR/Ubuntu/apache2.md b/docs/public.ecr.aws/ubuntu/apache2.md
201similarity index 100%
202rename from out/ECR/Ubuntu/apache2.md
203rename to docs/public.ecr.aws/ubuntu/apache2.md
204diff --git a/out/ECR/Ubuntu/cassandra.md b/docs/public.ecr.aws/ubuntu/cassandra.md
205similarity index 96%
206rename from out/ECR/Ubuntu/cassandra.md
207rename to docs/public.ecr.aws/ubuntu/cassandra.md
208index fd7aef9..e4ec4d4 100644
209--- a/out/ECR/Ubuntu/cassandra.md
210+++ b/docs/public.ecr.aws/ubuntu/cassandra.md
211@@ -76,7 +76,7 @@ docker exec -it cassandra-container /bin/bash
212 Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
213
214 Download
215-[cassandra-deployment.yml](TBD) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `public.ecr.aws/ubuntu/cassandra:4.0-rc1-20.04_beta`), then:
216+[cassandra-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cassandra/plain/examples/cassandra-deployment.yml) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `public.ecr.aws/ubuntu/cassandra:4.0-rc1-20.04_beta`), then:
217
218 ```sh
219 kubectl apply -f cassandra-deployment.yml
220diff --git a/out/ECR/Ubuntu/cortex.md b/docs/public.ecr.aws/ubuntu/cortex.md
221similarity index 100%
222rename from out/ECR/Ubuntu/cortex.md
223rename to docs/public.ecr.aws/ubuntu/cortex.md
224diff --git a/out/ECR/Ubuntu/grafana.md b/docs/public.ecr.aws/ubuntu/grafana.md
225similarity index 100%
226rename from out/ECR/Ubuntu/grafana.md
227rename to docs/public.ecr.aws/ubuntu/grafana.md
228diff --git a/out/ECR/Ubuntu/memcached.md b/docs/public.ecr.aws/ubuntu/memcached.md
229similarity index 100%
230rename from out/ECR/Ubuntu/memcached.md
231rename to docs/public.ecr.aws/ubuntu/memcached.md
232diff --git a/out/ECR/Ubuntu/mysql.md b/docs/public.ecr.aws/ubuntu/mysql.md
233similarity index 100%
234rename from out/ECR/Ubuntu/mysql.md
235rename to docs/public.ecr.aws/ubuntu/mysql.md
236diff --git a/out/ECR/Ubuntu/nginx.md b/docs/public.ecr.aws/ubuntu/nginx.md
237similarity index 100%
238rename from out/ECR/Ubuntu/nginx.md
239rename to docs/public.ecr.aws/ubuntu/nginx.md
240diff --git a/out/ECR/Ubuntu/postgres.md b/docs/public.ecr.aws/ubuntu/postgres.md
241similarity index 100%
242rename from out/ECR/Ubuntu/postgres.md
243rename to docs/public.ecr.aws/ubuntu/postgres.md
244diff --git a/out/ECR/Ubuntu/prometheus-alertmanager.md b/docs/public.ecr.aws/ubuntu/prometheus-alertmanager.md
245similarity index 100%
246rename from out/ECR/Ubuntu/prometheus-alertmanager.md
247rename to docs/public.ecr.aws/ubuntu/prometheus-alertmanager.md
248diff --git a/out/ECR/Ubuntu/prometheus.md b/docs/public.ecr.aws/ubuntu/prometheus.md
249similarity index 100%
250rename from out/ECR/Ubuntu/prometheus.md
251rename to docs/public.ecr.aws/ubuntu/prometheus.md
252diff --git a/out/ECR/Ubuntu/redis.md b/docs/public.ecr.aws/ubuntu/redis.md
253similarity index 100%
254rename from out/ECR/Ubuntu/redis.md
255rename to docs/public.ecr.aws/ubuntu/redis.md
256diff --git a/out/ECR/Ubuntu/telegraf.md b/docs/public.ecr.aws/ubuntu/telegraf.md
257similarity index 100%
258rename from out/ECR/Ubuntu/telegraf.md
259rename to docs/public.ecr.aws/ubuntu/telegraf.md
260diff --git a/out-lts/apache2.md b/out-lts/apache2.md
261deleted file mode 100644
262index 743c3b2..0000000
263--- a/out-lts/apache2.md
264+++ /dev/null
265@@ -1,90 +0,0 @@
266-# Apache2 LTS Docker Image
267-
268-## LTS Docker Image Portfolio
269-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
270-
271-
272-## About Apache2
273-
274-The Apache HTTP Server Project's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. Read more on the [apache2 website](https://httpd.apache.org/).
275-
276-
277-## Tags and Architectures
278-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
279-Up to 5 years free security maintenance `from lts/apache2`.
280-
281-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
282-Up to 10 years customer security maintenance `from store/canonical/apache2`.
283-
284-_Tags in italics are not available in lts/apache2 but are shown here for completeness._
285-
286-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
287-|---|---|---|---|---|
288-| **`2.4-20.04_beta`**    | - | - | Apache2 2.4.41 | `amd64`, `arm64`, `ppc64el`, `s390x` |
289-| _`track_risk`_ |
290-
291-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
292-
293-## Usage
294-
295-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
296-
297-Launch this image locally:
298-
299-```sh
300-docker run -d --name apache2-container -e TZ=UTC -p 8080:80 lts/apache2:2.4-20.04_beta
301-```
302-Access your Apache2 server at `http://localhost:8080`.
303-
304-#### Parameters
305-
306-| Parameter | Description |
307-|---|---|
308-| `-e TZ=UTC` | Timezone. |
309-| `-p 8080:80` | Expose Apache2 on `localhost:8080`. |
310-| `-v /local/path/to/website:/var/www/html` | Mount and serve a local website. |
311-| `-v /path/to/apache2.conf:/etc/apache2/apache2.conf` | Local [configuration file](https://httpd.apache.org/docs/2.4/) `apache2.conf` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/apache2/plain/examples/config/apache2.conf)). |
312-
313-
314-#### Testing/Debugging
315-
316-To debug the container:
317-
318-```sh
319-docker logs -f apache2-container
320-```
321-
322-To get an interactive shell:
323-
324-```sh
325-docker exec -it apache2-container /bin/bash
326-```
327-
328-
329-## Deploy with Kubernetes
330-
331-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
332-
333-Download
334-[apache2.conf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/apache2/plain/examples/config/apache2.conf), [index.html](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/apache2/plain/examples/config/html/index.html) and
335-[apache2-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/apache2/plain/examples/apache2-deployment.yml) and set `containers.apache2.image` in `apache2-deployment.yml` to your chosen channel tag (e.g. `lts/apache2:2.4-20.04_beta`), then:
336-
337-```sh
338-kubectl create configmap apache2-config --from-file=apache2=apache2.conf --from-file=apache2-site=index.html
339-kubectl apply -f apache2-deployment.yml
340-```
341-
342-You will now be able to connect to the apache2 server on `http://localhost:30080`.
343-
344-## Bugs and feature requests
345-
346-If you find a bug in our image or want to request a specific feature, please file a bug here:
347-
348-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
349-
350-Please title the bug "`apache2: <issue summary>`". Make sure to include the digest of the image you are using, from:
351-
352-```sh
353-docker images --no-trunc --quiet lts/apache2:<tag>
354-```
355-
356diff --git a/out-lts/cortex.md b/out-lts/cortex.md
357deleted file mode 100644
358index ae779d0..0000000
359--- a/out-lts/cortex.md
360+++ /dev/null
361@@ -1,95 +0,0 @@
362-# Cortex LTS Docker Image
363-
364-## LTS Docker Image Portfolio
365-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
366-
367-
368-## About Cortex
369-
370-Cortex provides horizontally scalable, highly available, multi-tenant, long term storage for Prometheus.
371-
372-* Horizontally scalable: Cortex can run across multiple machines in a cluster, exceeding the throughput and storage of a single machine. This enables you to send the metrics from multiple Prometheus servers to a single Cortex cluster and run "globally aggregated" queries across all data in a single place.
373-* Highly available: When run in a cluster, Cortex can replicate data between machines. This allows you to survive machine failure without gaps in your graphs.
374-* Multi-tenant: Cortex can isolate data and queries from multiple different independent Prometheus sources in a single cluster, allowing untrusted parties to share the same cluster.
375-* Long term storage: Cortex supports Amazon DynamoDB, Google Bigtable, Cassandra, S3, GCS and Microsoft Azure for long term storage of metric data. This allows you to durably store data for longer than the lifetime of any single machine, and use this data for long term capacity planning.
376-
377-Read more on the [Cortex website](https://cortexmetrics.io/).
378-
379-
380-## Tags and Architectures
381-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
382-Up to 5 years free security maintenance `from lts/cortex`.
383-
384-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
385-Up to 10 years customer security maintenance `from store/canonical/cortex`.
386-
387-_Tags in italics are not available in lts/cortex but are shown here for completeness._
388-
389-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
390-|---|---|---|---|---|
391-| _`track_risk`_ |
392-
393-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
394-
395-## Usage
396-
397-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
398-
399-Launch this image locally:
400-
401-```sh
402-docker run -d --name cortex-container -e TZ=UTC -p 32709:9009 lts/cortex:1.4-20.04_beta
403-```
404-Access your Cortex server at `http://localhost:32709`.
405-
406-#### Parameters
407-
408-| Parameter | Description |
409-|---|---|
410-| `-e TZ=UTC` | Timezone. |
411-| `-p 32709:9009` | Expose Cortex on `localhost:32709`. |
412-| `-v /my/local/cortex.yaml:/etc/cortex/cortex.yaml` | Local [configuration file](https://cortexmetrics.io/docs/configuration/) `cortex.yaml` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cortex/plain/oci/examples/config/cortex.yaml)). |
413-
414-
415-#### Testing/Debugging
416-
417-To debug the container:
418-
419-```sh
420-docker logs -f cortex-container
421-```
422-
423-To get an interactive shell:
424-
425-```sh
426-docker exec -it cortex-container /bin/bash
427-```
428-
429-
430-## Deploy with Kubernetes
431-
432-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
433-
434-Download
435-[cortex.yaml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cortex/plain/oci/examples/config/cortex.yaml) and
436-[cortex-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cortex/plain/oci/examples/cortex-deployment.yml) and set `containers.cortex.image` in `cortex-deployment.yml` to your chosen channel tag (e.g. `lts/cortex:1.4-20.04_beta`), then:
437-
438-```sh
439-kubectl create configmap cortex-config --from-file=main-config=cortex.yaml
440-kubectl apply -f cortex-deployment.yml
441-```
442-
443-You will now be able to connect to the Cortex server on `localhost:32709`.
444-
445-## Bugs and feature requests
446-
447-If you find a bug in our image or want to request a specific feature, please file a bug here:
448-
449-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
450-
451-Please title the bug "`cortex: <issue summary>`". Make sure to include the digest of the image you are using, from:
452-
453-```sh
454-docker images --no-trunc --quiet lts/cortex:<tag>
455-```
456-
457diff --git a/out-lts/grafana.md b/out-lts/grafana.md
458deleted file mode 100644
459index af4cee1..0000000
460--- a/out-lts/grafana.md
461+++ /dev/null
462@@ -1,89 +0,0 @@
463-# Grafana LTS Docker Image
464-
465-## LTS Docker Image Portfolio
466-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
467-
468-
469-## About Grafana
470-
471-Grafana is a feature rich metrics dashboard and graph editor for Cloudwatch, Elasticsearch, Graphite, InfluxDB, OpenTSB, Prometheus, and Hosted Metrics. Read more on the [Grafana website](https://grafana.com/docs/).
472-
473-
474-## Tags and Architectures
475-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
476-Up to 5 years free security maintenance `from lts/grafana`.
477-
478-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
479-Up to 10 years customer security maintenance `from store/canonical/grafana`.
480-
481-_Tags in italics are not available in lts/grafana but are shown here for completeness._
482-
483-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
484-|---|---|---|---|---|
485-| _`track_risk`_ |
486-
487-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
488-
489-## Usage
490-
491-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
492-
493-Launch this image locally:
494-
495-```sh
496-docker run -d --name grafana-container -e TZ=UTC -p 30000:3000 lts/grafana:7.2-20.04_beta
497-```
498-Access your Grafana server at `localhost:30000`.
499-
500-#### Parameters
501-
502-| Parameter | Description |
503-|---|---|
504-| `-e TZ=UTC` | Timezone. |
505-| `-p 30000:3000` | Expose Grafana on `localhost:30000`. |
506-| `-v /path/to/grafana/provisioning/files/:/etc/grafana/provisioning/` | Pass a directory with files to provision a Grafana `datasource` and `dashboard` (see [documentation](https://grafana.com/docs/grafana/latest/administration/provisioning/)). |
507-| `-v /path/to/persisted/data:/var/lib/grafana` | Persist data with a voulme instead of initializing a new database for each newly launched container. |
508-
509-
510-#### Testing/Debugging
511-
512-To debug the container:
513-
514-```sh
515-docker logs -f grafana-container
516-```
517-
518-To get an interactive shell:
519-
520-```sh
521-docker exec -it grafana-container /bin/bash
522-```
523-
524-
525-## Deploy with Kubernetes
526-
527-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
528-
529-Download
530-[datasource.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/grafana/plain/examples/config/datasource.yml), [dashboard.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/grafana/plain/examples/config/dashboard.yml), [system-stats-dashboard.json](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/grafana/plain/examples/config/system-stats-dashboard.json) and
531-[grafana-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/grafana/plain/examples/grafana-deployment.yml) and set `containers.grafana.image` in `grafana-deployment.yml` to your chosen channel tag (e.g. `lts/grafana:7.2-20.04_beta`), then:
532-
533-```sh
534-kubectl create configmap grafana-config --from-file=grafana-datasource=datasource.yml --from-file=grafana-dashboard-definition=dashboard.yml --from-file=grafana-dashboard=system-stats-dashboard.json
535-kubectl apply -f grafana-deployment.yml
536-```
537-
538-You will now be able to connect to the Grafana on `http://localhost:30000`.
539-
540-## Bugs and feature requests
541-
542-If you find a bug in our image or want to request a specific feature, please file a bug here:
543-
544-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
545-
546-Please title the bug "`grafana: <issue summary>`". Make sure to include the digest of the image you are using, from:
547-
548-```sh
549-docker images --no-trunc --quiet lts/grafana:<tag>
550-```
551-
552diff --git a/out-lts/memcached.md b/out-lts/memcached.md
553deleted file mode 100644
554index c33827e..0000000
555--- a/out-lts/memcached.md
556+++ /dev/null
557@@ -1,119 +0,0 @@
558-# Memcached LTS Docker Image
559-
560-## LTS Docker Image Portfolio
561-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
562-
563-
564-## About Memcached
565-
566-Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering. It is a short-term memory for applications. Memcached allows to take memory from parts of a system where you have more than you need and make it accessible to areas where you have less than you need. Read more on the [memcached website](https://memcached.org/).
567-
568-
569-## Tags and Architectures
570-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
571-Up to 5 years free security maintenance `from lts/memcached`.
572-
573-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
574-Up to 10 years customer security maintenance `from store/canonical/memcached`.
575-
576-_Tags in italics are not available in lts/memcached but are shown here for completeness._
577-
578-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
579-|---|---|---|---|---|
580-| **`1.5-20.04_beta`** &nbsp;&nbsp; | - | - | Memcached 1.5.22 | `amd64`, `arm64`, `ppc64el`, `s390x` |
581-| _`track_risk`_ |
582-
583-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
584-
585-## Usage
586-
587-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
588-
589-Launch this image locally:
590-
591-```sh
592-docker run -d --name memcached-container -e TZ=UTC lts/memcached:1.5-20.04_beta
593-```
594-
595-#### Parameters
596-
597-| Parameter | Description |
598-|---|---|
599-| `-e TZ=UTC` | Timezone. |
600-| `-e MEMCACHED_CACHE_SIZE=64MB` | Determines the size of the cache. |
601-| `-e MEMCACHED_MAX_CONNECTIONS=1024` | Determines the maximum number of concurrent connections. |
602-| `-e MEMCACHED_THREADS=4` | Determines the number of threads to process requests. |
603-| `-e MEMCACHED_PASSWORD` | Define the password for the `root` user if another username is provided. By default the authentication is disabled but if this option is passed it becomes enabled. |
604-| `-e MEMCACHED_USERNAME` | Define a new user. If this option is passed a password is needed to authenticate the new user. |
605-| `-p 11211` | Memcached is exposed inside the container on port `11211`. |
606-
607-
608-#### Testing/Debugging
609-
610-To debug the container:
611-
612-```sh
613-docker logs -f memcached-container
614-```
615-
616-To get an interactive shell:
617-
618-```sh
619-docker exec -it memcached-container /bin/bash
620-```
621-
622-<details>
623-<summary>You can access the Memcached instance with telnet from another container (click to expand).</summary>
624-
625-```sh
626-# Create a dedicated network
627-$ docker network create memcached-network
628-# Connect the main container to it
629-$ docker network connect memcached-network memcached-container
630-# Run an interactive container with the latest Ubuntu
631-$ docker run -it --rm --name telnet --network memcached-network ubuntu bash
632-# Install the telnet cli from within the container
633-> apt update && apt install telnet -y
634-# Connect to the memcached instance using telnet
635-> telnet memcached-container 11211
636-Trying 172.30.0.2...
637-Connected to memcached.
638-Escape character is '^]'.
639-```
640-From there you can run `memcached` commands, as documented in [their wiki](https://github.com/memcached/memcached/wiki/Commands).
641-
642-</details>
643-
644-```sh
645-$ telnet memcached-container 11211
646-```
647-
648-There are cases where one might want to pass some memcached command line flags that are not configurable via environment variables.
649-In this case you can append the flags themselves or a shell script to the run command.
650-
651-
652-## Deploy with Kubernetes
653-
654-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
655-
656-Download
657-[memcached-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/memcached/plain/examples/memcached-deployment.yml) and set `containers.memcached.image` in `memcached-deployment.yml` to your chosen channel tag (e.g. `lts/memcached:1.5-20.04_beta`), then:
658-
659-```sh
660-kubectl apply -f memcached-deployment.yml
661-```
662-
663-Memcached will be listening on port `31211` in your host.
664-
665-## Bugs and feature requests
666-
667-If you find a bug in our image or want to request a specific feature, please file a bug here:
668-
669-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
670-
671-Please title the bug "`memcached: <issue summary>`". Make sure to include the digest of the image you are using, from:
672-
673-```sh
674-docker images --no-trunc --quiet lts/memcached:<tag>
675-```
676-
677diff --git a/out-lts/mysql.md b/out-lts/mysql.md
678deleted file mode 100644
679index 6239da7..0000000
680--- a/out-lts/mysql.md
681+++ /dev/null
682@@ -1,116 +0,0 @@
683-# MySQL LTS Docker Image
684-
685-## LTS Docker Image Portfolio
686-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
687-
688-
689-## About MySQL
690-
691-MySQL is a fast, stable and true multi-user, multi-threaded SQL database server. SQL (Structured Query Language) is the most popular database query language in the world. The main goals of MySQL are speed, robustness and ease of use. Read more on the [MySQL website](https://dev.mysql.com/doc/refman/8.0/en/).
692-
693-
694-## Tags and Architectures
695-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
696-Up to 5 years free security maintenance `from lts/mysql`.
697-
698-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
699-Up to 10 years customer security maintenance `from store/canonical/mysql`.
700-
701-_Tags in italics are not available in lts/mysql but are shown here for completeness._
702-
703-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
704-|---|---|---|---|---|
705-| **`8.0-20.04_beta`** &nbsp;&nbsp; | - | - | MySQL 8.0.22 | `amd64`, `arm64`, `s390x` |
706-| _`track_risk`_ |
707-
708-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
709-
710-## Usage
711-
712-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
713-
714-Launch this image locally:
715-
716-```sh
717-docker run -d --name mysql-container -e TZ=UTC -p 30306:3306 -e MYSQL_ROOT_PASSWORD=My:S3cr3t/ lts/mysql:8.0-20.04_beta
718-```
719-Access your MySQL server at `localhost:30306`.
720-
721-#### Parameters
722-
723-| Parameter | Description |
724-|---|---|
725-| `-e TZ=UTC` | Timezone. |
726-| `-e MYSQL_ROOT_PASSWORD=secret_for_root` | Set the password for the `root` user. This option is **mandatory** and **must not be empty**. |
727-| `-e MYSQL_PASSWORD=secret` | Set the password for the `MYSQL_USER` user. |
728-| `-e MYSQL_USER=john` | Create a new user with superuser privileges. This is used in conjunction with `MYSQL_PASSWORD`. |
729-| `-e MYSQL_DATABASE=db_test` | Set the name of the default database. |
730-| `-e MYSQL_ALLOW_EMPTY_PASSWORD=yes` | Set up a blank password for the `root` user. **This is not recommended to be used in production, make sure you know what you are doing**. |
731-| `-e MYSQL_RANDOM_ROOT_PASSWORD=yes` | Generate a random initial password for the `root` user using `pwgen`. It will be printed in the logs, search for `GENERATED ROOT PASSWORD`. |
732-| `-e MYSQL_ONETIME_PASSWORD=yes` | Set `root` user as experide once initialization is complete, forcing a password change on first login. |
733-| `-e MYSQL_INITSB_SKIP_TZINFO=yes` | Timezone data is automatically loaded via entrypoint script, set this variable to any non-empty value to disable it. |
734-| `-p 30306:3306` | Expose MySQL server on `localhost:30306`. |
735-| `-v /path/to/data:/var/lib/mysql` | Persist data instead of initializing a new database every time you launch a new container. |
736-| `-v /path/to/config/files/:/etc/mysql/mysql.conf.d/` | Local [configuration files](https://dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html) (try this [example my.cnf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/mysql/plain/examples/config/my.cnf)). |
737-
738-#### Initialization Scripts
739-
740-One can also add initialization scripts to their containers. This includes `*.sql`, `.sql.gz`, and `*.sh` scripts, and you just need to put them inside the `/docker-entrypoint-initdb.d` directory inside the container. After MySQL initialization is done and the default database and user are created, the scripts are executed in the following order:
741-
742-* Run any `*.sql` files in alphabetically order. By default the target database is specified via `MYSQL_DATABASE`.
743-* Run any executable `*.sh` scripts in alphabetically order.
744-* Source any non-executable `*.sh` scripts in alphabetically order.
745-
746-All of this is done before the MySQL service is started. Keep in mind if your database directory is not empty (contains pre-existing database) they will be left untouched.
747-
748-
749-#### Testing/Debugging
750-
751-To debug the container:
752-
753-```sh
754-docker logs -f mysql-container
755-```
756-
757-To get an interactive shell:
758-
759-```sh
760-docker exec -it mysql-container /bin/bash
761-```
762-
763-This image also includes the `mysql` client for interactive container use:
764-
765-```sh
766-$ docker network create mysql-network
767-$ docker network connect mysql-network mysql-container
768-$ docker run -it --rm --network mysql-network lts/mysql:8.0-20.04_beta mysql -hmysql-container -uroot -p
769-```
770-The password will be asked and you can enter `My:S3cr3t/`. Now, you are logged in and can enjoy your new instance.
771-
772-## Deploy with Kubernetes
773-
774-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
775-
776-Download
777-[my-custom.cnf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/mysql/plain/examples/config/my-custom.cnf) and
778-[mysql-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/mysql/plain/examples/mysql-deployment.yml) and set `containers.mysql.image` in `mysql-deployment.yml` to your chosen channel tag (e.g. `lts/mysql:8.0-20.04_beta`), then:
779-
780-```sh
781-kubectl create configmap mysql-config --from-file=main-config=my-custom.cnf
782-kubectl apply -f mysql-deployment.yml
783-```
784-
785-You will now be able to connect to the MySQL server on `localhost:30306`.
786-
787-## Bugs and feature requests
788-
789-If you find a bug in our image or want to request a specific feature, please file a bug here:
790-
791-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
792-
793-Please title the bug "`mysql: <issue summary>`". Make sure to include the digest of the image you are using, from:
794-
795-```sh
796-docker images --no-trunc --quiet lts/mysql:<tag>
797-```
798-
799diff --git a/out-lts/nginx.md b/out-lts/nginx.md
800deleted file mode 100644
801index d837f3c..0000000
802--- a/out-lts/nginx.md
803+++ /dev/null
804@@ -1,91 +0,0 @@
805-# Nginx LTS Docker Image
806-
807-## LTS Docker Image Portfolio
808-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
809-
810-
811-## About Nginx
812-
813-Nginx ("engine X") is a high-performance web and reverse proxy server created by Igor Sysoev. It can be used both as a standalone web server and as a proxy to reduce the load on back-end HTTP or mail servers. Read more on the [nginx website](https://www.nginx.com/).
814-
815-
816-## Tags and Architectures
817-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
818-Up to 5 years free security maintenance `from lts/nginx`.
819-
820-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
821-Up to 10 years customer security maintenance `from store/canonical/nginx`.
822-
823-_Tags in italics are not available in lts/nginx but are shown here for completeness._
824-
825-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
826-|---|---|---|---|---|
827-| **`1.18-20.04_beta`** &nbsp;&nbsp; | - | - | Nginx 1.18.0 | `amd64`, `arm64`, `ppc64el`, `s390x` |
828-| _`track_risk`_ |
829-
830-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
831-
832-## Usage
833-
834-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
835-
836-Launch this image locally:
837-
838-```sh
839-docker run -d --name nginx-container -e TZ=UTC -p 8080:80 lts/nginx:1.18-20.04_beta
840-```
841-Access your Nginx server at `http://localhost:8080`.
842-
843-#### Parameters
844-
845-| Parameter | Description |
846-|---|---|
847-| `-e TZ=UTC` | Timezone. |
848-| `-p 8080:80` | Expose Nginx on `localhost:8080`. |
849-| `-v /local/path/to/website:/var/www/html` | Mount and serve a local website. |
850-| `-v /path/to/conf.template:/etc/nginx/templates/conf.template` | Mount template files inside `/etc/nginx/templates`. They will be processed and the results will be placed at `/etc/nginx/conf.d`. (e.g. `listen ${NGINX_PORT};` will generate `listen 80;`). |
851-| `-v /path/to/nginx.conf:/etc/nginx/nginx.conf` | Local [configuration file](https://nginx.org/en/docs/) `nginx.conf` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/nginx/plain/examples/config/nginx.conf)). |
852-
853-
854-#### Testing/Debugging
855-
856-To debug the container:
857-
858-```sh
859-docker logs -f nginx-container
860-```
861-
862-To get an interactive shell:
863-
864-```sh
865-docker exec -it nginx-container /bin/bash
866-```
867-
868-
869-## Deploy with Kubernetes
870-
871-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
872-
873-Download
874-[nginx.conf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/nginx/plain/examples/config/nginx.conf), [index.html](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/nginx/plain/examples/config/html/index.html) and
875-[nginx-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/nginx/plain/examples/nginx-deployment.yml) and set `containers.nginx.image` in `nginx-deployment.yml` to your chosen channel tag (e.g. `lts/nginx:1.18-20.04_beta`), then:
876-
877-```sh
878-kubectl create configmap nginx-config --from-file=nginx=nginx.conf --from-file=nginx-site=index.html
879-kubectl apply -f nginx-deployment.yml
880-```
881-
882-You will now be able to connect to the nginx server on `http://localhost:31080`.
883-
884-## Bugs and feature requests
885-
886-If you find a bug in our image or want to request a specific feature, please file a bug here:
887-
888-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
889-
890-Please title the bug "`nginx: <issue summary>`". Make sure to include the digest of the image you are using, from:
891-
892-```sh
893-docker images --no-trunc --quiet lts/nginx:<tag>
894-```
895-
896diff --git a/out-lts/postgres.md b/out-lts/postgres.md
897deleted file mode 100644
898index 49c284b..0000000
899--- a/out-lts/postgres.md
900+++ /dev/null
901@@ -1,115 +0,0 @@
902-# Postgres LTS Docker Image
903-
904-## LTS Docker Image Portfolio
905-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
906-
907-
908-## About Postgres
909-
910-PostgreSQL is a powerful, open source object-relational database system. It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages). It includes most SQL:2008 data types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video. It has native programming interfaces for C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation. Read more on the [PostgreSQL website](https://www.postgresql.org/docs/).
911-
912-
913-## Tags and Architectures
914-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
915-Up to 5 years free security maintenance `from lts/postgres`.
916-
917-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
918-Up to 10 years customer security maintenance `from store/canonical/postgres`.
919-
920-_Tags in italics are not available in lts/postgres but are shown here for completeness._
921-
922-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
923-|---|---|---|---|---|
924-| **`12.4-20.04_beta`** &nbsp;&nbsp; | - | - | Postgres 12.4 | `amd64`, `arm64`, `s390x` |
925-| _`track_risk`_ |
926-
927-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
928-
929-## Usage
930-
931-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
932-
933-Launch this image locally:
934-
935-```sh
936-docker run -d --name postgres-container -e TZ=UTC -p 30432:5432 -e POSTGRES_PASSWORD=My:s3Cr3t/ lts/postgres:12.4-20.04_beta
937-```
938-Access your PostgreSQL server at `localhost:30432`.
939-
940-#### Parameters
941-
942-| Parameter | Description |
943-|---|---|
944-| `-e TZ=UTC` | Timezone. |
945-| `-e POSTGRES_PASSWORD=secret` | Set the password for the superuser which is `postgres` by default. Bear in mind that to connect to the database in the same host the password is not needed but to access it via an external host (for instance another container) the password is needed. This option is **mandatory** and **must not be empty**. |
946-| `-e POSTGRES_USER=john` | Create a new user with superuser privileges. This is used in conjunction with `POSTGRES_PASSWORD`. |
947-| `-e POSTGRES_DB=db_test` | Set the name of the default database. |
948-| `-e POSTGRES_INITDB_ARGS="--data-checksums"` | Pass arguments to the `postgres initdb` call. |
949-| `-e POSTGRES_INITDB_WALDIR=/path/to/location` | Set the location of the Postgres transaction log. By default it is stored in a subdirectory of the main Postgres data folder (`PGDATA`). |
950-| `-e POSTGRES_HOST_AUTH_METHOD=trust` | Set the `auth-method` for `host` connections for `all` databases, `all` users, and `all` addresses. The following will be added to the `pg_hba.conf` if this option is passed: `host all all all $POSTGRES_HOST_AUTH_METHOD`. |
951-| `-e PGDATA=/path/to/location` | Set the location of the database files. The default is `/var/lib/postgresql/data`. |
952-| `-p 30432:5432` | Expose Postgres on `localhost:30432`. |
953-| `-v /path/to/postgresql.conf:/etc/postgresql/postgresql.conf` | Local [configuration file](https://www.postgresql.org/docs/12/index.html) `postgresql.conf` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/postgresql/plain/examples/config/postgresql.conf)). |
954-| `-v /path/to/persisted/data:/var/lib/postgresql/data` | Persist data instead of initializing a new database every time you launch a new container. |
955-
956-#### Initialization Scripts
957-
958-One can also add initialization scripts to their containers. This includes `*.sql`, `.sql.gz`, and `*.sh` scripts, and you just need to put them inside the `/docker-entrypoint-initdb.d` directory inside the container. After Postgres initialization is done and the default database and user are created, the scripts are executed in the following order:
959-
960-* Run any `*.sql` files in alphabetically order. It will be executed with `POSTGRES_USER`.
961-* Run any executable `*.sh` scripts in alphabetically order.
962-* Source any non-executable `*.sh` scripts in alphabetically order.
963-
964-All of this is done before the Postgres service is started. Keep in mind if your `PGDATA` directory is not empty (contains pre-existing database) they will be left untouched.
965-
966-
967-#### Testing/Debugging
968-
969-To debug the container:
970-
971-```sh
972-docker logs -f postgres-container
973-```
974-
975-To get an interactive shell:
976-
977-```sh
978-docker exec -it postgres-container /bin/bash
979-```
980-
981-This image also includes the `psql` client for interactive container use:
982-
983-```sh
984-$ docker network create postgres-network
985-$ docker network connect postgres-network postgres-container
986-$ docker run -it --rm --network postgres-network lts/postgres:12.4-20.04_beta psql -h postgres-container -U postgres
987-```
988-The password will be asked and you can enter `My:s3Cr3t/`. Now, you are logged in and can enjoy your new instance.
989-
990-## Deploy with Kubernetes
991-
992-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
993-
994-Download
995-[postgresql.conf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/postgresql/plain/examples/config/postgresql.conf) and
996-[postgres-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/postgresql/plain/examples/postgres-deployment.yml) and set `containers.postgres.image` in `postgres-deployment.yml` to your chosen channel tag (e.g. `lts/postgres:12.4-20.04_beta`), then:
997-
998-```sh
999-kubectl create configmap postgres-config --from-file=main-config=postgresql.conf
1000-kubectl apply -f postgres-deployment.yml
1001-```
1002-
1003-You will now be able to connect to the Postgres server on `localhost:30306`.
1004-
1005-## Bugs and feature requests
1006-
1007-If you find a bug in our image or want to request a specific feature, please file a bug here:
1008-
1009-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
1010-
1011-Please title the bug "`postgres: <issue summary>`". Make sure to include the digest of the image you are using, from:
1012-
1013-```sh
1014-docker images --no-trunc --quiet lts/postgres:<tag>
1015-```
1016-
1017diff --git a/out-lts/prometheus-alertmanager.md b/out-lts/prometheus-alertmanager.md
1018deleted file mode 100644
1019index 146a4b8..0000000
1020--- a/out-lts/prometheus-alertmanager.md
1021+++ /dev/null
1022@@ -1,89 +0,0 @@
1023-# Prometheus Alertmanager LTS Docker Image
1024-
1025-## LTS Docker Image Portfolio
1026-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
1027-
1028-
1029-## About Prometheus Alertmanager
1030-
1031-The Alertmanager handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to the correct receiver integration such as email, PagerDuty, or OpsGenie. It also takes care of silencing and inhibition of alerts. Read more on the [Prometheus Alertmanager website](https://prometheus.io/docs/alerting/latest/alertmanager/).
1032-
1033-
1034-## Tags and Architectures
1035-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
1036-Up to 5 years free security maintenance `from lts/prometheus-alertmanager`.
1037-
1038-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
1039-Up to 10 years customer security maintenance `from store/canonical/prometheus-alertmanager`.
1040-
1041-_Tags in italics are not available in lts/prometheus-alertmanager but are shown here for completeness._
1042-
1043-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
1044-|---|---|---|---|---|
1045-| _`track_risk`_ |
1046-
1047-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
1048-
1049-## Usage
1050-
1051-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
1052-
1053-Launch this image locally:
1054-
1055-```sh
1056-docker run -d --name prometheus-alertmanager-container -e TZ=UTC -p 30093:9093 lts/prometheus-alertmanager:0.21-20.04_beta
1057-```
1058-Access your Prometheus Alertmanager server at `localhost:30093`.
1059-
1060-#### Parameters
1061-
1062-| Parameter | Description |
1063-|---|---|
1064-| `-e TZ=UTC` | Timezone. |
1065-| `-p 30093:9093` | Expose Prometheus Alertmanager on `localhost:30093`. |
1066-| `-v /path/to/alertmanager.yml:/etc/prometheus/alertmanager.yml` | Local [configuration file](https://www.prometheus.io/docs/alerting/latest/configuration/) `alertmanager.yml` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus-alertmanager/plain/oci/examples/config/alertmanager.yml)). |
1067-| `-v /path/to/persisted/data:/alertmanager` | Persist data instead of initializing a new database for each newly launched container. **Important note**: the directory you will be using to persist the data needs to belong to `nogroup:nobody`. You can run `chown nogroup:nobody <path_to_persist_data>` before launching your container. |
1068-
1069-
1070-#### Testing/Debugging
1071-
1072-To debug the container:
1073-
1074-```sh
1075-docker logs -f prometheus-alertmanager-container
1076-```
1077-
1078-To get an interactive shell:
1079-
1080-```sh
1081-docker exec -it prometheus-alertmanager-container /bin/bash
1082-```
1083-
1084-
1085-## Deploy with Kubernetes
1086-
1087-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
1088-
1089-Download
1090-[alertmanager.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus-alertmanager/plain/oci/examples/config/alertmanager.yml) and
1091-[prometheus-alertmanager-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus-alertmanager/plain/oci/examples/alertmanager-deployment.yml) and set `containers.prometheus-alertmanager.image` in `prometheus-alertmanager-deployment.yml` to your chosen channel tag (e.g. `lts/prometheus-alertmanager:0.21-20.04_beta`), then:
1092-
1093-```sh
1094-kubectl create configmap prometheus-alertmanager-config --from-file=alertmanager=alertmanager.yml
1095-kubectl apply -f prometheus-alertmanager-deployment.yml
1096-```
1097-
1098-You will now be able to connect to the Prometheus Alertmanager server on `localhost:30093`.
1099-
1100-## Bugs and feature requests
1101-
1102-If you find a bug in our image or want to request a specific feature, please file a bug here:
1103-
1104-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
1105-
1106-Please title the bug "`prometheus-alertmanager: <issue summary>`". Make sure to include the digest of the image you are using, from:
1107-
1108-```sh
1109-docker images --no-trunc --quiet lts/prometheus-alertmanager:<tag>
1110-```
1111-
1112diff --git a/out-lts/prometheus.md b/out-lts/prometheus.md
1113deleted file mode 100644
1114index 3c4066d..0000000
1115--- a/out-lts/prometheus.md
1116+++ /dev/null
1117@@ -1,89 +0,0 @@
1118-# Prometheus LTS Docker Image
1119-
1120-## LTS Docker Image Portfolio
1121-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
1122-
1123-
1124-## About Prometheus
1125-
1126-Prometheus is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true. Read more on the [Prometheus website](https://prometheus.io/).
1127-
1128-
1129-## Tags and Architectures
1130-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
1131-Up to 5 years free security maintenance `from lts/prometheus`.
1132-
1133-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
1134-Up to 10 years customer security maintenance `from store/canonical/prometheus`.
1135-
1136-_Tags in italics are not available in lts/prometheus but are shown here for completeness._
1137-
1138-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
1139-|---|---|---|---|---|
1140-| _`track_risk`_ |
1141-
1142-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
1143-
1144-## Usage
1145-
1146-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
1147-
1148-Launch this image locally:
1149-
1150-```sh
1151-docker run -d --name prometheus-container -e TZ=UTC -p 30090:9090 lts/prometheus:2.20-20.04_beta
1152-```
1153-Access your Prometheus server at `localhost:30090`.
1154-
1155-#### Parameters
1156-
1157-| Parameter | Description |
1158-|---|---|
1159-| `-e TZ=UTC` | Timezone. |
1160-| `-p 30090:9090` | Expose Prometheus server on `localhost:30090`. |
1161-| `-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml` | Local [configuration file](https://prometheus.io/docs/prometheus/2.20/configuration/configuration/) `prometheus.yml` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus/plain/oci/examples/config/prometheus.yml)). |
1162-| `-v /path/to/alerts.yml:/etc/prometheus/alerts.yml` | Local [alert configuration file](https://prometheus.io/docs/prometheus/2.20/configuration/configuration/) `alerts.yml` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus/plain/oci/examples/config/alerts.yml)). |
1163-
1164-
1165-#### Testing/Debugging
1166-
1167-To debug the container:
1168-
1169-```sh
1170-docker logs -f prometheus-container
1171-```
1172-
1173-To get an interactive shell:
1174-
1175-```sh
1176-docker exec -it prometheus-container /bin/bash
1177-```
1178-
1179-
1180-## Deploy with Kubernetes
1181-
1182-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
1183-
1184-Download
1185-[prometheus.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus/plain/oci/examples/config/prometheus.yml), [alerts.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus/plain/oci/examples/config/alerts.yml) and
1186-[prometheus-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus/plain/oci/examples/prometheus-deployment.yml) and set `containers.prometheus.image` in `prometheus-deployment.yml` to your chosen channel tag (e.g. `lts/prometheus:2.20-20.04_beta`), then:
1187-
1188-```sh
1189-kubectl create configmap prometheus-config --from-file=prometheus=prometheus.yml --from-file=prometheus-alerts=alerts.yml
1190-kubectl apply -f prometheus-deployment.yml
1191-```
1192-
1193-You will now be able to connect to the Prometheus on `http://localhost:30090`.
1194-
1195-## Bugs and feature requests
1196-
1197-If you find a bug in our image or want to request a specific feature, please file a bug here:
1198-
1199-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
1200-
1201-Please title the bug "`prometheus: <issue summary>`". Make sure to include the digest of the image you are using, from:
1202-
1203-```sh
1204-docker images --no-trunc --quiet lts/prometheus:<tag>
1205-```
1206-
1207diff --git a/out-lts/redis.md b/out-lts/redis.md
1208deleted file mode 100644
1209index b4b7fda..0000000
1210--- a/out-lts/redis.md
1211+++ /dev/null
1212@@ -1,109 +0,0 @@
1213-# Redis LTS Docker Image
1214-
1215-## LTS Docker Image Portfolio
1216-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
1217-
1218-
1219-## About Redis
1220-
1221-Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster. Read more on the [Redis website](https://redis.io/topics/introduction).
1222-
1223-
1224-## Tags and Architectures
1225-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
1226-Up to 5 years free security maintenance `from lts/redis`.
1227-
1228-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
1229-Up to 10 years customer security maintenance `from store/canonical/redis`.
1230-
1231-_Tags in italics are not available in lts/redis but are shown here for completeness._
1232-
1233-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
1234-|---|---|---|---|---|
1235-| _`track_risk`_ |
1236-
1237-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
1238-
1239-## Usage
1240-
1241-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
1242-
1243-Launch this image locally:
1244-
1245-```sh
1246-docker run -d --name redis-container -e TZ=UTC -p 30073:6379 -e REDIS_PASSWORD=mypassword lts/redis:5.0-20.04_beta
1247-```
1248-Access your Redis server at `localhost:30073`.
1249-
1250-#### Parameters
1251-
1252-| Parameter | Description |
1253-|---|---|
1254-| `-e TZ=UTC` | Timezone. |
1255-| `-e ALLOW_EMPTY_PASSWORD` | Set to `yes` to allow connections to `redis-server` without a password. **This setting is not recommended in production environments**. |
1256-| `-e REDIS_PASSWORD` | Set the desired password to be used. |
1257-| `-e REDIS_RANDOM_PASSWORD` | Set this variable to `1` if you would like the entrypoint script to generate a random password for you. You will be able to see the generated password in the logs (`docker logs`). |
1258-| `-e REDIS_ALLOW_REMOTE_CONNECTIONS=yes` | Set to `no` to disallow remote connections to `redis-server` (i.e., make `redis-server` listen to `127.0.0.1` only). |
1259-| `-e REDIS_EXTRA_FLAGS` | Specify extra flags to be passed to `redis-server` when initializing it. |
1260-| `-p 30073:6379` | Expose redis on `localhost:30073`. |
1261-| `-v /path/to/redis.conf:/etc/redis/redis.conf` | Local [configuration file](https://redis.io/topics/config) `redis.conf` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/redis/plain/examples/config/redis.conf)). |
1262-
1263-
1264-#### Testing/Debugging
1265-
1266-To debug the container:
1267-
1268-```sh
1269-docker logs -f redis-container
1270-```
1271-
1272-To get an interactive shell:
1273-
1274-```sh
1275-docker exec -it redis-container /bin/bash
1276-```
1277-
1278-This image also includes the `redis-cli` client for interactive container use:
1279-
1280-```sh
1281-$ docker network create redis-network
1282-$ docker network connect redis-network redis-container
1283-$ docker run -it --rm --network redis-network lts/redis:5.0-20.04_beta redis-cli -h redis-container
1284-```
1285-Now you can:
1286-```
1287-redis:6379> AUTH mypassword
1288-OK
1289-redis:6379> PING
1290-PONG
1291-redis:6379>
1292-
1293-```
1294-
1295-## Deploy with Kubernetes
1296-
1297-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
1298-
1299-Download
1300-[redis.conf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/redis/plain/examples/config/redis.conf) and
1301-[redis-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/redis/plain/examples/redis-deployment.yml) and set `containers.redis.image` in `redis-deployment.yml` to your chosen channel tag (e.g. `lts/redis:5.0-20.04_beta`), then:
1302-
1303-```sh
1304-kubectl create configmap redis-config --from-file=redis=redis.conf
1305-kubectl apply -f redis-deployment.yml
1306-```
1307-
1308-You will now be able to connect to the Redis server on `localhost:30073`.
1309-
1310-## Bugs and feature requests
1311-
1312-If you find a bug in our image or want to request a specific feature, please file a bug here:
1313-
1314-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
1315-
1316-Please title the bug "`redis: <issue summary>`". Make sure to include the digest of the image you are using, from:
1317-
1318-```sh
1319-docker images --no-trunc --quiet lts/redis:<tag>
1320-```
1321-
1322diff --git a/out-lts/telegraf.md b/out-lts/telegraf.md
1323deleted file mode 100644
1324index 778a1e4..0000000
1325--- a/out-lts/telegraf.md
1326+++ /dev/null
1327@@ -1,88 +0,0 @@
1328-# Telegraf LTS Docker Image
1329-
1330-## LTS Docker Image Portfolio
1331-The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
1332-
1333-
1334-## About Telegraf
1335-
1336-Telegraf is an agent for collecting, processing, aggregating, and writing metrics. Design goals are to have a minimal memory footprint with a plugin system so that developers in the community can easily add support for collecting metrics. Read more on the [Telegraf website](https://www.influxdata.com/time-series-platform/telegraf/).
1337-
1338-
1339-## Tags and Architectures
1340-![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
1341-Up to 5 years free security maintenance `from lts/telegraf`.
1342-
1343-![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
1344-Up to 10 years customer security maintenance `from store/canonical/telegraf`.
1345-
1346-_Tags in italics are not available in lts/telegraf but are shown here for completeness._
1347-
1348-| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
1349-|---|---|---|---|---|
1350-| _`track_risk`_ |
1351-
1352-Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
1353-
1354-## Usage
1355-
1356-If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
1357-
1358-Launch this image locally:
1359-
1360-```sh
1361-docker run -d --name telegraf-container -e TZ=UTC -p 30273:9273 lts/telegraf:1.15-20.04_beta
1362-```
1363-Access your Telegraf server at `localhost:30273`.
1364-
1365-#### Parameters
1366-
1367-| Parameter | Description |
1368-|---|---|
1369-| `-e TZ=UTC` | Timezone. |
1370-| `-p 30273:9273` | Expose Telegraf on `localhost:30273`. |
1371-| `-v /path/to/telegraf.conf:/etc/telegraf/telegraf.conf` | Local [configuration file](https://docs.influxdata.com/telegraf/) `telegraf.conf` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/telegraf/plain/examples/config/telegraf.conf)). |
1372-
1373-
1374-#### Testing/Debugging
1375-
1376-To debug the container:
1377-
1378-```sh
1379-docker logs -f telegraf-container
1380-```
1381-
1382-To get an interactive shell:
1383-
1384-```sh
1385-docker exec -it telegraf-container /bin/bash
1386-```
1387-
1388-
1389-## Deploy with Kubernetes
1390-
1391-Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
1392-
1393-Download
1394-[telegraf.conf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/telegraf/plain/examples/config/telegraf.conf) and
1395-[telegraf-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/telegraf/plain/examples/telegraf-deployment.yml) and set `containers.telegraf.image` in `telegraf-deployment.yml` to your chosen channel tag (e.g. `lts/telegraf:1.15-20.04_beta`), then:
1396-
1397-```sh
1398-kubectl create configmap telegraf-config --from-file=main-config=telegraf.conf
1399-kubectl apply -f telegraf-deployment.yml
1400-```
1401-
1402-You will now be able to connect to the Telegraf server on `localhost:30073`.
1403-
1404-## Bugs and feature requests
1405-
1406-If you find a bug in our image or want to request a specific feature, please file a bug here:
1407-
1408-[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
1409-
1410-Please title the bug "`telegraf: <issue summary>`". Make sure to include the digest of the image you are using, from:
1411-
1412-```sh
1413-docker images --no-trunc --quiet lts/telegraf:<tag>
1414-```
1415-

Subscribers

People subscribed via source and target branches