311 lines
7.9 KiB
YAML
311 lines
7.9 KiB
YAML
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
labels:
|
|
kubernetes.io/metadata.name: harbor
|
|
name: harbor
|
|
spec:
|
|
finalizers:
|
|
- kubernetes
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-core
|
|
namespace: harbor
|
|
data:
|
|
_REDIS_URL_CORE: redis://harbor-redis:6379/0?idle_timeout_seconds=30
|
|
_REDIS_URL_REG: redis://harbor-redis:6379/2?idle_timeout_seconds=30
|
|
CHART_CACHE_DRIVER: redis
|
|
CONFIG_PATH: /etc/core/app.conf
|
|
CORE_LOCAL_URL: http://127.0.0.1:8080
|
|
CORE_URL: http://harbor-core:80
|
|
DATABASE_TYPE: postgresql
|
|
EXT_ENDPOINT: https://harbor.icurfer.com
|
|
HTTP_PROXY: ""
|
|
HTTPS_PROXY: ""
|
|
JOBSERVICE_URL: http://harbor-jobservice
|
|
LOG_LEVEL: info
|
|
NO_PROXY: harbor-core,harbor-jobservice,harbor-database,harbor-registry,harbor-portal,harbor-trivy,harbor-exporter,127.0.0.1,localhost,.local,.internal
|
|
PERMITTED_REGISTRY_TYPES_FOR_PROXY_CACHE: docker-hub,harbor,azure-acr,aws-ecr,google-gcr,quay,docker-registry,github-ghcr,jfrog-artifactory
|
|
PORT: "8080"
|
|
PORTAL_URL: http://harbor-portal
|
|
POSTGRESQL_DATABASE: registry
|
|
POSTGRESQL_HOST: harbor-database
|
|
POSTGRESQL_MAX_IDLE_CONNS: "100"
|
|
POSTGRESQL_MAX_OPEN_CONNS: "900"
|
|
POSTGRESQL_PORT: "5432"
|
|
POSTGRESQL_SSLMODE: disable
|
|
POSTGRESQL_USERNAME: postgres
|
|
QUOTA_UPDATE_PROVIDER: db
|
|
REGISTRY_CONTROLLER_URL: http://harbor-registry:8080
|
|
REGISTRY_CREDENTIAL_USERNAME: harbor_registry_user
|
|
REGISTRY_STORAGE_PROVIDER_NAME: filesystem
|
|
REGISTRY_URL: http://harbor-registry:5000
|
|
TOKEN_SERVICE_URL: http://harbor-core:80/service/token
|
|
TRIVY_ADAPTER_URL: http://harbor-trivy:8080
|
|
WITH_TRIVY: "true"
|
|
app.conf: |
|
|
appname = Harbor
|
|
runmode = prod
|
|
enablegzip = true
|
|
|
|
[prod]
|
|
httpport = 8080
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-jobservice
|
|
namespace: harbor
|
|
data:
|
|
config.yml: |
|
|
#Server listening port
|
|
protocol: "http"
|
|
port: 8080
|
|
worker_pool:
|
|
workers: 10
|
|
backend: "redis"
|
|
redis_pool:
|
|
redis_url: "redis://harbor-redis:6379/1"
|
|
namespace: "harbor_job_service_namespace"
|
|
idle_timeout_second: 3600
|
|
job_loggers:
|
|
- name: "FILE"
|
|
level: INFO
|
|
settings: # Customized settings of logger
|
|
base_dir: "/var/log/jobs"
|
|
sweeper:
|
|
duration: 14 #days
|
|
settings: # Customized settings of sweeper
|
|
work_dir: "/var/log/jobs"
|
|
metric:
|
|
enabled: false
|
|
path: /metrics
|
|
port: 8001
|
|
#Loggers for the job service
|
|
loggers:
|
|
- name: "STD_OUTPUT"
|
|
level: INFO
|
|
reaper:
|
|
# the max time to wait for a task to finish, if unfinished after max_update_hours, the task will be mark as error, but the task will continue to run, default value is 24
|
|
max_update_hours: 24
|
|
# the max time for execution in running state without new task created
|
|
max_dangling_hours: 168
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-jobservice-env
|
|
namespace: harbor
|
|
data:
|
|
CORE_URL: http://harbor-core:80
|
|
HTTP_PROXY: ""
|
|
HTTPS_PROXY: ""
|
|
JOBSERVICE_WEBHOOK_JOB_HTTP_CLIENT_TIMEOUT: "3"
|
|
JOBSERVICE_WEBHOOK_JOB_MAX_RETRY: "3"
|
|
NO_PROXY: harbor-core,harbor-jobservice,harbor-database,harbor-registry,harbor-portal,harbor-trivy,harbor-exporter,127.0.0.1,localhost,.local,.internal
|
|
REGISTRY_CONTROLLER_URL: http://harbor-registry:8080
|
|
REGISTRY_CREDENTIAL_USERNAME: harbor_registry_user
|
|
REGISTRY_URL: http://harbor-registry:5000
|
|
TOKEN_SERVICE_URL: http://harbor-core:80/service/token
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-portal
|
|
namespace: harbor
|
|
data:
|
|
nginx.conf: |
|
|
worker_processes auto;
|
|
pid /tmp/nginx.pid;
|
|
events {
|
|
worker_connections 1024;
|
|
}
|
|
http {
|
|
client_body_temp_path /tmp/client_body_temp;
|
|
proxy_temp_path /tmp/proxy_temp;
|
|
fastcgi_temp_path /tmp/fastcgi_temp;
|
|
uwsgi_temp_path /tmp/uwsgi_temp;
|
|
scgi_temp_path /tmp/scgi_temp;
|
|
server {
|
|
listen 8080;
|
|
listen [::]:8080;
|
|
server_name localhost;
|
|
root /usr/share/nginx/html;
|
|
index index.html index.htm;
|
|
include /etc/nginx/mime.types;
|
|
gzip on;
|
|
gzip_min_length 1000;
|
|
gzip_proxied expired no-cache no-store private auth;
|
|
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
|
|
location /devcenter-api-2.0 {
|
|
try_files $uri $uri/ /swagger-ui-index.html;
|
|
}
|
|
location / {
|
|
try_files $uri $uri/ /index.html;
|
|
}
|
|
location = /index.html {
|
|
add_header Cache-Control "no-store, no-cache, must-revalidate";
|
|
}
|
|
}
|
|
}
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-registry
|
|
namespace: harbor
|
|
data:
|
|
config.yml: |
|
|
version: 0.1
|
|
log:
|
|
level: info
|
|
fields:
|
|
service: registry
|
|
storage:
|
|
filesystem:
|
|
rootdirectory: /storage
|
|
cache:
|
|
layerinfo: redis
|
|
maintenance:
|
|
uploadpurging:
|
|
enabled: true
|
|
age: 168h
|
|
interval: 24h
|
|
dryrun: false
|
|
delete:
|
|
enabled: true
|
|
redirect:
|
|
disable: false
|
|
redis:
|
|
addr: harbor-redis:6379
|
|
db: 2
|
|
readtimeout: 10s
|
|
writetimeout: 10s
|
|
dialtimeout: 10s
|
|
pool:
|
|
maxidle: 100
|
|
maxactive: 500
|
|
idletimeout: 60s
|
|
http:
|
|
addr: :5000
|
|
#relativeurls: false
|
|
relativeurls: true
|
|
# set via environment variable
|
|
# secret: placeholder
|
|
debug:
|
|
addr: localhost:5001
|
|
auth:
|
|
htpasswd:
|
|
realm: harbor-registry-basic-realm
|
|
path: /etc/registry/passwd
|
|
validation:
|
|
disabled: true
|
|
compatibility:
|
|
schema1:
|
|
enabled: true
|
|
ctl-config.yml: |
|
|
---
|
|
protocol: "http"
|
|
port: 8080
|
|
log_level: info
|
|
registry_config: "/etc/registry/config.yml"
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-registryctl
|
|
namespace: harbor
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-database
|
|
namespace: harbor
|
|
type: Opaque
|
|
data:
|
|
POSTGRES_PASSWORD: UmxheG9kbXM5MCFA
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-jobservice
|
|
namespace: harbor
|
|
type: Opaque
|
|
data:
|
|
JOBSERVICE_SECRET: akVWbzlyNFJaU2R1clJqUA==
|
|
REGISTRY_CREDENTIAL_PASSWORD: aGFyYm9yX3JlZ2lzdHJ5X3Bhc3N3b3Jk
|
|
---
|
|
apiVersion: v1
|
|
data:
|
|
REGISTRY_HTTP_SECRET: dHlCdm41MXpIakxLRm5mRw==
|
|
REGISTRY_REDIS_PASSWORD: ""
|
|
kind: Secret
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-registry
|
|
namespace: harbor
|
|
type: Opaque
|
|
---
|
|
apiVersion: v1
|
|
data:
|
|
REGISTRY_HTPASSWD: aGFyYm9yX3JlZ2lzdHJ5X3VzZXI6JDJhJDEwJG1uRkVSQkVyRmROYnNuZDVHWUxTQXVUOTRaUWxZNGkxU3BtNTk4dWlmV2pLbEJrQnJhbHEu
|
|
kind: Secret
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-registry-htpasswd
|
|
namespace: harbor
|
|
type: Opaque
|
|
---
|
|
apiVersion: v1
|
|
data: null
|
|
kind: Secret
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-registryctl
|
|
namespace: harbor
|
|
type: Opaque
|
|
---
|
|
apiVersion: v1
|
|
data:
|
|
gitHubToken: ""
|
|
redisURL: cmVkaXM6Ly9oYXJib3ItcmVkaXM6NjM3OS81P2lkbGVfdGltZW91dF9zZWNvbmRzPTMw
|
|
kind: Secret
|
|
metadata:
|
|
labels:
|
|
app: harbor
|
|
release: harbor
|
|
name: harbor-trivy
|
|
namespace: harbor
|
|
type: Opaque |