220 lines
6.8 KiB
YAML
220 lines
6.8 KiB
YAML
---
|
|
apiVersion: secrets.hashicorp.com/v1beta1
|
|
kind: VaultAuth
|
|
metadata:
|
|
name: default
|
|
namespace: quay
|
|
spec:
|
|
method: kubernetes
|
|
mount: kubernetes
|
|
kubernetes:
|
|
role: quay
|
|
serviceAccount: quay-vso
|
|
vaultConnectionRef: vault/vault
|
|
---
|
|
apiVersion: secrets.hashicorp.com/v1beta1
|
|
kind: VaultStaticSecret
|
|
metadata:
|
|
name: quay-config-bundle
|
|
namespace: quay
|
|
spec:
|
|
type: kv-v2
|
|
mount: secret
|
|
path: quay/secrets
|
|
destination:
|
|
name: quay-config-bundle
|
|
create: true
|
|
overwrite: true
|
|
transformation:
|
|
excludeRaw: true
|
|
excludes:
|
|
- .*
|
|
templates:
|
|
config.yaml:
|
|
text: |
|
|
AUTHENTICATION_TYPE: OIDC
|
|
BROWSER_API_CALLS_XHR_ONLY: false
|
|
DATABASE_SECRET_KEY: "{{ get .Secrets "database_secret_key" }}"
|
|
DB_URI: "postgresql://********@main-rw.postgres.svc.cluster.local:5432/quay?sslmode=require"
|
|
BUILDLOGS_REDIS:
|
|
host: quay.dragonfly.svc.cluster.local
|
|
password: "{{ get .Secrets "redis_password" }}"
|
|
port: 6379
|
|
DISTRIBUTED_STORAGE_CONFIG:
|
|
default:
|
|
- RadosGWStorage
|
|
- access_key: quay
|
|
secret_key: "{{ get .Secrets "s3_secret_key" }}"
|
|
bucket_name: quay-registry
|
|
hostname: s3.quorate.internal
|
|
is_secure: true
|
|
signature_version: v4
|
|
storage_path: /datastorage/registry
|
|
server_side_assembly: false
|
|
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
|
|
DISTRIBUTED_STORAGE_PREFERENCE: ["default"]
|
|
EXTERNAL_TLS_TERMINATION: false
|
|
FEATURE_SECURITY_NOTIFICATIONS: true
|
|
FEATURE_SECURITY_SCANNER: true
|
|
FEATURE_SECURITY_SCANNER_NOTIFY_ON_NEW_INDEX: true
|
|
FEATURE_PROXY_CACHE: false
|
|
FEATURE_USER_CREATION: true
|
|
FEATURE_USER_INITIALIZE: true
|
|
PREFERRED_URL_SCHEME: https
|
|
SECRET_KEY: "{{ get .Secrets "secret_key" }}"
|
|
SECURITY_SCANNER_INDEXING_INTERVAL: 30
|
|
SECURITY_SCANNER_V4_ENDPOINT: http://quay-registry-clair-app.quay.svc.cluster.local
|
|
SECURITY_SCANNER_V4_INDEX_MAX_LAYER_SIZE: 8G
|
|
SECURITY_SCANNER_V4_MANIFEST_CLEANUP: true
|
|
SECURITY_SCANNER_V4_PSK: "{{ get .Secrets "clair_psk" }}"
|
|
SERVER_HOSTNAME: registry.quorate.internal
|
|
SUPER_USERS: ["********"]
|
|
USER_EVENTS_REDIS:
|
|
host: quay.dragonfly.svc.cluster.local
|
|
password: "{{ get .Secrets "redis_password" }}"
|
|
port: 6379
|
|
ZITADEL_LOGIN_CONFIG:
|
|
CLIENT_ID: "{{ get .Secrets "oidc_client_id" }}"
|
|
CLIENT_SECRET: "{{ get .Secrets "oidc_client_secret" }}"
|
|
LOGIN_SCOPES: ["openid", "email", "profile"]
|
|
OIDC_ISSUER: https://auth.quorate.dev
|
|
OIDC_SERVER: https://auth.quorate.dev/
|
|
PREFERRED_GROUP_CLAIM_NAME: groups
|
|
PREFERRED_USERNAME_CLAIM_NAME: preferred_username
|
|
SERVICE_NAME: Zitadel
|
|
clair-config.yaml:
|
|
text: |
|
|
http_listen_addr: :8080
|
|
introspection_addr: :8089
|
|
log_level: info
|
|
indexer:
|
|
connstring: "host=main-rw.postgres.svc.cluster.local port=5432 dbname=quay_clair user=******** sslmode=require"
|
|
scanlock_retry: 10
|
|
layer_scan_concurrency: 5
|
|
migrations: true
|
|
scanner:
|
|
package:
|
|
java:
|
|
api: https://central.sonatype.com/solrsearch/select
|
|
matcher:
|
|
connstring: "host=main-rw.postgres.svc.cluster.local port=5432 dbname=quay_clair user=******** sslmode=require"
|
|
migrations: true
|
|
notifier:
|
|
connstring: "host=main-rw.postgres.svc.cluster.local port=5432 dbname=quay_clair user=******** sslmode=require"
|
|
delivery_interval: 1m
|
|
migrations: true
|
|
poll_interval: 5m
|
|
webhook:
|
|
callback: http://quay-registry-clair-app/notifier/api/v1/notifications
|
|
target: https://registry.quorate.internal/secscan/notification
|
|
auth:
|
|
psk:
|
|
key: "{{ get .Secrets "clair_psk" }}"
|
|
iss: ["quay", "clairctl"]
|
|
updaters:
|
|
config:
|
|
rhel-vex:
|
|
ignore_unpatched: true
|
|
sets:
|
|
- alpine
|
|
- clair.cvss
|
|
- debian
|
|
- oracle
|
|
- photon
|
|
- rhcc
|
|
- rhel-vex
|
|
- suse
|
|
- ubuntu
|
|
metrics:
|
|
name: prometheus
|
|
extra_ca_cert_internal-ca.crt:
|
|
text: |
|
|
{{- get .Secrets "internal_ca_cert" -}}
|
|
refreshAfter: 1h
|
|
rolloutRestartTargets:
|
|
- kind: Deployment
|
|
name: quay-registry-quay-app
|
|
- kind: Deployment
|
|
name: quay-registry-clair
|
|
vaultAuthRef: default
|
|
---
|
|
apiVersion: secrets.hashicorp.com/v1beta1
|
|
kind: VaultDynamicSecret
|
|
metadata:
|
|
name: quay-db
|
|
namespace: quay
|
|
spec:
|
|
mount: database
|
|
path: static-creds/quay
|
|
allowStaticCreds: true
|
|
destination:
|
|
name: quay-db
|
|
create: true
|
|
overwrite: true
|
|
transformation:
|
|
excludeRaw: true
|
|
excludes:
|
|
- .*
|
|
templates:
|
|
username:
|
|
text: '{{ get .Secrets "username" }}'
|
|
password:
|
|
text: '{{ get .Secrets "password" }}'
|
|
refreshAfter: 1h
|
|
rolloutRestartTargets:
|
|
- kind: Deployment
|
|
name: quay-registry-quay-app
|
|
vaultAuthRef: default
|
|
---
|
|
apiVersion: secrets.hashicorp.com/v1beta1
|
|
kind: VaultDynamicSecret
|
|
metadata:
|
|
name: clair-db
|
|
namespace: quay
|
|
spec:
|
|
mount: database
|
|
path: static-creds/quay_clair
|
|
allowStaticCreds: true
|
|
destination:
|
|
name: clair-db
|
|
create: true
|
|
overwrite: true
|
|
transformation:
|
|
excludeRaw: true
|
|
excludes:
|
|
- .*
|
|
templates:
|
|
username:
|
|
text: '{{ get .Secrets "username" }}'
|
|
password:
|
|
text: '{{ get .Secrets "password" }}'
|
|
refreshAfter: 1h
|
|
rolloutRestartTargets:
|
|
- kind: Deployment
|
|
name: quay-registry-clair
|
|
vaultAuthRef: default
|
|
|
|
---
|
|
apiVersion: secrets.hashicorp.com/v1beta1
|
|
kind: VaultStaticSecret
|
|
metadata:
|
|
name: quay-cluster-pull
|
|
namespace: quay
|
|
spec:
|
|
type: kv-v2
|
|
mount: secret
|
|
path: quay/robots/cluster_pull
|
|
refreshAfter: 1h
|
|
destination:
|
|
name: quay-cluster-pull
|
|
create: true
|
|
overwrite: true
|
|
type: kubernetes.io/dockerconfigjson
|
|
transformation:
|
|
excludeRaw: true
|
|
excludes: [.*]
|
|
templates:
|
|
.dockerconfigjson:
|
|
text: >-
|
|
{"auths":{"registry.quorate.internal":{"auth":"{{ printf "%s:%s" (get .Secrets "username") (get .Secrets "token") | b64enc }}"}}}
|
|
vaultAuthRef: default
|