# デフォルト値設定 replicaCount: 1 image: nginx: registry: docker.io repository: nginx tag: "1.31.5-alpine-perl" pullPolicy: IfNotPresent yourls: # 公式イメージ(docker-library/YOURLS)。fpm-alpineバリアントはPHP-FPMのみで # リバースプロキシ(nginx)が別途必要な構成。 registry: docker.io repository: yourls tag: "1.10.6-fpm-alpine" pullPolicy: IfNotPresent # YOURLS設定 yourls: # YOURLSインスタンスのURL。末尾スラッシュなし、小文字。 # 必ず実際のドメインに変更してください(短縮URL生成に使用される固定値のため、 # WordPressのように実行時のHTTP Hostヘッダーから自動判定されません)。 site: "https://your-own-domain-here.com" admin: username: "admin" # 空の場合はSecret作成時にランダム生成されます(helm upgradeを跨いで値は保持されます)。 # 本番環境では明示的に設定するか、existingSecretの使用を推奨します。 password: "" # 【外部Secret連携】secret-managerチャート等、既存のSecretからパスワードを取得する場合に指定。 # 指定時は上記 password は無視されます。 existingSecret: "" existingSecretKey: "password" # Cookie暗号化キー。空の場合はSecret作成時にランダム生成され、以後のhelm upgradeでも # 同じ値が再利用されます(lookup関数でSecretの既存値を参照するため、ログインセッションが # アップグレードのたびに無効化されることはありません)。 cookiekey: "" # true(デフォルト): 管理画面へのアクセスにログインが必須(YOURLS推奨の安全な既定値)。 # false: 統計ページ等を公開する場合に変更してください。詳細: https://yourls.org/privatepublic privateMode: true # サーバーのタイムゾーンオフセット(時間) hoursOffset: 0 # 管理画面の表示言語。user/languages に該当する.moファイルがある場合のみ有効。 lang: "" # データベース設定(外部MySQL/MariaDBを利用する構成。サブチャートは同梱しません) database: host: "mysql.example.svc.cluster.local" port: 3306 name: "yourls" user: "yourls" # 本番環境ではexistingSecretの使用を推奨します password: "changeme" # 【外部Secret連携】secret-managerチャート等、既存のSecretからパスワードを取得する場合に指定。 # 指定時は上記 password は無視されます。 existingSecret: "" existingSecretKey: "password" tablePrefix: "yourls_" # 既存の Secret / ConfigMap をまるごと環境変数として yourls コンテナへ注入する(envFrom)。 # 別リポジトリの secret-manager チャートが各ネームスペースへ配布する # cred-<名前> Secret(API キー等)をそのまま読み込む用途を想定。 extraEnvFrom: [] # - secretRef: # name: cred-gemini # 個別の環境変数を追加する(生の env エントリ配列。value / valueFrom(secretKeyRef 等) 使用可)。 # YOURLS_DEBUG, YOURLS_UNIQUE_URLS, YOURLS_URL_CONVERT, YOURLS_NOSTATS 等、 # 本チャートが直接values化していないYOURLSの環境変数はこちらで指定してください。 extraEnv: [] # - name: YOURLS_UNIQUE_URLS # value: "true" nginx: # Ingress ControllerやCDN(Cloudflare等)、外部LB等、X-Forwarded-Forヘッダーを # 付与するリバースプロキシを前段に置く場合にのみ有効にしてください。 # Service直下にPodがぶら下がるベアメタル/MetalLB構成では、代わりに下記の # service.externalTrafficPolicy: Local を使用してください。 forwardRealIP: enabled: false trustedProxies: - 10.0.0.0/8 - 172.16.0.0/12 - 192.168.0.0/16 # CloudflareやAWS ALB等を使っている場合は以下のIPレンジも追加してください # - 173.245.48.0/20 extraConfig: | # Service設定 service: # VIP/グローバルIPが希少な環境を想定し、既定はClusterIP + Ingress(共有)としています。 # 専用のLoadBalancer IPを払い出す場合のみ type: LoadBalancer に変更してください。 type: ClusterIP port: 80 targetPort: 80 # ベアメタルクラスター(MetalLB等)でクライアントの実IPを取得するための設定。 # kube-proxyはデフォルト(Cluster)だと送信元IPをノードIPにSNATしてしまうため、 # Local にすることでSNATを回避し、Nginxの$remote_addrに実IPがそのまま渡ります。 # LoadBalancer / NodePort でのみ有効(ClusterIPでは無視されます)。 externalTrafficPolicy: Local # Ingress設定 ingress: enabled: false className: nginx annotations: {} # コメントを外すだけで有効化できる設定例 # cert-manager.io/cluster-issuer: "letsencrypt-issuer", # nginx.ingress.kubernetes.io/ssl-redirect: "true", # nginx.ingress.kubernetes.io/force-ssl-redirect: "true", # nginx.ingress.kubernetes.io/proxy-body-size: "10m", # IP取得用(Nginx Ingress Controllerの場合) # nginx.ingress.kubernetes.io/use-forwarded-headers: "true", # nginx.ingress.kubernetes.io/compute-full-forwarded-for: "true", hostname: yourls.example.com path: / pathType: Prefix # TLS設定(true にするだけで hostname を使用して自動設定) tls: false # tlsを有効にすると自動的に以下が設定されます: # - hosts: [hostname] # - secretName: {hostname}-tls # 追加のホスト設定 extraHosts: [] # - name: go.example.com # path: / # 追加のTLS設定 extraTls: [] # - hosts: # - go.example.com # secretName: go-example-com-tls # PersistentVolume設定 # YOURLS本体(コアファイル)はemptyDirに配置(使い捨て)。 # user/plugins, user/pages, user/languages(管理画面から追加したプラグイン・ページ・ # 言語ファイル)のみPVCに永続化します。user/config.phpは環境変数から都度生成されるため # 永続化しません(値を変更した場合に確実に反映されるようにするため)。 persistence: enabled: true storageClass: "" accessMode: ReadWriteOnce size: 1Gi # リソース設定 resources: nginx: limits: cpu: 200m memory: 128Mi requests: cpu: 50m memory: 32Mi yourls: limits: cpu: 500m memory: 256Mi requests: cpu: 100m memory: 64Mi # Health Check # livenessProbeは/robots.txt(YOURLSがDB接続前に無条件で200を返す固定応答)を見ており、 # DB接続の一時的な断でコンテナが再起動ループに陥らないようにしています。 # readinessProbeは/(DB接続を要する通常ページ)を見ており、DBに接続できない間は # Serviceの振り分け対象から外れるようにしています。 healthCheck: enabled: true livenessProbe: httpGet: path: /robots.txt port: 80 initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 6 readinessProbe: httpGet: path: / port: 80 initialDelaySeconds: 15 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 # Node Selector nodeSelector: {} # Tolerations tolerations: [] # Affinity affinity: {}