Remove the deploy
directory from the code base, as it is not necessary AND it contains an (old) copy of our development config, which should never have been checked into this repository in the first place
This commit is contained in:
parent
43d74d808c
commit
493b278de8
40 changed files with 6 additions and 991 deletions
|
@ -1,6 +1,8 @@
|
||||||
./ci/
|
./ci/
|
||||||
conf/stack
|
conf/stack
|
||||||
conf/stack/**
|
conf/stack/**
|
||||||
|
conf/stack/config.yaml
|
||||||
|
config.yaml
|
||||||
screenshots
|
screenshots
|
||||||
tools
|
tools
|
||||||
test/data/registry
|
test/data/registry
|
||||||
|
|
|
@ -55,6 +55,6 @@ RUN ln -s $QUAYCONF /conf
|
||||||
# /root/node_modules /node_modules /grunt
|
# /root/node_modules /node_modules /grunt
|
||||||
RUN PYTHONPATH=$QUAYPATH venv/bin/alembic heads | grep -E '^[0-9a-f]+ \(head\)$' > ALEMBIC_HEAD
|
RUN PYTHONPATH=$QUAYPATH venv/bin/alembic heads | grep -E '^[0-9a-f]+ \(head\)$' > ALEMBIC_HEAD
|
||||||
|
|
||||||
RUN ./detect-config.sh
|
RUN ./scripts/detect-config.sh
|
||||||
|
|
||||||
CMD ./quay-entrypoint.sh
|
CMD ./quay-entrypoint.sh
|
|
@ -1 +0,0 @@
|
||||||
variables.yaml
|
|
|
@ -1,8 +0,0 @@
|
||||||
|
|
||||||
postgres/postgres
|
|
||||||
===========
|
|
||||||
|
|
||||||
# Install
|
|
||||||
|
|
||||||
kpm deploy postgres/postgres
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
---
|
|
||||||
package:
|
|
||||||
name: quay/postgres-app
|
|
||||||
author: Antoine Legrand
|
|
||||||
version: 9.6.1-1
|
|
||||||
description: postgres
|
|
||||||
license: MIT
|
|
||||||
|
|
||||||
variables:
|
|
||||||
image: postgres:9.6.1
|
|
||||||
dbname: quay
|
|
||||||
user: quay
|
|
||||||
password: quay
|
|
||||||
data_volumes:
|
|
||||||
- name: postgres-data
|
|
||||||
emptyDir:
|
|
||||||
medium: ""
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- file: postgres-deployment.yaml
|
|
||||||
name: postgres
|
|
||||||
type: deployment
|
|
||||||
|
|
||||||
- file: postgres-service.yaml
|
|
||||||
name: postgres
|
|
||||||
type: service
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
- name: $self
|
|
|
@ -1,46 +0,0 @@
|
||||||
apiVersion: extensions/v1beta1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: postgres
|
|
||||||
labels:
|
|
||||||
k8s-app: postgres
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
k8s-app: postgres
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
k8s-app: postgres
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- image: {{image}}
|
|
||||||
name: postgres
|
|
||||||
env:
|
|
||||||
- name: POSTGRES_PASSWORD
|
|
||||||
value: "{{password}}"
|
|
||||||
- name: PGPASSWORD
|
|
||||||
value: "{{password}}"
|
|
||||||
- name: POSTGRES_USER
|
|
||||||
value: "{{user}}"
|
|
||||||
- name: POSTGRES_DB
|
|
||||||
value: "{{dbname}}"
|
|
||||||
- name: PGDATA
|
|
||||||
value: /var/lib/postgresql/data/pgdata
|
|
||||||
ports:
|
|
||||||
- containerPort: 5432
|
|
||||||
name: postgres
|
|
||||||
volumeMounts:
|
|
||||||
- name: postgres-data
|
|
||||||
mountPath: /var/lib/postgresql/data
|
|
||||||
# livenessProbe:
|
|
||||||
# tcpSocket:
|
|
||||||
# port: "postgres"
|
|
||||||
# initialDelaySeconds: 5
|
|
||||||
# timeoutSeconds: 1
|
|
||||||
# readinessProbe:
|
|
||||||
# initialDelaySeconds: 600
|
|
||||||
# exec:
|
|
||||||
# command: ["psql", "-h", "localhost", "-U", "postgres"]
|
|
||||||
volumes: {{data_volumes}}
|
|
|
@ -1,14 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
k8s-app: postgres
|
|
||||||
name: postgres
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
name: postgres
|
|
||||||
selector:
|
|
||||||
k8s-app: postgres
|
|
|
@ -1,7 +0,0 @@
|
||||||
user: quay
|
|
||||||
password: quay
|
|
||||||
dbname: quay
|
|
||||||
data_volumes:
|
|
||||||
- name: "postgres-data"
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: pvc-postgres-master
|
|
|
@ -1 +0,0 @@
|
||||||
stack/
|
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
name: 'quay/quay-app',
|
|
||||||
author: 'Antoine Legrand',
|
|
||||||
version: std.split(importstr "VERSION", "\n")[0],
|
|
||||||
description: 'quay',
|
|
||||||
license: 'MIT',
|
|
||||||
expander: 'jinja2'
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
# Configure
|
|
||||||
##
|
|
||||||
- The package reads automatically ./stack/* and use every files there in configuration.
|
|
||||||
- if a `./stack/config.yaml` exists, the file is merged with the variable `config`.
|
|
||||||
Config precedence order:
|
|
||||||
1. Default defined in the package level
|
|
||||||
2. file content in `stack/*`
|
|
||||||
3. value variables.stack_files
|
|
||||||
Except for `config.yaml`, precedence is a strict replacement, for config.yaml is a mergePatch.
|
|
|
@ -1,16 +0,0 @@
|
||||||
local appr = import 'appr.libsonnet';
|
|
||||||
|
|
||||||
{
|
|
||||||
# Read all files in a directory
|
|
||||||
# @todo(ant31): replace walk by listdir
|
|
||||||
load_stack_files(path):: (
|
|
||||||
if appr.path_exists(path)
|
|
||||||
then {[appr.path.basename(file)]: appr.readfile(file, encode=true) for file in appr.walkdir(path)}
|
|
||||||
else {}
|
|
||||||
),
|
|
||||||
|
|
||||||
# Create a patch to add/update annotation with a rand value.
|
|
||||||
# Use to force a Deployment rolling-update
|
|
||||||
rand_label():: {metadata+: {annotations+: {'resource.appr/rand': appr.randAlphaNum()}}},
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,155 +0,0 @@
|
||||||
local appr = import 'appr.libsonnet';
|
|
||||||
local quaylib = import 'lib/quay.libsonnet';
|
|
||||||
|
|
||||||
function(
|
|
||||||
params={}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
appr.package({
|
|
||||||
package: import "Chart.jsonnet",
|
|
||||||
|
|
||||||
variables: {
|
|
||||||
namespace: 'default',
|
|
||||||
cluster_domain_name: 'cluster.local',
|
|
||||||
|
|
||||||
# Minimum configuration
|
|
||||||
base_config: (import "templates/conf/config.libsonnet")($.variables),
|
|
||||||
|
|
||||||
# Additional values stack/config.yaml values
|
|
||||||
config: {},
|
|
||||||
|
|
||||||
# path to the local stack configuration directory
|
|
||||||
stack_path: "stack",
|
|
||||||
|
|
||||||
# load local `stack` directory if exists
|
|
||||||
stack_files: {
|
|
||||||
"syslog-ng-extra.conf": appr.b64encode(importstr "templates/conf/syslog-ng-extra.conf")} +
|
|
||||||
if $.variables.license != null then {"license": appr.b64encode($.variables.license) } else {} +
|
|
||||||
quaylib.load_stack_files($.variables.stack_path),
|
|
||||||
|
|
||||||
# load license
|
|
||||||
license: null,
|
|
||||||
|
|
||||||
# Image tag and repo
|
|
||||||
tag: $.package.version,
|
|
||||||
image: 'quay.io/quay/quay:%s' % self.tag,
|
|
||||||
|
|
||||||
# Used in the pull secret
|
|
||||||
docker_user: 'changeme',
|
|
||||||
docker_pass: 'changeme',
|
|
||||||
|
|
||||||
# Redis configuration
|
|
||||||
redis_host: 'quay-redis.%s.svc.%s:6379' % [$.variables.namespace, $.variables.cluster_domain_name],
|
|
||||||
redisconf: {redis_parts:: std.split($.variables.redis_host, ":"),
|
|
||||||
"host": self.redis_parts[0], port: self.redis_parts[1]},
|
|
||||||
|
|
||||||
# Configure the ingress with the ingress controller class and domain to use
|
|
||||||
domain: 'quay.%s.example.com' % $.variables.namespace,
|
|
||||||
ingress: {
|
|
||||||
class: 'nginx',
|
|
||||||
tls: "kubernetes.io/tls-acme",
|
|
||||||
domains: std.split($.variables.domain, ','),
|
|
||||||
annotations: {}
|
|
||||||
},
|
|
||||||
|
|
||||||
# Force to reload the secret/configuration
|
|
||||||
reconfigure: "false",
|
|
||||||
|
|
||||||
# Deploy a postgres (don't use it for prod)
|
|
||||||
deploy_db: 'false',
|
|
||||||
|
|
||||||
# Postgres deployment configuratio
|
|
||||||
db: {
|
|
||||||
user: 'quay',
|
|
||||||
password: 'quay',
|
|
||||||
name: 'quay',
|
|
||||||
},
|
|
||||||
|
|
||||||
# Quay DB_URI
|
|
||||||
db_uri: 'postgresql://%s:%s@postgres.%s.svc.%s/%s' % [$.variables.db.user,
|
|
||||||
$.variables.db.password,
|
|
||||||
$.variables.namespace,
|
|
||||||
$.variables.cluster_domain_name,
|
|
||||||
$.variables.db.name],
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
# ServiceAccount to attach Rbac rules
|
|
||||||
resources: appr.compact([ # + appr.importResourceDir('templates/')
|
|
||||||
{
|
|
||||||
value: {apiVersion: 'v1', kind: 'ServiceAccount',
|
|
||||||
metadata: {name: 'quay-enterprise'}}
|
|
||||||
},
|
|
||||||
|
|
||||||
# Grant secret read/write permission inside the namespace
|
|
||||||
{
|
|
||||||
value: (import 'templates/quay-enterprise-role.libsonnet')($.variables),
|
|
||||||
},
|
|
||||||
|
|
||||||
# Bind role to the Service account
|
|
||||||
{
|
|
||||||
value: (import 'templates/quay-enterprise-rolebinding.libsonnet')($.variables),
|
|
||||||
},
|
|
||||||
|
|
||||||
# Quay.io robot / user account. Protected from default values
|
|
||||||
{
|
|
||||||
value: (import 'templates/quay-enterprise-pullsecret.libsonnet')($.variables),
|
|
||||||
protected: if $.variables.docker_user == "changeme" || $.variables.docker_pass == "changeme"
|
|
||||||
then true else false
|
|
||||||
},
|
|
||||||
|
|
||||||
# Quay configuration files (quay/conf/stack), automatically read local the "./stack" directory to load values.
|
|
||||||
# Values can also be loaded from $.variables.stack_files
|
|
||||||
# Protected unless explicitly requested (reconfigure == "true").
|
|
||||||
{
|
|
||||||
value: (import 'templates/quay-enterprise-secret.libsonnet')($.variables),
|
|
||||||
protected: if $.variables.reconfigure == "true" then false else true
|
|
||||||
},
|
|
||||||
|
|
||||||
# Quay-registry deployment
|
|
||||||
# Force a rollout when the secret is reconfigured by updating a label (see randLabel)
|
|
||||||
{
|
|
||||||
value: appr.loadObject(appr.jinja2(importstr 'templates/quay-enterprise-app-dp.yaml', $.variables)) +
|
|
||||||
if $.variables.reconfigure == "true" then
|
|
||||||
# trigger a rollout
|
|
||||||
quaylib.rand_label()
|
|
||||||
else {}
|
|
||||||
}, # + {value+: if $.variables.reconfigure == "true" then randLabel() else {},},
|
|
||||||
|
|
||||||
{
|
|
||||||
template: (importstr 'templates/quay-enterprise-service.yaml'),
|
|
||||||
},
|
|
||||||
|
|
||||||
# Redis
|
|
||||||
{
|
|
||||||
template: (importstr 'templates/quay-enterprise-redis-service.yaml'),
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
template: (importstr 'templates/quay-enterprise-redis.yaml'),
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
# Ingress, assumes usage of kube-lego and an ingress controller.
|
|
||||||
# see variables.ingress for configuration
|
|
||||||
{
|
|
||||||
value: (import 'templates/quay-enterprise-ingress.libsonnet')($.variables.ingress),
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
]),
|
|
||||||
|
|
||||||
|
|
||||||
deploy: appr.compact([
|
|
||||||
if $.variables.deploy_db == 'true' then
|
|
||||||
{name: 'quay/postgres-app',
|
|
||||||
variables: {
|
|
||||||
user: $.variables.db.user,
|
|
||||||
dbname: $.variables.db.name,
|
|
||||||
password: $.variables.db.password
|
|
||||||
}},
|
|
||||||
{name: '$self'},
|
|
||||||
]),
|
|
||||||
}, params)
|
|
|
@ -1,53 +0,0 @@
|
||||||
function(vars)
|
|
||||||
{
|
|
||||||
BUILDLOGS_REDIS: vars.redisconf,
|
|
||||||
USER_EVENTS_REDIS: vars.redisconf,
|
|
||||||
DB_URI: vars.db_uri,
|
|
||||||
SETUP_COMPLETE: true,
|
|
||||||
# Not deployed, features forced turn off
|
|
||||||
FEATURE_SECURITY_SCANNER: false,
|
|
||||||
FEATURE_BUILD_SUPPORT: false,
|
|
||||||
FEATURE_ACI_CONVERSION: false,
|
|
||||||
FEATURE_GITHUB_BUILD: false,
|
|
||||||
FEATURE_BITBUCKET_BUILD: false,
|
|
||||||
FEATURE_GITLAB_BUILD: false,
|
|
||||||
GITHUB_TRIGGER_CONFIG: null,
|
|
||||||
GITLAB_TRIGGER_KIND: {},
|
|
||||||
AUTHENTICATION_TYPE: "Database",
|
|
||||||
PREFERRED_URL_SCHEME: "https",
|
|
||||||
SERVER_HOSTNAME: vars.ingress.domains[0],
|
|
||||||
EXTERNAL_TLS_TERMINATION: true,
|
|
||||||
INSTANCE_SERVICE_KEY_KID_LOCATION: 'conf/quay.kid',
|
|
||||||
INSTANCE_SERVICE_KEY_LOCATION: 'conf/quay.pem',
|
|
||||||
}
|
|
||||||
|
|
||||||
# local s3_storage = { local_us: ["S3Storage",
|
|
||||||
# {storage_path: "",
|
|
||||||
# s3_access_key: vars.storage.s3.access_key,
|
|
||||||
# s3_secret_key: vars.storage.s3.secret_key,
|
|
||||||
# s3_bucket: vars.storage.s3.bucket},
|
|
||||||
# ]
|
|
||||||
# };
|
|
||||||
|
|
||||||
# extra: {
|
|
||||||
# REGISTRY_TITLE: "Quay (%s)" % vars.ingress.host,
|
|
||||||
# REGISTRY_TITLE_SHORT: "Quay (%s)" % vars.ingress.host,
|
|
||||||
# TESTING: true,
|
|
||||||
# DEBUGGING: true,
|
|
||||||
# USE_CDN: false,
|
|
||||||
# FEATURE_ANONYMOUS_ACCESS: true,
|
|
||||||
# FEATURE_MAILING: false,
|
|
||||||
# AUTHENTICATION_TYPE: "Database",
|
|
||||||
# ENTERPRISE_LOGO_URL: "/static/img/quay-logo.png",
|
|
||||||
# LOG_ARCHIVE_LOCATION: "default",
|
|
||||||
# TAG_EXPIRATION_OPTIONS: ["2d"],
|
|
||||||
# DISTRIBUTED_STORAGE_CONFIG: {
|
|
||||||
# default: [
|
|
||||||
# "LocalStorage",
|
|
||||||
# {storage_path: "/datastorage/registry"}]},
|
|
||||||
# DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [],
|
|
||||||
# DISTRIBUTED_STORAGE_PREFERENCE: ["default"],
|
|
||||||
# USERFILES_LOCATION: "default",
|
|
||||||
# USERFILES_PATH: "userfiles/",
|
|
||||||
# }
|
|
||||||
# }
|
|
|
@ -1,7 +0,0 @@
|
||||||
destination d_stdout {
|
|
||||||
pipe("/dev/stdout");
|
|
||||||
};
|
|
||||||
|
|
||||||
log {
|
|
||||||
source(s_src); destination(d_stdout);
|
|
||||||
};
|
|
|
@ -1,55 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: extensions/v1beta1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
namespace: quay-enterprise
|
|
||||||
name: quay-enterprise-app
|
|
||||||
labels:
|
|
||||||
quay-enterprise-component: app
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
quay-enterprise-component: app
|
|
||||||
spec:
|
|
||||||
serviceAccountName: "quay-enterprise"
|
|
||||||
containers:
|
|
||||||
- name: quay-enterprise-app
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /status
|
|
||||||
port: 80
|
|
||||||
initialDelaySeconds: 300
|
|
||||||
periodSeconds: 30
|
|
||||||
failureThreshold: 3
|
|
||||||
successThreshold: 1
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /status
|
|
||||||
port: 80
|
|
||||||
initialDelaySeconds: 45
|
|
||||||
failureThreshold: 6
|
|
||||||
periodSeconds: 20
|
|
||||||
env:
|
|
||||||
- name: QE_K8S_NAMESPACE
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: metadata.namespace
|
|
||||||
image: {{image}}
|
|
||||||
ports:
|
|
||||||
- containerPort: 80
|
|
||||||
volumeMounts:
|
|
||||||
- name: configvolume
|
|
||||||
readOnly: false
|
|
||||||
mountPath: /conf/stack
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
cpu: 1
|
|
||||||
memory: 2Gi
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: coreos-pull-secret
|
|
||||||
volumes:
|
|
||||||
- name: configvolume
|
|
||||||
secret:
|
|
||||||
secretName: quay-enterprise-config-secret
|
|
|
@ -1,31 +0,0 @@
|
||||||
function(ingress={ class: 'none', tls: "true", domains: ['quay.example.com'] })
|
|
||||||
|
|
||||||
{
|
|
||||||
apiVersion: "extensions/v1beta1",
|
|
||||||
kind: "Ingress",
|
|
||||||
metadata: {
|
|
||||||
annotations: {
|
|
||||||
"kubernetes.io/ingress.class": ingress.class,
|
|
||||||
[if std.type(ingress.tls) == "string" then ingress.tls]: "true"} +
|
|
||||||
if std.objectHas(ingress, "annotations") then ingress.annotations else {},
|
|
||||||
name: "quay-enterprise",
|
|
||||||
},
|
|
||||||
|
|
||||||
spec: {
|
|
||||||
rules: [{
|
|
||||||
host: domain,
|
|
||||||
http: {
|
|
||||||
paths: [{
|
|
||||||
backend: {
|
|
||||||
serviceName: "quay-enterprise",
|
|
||||||
servicePort: 80,},
|
|
||||||
path: "/"}]},
|
|
||||||
} for domain in ingress.domains],
|
|
||||||
} +
|
|
||||||
|
|
||||||
if std.type(ingress.tls) == "string" then
|
|
||||||
{tls: [{
|
|
||||||
hosts: ingress.domains,
|
|
||||||
secretName: "quay-enterprise-tls",
|
|
||||||
}]} else {},
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
local appr = import "appr.libsonnet";
|
|
||||||
function(variables={})
|
|
||||||
{
|
|
||||||
local docker_login = [variables.docker_user, variables.docker_pass],
|
|
||||||
data: {
|
|
||||||
".dockercfg": appr.b64encode('{"quay.io": {"username": "%s", "password": "%s","email":"toto@toto.com","auth": "%s"}}' % (docker_login + [appr.b64encode("%s:%s" % docker_login)])),
|
|
||||||
},
|
|
||||||
kind: "Secret",
|
|
||||||
metadata: {
|
|
||||||
name: "coreos-pull-secret",
|
|
||||||
},
|
|
||||||
|
|
||||||
type: "kubernetes.io/dockercfg"
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
namespace: quay-redis
|
|
||||||
name: quay-redis
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
port: 6379
|
|
||||||
targetPort: 6379
|
|
||||||
selector:
|
|
||||||
quay-enterprise-component: redis
|
|
|
@ -1,24 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: extensions/v1beta1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
namespace: quay-enterprise
|
|
||||||
name: quay-enterprise-redis
|
|
||||||
labels:
|
|
||||||
quay-enterprise-component: redis
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
quay-enterprise-component: redis
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: redis-master
|
|
||||||
image: quay.io/quay/redis
|
|
||||||
ports:
|
|
||||||
- containerPort: 6379
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 500Mi
|
|
|
@ -1,21 +0,0 @@
|
||||||
local appr = import "appr.libsonnet";
|
|
||||||
function(vars={})
|
|
||||||
{
|
|
||||||
kind: "Role",
|
|
||||||
apiVersion: 'rbac.authorization.k8s.io/v1beta1',
|
|
||||||
metadata: {
|
|
||||||
name: "quay-enterprise",
|
|
||||||
},
|
|
||||||
rules: [
|
|
||||||
{
|
|
||||||
apiGroups: [""],
|
|
||||||
resources: ["secrets"],
|
|
||||||
verbs: ["get", "update", "patch"],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
apiGroups: [""],
|
|
||||||
resources: ["namespaces"],
|
|
||||||
verbs: ["get"],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
function(vars={})
|
|
||||||
{
|
|
||||||
apiVersion: "rbac.authorization.k8s.io/v1beta1",
|
|
||||||
kind: "RoleBinding",
|
|
||||||
metadata: {
|
|
||||||
name: "quay-enterprise-binding",
|
|
||||||
namespace: vars.namespace,
|
|
||||||
},
|
|
||||||
roleRef: {
|
|
||||||
apiGroup: "rbac.authorization.k8s.io",
|
|
||||||
kind: "Role",
|
|
||||||
name: "quay-enterprise",
|
|
||||||
},
|
|
||||||
subjects: [
|
|
||||||
{
|
|
||||||
kind: "ServiceAccount",
|
|
||||||
name: "quay-enterprise",
|
|
||||||
namespace: vars.namespace,
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
local appr = import "appr.libsonnet";
|
|
||||||
local b64e = appr.b64decode;
|
|
||||||
|
|
||||||
function(vars={})
|
|
||||||
|
|
||||||
# Deserialize config.yaml if exists
|
|
||||||
local local_stack_config = (
|
|
||||||
local confpath = "config.yaml";
|
|
||||||
if std.objectHasAll(vars.stack_files, confpath)
|
|
||||||
then appr.loadObject(appr.b64decode(vars.stack_files[confpath]))
|
|
||||||
else {}
|
|
||||||
);
|
|
||||||
|
|
||||||
# Merge all config together
|
|
||||||
# Precedence: local stack/config.yaml < package-config (vars.config) < base-config (vars.base-config)
|
|
||||||
local config_yaml = {'config.yaml': appr.b64encode(appr.to_yaml(
|
|
||||||
local_stack_config +
|
|
||||||
vars.config +
|
|
||||||
vars.base_config))};
|
|
||||||
|
|
||||||
# Merge stack files
|
|
||||||
local stack_files = vars.stack_files + config_yaml;
|
|
||||||
|
|
||||||
{
|
|
||||||
apiVersion: "v1",
|
|
||||||
kind: "Secret",
|
|
||||||
metadata: {
|
|
||||||
namespace: "quay-enterprise",
|
|
||||||
name: "quay-enterprise-config-secret"},
|
|
||||||
|
|
||||||
# base64 encode all files
|
|
||||||
data: { [file]: stack_files[file]
|
|
||||||
for file in std.objectFields(stack_files) if stack_files[file] != null}
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
namespace: quay-enterprise
|
|
||||||
name: quay-enterprise
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
port: 80
|
|
||||||
targetPort: 80
|
|
||||||
selector:
|
|
||||||
quay-enterprise-component: app
|
|
|
@ -1,8 +0,0 @@
|
||||||
|
|
||||||
quay/quay
|
|
||||||
===========
|
|
||||||
|
|
||||||
# Install
|
|
||||||
|
|
||||||
kpm deploy quay/quay
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
2.4.0-1
|
|
|
@ -1,176 +0,0 @@
|
||||||
---
|
|
||||||
# Uncomment to use a real mysql db running in docker
|
|
||||||
# DB_URI: mysql+pymysql://root:password@192.168.59.103/quay
|
|
||||||
# DB_CONNECTION_ARGS:
|
|
||||||
# threadlocals: true
|
|
||||||
# autorollback: true
|
|
||||||
|
|
||||||
SECRET_KEY: a36c9d7d-25a9-4d3f-a586-3d2f8dc40a83
|
|
||||||
|
|
||||||
REGISTRY_TITLE: Quay.io (local)
|
|
||||||
REGISTRY_TITLE_SHORT: Quay.io (local)
|
|
||||||
|
|
||||||
GITHUB_LOGIN_CONFIG:
|
|
||||||
GITHUB_ENDPOINT: https://github.com/
|
|
||||||
API_ENDPOINT: https://api.github.com/
|
|
||||||
CLIENT_ID: 0e8dbe15c4c7630b5480
|
|
||||||
CLIENT_SECRET: d4a58ddd3dbe08b7fec109e85564a0d153d3e256
|
|
||||||
ORG_RESTRICT: true
|
|
||||||
ALLOWED_ORGANIZATIONS:
|
|
||||||
- DevTables
|
|
||||||
- cOREOS
|
|
||||||
|
|
||||||
#GITHUB_LOGIN_CONFIG:
|
|
||||||
# GITHUB_ENDPOINT: http://192.168.59.104
|
|
||||||
# CLIENT_ID: dc6468ad8690e5aad485
|
|
||||||
# CLIENT_SECRET: 78ed1f22b1cce0aafbe363b7cb38258874dbdca6
|
|
||||||
|
|
||||||
GITHUB_TRIGGER_CONFIG:
|
|
||||||
GITHUB_ENDPOINT: https://github.com/
|
|
||||||
API_ENDPOINT: https://api.github.com/
|
|
||||||
CLIENT_ID: cfbc4aca88e5c1b40679
|
|
||||||
CLIENT_SECRET: 334cd66a7868259697726e2a1980c6869dbdef49
|
|
||||||
|
|
||||||
GOOGLE_LOGIN_CONFIG:
|
|
||||||
CLIENT_ID: 342710155188-onh8ko4uge0mu4odl4vchios4m92ncuu.apps.googleusercontent.com
|
|
||||||
CLIENT_SECRET: PWgfDNB0RAP4Nrqu9pZT37n9
|
|
||||||
|
|
||||||
BITBUCKET_TRIGGER_CONFIG:
|
|
||||||
CONSUMER_KEY: xKcfYn9tjKTq8pELgp
|
|
||||||
CONSUMER_SECRET: E6ewPUDwvFxY7HUPUsGpMvXHPKDkR8Ur
|
|
||||||
|
|
||||||
GITLAB_TRIGGER_CONFIG:
|
|
||||||
GITLAB_ENDPOINT: https://gitlab.com
|
|
||||||
CLIENT_ID: 5f12a8b50aafcf9f3dc1394eeb00d1ccb217d07f0c7f85bb9cb3ffb2d836043f
|
|
||||||
CLIENT_SECRET: f8dd18718bd2cbd35196eaca62ae56785d947ddd45fbcd7963353c25fcc27ea3
|
|
||||||
|
|
||||||
FEATURE_BILLING: true
|
|
||||||
BILLING_TYPE: Stripe
|
|
||||||
STRIPE_SECRET_KEY: sk_test_PEbmJCYrLXPW0VRLSnWUiZ7Y
|
|
||||||
STRIPE_PUBLISHABLE_KEY: pk_test_uEDHANKm9CHCvVa2DLcipGRh
|
|
||||||
|
|
||||||
MAIL_SERVER: email-smtp.us-east-1.amazonaws.com
|
|
||||||
MAIL_USE_TLS: true
|
|
||||||
MAIL_PORT: 587
|
|
||||||
MAIL_USERNAME: AKIAIXV5SDGCPVMU3N4Q
|
|
||||||
MAIL_PASSWORD: AhmX/vWE91uQ2RtcEKTkfNrzZehEjPNXOXeOXgQNfLao
|
|
||||||
MAIL_DEFAULT_SENDER: support@quay.io
|
|
||||||
MAIL_FAIL_SILENTLY: false
|
|
||||||
|
|
||||||
AVATAR_KIND: gravatar
|
|
||||||
|
|
||||||
TESTING: false
|
|
||||||
DEBUGGING: true
|
|
||||||
USE_CDN: true
|
|
||||||
|
|
||||||
# Feature Flag: Whether to display the support chat.
|
|
||||||
FEATURE_SUPPORT_CHAT: true
|
|
||||||
|
|
||||||
# Feature Flag: Whether GitHub login is supported.
|
|
||||||
FEATURE_GITHUB_LOGIN: true
|
|
||||||
|
|
||||||
# Feature Flag: Whether Google login is supported.
|
|
||||||
FEATURE_GOOGLE_LOGIN: true
|
|
||||||
|
|
||||||
# Analytics
|
|
||||||
ANALYTICS_TYPE: Mixpanel
|
|
||||||
MIXPANEL_KEY: 38014a0f27e7bdc3ff8cc7cc29c869f9
|
|
||||||
|
|
||||||
# Uncomment this to enable Marketo for dev
|
|
||||||
# USER_ANALYTICS_TYPE: Marketo
|
|
||||||
# MARKETO_MUNCHKIN_ID: 231-DAD-511
|
|
||||||
# MARKETO_MUNCHKIN_PRIVATE_KEY: corechella16!
|
|
||||||
# MARKETO_CLIENT_ID: 873e9474-367c-42ee-9f53-af43d895c956
|
|
||||||
# MARKETO_CLIENT_SECRET: qqvYC1slFvEJkiye5X3J8fsgEKMu8Dlt
|
|
||||||
# MARKETO_LEAD_SOURCE: Quay Hosted - Test
|
|
||||||
|
|
||||||
# Build logs
|
|
||||||
BUILDLOGS_REDIS:
|
|
||||||
host: 192.168.59.103
|
|
||||||
BUILDLOGS_OPTIONS:
|
|
||||||
- devtable
|
|
||||||
- building
|
|
||||||
- deadbeef-dead-beef-dead-beefdeadbeef
|
|
||||||
- true
|
|
||||||
BUILDLOGS_MODULE_AND_CLASS:
|
|
||||||
- test.testlogs
|
|
||||||
- testlogs.TestBuildLogs
|
|
||||||
|
|
||||||
# User events
|
|
||||||
USER_EVENTS_REDIS:
|
|
||||||
host: 192.168.59.103
|
|
||||||
|
|
||||||
FEATURE_GITHUB_BUILD: true
|
|
||||||
FEATURE_BITBUCKET_BUILD: true
|
|
||||||
FEATURE_GITLAB_BUILD: true
|
|
||||||
|
|
||||||
FEATURE_SUPER_USERS: true
|
|
||||||
SUPER_USERS:
|
|
||||||
- devtable
|
|
||||||
|
|
||||||
SIGNING_ENGINE: gpg2
|
|
||||||
|
|
||||||
GPG2_PRIVATE_KEY_NAME: EEB32221
|
|
||||||
GPG2_PRIVATE_KEY_FILENAME: signing-private.gpg
|
|
||||||
GPG2_PUBLIC_KEY_FILENAME: signing-public.gpg
|
|
||||||
|
|
||||||
FEATURE_ACI_CONVERSION: true
|
|
||||||
|
|
||||||
SETUP_COMPLETE: true
|
|
||||||
|
|
||||||
# Uncomment to test LDAP.
|
|
||||||
# Information: http://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/
|
|
||||||
# AUTHENTICATION_TYPE: 'LDAP'
|
|
||||||
# LDAP_URI: 'ldap://ldap.forumsys.com'
|
|
||||||
# LDAP_BASE_DN: ['dc=example', 'dc=com']
|
|
||||||
# LDAP_ADMIN_DN: 'cn=read-only-admin,dc=example,dc=com'
|
|
||||||
# LDAP_ADMIN_PASSWD: 'password'
|
|
||||||
# LDAP_USER_RDN: []
|
|
||||||
|
|
||||||
# Uncomment to test S3 Uploads to an ephemeral bucket
|
|
||||||
# DISTRIBUTED_STORAGE_CONFIG:
|
|
||||||
# local_us:
|
|
||||||
# - S3Storage
|
|
||||||
# - storage_path: ""
|
|
||||||
# s3_access_key: AKIAJDF3UKLGZJ7RLJ2A
|
|
||||||
# s3_secret_key: mSOam4NZIl6dyJcSYXnVXr2ICLpBMW4Di+sVtOJk
|
|
||||||
# s3_bucket: quay-registry-test
|
|
||||||
|
|
||||||
# Uncomment to test swift storage
|
|
||||||
# DISTRIBUTED_STORAGE_CONFIG:
|
|
||||||
# local_us:
|
|
||||||
# - SwiftStorage
|
|
||||||
# - swift_container: container_name
|
|
||||||
# storage_path: /datastorage/registry
|
|
||||||
# auth_url: http://192.168.59.103:32768/auth/v1.0
|
|
||||||
# swift_user: test:tester
|
|
||||||
# swift_password: testing
|
|
||||||
# auth_version: 1
|
|
||||||
# simple_path_concat: true
|
|
||||||
|
|
||||||
#FEATURE_ANONYMOUS_ACCESS: False
|
|
||||||
|
|
||||||
# CloudWatch AWS Keys
|
|
||||||
#CLOUDWATCH_AWS_ACCESS_KEY: AKIAJUSUTJ3TGBAC2LMQ
|
|
||||||
#CLOUDWATCH_AWS_SECRET_KEY: aBtQ8uBADG5ulwW1cdOuMa6zXTDph9yKNCENPfKy
|
|
||||||
#CLOUDWATCH_NAMESPACE: Quay/Local
|
|
||||||
|
|
||||||
# Security scanner
|
|
||||||
FEATURE_SECURITY_SCANNER: true
|
|
||||||
FEATURE_SECURITY_NOTIFICATIONS: true
|
|
||||||
SECURITY_SCANNER:
|
|
||||||
ENDPOINT: https://192.168.99.100:6060
|
|
||||||
ENGINE_VERSION_TARGET: 1
|
|
||||||
API_VERSION: v1
|
|
||||||
API_TIMEOUT_SECONDS: 10
|
|
||||||
|
|
||||||
INSTANCE_SERVICE_KEY_KID_LOCATION: 'conf/stack/quay.kid'
|
|
||||||
INSTANCE_SERVICE_KEY_LOCATION: 'conf/stack/quay.pem'
|
|
||||||
|
|
||||||
PROMETHEUS_AGGREGATOR_URL: null
|
|
||||||
|
|
||||||
STAGGER_WORKERS: false
|
|
||||||
|
|
||||||
STATIC_SITE_BUCKET: 'https://s3.amazonaws.com/prod-s3.quay.io/'
|
|
||||||
|
|
||||||
FEATURE_APP_REGISTRY: true
|
|
|
@ -1 +0,0 @@
|
||||||
eyJhbGciOiJSUzI1NiJ9.eyJzY2hlbWFWZXJzaW9uIjoidjIiLCJ2ZXJzaW9uIjoiMjciLCJjcmVhdGlvbkRhdGUiOiIyMDE2LTEwLTI1VDAwOjA2OjQzWiIsImV4cGlyYXRpb25EYXRlIjoiMjAxNy0xMC0yNVQwMDowNjo0M1oiLCJsaWNlbnNlIjoie1wic2NoZW1hVmVyc2lvblwiOlwidjJcIixcInZlcnNpb25cIjpcIjI3XCIsXCJhY2NvdW50SURcIjpcIkFDQy02ODY0N0FCRC03REI3LTQ4QzItQjZDNS0yMjEzOEQ5RFwiLFwiYWNjb3VudFNlY3JldFwiOlwiMGIyMjk4ZTAtZDRmOC00M2M4LTk3NDUtNjY5Y2I2NDc2MzA5XCIsXCJjcmVhdGlvbkRhdGVcIjpcIjIwMTYtMTAtMjVUMDA6MDY6NDMuMTgzMzIzWlwiLFwiZXhwaXJhdGlvbkRhdGVcIjpcIjIwMTctMTAtMjVUMDA6MDY6NDMuMTgzMzIzWlwiLFwic3Vic2NyaXB0aW9uc1wiOntcIlNVQi0yMkVDRjk4RS00QUVFLTQzNjktODgwQy0zMjg3ODEyM1wiOntcInBsYW5OYW1lXCI6XCJ0ZWN0b25pYy1lbnRlcnByaXNlLXBvY1wiLFwicHVibGljUGxhbk5hbWVcIjpcIlRlY3RvbmljIEVudGVycHJpc2UgUE9DXCIsXCJwbGFuSURcIjpcIlBSUC1EMzkwN0ZDQS1FM0ExLTQxNUEtQUJBRS1CNEEwMkI1OVwiLFwicHJvZHVjdE5hbWVcIjpcInRlY3RvbmljLWVudGVycHJpc2VcIixcInB1YmxpY1Byb2R1Y3ROYW1lXCI6XCJUZWN0b25pYyBFbnRlcnByaXNlXCIsXCJwcm9kdWN0SURcIjpcIlBSTy04NDU4RUJGRS00NDZDLTQwQUUtQjU3OC1DQjU1QUMyN1wiLFwic2VydmljZVN0YXJ0XCI6XCIyMDE2LTA0LTIwVDIwOjQ0OjAwWlwiLFwic2VydmljZUVuZFwiOlwiMjAxNy0wNC0yMFQyMDo0NDowMFpcIixcImluVHJpYWxcIjpmYWxzZSxcInRyaWFsT25seVwiOmZhbHNlLFwiZHVyYXRpb25cIjo2MCxcImR1cmF0aW9uUGVyaW9kXCI6XCJkYXlzXCIsXCJlbnRpdGxlbWVudHNcIjp7XCJzb2Z0d2FyZS5jb3JldXBkYXRlXCI6MSxcInNvZnR3YXJlLnF1YXlcIjoxLFwic29mdHdhcmUucXVheS5idWlsZGVyc1wiOjk5OTksXCJzb2Z0d2FyZS5xdWF5LmRlcGxveW1lbnRzXCI6MSxcInNvZnR3YXJlLnF1YXkucmVnaW9uc1wiOjEsXCJzb2Z0d2FyZS50ZWN0b25pY1wiOjEsXCJzb2Z0d2FyZS50ZWN0b25pYy5yYW1cIjoxMDI0LFwic3VwcG9ydC5jb3Jlb3NsaW51eC5wcmVtaXVtXCI6MSxcInN1cHBvcnQuY29yZXVwZGF0ZS5wcmVtaXVtXCI6MSxcInN1cHBvcnQucXVheS5wcmVtaXVtXCI6MSxcInN1cHBvcnQudGVjdG9uaWMucHJlbWl1bVwiOjF9fSxcIlNVQi00NjI3QjRDOC0zOUU3LTQ5QTQtODFCRS01OEQ0MUM1NlwiOntcInBsYW5OYW1lXCI6XCJ0ZWN0b25pYy1zdGFydGVyXCIsXCJwdWJsaWNQbGFuTmFtZVwiOlwiVGVjdG9uaWMgU3RhcnRlciBQbGFuXCIsXCJwbGFuSURcIjpcIlBSUC1DNEE0MEQ1NS1CODVGLTREQTAtQTVCNS1BMzQ1QkEwNlwiLFwicHJvZHVjdE5hbWVcIjpcInRlY3RvbmljLXN0YXJ0ZXJcIixcInB1YmxpY1Byb2R1Y3ROYW1lXCI6XCJUZWN0b25pYyBTdGFydGVyXCIsXCJwcm9kdWN0SURcIjpcIlBSTy01ODk0QTE4Qy1FQTIxLTRFRTctOTc3My1COUI2MDBBNVwiLFwic2VydmljZVN0YXJ0XCI6XCIyMDE2LTEwLTAyVDE3OjAxOjM4WlwiLFwic2VydmljZUVuZFwiOlwiMjAxNi0xMS0wMlQxNzowMTozOFpcIixcImluVHJpYWxcIjpmYWxzZSxcInRyaWFsT25seVwiOmZhbHNlLFwiZHVyYXRpb25cIjoxLFwiZHVyYXRpb25QZXJpb2RcIjpcIm1vbnRoc1wiLFwiZW50aXRsZW1lbnRzXCI6e1wiY29zdFwiOjEsXCJzb2Z0d2FyZS50ZWN0b25pY2NvbnNvbGVcIjoxfX0sXCJTVUItOUIxRTA2RTMtMkEyMC00M0E5LTlFQUMtRDJCODEwN0JcIjp7XCJwbGFuTmFtZVwiOlwicHJlbWl1bS1jdXN0b21cIixcInB1YmxpY1BsYW5OYW1lXCI6XCJQcmVtaXVtIC0gQ3VzdG9tXCIsXCJwbGFuSURcIjpcIlBSUC05NjRBQUM4Qi01NjhBLTQwMEMtOTEzQS1CMzQ2NDRGRVwiLFwicHJvZHVjdE5hbWVcIjpcInF1YXktZW50ZXJwcmlzZVwiLFwicHVibGljUHJvZHVjdE5hbWVcIjpcIlF1YXkgRW50ZXJwcmlzZVwiLFwicHJvZHVjdElEXCI6XCJQUk8tNDNFNEQ4QTYtOEQ1MS00NDZFLUIyNjMtRDBBNjVDOUZcIixcInNlcnZpY2VTdGFydFwiOlwiMjAxNi0xMC0xM1QxODowOTowMFpcIixcInNlcnZpY2VFbmRcIjpcIjIwMTctMTAtMTNUMTg6MDk6MDBaXCIsXCJpblRyaWFsXCI6ZmFsc2UsXCJ0cmlhbE9ubHlcIjpmYWxzZSxcImR1cmF0aW9uXCI6MSxcImR1cmF0aW9uUGVyaW9kXCI6XCJ5ZWFyc1wiLFwiZW50aXRsZW1lbnRzXCI6e1wiY29zdFwiOjAsXCJzb2Z0d2FyZS5xdWF5XCI6MSxcInNvZnR3YXJlLnF1YXkuYnVpbGRlcnNcIjo5OTk5OTksXCJzb2Z0d2FyZS5xdWF5LmRlcGxveW1lbnRzXCI6MSxcInNvZnR3YXJlLnF1YXkucmVnaW9uc1wiOjEsXCJzdXBwb3J0LnF1YXkucHJlbWl1bVwiOjF9fSxcIlNVQi1ERjAwNTdENC1CMEEwLTRFQjktOTQ0QS05RTAzQzZCQ1wiOntcInBsYW5OYW1lXCI6XCJxdWF5LWVudGVycHJpc2UtYW5udWFsLWN1c3RvbVwiLFwicHVibGljUGxhbk5hbWVcIjpcIlF1YXkgRW50ZXJwcmlzZVwiLFwicGxhbklEXCI6XCJQUlAtQzNFNkU5NTktMkZGRi00QkI3LTgxMjItRDNFOTdFNkFcIixcInByb2R1Y3ROYW1lXCI6XCJxdWF5LWVudGVycHJpc2VcIixcInB1YmxpY1Byb2R1Y3ROYW1lXCI6XCJRdWF5IEVudGVycHJpc2VcIixcInByb2R1Y3RJRFwiOlwiUFJPLTQzRTREOEE2LThENTEtNDQ2RS1CMjYzLUQwQTY1QzlGXCIsXCJzZXJ2aWNlU3RhcnRcIjpcIjIwMTYtMTAtMjVUMDA6MDU6MDBaXCIsXCJzZXJ2aWNlRW5kXCI6XCIyMDE3LTEwLTI0VDAwOjA1OjAwWlwiLFwiaW5UcmlhbFwiOmZhbHNlLFwidHJpYWxPbmx5XCI6ZmFsc2UsXCJkdXJhdGlvblwiOjEsXCJkdXJhdGlvblBlcmlvZFwiOlwieWVhcnNcIixcImVudGl0bGVtZW50c1wiOntcImNvc3RcIjowLFwic29mdHdhcmUucXVheVwiOjEsXCJzb2Z0d2FyZS5xdWF5LmRlcGxveW1lbnRzXCI6OTk5OTk5LFwic3VwcG9ydC5xdWF5LnByZW1pdW1cIjoxfX19fSJ9.XwPbWiyIthfXKhKj5YEO76kCErEmRyjIK5wMhRz8d6bC7spROyrNC0aikP7UuGOA94I-ZdL-bnrrD8Ijc4hNzvA5SwglmBoJ7uYsqm492DNf3AimXPBX8aMolfjvnBVWs4UaCbzwX2ow95GVPxz6M8DdgypzuPWahpR12jkQ63Ryc6jnDh_9DmtUrQXy0y2xcZmRGsgBMQoC9kJANOQ0jmbAuhhZCG15mTmsEC4S12RnJy7wP_tfYoGikRe01FW-_GsRpPV5BXqP55cSR17PvTGsg3l_dNtmKDa_hrhk3F9u2DNE3h-onbezYUa5J4szJfnZU9hcSK0GurpK4H34Sw
|
|
|
@ -1,27 +0,0 @@
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
MIIEogIBAAKCAQEAwJYjuXSCqTAEdSz2lv7GtkT2dXkwTS+wE8sj0+k8QEBK8xQb
|
|
||||||
gkaDGzXSn22mAO2e5cND8wWj8sWeplOFqa7LA/kU+AA/HGV04xrS122yCRJ2D49J
|
|
||||||
k9gn8RJv7fnzSahK3v+ZhKeXWaPtA+kwl4u3AkEYiG6w38+vl4HCcg3GFY64iaRw
|
|
||||||
Us2vRs3OaaCS0vkJ2sgZAAl5x5Tke+FKOC3ubqojDs5g2hfLT5QMIpj158YdKNaP
|
|
||||||
sztRBzh8Dm6mt8UsHECDde2e4VZwlx3ebEoQCcfsY8s5i6OyUphprZYr0P2/E0qM
|
|
||||||
7dvhbGOBN4eAw2ZJ3el33anQCdWnFzS4gycpawIDAQABAoIBAGjd2FoVzUgfM24y
|
|
||||||
q5uQ49dAOgvBj8GX5AMDLGEpsXszBxzRqCEKED3y0tupMylyOoHWD9v3CE0busXK
|
|
||||||
2Q+KdFWXfgmE6NinjjxT0NcpjjZObScP2Pq+SxGD/prQ7d7/2rUO7SNEtq9DCb6F
|
|
||||||
bcY3d9GsbJVt4LYeOvj+2UiNo3z8pixIVIYBEIAJbiFUf8ImNy18aI2YsgcIKKx3
|
|
||||||
XRcZrQc3lJQO4SgzLEflovl11B8Nvw5XXwXaFn35wmp31L5CtKlPeDT6CDNydTqw
|
|
||||||
T2ri0xPu4vyvuVidDcVJOh3Bpw5FSI9fwBr9PDjOLi2YgjRtQBQhnvvtPpk7vSeU
|
|
||||||
bVhNN4ECgYEA5C5v1AHURu5tRj7o9I0Po2DLpt1zszd2ly7ED190Ko9qmZqfTyLz
|
|
||||||
uBzSk86r2+NMxPhp+uMY2LR0c6LiPAbSVpTOSWL2eatfy/9td9TlK5fVcg6N9vH5
|
|
||||||
LYrzuelxSnypm6H300t6CvycrfrscOP4Vs2fdx1yZI0wEngTxL5+sgsCgYEA2BDI
|
|
||||||
OY+eJ53KRVEp5stbUryW7HJC6HBlH2ZHeMCLese6fsvdTyhL0/2OanXdxG3bOK6F
|
|
||||||
Ilr3UzTK1Krj7U8W0zRnGMVJfaMoEJOwgBtUqm7rjksP2bujRT9OuLKR+MJbLVLC
|
|
||||||
0ycoS8iOJWCDIczeL21rgqe1pOp839It/MI+YiECgYBZi9u48IrU10as9Y1IQ39q
|
|
||||||
l1b0gh2grFhu1hx9B/G3rhagdyyjysyoaS8+cDHDlj0PY4l7utmKWa8Fnlt4QRkU
|
|
||||||
f0tBQ4QElXt/vBrClxrkc66BFzMhQS6Pb+NcBz+9gpSxDewK0KjxXNdD86AMYXqY
|
|
||||||
3hMBlN3KlhnSdasUX8mqpwKBgDmAFdkDuIIwguD5nZ4XJmGZYMziB55WMwMtM/4V
|
|
||||||
t8jgGGigFnB3d96dzuXUIkWhOsMV5sZi0QkqtoPsSqYf8yIYAwvbjRhLcGEg/MrK
|
|
||||||
+zg0NqnynfBC+Et4cpnCpAhAqQUhzkllVVr9r56Q1bUMEWErzH3D5hpScRMbmzN1
|
|
||||||
+iYhAoGACxsSOXRHUMOC3tdcErAsfjc04v13MuuiglH29Ap5e/WoGcr++fCWBnCD
|
|
||||||
9IGnHZvY+th/vkuaefZqE6oDYMa4TvyJJnU/tx+h1+jbuCwpdqGkKp9z0xjIvUJ5
|
|
||||||
L6imBl4Dwl5DjJLL1HhbzF3C7DHWTbHsRF/HWwNjbV9nCIii4AY=
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
|
@ -1 +0,0 @@
|
||||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAliO5dIKpMAR1LPaW/sa2RPZ1eTBNL7ATyyPT6TxAQErzFBuCRoMbNdKfbaYA7Z7lw0PzBaPyxZ6mU4WprssD+RT4AD8cZXTjGtLXbbIJEnYPj0mT2CfxEm/t+fNJqEre/5mEp5dZo+0D6TCXi7cCQRiIbrDfz6+XgcJyDcYVjriJpHBSza9Gzc5poJLS+QnayBkACXnHlOR74Uo4Le5uqiMOzmDaF8tPlAwimPXnxh0o1o+zO1EHOHwObqa3xSwcQIN17Z7hVnCXHd5sShAJx+xjyzmLo7JSmGmtlivQ/b8TSozt2+FsY4E3h4DDZknd6XfdqdAJ1acXNLiDJylr jake@coreserver
|
|
|
@ -1,20 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDVDCCAjwCCQDNYtlT1+tGbzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQGEwJV
|
|
||||||
UzERMA8GA1UECBMITmV3IFlvcmsxETAPBgNVBAcTCE5ldyBZb3JrMRQwEgYDVQQK
|
|
||||||
EwtDb3JlT1MsIEluYzENMAsGA1UECxMEUXVheTESMBAGA1UEAxMJMTI3LjAuMC4x
|
|
||||||
MB4XDTE2MDUyMzE1MjUxOVoXDTI2MDUyMTE1MjUxOVowbDELMAkGA1UEBhMCVVMx
|
|
||||||
ETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEUMBIGA1UEChML
|
|
||||||
Q29yZU9TLCBJbmMxDTALBgNVBAsTBFF1YXkxEjAQBgNVBAMTCTEyNy4wLjAuMTCC
|
|
||||||
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRvOt/XGNIovlr1BWxl2oqs
|
|
||||||
KDlgnESj6bFENDjs9+YLrB3mSWX6w4Dk2IdNU0EKHeVnnsAuBs83jaFsIVJxrC99
|
|
||||||
ndv0PaejBovUbWyYN3zCMur8iNGse/FT4WRqks2m0Wr0jmEAX5piX/eWo/7OQdea
|
|
||||||
wNAGyH7wE0voMpyVSZMBmxRw07zWnwWBihvhOiiCnXZh32GQMplq0wxk4DkBf3hC
|
|
||||||
SEaAqsFHKfEFPxVXfdPGeiKKK+P2SAh+uN4miJpGf7Xkuj/Mmzxr1ajNczhPT6OM
|
|
||||||
pw0R3h/mok1S8zcp8lN/eDdKwjMeP4Rx+Lc0cRluZNa8otq9qYPNSCIkvsSz5b8C
|
|
||||||
AwEAATANBgkqhkiG9w0BAQUFAAOCAQEAZaaD8fLWEh4RGZ7X38IM/ocwDKaXWpDp
|
|
||||||
0EC3KMEuar1MET3MtVIXy/k/BLr0HmLRQ2KSV3wFfyOInseVeCvIcKZZo/JF28gR
|
|
||||||
LJVBcjExSIr6X8RoPgmKt7AdjlUjPV5XpRzDpfYcMaqpjJa75x6RoxC2ybh5Apyk
|
|
||||||
EzL3Naysk6TVPi5ckUYMLfw3JEbCeaEY4KNwVgsNcs447EcBxwGHTBqGOYtpIfku
|
|
||||||
SMas81oniMo9LMKv19Bn1oOforaqh8P2c57yregDsCDmP6j0gqkYjhJFCj5JNAKK
|
|
||||||
KT35QIfTbVFeCXAoLw0+o9Ma1Q+j7LfwdxnikUHNVZmlmjQmTBMwqg==
|
|
||||||
-----END CERTIFICATE-----
|
|
|
@ -1,27 +0,0 @@
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
MIIEowIBAAKCAQEApG8639cY0ii+WvUFbGXaiqwoOWCcRKPpsUQ0OOz35gusHeZJ
|
|
||||||
ZfrDgOTYh01TQQod5WeewC4GzzeNoWwhUnGsL32d2/Q9p6MGi9RtbJg3fMIy6vyI
|
|
||||||
0ax78VPhZGqSzabRavSOYQBfmmJf95aj/s5B15rA0AbIfvATS+gynJVJkwGbFHDT
|
|
||||||
vNafBYGKG+E6KIKddmHfYZAymWrTDGTgOQF/eEJIRoCqwUcp8QU/FVd908Z6Ioor
|
|
||||||
4/ZICH643iaImkZ/teS6P8ybPGvVqM1zOE9Po4ynDRHeH+aiTVLzNynyU394N0rC
|
|
||||||
Mx4/hHH4tzRxGW5k1ryi2r2pg81IIiS+xLPlvwIDAQABAoIBAANdV0oPP63FMafw
|
|
||||||
zYybRO6DeUs7Q9dPt09uQtdLWgM2B+6QsL3KdMelZxzVozd4eoYgKaprBq6kx1wf
|
|
||||||
N0tVkh1ip6FBjSVp+49O6HJJZxFBdANE6ZPIwLx+Z+VDHP/iQvS6TlODy3EARFBv
|
|
||||||
n6luFQDRZNKc4OtgBDUQakCz+U5tuJLqoR8wk/WGQP4FJiZlVwJqNPXMA1A2Mrri
|
|
||||||
n6WkhfpB30Z5dl9zsR+zJRbwRBjgJCYN37YC7zdHRfIhBPBvDT+8ApR50BGvPGN3
|
|
||||||
sLQuH2FsskbgPsIrWMfCxtWr2xbw028GOe7TSjEG63EG7oGAT0O2eQmAcuPc4Dqj
|
|
||||||
Urn8saECgYEA2LkCe6MysmOtattC/gi3B/rIoOCd+4l9yTnW7S7nk/hdeOzxyqX1
|
|
||||||
P7OgVeoYLLk3UJy3qTrNDnc0eGTJz0XyPhLlX0f9lduiSMH92XpNsBG7ngnyMCQF
|
|
||||||
eAZz8ZlDZC39I8y9CzdcHSLxuHKmQ9jhgUm+EIuf8OlrkjchPdE06i8CgYEAwjxG
|
|
||||||
cDA5X1hKYgQTObq245vR3txkvETmLVB7hWkjWLzR//a4hXHJT1fg2LxD5EMtCKZ2
|
|
||||||
WXKhcy3tbja+c/IEI1L1wA2v/aWlEvi9n354EQ1QzkvCBDFP5enLnItAUzJQ0IgE
|
|
||||||
dtSUskK+li8aY2LB0EPt0eJmYU0cZUJXbl/ZKXECgYAAtttjPO512A5CQ+a8n5q6
|
|
||||||
1ADFRvg+U/2uJBqpPXZV7oOgWmeRm2prg1QL9HGP9CxSf7G7RQ5X9dyeaPahUEG0
|
|
||||||
IqvO3JXhYI/wXXNQvC51XhmYM8AwmG3ML3lCWpb2RZCIBay51Lzg+7SAPyB9KMHV
|
|
||||||
g0C1HUCxspNAMB5T7dSW0QKBgGkxRaCarWeypE4jENpyAXyRNf8xcyj3U4V1EgB1
|
|
||||||
qVv0nvK2BsbWkgTzfeVDSK2FqA0IQg49Y6zCUdUfttOKXa1Xz5ocj5SaMiVtKx0G
|
|
||||||
3DW39WxUYRXuMuw8SzZTwBmOpW/aSjik9ob4WMlzZyIuKPMG5vSFXZcSsO8yF7HC
|
|
||||||
HRUxAoGBAKtCRLT9I5Ap37gWT8W6AAZygoUqhlYO9qygQrBDaJsHj0ZSHM0TO3ig
|
|
||||||
Bwq/UxDHBKFV3hmqx5Zmpoa9ZrURb4cBw/+TLq2ppXPLEU+XmEVmqL2323Vyr/Ih
|
|
||||||
CAIVWFsY3EGQL7TArOfag+v0Nxq3pypOhjweqIWEMDg+gV2+GHhQ
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
Binary file not shown.
|
@ -1,19 +0,0 @@
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
Version: GnuPG v2
|
|
||||||
|
|
||||||
mQENBFTVMzABCAC8jcnCrNHKk0LgyZTdTFtf9Qm2bK27Y0EyyI8tWefUt4LhQRCA
|
|
||||||
14dksJVzqWBtpHJnqkYUwfoXZmdz4e9fSS1mmoiHlDwzkuNXx2J1HAnXSxgNMV1D
|
|
||||||
JQmfxhKQzFTgkTEN03txPZrOMrDNIZSw0gkAbiBGuQXk9/HNGbzdjkd3vk1GF7Vk
|
|
||||||
v1vITmWQG+QQi7H8zR1NYYuFQb5cdDDuOoQWHXNMIZmK27StZ6MUot3NlquZbs1q
|
|
||||||
5Gr1HHog0qx+0uYn441zghZ9R1JqaAig0V3eJ8UAbTIMZPO09UUBQKC7O7OgOX/H
|
|
||||||
92zGWGwkTMUqJNJUr/dj5ocQbpFk8X3yz+d9ABEBAAG0RFF1YXkuaW8gQUNJIENv
|
|
||||||
bnZlcnRlciAoQUNJIGNvbnZlcnNpb24gc2lnbmluZyBrZXkpIDxzdXBwb3J0QHF1
|
|
||||||
YXkuaW8+iQE5BBMBAgAjBQJU1TMwAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
|
|
||||||
F4AACgkQRjIEfu6zIiHo9Af+MCE4bUOrQ6yrHSPHebHwSARULaTB0Rlj4BAXlv+A
|
|
||||||
nUJDaaYaYExo8SHZMWF5X4d4mh57DJOsIXMjIWNKpf9/0hpxRu+P8p77YtXOOeRS
|
|
||||||
3xFdq7cOK1yQ8h/iRoXyLaxAFgWvVH+Ttmx4DLr+NsyzEQBjADeBCcF4YR9OZ7fj
|
|
||||||
ZYsoq68hH0W7zgZTSrCgvyGxdpu+UWWk/eV/foktxKBMV8K2GmAwyOlsAm59PgUI
|
|
||||||
EhfFH0WAEx6+jsMFLkn7USPWomFeyMwJJEiMKYCwALWIbNz1/1dtrZZs2QmBcjAu
|
|
||||||
AMFQhx8fykH4ON8a6fpS3TOEzf0HV1NX295O8wb8vS9B7w==
|
|
||||||
=aImY
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
|
@ -1,67 +0,0 @@
|
||||||
local appr = import "appr.libsonnet";
|
|
||||||
|
|
||||||
function(
|
|
||||||
params={}
|
|
||||||
)
|
|
||||||
|
|
||||||
appr.package({
|
|
||||||
package: {
|
|
||||||
name: "quay/quay-ci-app",
|
|
||||||
author: "Antoine Legrand",
|
|
||||||
version: std.split(importstr "VERSION", "\n")[0],
|
|
||||||
description: "quay",
|
|
||||||
license: "MIT",
|
|
||||||
expander: "jinja2"
|
|
||||||
},
|
|
||||||
|
|
||||||
variables: {
|
|
||||||
stack_path: "ci_stack",
|
|
||||||
config: (import "templates/config.libsonnet")($.variables),
|
|
||||||
namespace: "default",
|
|
||||||
tag: "master",
|
|
||||||
image: "quay.io/quay/quay-ci:%s" % $.variables.tag,
|
|
||||||
docker_user: 'changeme',
|
|
||||||
docker_pass: 'changeme',
|
|
||||||
domain: 'quay-%s.k8s.devtable.com' % $.variables.tag,
|
|
||||||
ingress: {
|
|
||||||
class: 'nginx',
|
|
||||||
tls: "kubernetes.io/tls-acme-stg",
|
|
||||||
domains: std.split($.variables.domain, ","),
|
|
||||||
annotations: {}
|
|
||||||
},
|
|
||||||
|
|
||||||
license: null,
|
|
||||||
db: {
|
|
||||||
user: 'quay',
|
|
||||||
password: 'quay',
|
|
||||||
name: 'quay',
|
|
||||||
},
|
|
||||||
} + (import "params.json"),
|
|
||||||
|
|
||||||
resources: appr.compact([
|
|
||||||
{
|
|
||||||
template: (importstr "templates/quay-dev-initdb-job.yaml"),
|
|
||||||
},
|
|
||||||
]),
|
|
||||||
|
|
||||||
deploy: [
|
|
||||||
{
|
|
||||||
name: "quay/postgres-app",
|
|
||||||
variables: {
|
|
||||||
user: $.variables.db.user,
|
|
||||||
dbname: $.variables.db.name,
|
|
||||||
password: $.variables.db.password
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
name: "quay/quay-app",
|
|
||||||
variables: $.variables,
|
|
||||||
version: ":stable"
|
|
||||||
},
|
|
||||||
|
|
||||||
# Deploy the initdb script
|
|
||||||
{name: "$self"},
|
|
||||||
|
|
||||||
],
|
|
||||||
}, params)
|
|
|
@ -1 +0,0 @@
|
||||||
{"image": "quay.io/quay/quay-ci:master", "tag": "master"}
|
|
|
@ -1,23 +0,0 @@
|
||||||
function(vars={})
|
|
||||||
{
|
|
||||||
REGISTRY_TITLE: "Quay (%s)" % vars.domain,
|
|
||||||
REGISTRY_TITLE_SHORT: "Quay (%s)" % vars.domain,
|
|
||||||
TESTING: true,
|
|
||||||
DEBUGGING: true,
|
|
||||||
USE_CDN: false,
|
|
||||||
FEATURE_ANONYMOUS_ACCESS: true,
|
|
||||||
FEATURE_MAILING: false,
|
|
||||||
ENTERPRISE_LOGO_URL: "/static/img/quay-logo.png",
|
|
||||||
LOG_ARCHIVE_LOCATION: "default",
|
|
||||||
SERVER_HOSTNAME: vars.domain,
|
|
||||||
EXTERNAL_TLS_TERMINATION: true,
|
|
||||||
TAG_EXPIRATION_OPTIONS: ["2d"],
|
|
||||||
DISTRIBUTED_STORAGE_CONFIG: {
|
|
||||||
default: [
|
|
||||||
"LocalStorage",
|
|
||||||
{storage_path: "/datastorage/registry"}]},
|
|
||||||
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [],
|
|
||||||
DISTRIBUTED_STORAGE_PREFERENCE: ["default"],
|
|
||||||
USERFILES_LOCATION: "default",
|
|
||||||
USERFILES_PATH: "userfiles/",
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: batch/v1
|
|
||||||
kind: Job
|
|
||||||
metadata:
|
|
||||||
name: quay-dev-initdb
|
|
||||||
spec:
|
|
||||||
activeDeadlineSeconds: 600
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
name: quay-dev-initdb
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: quay
|
|
||||||
image: quay.io/quay/quay-ci:master
|
|
||||||
env:
|
|
||||||
- name: TEST_DATABASE_URI
|
|
||||||
value: "postgres://"
|
|
||||||
- name: SKIP_DB_SCHEMA
|
|
||||||
value: "true"
|
|
||||||
command:
|
|
||||||
- venv/bin/python
|
|
||||||
- initdb.py
|
|
||||||
volumeMounts:
|
|
||||||
- name: configvolume
|
|
||||||
readOnly: false
|
|
||||||
mountPath: /conf/stack
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
cpu: 500m
|
|
||||||
memory: 500Mi
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: coreos-pull-secret
|
|
||||||
volumes:
|
|
||||||
- name: configvolume
|
|
||||||
secret:
|
|
||||||
secretName: quay-enterprise-config-secret
|
|
||||||
restartPolicy: Never
|
|
|
@ -98,6 +98,7 @@ RUN venv/bin/python -m external_libraries
|
||||||
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /root/.cache
|
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /root/.cache
|
||||||
VOLUME ["/var/log", "/datastorage", "/tmp"]
|
VOLUME ["/var/log", "/datastorage", "/tmp"]
|
||||||
|
|
||||||
ADD detect-config.sh .
|
RUN mkdir scripts
|
||||||
RUN ./detect-config.sh
|
ADD scripts/detect-config.sh scripts/.
|
||||||
|
RUN ./scripts/detect-config.sh
|
||||||
EXPOSE 443 8443 80
|
EXPOSE 443 8443 80
|
||||||
|
|
Reference in a new issue