Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.

Appendix C. High availability resource specifications example


A complete example of a Red Hat Trusted Artifact Signer (RHTAS) resource configuration for high availability (HA).

apiVersion: rhtas.redhat.com/v1alpha1
kind: Securesign
metadata:
  name: securesign-ha
  namespace: trusted-artifact-signer
spec:
  trillian:
    database:
      create: false
      provider: mysql
      uri: "$(MYSQL_USER):$(MYSQL_PASSWORD)@tcp($(MYSQL_HOST):$(MYSQL_PORT))/$(MYSQL_DATABASE)"
    auth:
      env:
        - name: MYSQL_HOST
          valueFrom:
            secretKeyRef:
              name: trillian-db-credentials
              key: mysql-host
        - name: MYSQL_PORT
          valueFrom:
            secretKeyRef:
              name: trillian-db-credentials
              key: mysql-port
        - name: MYSQL_USER
          valueFrom:
            secretKeyRef:
              name: trillian-db-credentials
              key: mysql-user
        - name: MYSQL_PASSWORD
          valueFrom:
            secretKeyRef:
              name: trillian-db-credentials
              key: mysql-password
        - name: MYSQL_DATABASE
          valueFrom:
            secretKeyRef:
              name: trillian-db-credentials
              key: mysql-database
    server:
      replicas: 3
      resources:
        requests:
          cpu: "500m"
          memory: "256Mi"
        limits:
          cpu: "1000m"
          memory: "512Mi"
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 100
              podAffinityTerm:
                labelSelector:
                  matchExpressions:
                    - key: app.kubernetes.io/name
                      operator: In
                      values:
                        - trillian-logserver
                topologyKey: kubernetes.io/hostname
    signer:
      replicas: 3
      resources:
        requests:
          cpu: "100m"
          memory: "128Mi"
        limits:
          cpu: "250m"
          memory: "256Mi"
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 100
              podAffinityTerm:
                labelSelector:
                  matchExpressions:
                    - key: app.kubernetes.io/name
                      operator: In
                      values:
                        - trillian-logsigner
                topologyKey: kubernetes.io/hostname

  rekor:
    replicas: 3
    resources:
      requests:
        cpu: "500m"
        memory: "256Mi"
      limits:
        cpu: "1000m"
        memory: "512Mi"
    affinity:
      podAntiAffinity:
        preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                  - key: app.kubernetes.io/name
                    operator: In
                    values:
                      - rekor-server
              topologyKey: kubernetes.io/hostname
    attestations:
      enabled: true
      url: "s3://my-attestation-bucket?region=us-east-1"
    searchIndex:
      create: false
      provider: redis
      url: "redis://redis.example.com:6379"
    auth:
      env:
        - name: AWS_ACCESS_KEY_ID
          valueFrom:
            secretKeyRef:
              name: rekor-s3-credentials
              key: AWS_ACCESS_KEY_ID
        - name: AWS_SECRET_ACCESS_KEY
          valueFrom:
            secretKeyRef:
              name: rekor-s3-credentials
              key: AWS_SECRET_ACCESS_KEY

  fulcio:
    replicas: 3
    resources:
      requests:
        cpu: "250m"
        memory: "128Mi"
      limits:
        cpu: "500m"
        memory: "256Mi"
    affinity:
      podAntiAffinity:
        preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                  - key: app.kubernetes.io/name
                    operator: In
                    values:
                      - fulcio-server
              topologyKey: kubernetes.io/hostname
    config:
      OIDCIssuers:
        - ClientID: "trusted-artifact-signer"
          IssuerURL: "https://your-oidc-issuer.example.com"
          Issuer: "https://your-oidc-issuer.example.com"
          Type: "email"
    certificate:
      organizationName: "Example Organization"
      organizationEmail: "admin@example.com"

  ctlog:
    replicas: 3
    resources:
      requests:
        cpu: "100m"
        memory: "128Mi"
      limits:
        cpu: "250m"
        memory: "256Mi"
    affinity:
      podAntiAffinity:
        preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                  - key: app.kubernetes.io/name
                    operator: In
                    values:
                      - ctlog
              topologyKey: kubernetes.io/hostname

  tuf:
    replicas: 3
    resources:
      requests:
        cpu: "100m"
        memory: "128Mi"
      limits:
        cpu: "250m"
        memory: "256Mi"
    affinity:
      podAntiAffinity:
        preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                  - key: app.kubernetes.io/name
                    operator: In
                    values:
                      - tuf
              topologyKey: kubernetes.io/hostname
    pvc:
      accessModes:
        - ReadWriteMany
      size: "100Mi"
      storageClass: "ocs-storagecluster-cephfs"

  tsa:
    replicas: 3
    resources:
      requests:
        cpu: "100m"
        memory: "128Mi"
      limits:
        cpu: "250m"
        memory: "256Mi"
    affinity:
      podAntiAffinity:
        preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                  - key: app.kubernetes.io/name
                    operator: In
                    values:
                      - tsa-server
              topologyKey: kubernetes.io/hostname
    signer:
      certificateChain:
        rootCA:
          organizationName: "Example Root Organization"
          organizationEmail: "admin@example.com"
        intermediateCA:
          - organizationName: "Example Intermediate Organization"
            organizationEmail: "admin@example.com"
        leafCA:
          organizationName: "Example Leaf CA"
          organizationEmail: "admin@example.com"
Red Hat logoGithubredditYoutubeTwitter

Lernen

Testen, kaufen und verkaufen

Communitys

Über Red Hat

Wir liefern gehärtete Lösungen, die es Unternehmen leichter machen, plattform- und umgebungsübergreifend zu arbeiten, vom zentralen Rechenzentrum bis zum Netzwerkrand.

Mehr Inklusion in Open Source

Red Hat hat sich verpflichtet, problematische Sprache in unserem Code, unserer Dokumentation und unseren Web-Eigenschaften zu ersetzen. Weitere Einzelheiten finden Sie in Red Hat Blog.

Über Red Hat Dokumentation

Legal Notice

Theme

© 2026 Red Hat
Nach oben