From b49a322a06d27f9e05d8e9ceb4bf80ca5b465581 Mon Sep 17 00:00:00 2001 From: Moritz Graf Date: Fri, 24 Apr 2020 00:26:42 +0200 Subject: [PATCH] Working version of tt-rss --- k8s/README.md | 32 ++++++------- k8s/monitoring/prometheus-operator.secret.yml | 31 +++++++++++++ k8s/tt-rss/tt-rss-mariadb.secret.yaml | Bin 10115 -> 0 bytes k8s/tt-rss/tt-rss-mariadb.secret.yml | 10 +++++ k8s/tt-rss/tt-rss-phpmyadmin.yaml | 26 ----------- k8s/tt-rss/tt-rss-phpmyadmin.yml | 13 ++++++ k8s/tt-rss/tt-rss-pvc.yml | 42 ++++++++++++++++++ k8s/tt-rss/tt-rss.secret.yaml | Bin 0 -> 9557 bytes 8 files changed, 113 insertions(+), 41 deletions(-) create mode 100644 k8s/monitoring/prometheus-operator.secret.yml delete mode 100644 k8s/tt-rss/tt-rss-mariadb.secret.yaml create mode 100644 k8s/tt-rss/tt-rss-mariadb.secret.yml delete mode 100644 k8s/tt-rss/tt-rss-phpmyadmin.yaml create mode 100644 k8s/tt-rss/tt-rss-phpmyadmin.yml create mode 100644 k8s/tt-rss/tt-rss-pvc.yml create mode 100644 k8s/tt-rss/tt-rss.secret.yaml diff --git a/k8s/README.md b/k8s/README.md index 7c20734..7e7aa71 100644 --- a/k8s/README.md +++ b/k8s/README.md @@ -38,6 +38,7 @@ done ```sh helm repo add stable https://kubernetes-charts.storage.googleapis.com helm repo add jetstack https://charts.jetstack.io +helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update ``` @@ -82,17 +83,6 @@ helm upgrade --install docker-registry stable/docker-registry -n development -f ##kubectl apply -f development/registry.secret.yaml ``` -## rstudio - -Currently only for one user: - -```sh -kubectl apply -f datalab/rstudio.yaml -``` - - - - ### creating docker-pull-secret Create credentials secret [according to docu](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line): @@ -114,25 +104,37 @@ for i in $( echo $namespaces ) ; do done ``` +## rstudio + +Currently only for one user: + +```sh +kubectl apply -f datalab/rstudio.yaml +``` + ## tt-rss Includes *persistent data* from mariadb table `tt-rss`. ```sh +helm upgrade --install tt-rss-mariadb bitnami/mariadb -n tt-rss -f tt-rss/tt-rss-mariadb.secret.yml +helm upgrade --install tt-rss-phpmyadmin bitnami/phpmyadmin -n tt-rss -f tt-rss/tt-rss-phpmyadmin.yml kubectl apply -f tt-rss/ ``` +## monitoring + +```sh +helm upgrade --install prometheus-operator stable/prometheus-operator -n monitoring -f monitoring/prometheus-operator.secret.yml +``` + ## minio ```sh kubectl apply -f minio ``` -## monitoring -```sh - -``` ## auth diff --git a/k8s/monitoring/prometheus-operator.secret.yml b/k8s/monitoring/prometheus-operator.secret.yml new file mode 100644 index 0000000..fb1f800 --- /dev/null +++ b/k8s/monitoring/prometheus-operator.secret.yml @@ -0,0 +1,31 @@ +# status: implemented + +prometheus: + ingress: + enabled: true + hosts: + - prometheus.haumdaucher.de + tls: + - hosts: + - "prometheus.haumdaucher.de" + secretName: prometheus-haumdaucher-de + annotations: + kubernetes.io/ingress.class: "nginx" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + cert-manager.io/cluster-issuer: "letsencrypt-prod" +alertmanager: + enabled: false +grafana: + adminPassword: kohkohh5sah1Do3ize2x + ingress: + enabled: true + hosts: + - grafana.haumdaucher.de + tls: + - hosts: + - "grafana.haumdaucher.de" + secretName: grafana-haumdaucher-de + annotations: + kubernetes.io/ingress.class: "nginx" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + cert-manager.io/cluster-issuer: "letsencrypt-prod" \ No newline at end of file diff --git a/k8s/tt-rss/tt-rss-mariadb.secret.yaml b/k8s/tt-rss/tt-rss-mariadb.secret.yaml deleted file mode 100644 index 83e142d6b349a1514b5c689e06b6bcd8e3f49f53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10115 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%0Asr?NWRkK7G-{H+vwv&0S4B9Y(fFOdT< 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