Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: ispreinstalled flag #1760

Merged
merged 13 commits into from
Oct 23, 2024
27 changes: 27 additions & 0 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ on:
description: 'Select certificate issuer'
type: string
default: letsencrypt_production
is_pre_installed:
description: Fake if Otomi is pre-installed by Installer
type: string
default: 'false'
workflow_dispatch:
inputs:
kubernetes_versions:
Expand Down Expand Up @@ -63,6 +67,13 @@ on:
- letsencrypt_staging
- letsencrypt_production
default: letsencrypt_production
is_pre_installed:
ElderMatt marked this conversation as resolved.
Show resolved Hide resolved
type: choice
description: Fake if Otomi is pre-installed by Installer
ElderMatt marked this conversation as resolved.
Show resolved Hide resolved
options:
- 'true'
- 'false'
default: 'false'

env:
CACHE_REGISTRY: ghcr.io
Expand All @@ -88,6 +99,7 @@ jobs:
echo 'kms: ${{ inputs.kms }}'
echo 'domain_zone: ${{ inputs.domain_zone }}'
echo 'certificate: ${{ inputs.certificate }}'
echo 'is_pre_installed: ${{ inputs.is_pre_installed }}'

preprocess-linode-input:
needs: preprocess-input
Expand Down Expand Up @@ -265,6 +277,21 @@ jobs:
[[ '${{ inputs.certificate }}' == 'letsencrypt_production' ]] && echo "$LETSENCRYPT_PRODUCTION" >> values.yaml
[[ '${{ inputs.kms }}' == 'age' ]] && kms="--set kms.sops.provider=age"

if [[ '${{ inputs.is_pre_installed }}' == 'true' ]]; then
cat <<EOF >> values.yaml
otomi:
isPreInstalled: true
EOF
fi

if [[ '${{ inputs.kms }}' == 'age' ]]; then
cat <<EOF >> values.yaml
kms:
sops:
provider: age
EOF
fi

install_args="otomi chart/apl --wait --wait-for-jobs --timeout 90m0s \
--values tests/integration/${{ inputs.install_profile }}.yaml \
--values values-container-registry.yaml \
Expand Down
10 changes: 5 additions & 5 deletions apps.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ appsInfo:
- https://apl-docs.net/docs/apps/loki
- https://grafana.com/docs/loki/latest/
license: AGPL-3.0
dependencies: Prometheus, Grafana, Minio (if no external Object Storage is used)
dependencies: Prometheus, Grafana
about: Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be very cost effective and easy to operate. It does not index the contents of the logs, but rather a set of labels for each log stream.
integration: Loki can be activated to aggregate all the container logs on the platform and store them in a storage endpoint of choice (defaults to PVC). When APL is configured in multi-tenancy mode, logs will be split-up between team namespaces and made available for team members only. APL shortcuts can be used to provide selections of logs based on interest.
minio:
Expand Down Expand Up @@ -288,7 +288,7 @@ appsInfo:
- https://github.com/rabbitmq/cluster-operator
- https://www.rabbitmq.com
license: MPL-2.0 license
dependencies: ''
dependencies: None
about: RabbitMQ is the most widely deployed open source message broker.
integration: APL install the RabbitMQ-Cluster-Kubernetes-Operator, afterwards users can use the RabbitMQ Catalog item to create RabbitMQ-cluster with queues and policies.
isBeta: true
Expand All @@ -311,7 +311,7 @@ appsInfo:
relatedLinks:
- https://grafana.com/docs/tempo/latest/
license: AGPL-3.0
dependencies: Prometheus, Grafana, Minio (if no external Object Storage is used), Otel
dependencies: Prometheus, Grafana, Otel
about: Grafana Tempo is an open source, easy-to-use and high-scale distributed tracing backend. Tempo is cost-efficient, requiring only object storage to operate, and is deeply integrated with Grafana, Prometheus, and Loki.
integration: APL installs and configures Tempo based on best-practices defaults. By default storage is configured to use the tempo bucket of the local Minio instance. For each team a Grafana agent is installed and configured to enable writes to the Tempo cluster.
thanos:
Expand All @@ -323,7 +323,7 @@ appsInfo:
- https://apl-docs/docs/apps/thanos
- https://thanos.io
license: Apache 2.0
dependencies: Prometheus, Grafana, Minio (if no external Object Storage is used)
dependencies: Prometheus, Grafana
about: Thanos is a tool to set up a Highly Available Prometheus with long-term storage capabilities.
integration: APL installs and configures Thanos using sidecars ans leverages the central object storage configuration.
trivy:
Expand Down Expand Up @@ -360,6 +360,6 @@ appsInfo:
- https://velero.io/docs/v1.9/
- https://velero.io/docs/main/restic/
license: Apache 2.0
dependencies: Minio (if no external Object Storage is used)
dependencies: None
about: Velero is a tool to back up and restore Kubernetes cluster resources and persistent volumes.
integration: When enabled, Velero can be used to automatically create backups of APL platform services. Based on the selected provider, APL installs required plug-ins. APL also installs the Restic integration for Velero to back up and restore almost any type of Kubernetes volume.
4 changes: 2 additions & 2 deletions core.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ adminApps:
auth: true
- name: loki
tags: [logging, telemetry, observability]
deps: [grafana, prometheus, minio]
deps: [grafana, prometheus]
useHost: grafana
path: /explore?orgId=1&left=%7B"datasource":"loki","queries":%5B%7B"refId":"A"%7D%5D,"range":%7B"from":"now-1h","to":"now"%7D%7D
- name: minio
Expand Down Expand Up @@ -338,7 +338,7 @@ adminApps:
ownHost: true
- name: tempo
tags: [tracing]
deps: [prometheus, grafana, minio]
deps: [prometheus, grafana]
useHost: grafana
path: /explore?orgId=1&left=%7B"datasource":"tempo","queries":%5B%7B"refId":"A","datasource":%7B"type":"tempo","uid":"tempo"%7D,"queryType":"clear","limit":20%7D%5D,"range":%7B"from":"now-1h","to":"now"%7D%7D
- name: otel
Expand Down
4 changes: 4 additions & 0 deletions values-schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3005,6 +3005,10 @@ properties:
adminPassword:
type: string
x-secret: '{{ randAlphaNum 20 }}'
isPreInstalled:
type: boolean
description: Defines if APL is installed and managed by Linode
default: false
globalPullSecret:
title: Global pullsecret
description: Will be connected to each "default" service account in all otomi app namespaces.
Expand Down
4 changes: 2 additions & 2 deletions versions.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
api: main
console: main
api: apl-134
console: apl-134
tasks: main
tools: 2.7.0