From 19a4679da5feff5cceb32fd8eb553acebec70344 Mon Sep 17 00:00:00 2001 From: tommy Date: Tue, 12 Nov 2024 20:27:41 +0000 Subject: [PATCH 01/10] Update .forgejo/workflows/release-charts.yaml --- .forgejo/workflows/release-charts.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/release-charts.yaml b/.forgejo/workflows/release-charts.yaml index b387712..6d4363b 100644 --- a/.forgejo/workflows/release-charts.yaml +++ b/.forgejo/workflows/release-charts.yaml @@ -1,10 +1,10 @@ name: Release Charts on: - workflow_run: - workflows: [ "Validate Charts" ] - branches: [ main ] - types: - - completed + push: + branches: + - 'main' + paths: + - 'charts/**' jobs: charts-changed: From f01c7f89d96d54fde42db5553685fd33acc20a0c Mon Sep 17 00:00:00 2001 From: tommy Date: Tue, 12 Nov 2024 20:28:14 +0000 Subject: [PATCH 02/10] Update charts/immich/values.yaml --- charts/immich/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/immich/values.yaml b/charts/immich/values.yaml index af6b530..bb4e58c 100644 --- a/charts/immich/values.yaml +++ b/charts/immich/values.yaml @@ -18,7 +18,7 @@ library: enabled: true template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}" -microservices: +microservices: resources: limits: memory: "3Gi" From 99a5dddc43f055a96e30f0d15328914090805155 Mon Sep 17 00:00:00 2001 From: Tommy Skaug Date: Tue, 12 Nov 2024 21:33:03 +0100 Subject: [PATCH 03/10] chore: limit chart validation to branches --- .forgejo/workflows/validate-charts.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.forgejo/workflows/validate-charts.yaml b/.forgejo/workflows/validate-charts.yaml index d735e6b..34d6abd 100644 --- a/.forgejo/workflows/validate-charts.yaml +++ b/.forgejo/workflows/validate-charts.yaml @@ -3,11 +3,6 @@ on: pull_request: paths: - 'charts/**' - push: - branches: - - 'main' - paths: - - 'charts/**' jobs: charts-changed: From 7a7cea0df5bed468a49c79d855893311be8791fa Mon Sep 17 00:00:00 2001 From: Tommy Skaug Date: Thu, 14 Nov 2024 17:30:00 +0100 Subject: [PATCH 04/10] chore(repo): cleanup unused repos and update release workflow --- .forgejo/workflows/release-charts.yaml | 30 +- charts/gerrit-operator-crds/.helmignore | 23 - charts/gerrit-operator-crds/Chart.yaml | 19 - .../gerrit-operator-crds-0.1.0.tgz | Bin 19343 -> 0 bytes ...tclusters.gerritoperator.google.com-v1.yml | 4261 ----------------- ...tindexers.gerritoperator.google.com-v1.yml | 590 --- ...tnetworks.gerritoperator.google.com-v1.yml | 267 -- .../gerrits.gerritoperator.google.com-v1.yml | 1825 ------- .../gitgcs.gerritoperator.google.com-v1.yml | 833 ---- ...tiontasks.gerritoperator.google.com-v1.yml | 1127 ----- ...receivers.gerritoperator.google.com-v1.yml | 1359 ------ charts/gerrit-operator-crds/values.yaml | 0 charts/gerrit-operator/.helmignore | 23 - charts/gerrit-operator/Chart.yaml | 23 - charts/gerrit-operator/templates/_helpers.tpl | 70 - .../gerrit-operator/templates/operator.yaml | 67 - charts/gerrit-operator/templates/rbac.yaml | 80 - charts/gerrit-operator/values.yaml | 24 - charts/gerrit/.helmignore | 24 - charts/gerrit/Chart.yaml | 27 - charts/gerrit/LICENSE | 201 - charts/gerrit/README.md | 460 -- charts/gerrit/docs/nfs-provisioner.md | 64 - charts/gerrit/supplements/nfs/VERSION | 1 - charts/gerrit/supplements/nfs/values.yaml | 42 - charts/gerrit/templates/NOTES.txt | 4 - charts/gerrit/templates/_helpers.tpl | 20 - charts/gerrit/templates/gerrit.configmap.yaml | 78 - charts/gerrit/templates/gerrit.secrets.yaml | 21 - charts/gerrit/templates/gerrit.service.yaml | 41 - .../gerrit/templates/gerrit.stateful-set.yaml | 299 -- charts/gerrit/templates/gerrit.storage.yaml | 45 - charts/gerrit/templates/git-gc.cronjob.yaml | 132 - charts/gerrit/templates/git-gc.storage.yaml | 22 - charts/gerrit/templates/global.secrets.yaml | 18 - .../gerrit/templates/image-pull.secret.yaml | 9 - charts/gerrit/templates/ingress.yaml | 64 - .../gerrit/templates/log-cleaner.cronjob.yaml | 65 - charts/gerrit/templates/netpol.yaml | 122 - charts/gerrit/templates/nfs.configmap.yaml | 28 - charts/gerrit/templates/storage.pvc.yaml | 45 - charts/gerrit/templates/storageclasses.yaml | 53 - charts/gerrit/values.yaml | 336 -- charts/immich/Chart.yaml | 2 +- charts/paperless-ngx/Chart.yaml | 20 - charts/paperless-ngx/templates/_helpers.tpl | 30 - charts/paperless-ngx/templates/db-init.yaml | 21 - .../templates/deployment-server.yaml | 51 - .../templates/service-server.yaml | 13 - .../templates/serviceaccount.yaml | 7 - charts/paperless-ngx/tests/values.yaml | 35 - charts/paperless-ngx/values.yaml | 35 - charts/vertex-synapse/Chart.yaml | 19 - charts/vertex-synapse/templates/_helpers.tpl | 88 - charts/vertex-synapse/templates/db-init.yaml | 20 - .../templates/deployment-aha.yaml | 64 - .../vertex-synapse/templates/service-aha.yaml | 26 - .../templates/service-cortex.yaml | 24 - .../templates/serviceaccount.yaml | 6 - charts/vertex-synapse/values.yaml | 117 - 60 files changed, 20 insertions(+), 13400 deletions(-) delete mode 100644 charts/gerrit-operator-crds/.helmignore delete mode 100644 charts/gerrit-operator-crds/Chart.yaml delete mode 100644 charts/gerrit-operator-crds/gerrit-operator-crds-0.1.0.tgz delete mode 100644 charts/gerrit-operator-crds/templates/gerritclusters.gerritoperator.google.com-v1.yml delete mode 100644 charts/gerrit-operator-crds/templates/gerritindexers.gerritoperator.google.com-v1.yml delete mode 100644 charts/gerrit-operator-crds/templates/gerritnetworks.gerritoperator.google.com-v1.yml delete mode 100644 charts/gerrit-operator-crds/templates/gerrits.gerritoperator.google.com-v1.yml delete mode 100644 charts/gerrit-operator-crds/templates/gitgcs.gerritoperator.google.com-v1.yml delete mode 100644 charts/gerrit-operator-crds/templates/incomingreplicationtasks.gerritoperator.google.com-v1.yml delete mode 100644 charts/gerrit-operator-crds/templates/receivers.gerritoperator.google.com-v1.yml delete mode 100644 charts/gerrit-operator-crds/values.yaml delete mode 100644 charts/gerrit-operator/.helmignore delete mode 100644 charts/gerrit-operator/Chart.yaml delete mode 100644 charts/gerrit-operator/templates/_helpers.tpl delete mode 100644 charts/gerrit-operator/templates/operator.yaml delete mode 100644 charts/gerrit-operator/templates/rbac.yaml delete mode 100644 charts/gerrit-operator/values.yaml delete mode 100644 charts/gerrit/.helmignore delete mode 100644 charts/gerrit/Chart.yaml delete mode 100644 charts/gerrit/LICENSE delete mode 100644 charts/gerrit/README.md delete mode 100644 charts/gerrit/docs/nfs-provisioner.md delete mode 100644 charts/gerrit/supplements/nfs/VERSION delete mode 100644 charts/gerrit/supplements/nfs/values.yaml delete mode 100644 charts/gerrit/templates/NOTES.txt delete mode 100644 charts/gerrit/templates/_helpers.tpl delete mode 100644 charts/gerrit/templates/gerrit.configmap.yaml delete mode 100644 charts/gerrit/templates/gerrit.secrets.yaml delete mode 100644 charts/gerrit/templates/gerrit.service.yaml delete mode 100644 charts/gerrit/templates/gerrit.stateful-set.yaml delete mode 100644 charts/gerrit/templates/gerrit.storage.yaml delete mode 100644 charts/gerrit/templates/git-gc.cronjob.yaml delete mode 100644 charts/gerrit/templates/git-gc.storage.yaml delete mode 100644 charts/gerrit/templates/global.secrets.yaml delete mode 100644 charts/gerrit/templates/image-pull.secret.yaml delete mode 100644 charts/gerrit/templates/ingress.yaml delete mode 100644 charts/gerrit/templates/log-cleaner.cronjob.yaml delete mode 100644 charts/gerrit/templates/netpol.yaml delete mode 100644 charts/gerrit/templates/nfs.configmap.yaml delete mode 100644 charts/gerrit/templates/storage.pvc.yaml delete mode 100644 charts/gerrit/templates/storageclasses.yaml delete mode 100644 charts/gerrit/values.yaml delete mode 100644 charts/paperless-ngx/Chart.yaml delete mode 100644 charts/paperless-ngx/templates/_helpers.tpl delete mode 100644 charts/paperless-ngx/templates/db-init.yaml delete mode 100644 charts/paperless-ngx/templates/deployment-server.yaml delete mode 100644 charts/paperless-ngx/templates/service-server.yaml delete mode 100644 charts/paperless-ngx/templates/serviceaccount.yaml delete mode 100644 charts/paperless-ngx/tests/values.yaml delete mode 100644 charts/paperless-ngx/values.yaml delete mode 100644 charts/vertex-synapse/Chart.yaml delete mode 100644 charts/vertex-synapse/templates/_helpers.tpl delete mode 100644 charts/vertex-synapse/templates/db-init.yaml delete mode 100644 charts/vertex-synapse/templates/deployment-aha.yaml delete mode 100644 charts/vertex-synapse/templates/service-aha.yaml delete mode 100644 charts/vertex-synapse/templates/service-cortex.yaml delete mode 100644 charts/vertex-synapse/templates/serviceaccount.yaml delete mode 100644 charts/vertex-synapse/values.yaml diff --git a/.forgejo/workflows/release-charts.yaml b/.forgejo/workflows/release-charts.yaml index 6d4363b..b61f043 100644 --- a/.forgejo/workflows/release-charts.yaml +++ b/.forgejo/workflows/release-charts.yaml @@ -40,11 +40,7 @@ jobs: fetch-depth: 0 - name: Publish env: - FORGEJO_TOKEN: ${{ secrets.GITHUB_TOKEN }} - REPO: ${{ github.repository }} - RELEASE_DIR: dist - RELEASE_NOTES: /var/ci-os/templates/release-notes-template.md - SHA: ${{ github.sha }} + FORGEJO_TOKEN: ${{ secrets.REPO_TOKEN }} run: | charts='${{ needs.charts-changed.outputs.reposChanged }}' @@ -55,15 +51,27 @@ jobs: CHART_NAME=$(yq -r .name "$chart/Chart.yaml") CHART_VERSION=$(yq -r .version "$chart/Chart.yaml") export TAG="$CHART_NAME-$CHART_VERSION" + export FORGEJO_TOKEN="${{ secrets.REPO_TOKEN }}" + export REPO="${{ github.repository }}" + export RELEASE_DIR="dist" + export RELEASE_NOTES="/var/ci-os/templates/release-notes-template.md" + export SHA="${{ github.sha }}" - echo "packing $chart" + echo "==================" + echo "Chart: $chart" + echo "Uploading to: $OCI_URL" helm package "$chart" -d dist + echo "${{ secrets.REPO_TOKEN }}"|helm registry login code.252.no -u tommy --password-stdin + helm push "dist/$TAG.tgz" oci://code.252.no/tommy/charts - curl --user ${{ github.repository_owner }}:${{ secrets.REGISTRY_TOKEN }} \ - --upload-file "dist/$TAG.tgz" \ - https://code.252.no/api/packages/${{ github.repository_owner }}/generic/$CHART_NAME/$CHART_VERSION/$TAG.tgz + echo "------------------" - echo "$RELEASE_NOTES" - echo "$TAG" + echo "Creating release" + echo "Repository: $REPO" + echo "Tag: $TAG" + echo "Release notes: $RELEASE_NOTES" + echo "Release dir: $RELEASE_DIR" + echo "SHA: $SHA" forgejo-release create + echo "==================" done diff --git a/charts/gerrit-operator-crds/.helmignore b/charts/gerrit-operator-crds/.helmignore deleted file mode 100644 index 0e8a0eb..0000000 --- a/charts/gerrit-operator-crds/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/charts/gerrit-operator-crds/Chart.yaml b/charts/gerrit-operator-crds/Chart.yaml deleted file mode 100644 index 17e8ba6..0000000 --- a/charts/gerrit-operator-crds/Chart.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# yaml-language-server: $schema=https://json.schemastore.org/chart.json -apiVersion: v2 -type: application -name: gerrit-operator-crds -icon: https://avatars.githubusercontent.com/u/7028910?s=200&v=4 -description: Installs CRDs that are managed/referenced by the gerrit operator -version: 0.1.1 -sources: -- https://code.252.no/tommy/helm-charts -- https://www.gerritcodereview.com -- https://github.com/GerritCodeReview/k8s-gerrit/tree/master/helm-charts/gerrit-operator-crds -keywords: -- gerrit -- codereview -- operator -- crds -maintainers: -- name: Tommy Skaug - email: tommy@skaug.me diff --git a/charts/gerrit-operator-crds/gerrit-operator-crds-0.1.0.tgz b/charts/gerrit-operator-crds/gerrit-operator-crds-0.1.0.tgz deleted file mode 100644 index f4a318404a4f5ca6abe59133418c56ed21001a68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19343 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 diff --git a/charts/gerrit-operator-crds/templates/gerritclusters.gerritoperator.google.com-v1.yml b/charts/gerrit-operator-crds/templates/gerritclusters.gerritoperator.google.com-v1.yml deleted file mode 100644 index a4dc38d..0000000 --- a/charts/gerrit-operator-crds/templates/gerritclusters.gerritoperator.google.com-v1.yml +++ /dev/null @@ -1,4261 +0,0 @@ -# Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: gerritclusters.gerritoperator.google.com -spec: - group: gerritoperator.google.com - names: - kind: GerritCluster - plural: gerritclusters - shortNames: - - gclus - singular: gerritcluster - scope: Namespaced - versions: - - name: v1beta11 - schema: - openAPIV3Schema: - properties: - spec: - properties: - containerImages: - properties: - busyBox: - properties: - registry: - type: string - tag: - type: string - type: object - gerritImages: - properties: - org: - type: string - registry: - type: string - tag: - type: string - type: object - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - type: string - type: object - type: array - type: object - eventsBroker: - properties: - brokerType: - enum: - - KAFKA - - NONE - type: string - kafkaConfig: - properties: - connectString: - type: string - type: object - type: object - fluentBitSidecar: - properties: - config: - type: string - enabled: - type: boolean - image: - type: string - type: object - gerrits: - items: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - configFiles: - additionalProperties: - type: string - type: object - debug: - properties: - enabled: - type: boolean - suspend: - type: boolean - type: object - envVars: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - type: object - type: object - type: array - gracefulStopTimeout: - type: integer - libs: - items: - properties: - data: - properties: - executable: - type: boolean - secretRef: - type: string - type: object - name: - type: string - sha1: - type: string - url: - type: string - type: object - type: array - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - mode: - enum: - - PRIMARY - - REPLICA - type: string - plugins: - items: - properties: - data: - properties: - executable: - type: boolean - secretRef: - type: string - type: object - installAsLibrary: - type: boolean - name: - type: string - sha1: - type: string - url: - type: string - type: object - type: array - priorityClassName: - type: string - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - replicas: - type: integer - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - secretRef: - type: string - service: - properties: - httpPort: - type: integer - sshPort: - type: integer - type: - type: string - type: object - serviceAccount: - type: string - site: - properties: - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - startupProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - maxSkew: - type: integer - minDomains: - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - type: object - type: array - updatePartition: - type: integer - type: object - type: object - type: array - ingress: - properties: - ambassador: - properties: - createHost: - type: boolean - id: - items: - type: string - type: array - type: object - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - istio: - properties: - gatewaySelector: - additionalProperties: - type: string - type: object - type: object - ssh: - properties: - enabled: - type: boolean - type: object - tls: - properties: - enabled: - type: boolean - secret: - type: string - type: object - type: object - receiver: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - credentialSecretRef: - type: string - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - maxSurge: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - priorityClassName: - type: string - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - replicas: - type: integer - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - service: - properties: - httpPort: - type: integer - type: - type: string - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - maxSkew: - type: integer - minDomains: - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - type: object - type: array - type: object - type: object - refdb: - properties: - database: - enum: - - NONE - - SPANNER - - ZOOKEEPER - type: string - spanner: - properties: - database: - type: string - instance: - type: string - projectName: - type: string - type: object - zookeeper: - properties: - connectString: - type: string - rootNode: - type: string - type: object - type: object - scheduledTasks: - properties: - incomingReplication: - items: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - config: - properties: - remotes: - items: - properties: - fetch: - items: - properties: - localRepo: - type: string - refSpec: - type: string - remoteRepo: - type: string - required: - - remoteRepo - type: object - type: array - name: - type: string - timeout: - type: string - url: - type: string - required: - - name - - url - type: object - type: array - required: - - remotes - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - schedule: - type: string - secretRef: - type: string - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - required: - - schedule - - config - type: object - type: object - type: array - type: object - serverId: - type: string - storage: - properties: - pluginCache: - properties: - enabled: - type: boolean - type: object - sharedStorage: - properties: - externalPVC: - properties: - claimName: - type: string - enabled: - type: boolean - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - volumeName: - type: string - type: object - storageClasses: - properties: - nfsWorkaround: - properties: - chownOnStartup: - type: boolean - enabled: - type: boolean - idmapdConfig: - type: string - type: object - readWriteMany: - type: string - readWriteOnce: - type: string - type: object - type: object - type: object - status: - properties: - members: - additionalProperties: - items: - type: string - type: array - type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} - - name: v1beta10 - schema: - openAPIV3Schema: - properties: - spec: - properties: - containerImages: - properties: - busyBox: - properties: - registry: - type: string - tag: - type: string - type: object - gerritImages: - properties: - org: - type: string - registry: - type: string - tag: - type: string - type: object - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - type: string - type: object - type: array - type: object - eventsBroker: - properties: - brokerType: - enum: - - KAFKA - - NONE - type: string - kafkaConfig: - properties: - connectString: - type: string - type: object - type: object - fluentBitSidecar: - properties: - config: - type: string - enabled: - type: boolean - image: - type: string - type: object - gerrits: - items: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - configFiles: - additionalProperties: - type: string - type: object - debug: - properties: - enabled: - type: boolean - suspend: - type: boolean - type: object - envVars: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - type: object - type: object - type: array - gracefulStopTimeout: - type: integer - libs: - items: - properties: - data: - properties: - executable: - type: boolean - secretRef: - type: string - type: object - name: - type: string - sha1: - type: string - url: - type: string - type: object - type: array - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - mode: - enum: - - PRIMARY - - REPLICA - type: string - plugins: - items: - properties: - data: - properties: - executable: - type: boolean - secretRef: - type: string - type: object - installAsLibrary: - type: boolean - name: - type: string - sha1: - type: string - url: - type: string - type: object - type: array - priorityClassName: - type: string - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - replicas: - type: integer - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - secretRef: - type: string - service: - properties: - httpPort: - type: integer - sshPort: - type: integer - type: - type: string - type: object - serviceAccount: - type: string - site: - properties: - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - startupProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - maxSkew: - type: integer - minDomains: - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - type: object - type: array - updatePartition: - type: integer - type: object - type: object - type: array - ingress: - properties: - ambassador: - properties: - createHost: - type: boolean - id: - items: - type: string - type: array - type: object - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - istio: - properties: - gatewaySelector: - additionalProperties: - type: string - type: object - type: object - ssh: - properties: - enabled: - type: boolean - type: object - tls: - properties: - enabled: - type: boolean - secret: - type: string - type: object - type: object - receiver: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - credentialSecretRef: - type: string - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - maxSurge: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - priorityClassName: - type: string - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - replicas: - type: integer - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - service: - properties: - httpPort: - type: integer - type: - type: string - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - maxSkew: - type: integer - minDomains: - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - type: object - type: array - type: object - type: object - refdb: - properties: - database: - enum: - - NONE - - SPANNER - - ZOOKEEPER - type: string - spanner: - properties: - database: - type: string - instance: - type: string - projectName: - type: string - type: object - zookeeper: - properties: - connectString: - type: string - rootNode: - type: string - type: object - type: object - scheduledTasks: - properties: - incomingReplication: - items: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - config: - properties: - remotes: - items: - properties: - fetch: - items: - properties: - localRepo: - type: string - refSpec: - type: string - remoteRepo: - type: string - required: - - remoteRepo - type: object - type: array - name: - type: string - timeout: - type: string - url: - type: string - required: - - name - - url - type: object - type: array - required: - - remotes - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - schedule: - type: string - secretRef: - type: string - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - required: - - schedule - - config - type: object - type: object - type: array - type: object - serverId: - type: string - storage: - properties: - pluginCache: - properties: - enabled: - type: boolean - type: object - sharedStorage: - properties: - externalPVC: - properties: - claimName: - type: string - enabled: - type: boolean - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - volumeName: - type: string - type: object - storageClasses: - properties: - nfsWorkaround: - properties: - chownOnStartup: - type: boolean - enabled: - type: boolean - idmapdConfig: - type: string - type: object - readWriteMany: - type: string - readWriteOnce: - type: string - type: object - type: object - type: object - status: - properties: - members: - additionalProperties: - items: - type: string - type: array - type: object - type: object - type: object - served: true - storage: false - subresources: - status: {} diff --git a/charts/gerrit-operator-crds/templates/gerritindexers.gerritoperator.google.com-v1.yml b/charts/gerrit-operator-crds/templates/gerritindexers.gerritoperator.google.com-v1.yml deleted file mode 100644 index 179d48f..0000000 --- a/charts/gerrit-operator-crds/templates/gerritindexers.gerritoperator.google.com-v1.yml +++ /dev/null @@ -1,590 +0,0 @@ -# Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: gerritindexers.gerritoperator.google.com -spec: - group: gerritoperator.google.com - names: - kind: GerritIndexer - plural: gerritindexers - shortNames: - - gi - singular: gerritindexer - scope: Namespaced - versions: - - name: v1beta11 - schema: - openAPIV3Schema: - properties: - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - cluster: - type: string - configFiles: - additionalProperties: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - storage: - properties: - output: - properties: - persistentVolumeClaim: - type: string - subPath: - type: string - type: object - repositories: - properties: - persistentVolumeClaim: - type: string - subPath: - type: string - type: object - site: - properties: - persistentVolumeClaim: - type: string - subPath: - type: string - type: object - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - type: object - status: - properties: - apiVersion: - type: string - code: - type: integer - details: - properties: - causes: - items: - properties: - field: - type: string - message: - type: string - reason: - type: string - type: object - type: array - group: - type: string - kind: - type: string - name: - type: string - retryAfterSeconds: - type: integer - uid: - type: string - type: object - kind: - type: string - message: - type: string - metadata: - properties: - continue: - type: string - remainingItemCount: - type: integer - resourceVersion: - type: string - selfLink: - type: string - type: object - reason: - type: string - status: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} - - name: v1beta10 - schema: - openAPIV3Schema: - properties: - spec: - properties: - cluster: - type: string - configFiles: - additionalProperties: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - storage: - properties: - output: - properties: - persistentVolumeClaim: - type: string - subPath: - type: string - type: object - repositories: - properties: - persistentVolumeClaim: - type: string - subPath: - type: string - type: object - site: - properties: - persistentVolumeClaim: - type: string - subPath: - type: string - type: object - type: object - type: object - status: - properties: - apiVersion: - type: string - code: - type: integer - details: - properties: - causes: - items: - properties: - field: - type: string - message: - type: string - reason: - type: string - type: object - type: array - group: - type: string - kind: - type: string - name: - type: string - retryAfterSeconds: - type: integer - uid: - type: string - type: object - kind: - type: string - message: - type: string - metadata: - properties: - continue: - type: string - remainingItemCount: - type: integer - resourceVersion: - type: string - selfLink: - type: string - type: object - reason: - type: string - status: - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} diff --git a/charts/gerrit-operator-crds/templates/gerritnetworks.gerritoperator.google.com-v1.yml b/charts/gerrit-operator-crds/templates/gerritnetworks.gerritoperator.google.com-v1.yml deleted file mode 100644 index 1319e6f..0000000 --- a/charts/gerrit-operator-crds/templates/gerritnetworks.gerritoperator.google.com-v1.yml +++ /dev/null @@ -1,267 +0,0 @@ -# Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: gerritnetworks.gerritoperator.google.com -spec: - group: gerritoperator.google.com - names: - kind: GerritNetwork - plural: gerritnetworks - shortNames: - - gn - singular: gerritnetwork - scope: Namespaced - versions: - - name: v1beta11 - schema: - openAPIV3Schema: - properties: - spec: - properties: - gerritReplica: - properties: - httpPort: - type: integer - name: - type: string - sshPort: - type: integer - type: object - ingress: - properties: - ambassador: - properties: - createHost: - type: boolean - id: - items: - type: string - type: array - type: object - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - istio: - properties: - gatewaySelector: - additionalProperties: - type: string - type: object - type: object - ssh: - properties: - enabled: - type: boolean - type: object - tls: - properties: - enabled: - type: boolean - secret: - type: string - type: object - type: object - primaryGerrit: - properties: - httpPort: - type: integer - name: - type: string - sshPort: - type: integer - type: object - receiver: - properties: - httpPort: - type: integer - name: - type: string - type: object - type: object - status: - properties: - apiVersion: - type: string - code: - type: integer - details: - properties: - causes: - items: - properties: - field: - type: string - message: - type: string - reason: - type: string - type: object - type: array - group: - type: string - kind: - type: string - name: - type: string - retryAfterSeconds: - type: integer - uid: - type: string - type: object - kind: - type: string - message: - type: string - metadata: - properties: - continue: - type: string - remainingItemCount: - type: integer - resourceVersion: - type: string - selfLink: - type: string - type: object - reason: - type: string - status: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} - - name: v1beta10 - schema: - openAPIV3Schema: - properties: - spec: - properties: - gerritReplica: - properties: - httpPort: - type: integer - name: - type: string - sshPort: - type: integer - type: object - ingress: - properties: - ambassador: - properties: - createHost: - type: boolean - id: - items: - type: string - type: array - type: object - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - istio: - properties: - gatewaySelector: - additionalProperties: - type: string - type: object - type: object - ssh: - properties: - enabled: - type: boolean - type: object - tls: - properties: - enabled: - type: boolean - secret: - type: string - type: object - type: object - primaryGerrit: - properties: - httpPort: - type: integer - name: - type: string - sshPort: - type: integer - type: object - receiver: - properties: - httpPort: - type: integer - name: - type: string - type: object - type: object - status: - properties: - apiVersion: - type: string - code: - type: integer - details: - properties: - causes: - items: - properties: - field: - type: string - message: - type: string - reason: - type: string - type: object - type: array - group: - type: string - kind: - type: string - name: - type: string - retryAfterSeconds: - type: integer - uid: - type: string - type: object - kind: - type: string - message: - type: string - metadata: - properties: - continue: - type: string - remainingItemCount: - type: integer - resourceVersion: - type: string - selfLink: - type: string - type: object - reason: - type: string - status: - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} diff --git a/charts/gerrit-operator-crds/templates/gerrits.gerritoperator.google.com-v1.yml b/charts/gerrit-operator-crds/templates/gerrits.gerritoperator.google.com-v1.yml deleted file mode 100644 index 8236662..0000000 --- a/charts/gerrit-operator-crds/templates/gerrits.gerritoperator.google.com-v1.yml +++ /dev/null @@ -1,1825 +0,0 @@ -# Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: gerrits.gerritoperator.google.com -spec: - group: gerritoperator.google.com - names: - kind: Gerrit - plural: gerrits - shortNames: - - gcr - singular: gerrit - scope: Namespaced - versions: - - name: v1beta11 - schema: - openAPIV3Schema: - properties: - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - configFiles: - additionalProperties: - type: string - type: object - containerImages: - properties: - busyBox: - properties: - registry: - type: string - tag: - type: string - type: object - gerritImages: - properties: - org: - type: string - registry: - type: string - tag: - type: string - type: object - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - type: string - type: object - type: array - type: object - debug: - properties: - enabled: - type: boolean - suspend: - type: boolean - type: object - envVars: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - type: object - type: object - type: array - eventsBroker: - properties: - brokerType: - enum: - - KAFKA - - NONE - type: string - kafkaConfig: - properties: - connectString: - type: string - type: object - type: object - fluentBitSidecar: - properties: - config: - type: string - enabled: - type: boolean - image: - type: string - type: object - gracefulStopTimeout: - type: integer - ingress: - properties: - enabled: - type: boolean - host: - type: string - ssh: - properties: - enabled: - type: boolean - type: object - tlsEnabled: - type: boolean - type: object - libs: - items: - properties: - data: - properties: - executable: - type: boolean - secretRef: - type: string - type: object - name: - type: string - sha1: - type: string - url: - type: string - type: object - type: array - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - mode: - enum: - - PRIMARY - - REPLICA - type: string - plugins: - items: - properties: - data: - properties: - executable: - type: boolean - secretRef: - type: string - type: object - installAsLibrary: - type: boolean - name: - type: string - sha1: - type: string - url: - type: string - type: object - type: array - priorityClassName: - type: string - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - refdb: - properties: - database: - enum: - - NONE - - SPANNER - - ZOOKEEPER - type: string - spanner: - properties: - database: - type: string - instance: - type: string - projectName: - type: string - type: object - zookeeper: - properties: - connectString: - type: string - rootNode: - type: string - type: object - type: object - replicas: - type: integer - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - secretRef: - type: string - serverId: - type: string - service: - properties: - httpPort: - type: integer - sshPort: - type: integer - type: - type: string - type: object - serviceAccount: - type: string - site: - properties: - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - sshdAdvertisedReadPort: - type: integer - startupProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - storage: - properties: - pluginCache: - properties: - enabled: - type: boolean - type: object - sharedStorage: - properties: - externalPVC: - properties: - claimName: - type: string - enabled: - type: boolean - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - volumeName: - type: string - type: object - storageClasses: - properties: - nfsWorkaround: - properties: - chownOnStartup: - type: boolean - enabled: - type: boolean - idmapdConfig: - type: string - type: object - readWriteMany: - type: string - readWriteOnce: - type: string - type: object - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - maxSkew: - type: integer - minDomains: - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - type: object - type: array - updatePartition: - type: integer - type: object - status: - properties: - appliedConfigMapVersions: - additionalProperties: - type: string - type: object - appliedSecretVersions: - additionalProperties: - type: string - type: object - ready: - type: boolean - type: object - type: object - served: true - storage: true - subresources: - status: {} - - name: v1beta10 - schema: - openAPIV3Schema: - properties: - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - configFiles: - additionalProperties: - type: string - type: object - containerImages: - properties: - busyBox: - properties: - registry: - type: string - tag: - type: string - type: object - gerritImages: - properties: - org: - type: string - registry: - type: string - tag: - type: string - type: object - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - type: string - type: object - type: array - type: object - debug: - properties: - enabled: - type: boolean - suspend: - type: boolean - type: object - envVars: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - type: object - type: object - type: array - eventsBroker: - properties: - brokerType: - enum: - - KAFKA - - NONE - type: string - kafkaConfig: - properties: - connectString: - type: string - type: object - type: object - fluentBitSidecar: - properties: - config: - type: string - enabled: - type: boolean - image: - type: string - type: object - gracefulStopTimeout: - type: integer - ingress: - properties: - enabled: - type: boolean - host: - type: string - ssh: - properties: - enabled: - type: boolean - type: object - tlsEnabled: - type: boolean - type: object - libs: - items: - properties: - data: - properties: - executable: - type: boolean - secretRef: - type: string - type: object - name: - type: string - sha1: - type: string - url: - type: string - type: object - type: array - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - mode: - enum: - - PRIMARY - - REPLICA - type: string - plugins: - items: - properties: - data: - properties: - executable: - type: boolean - secretRef: - type: string - type: object - installAsLibrary: - type: boolean - name: - type: string - sha1: - type: string - url: - type: string - type: object - type: array - priorityClassName: - type: string - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - refdb: - properties: - database: - enum: - - NONE - - SPANNER - - ZOOKEEPER - type: string - spanner: - properties: - database: - type: string - instance: - type: string - projectName: - type: string - type: object - zookeeper: - properties: - connectString: - type: string - rootNode: - type: string - type: object - type: object - replicas: - type: integer - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - secretRef: - type: string - serverId: - type: string - service: - properties: - httpPort: - type: integer - sshPort: - type: integer - type: - type: string - type: object - serviceAccount: - type: string - site: - properties: - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - sshdAdvertisedReadPort: - type: integer - startupProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - storage: - properties: - pluginCache: - properties: - enabled: - type: boolean - type: object - sharedStorage: - properties: - externalPVC: - properties: - claimName: - type: string - enabled: - type: boolean - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - volumeName: - type: string - type: object - storageClasses: - properties: - nfsWorkaround: - properties: - chownOnStartup: - type: boolean - enabled: - type: boolean - idmapdConfig: - type: string - type: object - readWriteMany: - type: string - readWriteOnce: - type: string - type: object - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - maxSkew: - type: integer - minDomains: - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - type: object - type: array - updatePartition: - type: integer - type: object - status: - properties: - appliedConfigMapVersions: - additionalProperties: - type: string - type: object - appliedSecretVersions: - additionalProperties: - type: string - type: object - ready: - type: boolean - type: object - type: object - served: true - storage: false - subresources: - status: {} diff --git a/charts/gerrit-operator-crds/templates/gitgcs.gerritoperator.google.com-v1.yml b/charts/gerrit-operator-crds/templates/gitgcs.gerritoperator.google.com-v1.yml deleted file mode 100644 index c2a5665..0000000 --- a/charts/gerrit-operator-crds/templates/gitgcs.gerritoperator.google.com-v1.yml +++ /dev/null @@ -1,833 +0,0 @@ -# Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: gitgcs.gerritoperator.google.com -spec: - group: gerritoperator.google.com - names: - kind: GitGarbageCollection - plural: gitgcs - shortNames: - - gitgc - singular: gitgarbagecollection - scope: Namespaced - versions: - - name: v1beta11 - schema: - openAPIV3Schema: - properties: - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - cluster: - type: string - disableBitmapIndex: - type: boolean - disablePackRefs: - type: boolean - preservePacks: - type: boolean - projects: - items: - type: string - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - schedule: - type: string - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - type: object - status: - properties: - excludedProjects: - items: - type: string - type: array - replicateAll: - type: boolean - state: - enum: - - ACTIVE - - CONFLICT - - ERROR - - INACTIVE - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} - - name: v1beta10 - schema: - openAPIV3Schema: - properties: - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - cluster: - type: string - disableBitmapIndex: - type: boolean - disablePackRefs: - type: boolean - preservePacks: - type: boolean - projects: - items: - type: string - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - schedule: - type: string - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - type: object - status: - properties: - excludedProjects: - items: - type: string - type: array - replicateAll: - type: boolean - state: - enum: - - ACTIVE - - CONFLICT - - ERROR - - INACTIVE - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} diff --git a/charts/gerrit-operator-crds/templates/incomingreplicationtasks.gerritoperator.google.com-v1.yml b/charts/gerrit-operator-crds/templates/incomingreplicationtasks.gerritoperator.google.com-v1.yml deleted file mode 100644 index 64da055..0000000 --- a/charts/gerrit-operator-crds/templates/incomingreplicationtasks.gerritoperator.google.com-v1.yml +++ /dev/null @@ -1,1127 +0,0 @@ -# Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: incomingreplicationtasks.gerritoperator.google.com -spec: - group: gerritoperator.google.com - names: - kind: IncomingReplicationTask - plural: incomingreplicationtasks - singular: incomingreplicationtask - scope: Namespaced - versions: - - name: v1beta11 - schema: - openAPIV3Schema: - properties: - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - config: - properties: - remotes: - items: - properties: - fetch: - items: - properties: - localRepo: - type: string - refSpec: - type: string - remoteRepo: - type: string - required: - - remoteRepo - type: object - type: array - name: - type: string - timeout: - type: string - url: - type: string - required: - - name - - url - type: object - type: array - required: - - remotes - type: object - containerImages: - properties: - busyBox: - properties: - registry: - type: string - tag: - type: string - type: object - gerritImages: - properties: - org: - type: string - registry: - type: string - tag: - type: string - type: object - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - type: string - type: object - type: array - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - schedule: - type: string - secretRef: - type: string - storage: - properties: - pluginCache: - properties: - enabled: - type: boolean - type: object - sharedStorage: - properties: - externalPVC: - properties: - claimName: - type: string - enabled: - type: boolean - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - volumeName: - type: string - type: object - storageClasses: - properties: - nfsWorkaround: - properties: - chownOnStartup: - type: boolean - enabled: - type: boolean - idmapdConfig: - type: string - type: object - readWriteMany: - type: string - readWriteOnce: - type: string - type: object - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - required: - - schedule - - config - type: object - status: - properties: - apiVersion: - type: string - code: - type: integer - details: - properties: - causes: - items: - properties: - field: - type: string - message: - type: string - reason: - type: string - type: object - type: array - group: - type: string - kind: - type: string - name: - type: string - retryAfterSeconds: - type: integer - uid: - type: string - type: object - kind: - type: string - message: - type: string - metadata: - properties: - continue: - type: string - remainingItemCount: - type: integer - resourceVersion: - type: string - selfLink: - type: string - type: object - reason: - type: string - status: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} - - name: v1beta10 - schema: - openAPIV3Schema: - properties: - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - config: - properties: - remotes: - items: - properties: - fetch: - items: - properties: - localRepo: - type: string - refSpec: - type: string - remoteRepo: - type: string - required: - - remoteRepo - type: object - type: array - name: - type: string - timeout: - type: string - url: - type: string - required: - - name - - url - type: object - type: array - required: - - remotes - type: object - containerImages: - properties: - busyBox: - properties: - registry: - type: string - tag: - type: string - type: object - gerritImages: - properties: - org: - type: string - registry: - type: string - tag: - type: string - type: object - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - type: string - type: object - type: array - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - schedule: - type: string - secretRef: - type: string - storage: - properties: - pluginCache: - properties: - enabled: - type: boolean - type: object - sharedStorage: - properties: - externalPVC: - properties: - claimName: - type: string - enabled: - type: boolean - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - volumeName: - type: string - type: object - storageClasses: - properties: - nfsWorkaround: - properties: - chownOnStartup: - type: boolean - enabled: - type: boolean - idmapdConfig: - type: string - type: object - readWriteMany: - type: string - readWriteOnce: - type: string - type: object - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - required: - - schedule - - config - type: object - status: - properties: - apiVersion: - type: string - code: - type: integer - details: - properties: - causes: - items: - properties: - field: - type: string - message: - type: string - reason: - type: string - type: object - type: array - group: - type: string - kind: - type: string - name: - type: string - retryAfterSeconds: - type: integer - uid: - type: string - type: object - kind: - type: string - message: - type: string - metadata: - properties: - continue: - type: string - remainingItemCount: - type: integer - resourceVersion: - type: string - selfLink: - type: string - type: object - reason: - type: string - status: - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} diff --git a/charts/gerrit-operator-crds/templates/receivers.gerritoperator.google.com-v1.yml b/charts/gerrit-operator-crds/templates/receivers.gerritoperator.google.com-v1.yml deleted file mode 100644 index cf51805..0000000 --- a/charts/gerrit-operator-crds/templates/receivers.gerritoperator.google.com-v1.yml +++ /dev/null @@ -1,1359 +0,0 @@ -# Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: receivers.gerritoperator.google.com -spec: - group: gerritoperator.google.com - names: - kind: Receiver - plural: receivers - shortNames: - - grec - singular: receiver - scope: Namespaced - versions: - - name: v1beta11 - schema: - openAPIV3Schema: - properties: - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - containerImages: - properties: - busyBox: - properties: - registry: - type: string - tag: - type: string - type: object - gerritImages: - properties: - org: - type: string - registry: - type: string - tag: - type: string - type: object - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - type: string - type: object - type: array - type: object - credentialSecretRef: - type: string - ingress: - properties: - enabled: - type: boolean - host: - type: string - ssh: - properties: - enabled: - type: boolean - type: object - tlsEnabled: - type: boolean - type: object - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - maxSurge: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - priorityClassName: - type: string - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - replicas: - type: integer - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - service: - properties: - httpPort: - type: integer - type: - type: string - type: object - storage: - properties: - sharedStorage: - properties: - externalPVC: - properties: - claimName: - type: string - enabled: - type: boolean - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - volumeName: - type: string - type: object - storageClasses: - properties: - nfsWorkaround: - properties: - chownOnStartup: - type: boolean - enabled: - type: boolean - idmapdConfig: - type: string - type: object - readWriteMany: - type: string - readWriteOnce: - type: string - type: object - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - maxSkew: - type: integer - minDomains: - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - type: object - type: array - type: object - status: - properties: - appliedCredentialSecretVersion: - type: string - ready: - type: boolean - type: object - type: object - served: true - storage: true - subresources: - status: {} - - name: v1beta10 - schema: - openAPIV3Schema: - properties: - spec: - properties: - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - podAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - podAntiAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - containerImages: - properties: - busyBox: - properties: - registry: - type: string - tag: - type: string - type: object - gerritImages: - properties: - org: - type: string - registry: - type: string - tag: - type: string - type: object - imagePullPolicy: - type: string - imagePullSecrets: - items: - properties: - name: - type: string - type: object - type: array - type: object - credentialSecretRef: - type: string - ingress: - properties: - enabled: - type: boolean - host: - type: string - ssh: - properties: - enabled: - type: boolean - type: object - tlsEnabled: - type: boolean - type: object - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - maxSurge: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - priorityClassName: - type: string - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - initialDelaySeconds: - type: integer - periodSeconds: - type: integer - successThreshold: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - type: integer - timeoutSeconds: - type: integer - type: object - replicas: - type: integer - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - service: - properties: - httpPort: - type: integer - type: - type: string - type: object - storage: - properties: - sharedStorage: - properties: - externalPVC: - properties: - claimName: - type: string - enabled: - type: boolean - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - size: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - volumeName: - type: string - type: object - storageClasses: - properties: - nfsWorkaround: - properties: - chownOnStartup: - type: boolean - enabled: - type: boolean - idmapdConfig: - type: string - type: object - readWriteMany: - type: string - readWriteOnce: - type: string - type: object - type: object - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - maxSkew: - type: integer - minDomains: - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - type: object - type: array - type: object - status: - properties: - appliedCredentialSecretVersion: - type: string - ready: - type: boolean - type: object - type: object - served: true - storage: false - subresources: - status: {} diff --git a/charts/gerrit-operator-crds/values.yaml b/charts/gerrit-operator-crds/values.yaml deleted file mode 100644 index e69de29..0000000 diff --git a/charts/gerrit-operator/.helmignore b/charts/gerrit-operator/.helmignore deleted file mode 100644 index 0e8a0eb..0000000 --- a/charts/gerrit-operator/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/charts/gerrit-operator/Chart.yaml b/charts/gerrit-operator/Chart.yaml deleted file mode 100644 index 7bc7141..0000000 --- a/charts/gerrit-operator/Chart.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# yaml-language-server: $schema=https://json.schemastore.org/chart.json -apiVersion: v2 -type: application -name: gerrit-operator -icon: https://avatars.githubusercontent.com/u/7028910?s=200&v=4 -description: Deployment for the code-review gerrit-operator with a service. -version: 0.1.13 -appVersion: v0.1-732-g4afbf06d -sources: -- https://code.252.no/tommy/helm-charts -- https://www.gerritcodereview.com -- https://github.com/GerritCodeReview/k8s-gerrit/tree/master/helm-charts/gerrit-operator -keywords: -- gerrit -- codereview -- operator -maintainers: -- name: Tommy Skaug - email: tommy@skaug.me -dependencies: -- name: gerrit-operator-crds - version: 0.1.1 - repository: "file://../gerrit-operator-crds" diff --git a/charts/gerrit-operator/templates/_helpers.tpl b/charts/gerrit-operator/templates/_helpers.tpl deleted file mode 100644 index 8418f5d..0000000 --- a/charts/gerrit-operator/templates/_helpers.tpl +++ /dev/null @@ -1,70 +0,0 @@ -{{/* -Expand the name of the chart. -*/}} -{{- define "gerrit-operator.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "gerrit-operator.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} -{{- if contains $name .Release.Name }} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} -{{- end }} -{{- end }} -{{- end }} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "gerrit-operator.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Get the correct image tag name -*/}} -{{- define "gerrit-operator.imageTag" -}} -{{- .Values.image.tag | default (printf "%s" .Chart.AppVersion) -}} -{{- end -}} - -{{/* -Selector labels -*/}} -{{- define "gerrit-operator.selectorLabels" -}} -app.kubernetes.io/name: {{ include "gerrit-operator.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "gerrit-operator.labels" -}} -helm.sh/chart: {{ include "gerrit-operator.chart" . }} -app: gerrit-operator -{{ include "gerrit-operator.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Create the name of the service account to use -*/}} -{{- define "gerrit-operator.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} -{{- default (include "gerrit-operator.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- default "default" .Values.serviceAccount.name }} -{{- end }} -{{- end }} diff --git a/charts/gerrit-operator/templates/operator.yaml b/charts/gerrit-operator/templates/operator.yaml deleted file mode 100644 index 2f4d8f0..0000000 --- a/charts/gerrit-operator/templates/operator.yaml +++ /dev/null @@ -1,67 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "gerrit-operator.name" . }} - namespace: {{ .Release.Namespace }} - labels: - {{- include "gerrit-operator.labels" . | nindent 4 }} -spec: - selector: - matchLabels: - app: gerrit-operator - {{- include "gerrit-operator.selectorLabels" . | nindent 6 }} - template: - metadata: - labels: - app: gerrit-operator - {{- include "gerrit-operator.selectorLabels" . | nindent 8 }} - spec: - strategy: - type: Recreate - securityContext: - {{- toYaml .Values.podSecurityContext | nindent 8 }} - serviceAccountName: {{ include "gerrit-operator.fullname" . }} - {{- with .Values.image.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - containers: - - name: {{ include "gerrit-operator.name" . }} - image: {{ .Values.image.repository }}:{{ include "gerrit-operator.imageTag" . }} - imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - - name: NAMESPACE - value: {{ .Release.Namespace }} - - name: INGRESS - value: {{ .Values.ingress | default "NONE" }} - - name: CLUSTER_MODE - value: "{{ .Values.cluster.mode | toString }}" - ports: - - containerPort: 80 - securityContext: - {{- toYaml .Values.securityContext | nindent 12 }} - readinessProbe: - httpGet: - path: /health - port: 8080 - scheme: HTTPS - initialDelaySeconds: 10 - livenessProbe: - httpGet: - path: /health - port: 8080 - scheme: HTTPS - initialDelaySeconds: 30 - {{- if .Values.externalKeyStore.enabled }} - volumeMounts: - - name: ssl - readOnly: true - mountPath: /operator - {{- end }} - {{- if .Values.externalKeyStore.enabled }} - volumes: - - name: ssl - secret: - secretName: {{ .Values.externalKeyStore.existingSecret }} - {{- end }} diff --git a/charts/gerrit-operator/templates/rbac.yaml b/charts/gerrit-operator/templates/rbac.yaml deleted file mode 100644 index 22949c8..0000000 --- a/charts/gerrit-operator/templates/rbac.yaml +++ /dev/null @@ -1,80 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "gerrit-operator.fullname" . }} - namespace: {{ .Release.Namespace }} - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: {{ include "gerrit-operator.fullname" . }}-admin -subjects: -- kind: ServiceAccount - name: {{ include "gerrit-operator.fullname" . }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: {{ include "gerrit-operator.fullname" . }} - apiGroup: "" - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: {{ include "gerrit-operator.fullname" . }} -rules: -- apiGroups: - - "batch" - resources: - - cronjobs - - jobs - verbs: - - '*' -- apiGroups: - - "apps" - resources: - - statefulsets - - deployments - verbs: - - '*' -- apiGroups: - - "" - resources: - - configmaps - - persistentvolumeclaims - - secrets - - services - verbs: - - '*' -- apiGroups: - - "storage.k8s.io" - resources: - - storageclasses - verbs: - - 'get' - - 'list' -- apiGroups: - - "apiextensions.k8s.io" - resources: - - customresourcedefinitions - verbs: - - '*' -- apiGroups: - - "gerritoperator.google.com" - resources: - - '*' - verbs: - - '*' -- apiGroups: - - "admissionregistration.k8s.io" - resources: - - 'validatingwebhookconfigurations' - verbs: - - '*' -- apiGroups: - - "networking.k8s.io" - resources: - - ingresses - verbs: - - '*' diff --git a/charts/gerrit-operator/values.yaml b/charts/gerrit-operator/values.yaml deleted file mode 100644 index f245a90..0000000 --- a/charts/gerrit-operator/values.yaml +++ /dev/null @@ -1,24 +0,0 @@ -image: - repository: docker.io/k8sgerrit/gerrit-operator - imagePullPolicy: IfNotPresent - imagePullSecrets: [] - -# Default if empty: NONE -# Optional: INGRESS -ingress: "" - -## Required to use an external/persistent keystore, otherwise a keystore using -## self-signed certificates will be generated -externalKeyStore: - enabled: false - # existing secret must be configured like this: - # keystore.jks: "externalKeyStore.jks" - # keystore.password: "externalKeyStore.password | b64enc" - exisitingSecret: none - -cluster: - mode: HIGH_AVAILABILITY - -podSecurityContext: {} - -securityContext: {} diff --git a/charts/gerrit/.helmignore b/charts/gerrit/.helmignore deleted file mode 100644 index 4f4562f..0000000 --- a/charts/gerrit/.helmignore +++ /dev/null @@ -1,24 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj - -docs/ -supplements/ diff --git a/charts/gerrit/Chart.yaml b/charts/gerrit/Chart.yaml deleted file mode 100644 index 247b0e6..0000000 --- a/charts/gerrit/Chart.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: v2 -appVersion: 3.10.0 -description: |- - Gerrit is a free, web-based team code collaboration tool. Software developers - in a team can review each other's modifications on their source code using - a Web browser and approve or reject those changes. It integrates closely with - Git, a distributed version control system. [1] - - [1](https://en.wikipedia.org/wiki/Gerrit_(software) -name: gerrit -version: 0.2.0 -maintainers: -- name: Thomas Draebing - email: thomas.draebing@sap.com -- name: Matthias Sohn - email: matthias.sohn@sap.com -- name: Sasa Zivkov - email: sasa.zivkov@sap.com -- name: Christian Halstrick - email: christian.halstrick@sap.com -home: https://gerrit.googlesource.com/k8s-gerrit/+/master/helm-charts/gerrit-replica -icon: http://commondatastorage.googleapis.com/gerrit-static/diffy-w200.png -sources: -- https://gerrit.googlesource.com/k8s-gerrit/+/master/ -keywords: -- gerrit -- git diff --git a/charts/gerrit/LICENSE b/charts/gerrit/LICENSE deleted file mode 100644 index 028fc9f..0000000 --- a/charts/gerrit/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright (C) 2018 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/charts/gerrit/README.md b/charts/gerrit/README.md deleted file mode 100644 index 8300e0a..0000000 --- a/charts/gerrit/README.md +++ /dev/null @@ -1,460 +0,0 @@ -# Gerrit on Kubernetes - -Gerrit is a web-based code review tool, which acts as a Git server. This helm -chart provides a Gerrit setup that can be deployed on Kubernetes. -In addition, the chart provides a CronJob to perform Git garbage collection. - -***note -Gerrit versions before 3.0 are no longer supported, since the support of ReviewDB -was removed. -*** - -## Prerequisites - -- Helm (>= version 3.0) - - (Check out [this guide](https://docs.helm.sh/using_helm/#quickstart-guide) - how to install and use helm.) - -- Access to a provisioner for persistent volumes with `Read Write Many (RWM)`- - capability. - - A list of applicaple volume types can be found - [here](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes). - This project was developed using the - [NFS-server-provisioner helm chart](https://github.com/helm/charts/tree/master/stable/nfs-server-provisioner), - a NFS-provisioner deployed in the Kubernetes cluster itself. Refer to - [this guide](/helm-charts/gerrit/docs/nfs-provisioner.md) of how to - deploy it in context of this project. - -- A domain name that is configured to point to the IP address of the node running - the Ingress controller on the kubernetes cluster (as described - [here](http://alesnosek.com/blog/2017/02/14/accessing-kubernetes-pods-from-outside-of-the-cluster/)). - -- (Optional: Required, if SSL is configured) - A [Java keystore](https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#httpd.sslKeyStore) - to be used by Gerrit. - -## Installing the Chart - -***note -**ATTENTION:** The value for `ingress.host` is required for rendering -the chart's templates. The nature of the value does not allow defaults. -Thus a custom `values.yaml`-file setting this value is required! -*** - -To install the chart with the release name `gerrit`, execute: - -```sh -cd $(git rev-parse --show-toplevel)/helm-charts -helm install \ - gerrit \ # release name - ./gerrit \ # path to chart - -f .yaml -``` - -The command deploys the Gerrit instance on the current Kubernetes cluster. -The [configuration section](#Configuration) lists the parameters that can be -configured during installation. - -## Configuration - -The following sections list the configurable values in `values.yaml`. To configure -a Gerrit setup, make a copy of the `values.yaml`-file and change the parameters -as needed. The configuration can be applied by installing the chart as described -[above](#Installing-the-chart). - -In addition, single options can be set without creating a custom `values.yaml`: - -```sh -cd $(git rev-parse --show-toplevel)/helm-charts -helm install \ - gerrit \ # release name - ./gerrit \ # path to chart - --set=gitRepositoryStorage.size=100Gi -``` - -### Container images - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `images.busybox.registry` | The registry to pull the busybox container images from | `docker.io` | -| `images.busybox.tag` | The busybox image tag to use | `latest` | -| `images.registry.name` | The image registry to pull the container images from | `` | -| `images.registry.ImagePullSecret.name` | Name of the ImagePullSecret | `image-pull-secret` (if empty no image pull secret will be deployed) | -| `images.registry.ImagePullSecret.create` | Whether to create an ImagePullSecret | `false` | -| `images.registry.ImagePullSecret.username` | The image registry username | `nil` | -| `images.registry.ImagePullSecret.password` | The image registry password | `nil` | -| `images.version` | The image version (image tag) to use | `latest` | -| `images.imagePullPolicy` | Image pull policy | `Always` | -| `images.additionalImagePullSecrets` | Additional image pull policies that pods should use | `[]` | - -### Labels - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `additionalLabels` | Additional labels for resources managed by this Helm chart | `{}` | - -### Storage classes - -For information of how a `StorageClass` is configured in Kubernetes, read the -[official Documentation](https://kubernetes.io/docs/concepts/storage/storage-classes/#introduction). - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `storageClasses.default.name` | The name of the default StorageClass (RWO) | `default` | -| `storageClasses.default.create` | Whether to create the StorageClass | `false` | -| `storageClasses.default.provisioner` | Provisioner of the StorageClass | `kubernetes.io/aws-ebs` | -| `storageClasses.default.reclaimPolicy` | Whether to `Retain` or `Delete` volumes, when they become unbound | `Delete` | -| `storageClasses.default.parameters` | Parameters for the provisioner | `parameters.type: gp2`, `parameters.fsType: ext4` | -| `storageClasses.default.mountOptions` | The mount options of the default StorageClass | `[]` | -| `storageClasses.default.allowVolumeExpansion` | Whether to allow volume expansion. | `false` | -| `storageClasses.shared.name` | The name of the shared StorageClass (RWM) | `shared-storage` | -| `storageClasses.shared.create` | Whether to create the StorageClass | `false` | -| `storageClasses.shared.provisioner` | Provisioner of the StorageClass | `nfs` | -| `storageClasses.shared.reclaimPolicy` | Whether to `Retain` or `Delete` volumes, when they become unbound | `Delete` | -| `storageClasses.shared.parameters` | Parameters for the provisioner | `parameters.mountOptions: vers=4.1` | -| `storageClasses.shared.mountOptions` | The mount options of the shared StorageClass | `[]` | -| `storageClasses.shared.allowVolumeExpansion` | Whether to allow volume expansion. | `false` | - -### Network policies - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `networkPolicies.enabled` | Whether to enable preconfigured NetworkPolicies | `false` | -| `networkPolicies.dnsPorts` | List of ports used by DNS-service (e.g. KubeDNS) | `[53, 8053]` | - -The NetworkPolicies provided here are quite strict and do not account for all -possible scenarios. Thus, custom NetworkPolicies have to be added, e.g. for -allowing Gerrit to replicate to a Gerrit replica. By default, the egress traffic -of the gerrit pod is blocked, except for connections to the DNS-server. -Thus, replication which requires Gerrit to perform git pushes to the replica will -not work. The chart provides the possibility to define custom rules for egress- -traffic of the gerrit pod under `gerrit.networkPolicy.egress`. -Depending on the scenario, there are different ways to allow the required -connections. The easiest way is to allow all egress-traffic for the gerrit -pods: - -```yaml -gerrit: - networkPolicy: - egress: - - {} -``` - -If the remote that is replicated to is running in a pod on the same cluster and -the service-DNS is used as the remote's URL (e.g. http://gerrit-replica-git-backend-service:80/git/${name}.git), -a podSelector (and namespaceSelector, if the pod is running in a different -namespace) can be used to whitelist the traffic: - -```yaml -gerrit: - networkPolicy: - egress: - - to: - - podSelector: - matchLabels: - app: git-backend -``` - -If the remote is outside the cluster, the IP of the remote or its load balancer -can also be whitelisted, e.g.: - -```yaml -gerrit: - networkPolicy: - egress: - - to: - - ipBlock: - cidr: xxx.xxx.0.0/16 -``` - -The same principle also applies to other use cases, e.g. connecting to a database. -For more information about the NetworkPolicy resource refer to the -[Kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/network-policies/). - -### Workaround for NFS - -Kubernetes will not always be able to adapt the ownership of the files within NFS -volumes. Thus, a workaround exists that will add init-containers to -adapt file ownership. Note, that only the ownership of the root directory of the -volume will be changed. All data contained within will be expected to already be -owned by the user used by Gerrit. Also the ID-domain will be configured to ensure -correct ID-mapping. - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `nfsWorkaround.enabled` | Whether the volume used is an NFS-volume | `false` | -| `nfsWorkaround.chownOnStartup` | Whether to chown the volume on pod startup | `false` | -| `nfsWorkaround.idDomain` | The ID-domain that should be used to map user-/group-IDs for the NFS mount | `localdomain.com` | - -### Storage for Git repositories - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `gitRepositoryStorage.externalPVC.use` | Whether to use a PVC deployed outside the chart | `false` | -| `gitRepositoryStorage.externalPVC.name` | Name of the external PVC | `git-repositories-pvc` | -| `gitRepositoryStorage.size` | Size of the volume storing the Git repositories | `5Gi` | - -If the git repositories should be persisted even if the chart is deleted and in -a way that the volume containing them can be mounted by the reinstalled chart, -the PVC claiming the volume has to be created independently of the chart. To use -the external PVC, set `gitRepositoryStorage.externalPVC.enabled` to `true` and -give the name of the PVC under `gitRepositoryStorage.externalPVC.name`. - -### Storage for Logs - -The logs can be stored in a dedicated persistent volume. This volume has to be a -read-write-many volume to be able to be used by multiple pods. - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `logStorage.enabled` | Whether to enable persistence of logs | `false` | -| `logStorage.externalPVC.use` | Whether to use a PVC deployed outside the chart | `false` | -| `logStorage.externalPVC.name` | Name of the external PVC | `gerrit-logs-pvc` | -| `logStorage.size` | Size of the volume | `5Gi` | -| `logStorage.cleanup.enabled` | Whether to regularly delete old logs | `false` | -| `logStorage.cleanup.schedule` | Cron schedule defining when to run the cleanup job | `0 0 * * *` | -| `logStorage.cleanup.retentionDays` | Number of days to retain the logs | `14` | -| `logStorage.cleanup.resources` | Resources the container is allowed to use | `requests.cpu: 100m` | -| `logStorage.cleanup.additionalPodLabels` | Additional labels for pods | `{}` | -| | | `requests.memory: 256Mi` | -| | | `limits.cpu: 100m` | -| | | `limits.memory: 256Mi` | - -Each pod will create a separate folder for its logs, allowing to trace logs to -the respective pods. - -### CA certificate - -Some application may require TLS verification. If the default CA built into the -containers is not enough a custom CA certificate can be given to the deployment. -Note, that Gerrit will require its CA in a JKS keytore, which is described below. - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `caCert` | CA certificate for TLS verification (if not set, the default will be used) | `None` | - -### Ingress - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `ingress.enabled` | Whether to enable the Ingress | `false` | -| `ingress.host` | REQUIRED: Host name to use for the Ingress (required for Ingress) | `nil` | -| `ingress.additionalAnnotations` | Additional annotations for the Ingress | `nil` | -| `ingress.tls.enabled` | Whether to enable TLS termination in the Ingress | `false` | -| `ingress.tls.secret.create` | Whether to create a TLS-secret | `true` | -| `ingress.tls.secret.name` | Name of an external secret that will be used as a TLS-secret | `nil` | -| `ingress.tls.cert` | Public SSL server certificate | `-----BEGIN CERTIFICATE-----` | -| `ingress.tls.key` | Private SSL server certificate | `-----BEGIN RSA PRIVATE KEY-----` | - -***note -For graceful shutdown to work with an ingress, the ingress controller has to be -configured to gracefully close the connections as well. -*** - -### Git garbage collection - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `gitGC.image` | Image name of the Git-GC container image | `k8sgerrit/git-gc` | -| `gitGC.schedule` | Cron-formatted schedule with which to run Git garbage collection | `0 6,18 * * *` | -| `gitGC.resources` | Configure the amount of resources the pod requests/is allowed | `requests.cpu: 100m` | -| | | `requests.memory: 256Mi` | -| | | `limits.cpu: 100m` | -| | | `limits.memory: 256Mi` | -| `gitGC.logging.persistence.enabled` | Whether to persist logs | `true` | -| `gitGC.logging.persistence.size` | Storage size for persisted logs | `1Gi` | -| `gitGC.tolerations` | Taints and tolerations work together to ensure that pods are not scheduled onto inappropriate nodes. For more information, please refer to the following documents. [Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration) | [] | -| `gitGC.nodeSelector` | Assigns a Pod to the specified Nodes. For more information, please refer to the following documents. [Assign Pods to Nodes](https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes/). [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) | {} | -| `gitGC.affinity` | Assigns a Pod to the specified Nodes. For more information, please refer to the following documents. [Assign Pods to Nodes using Node Affinity](https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/). [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) | {} | -| `gitGC.additionalPodLabels` | Additional labels for Pods | `{}` | - -### Gerrit - -***note -The way the Jetty servlet used by Gerrit works, the Gerrit component of the -gerrit chart actually requires the URL to be known, when the chart is installed. -The suggested way to do that is to use the provided Ingress resource. This requires -that a URL is available and that the DNS is configured to point the URL to the -IP of the node the Ingress controller is running on! -*** - -***note -Setting the canonical web URL in the gerrit.config to the host used for the Ingress -is mandatory, if access to Gerrit is required! -*** - -***note -While the chart allows to configure multiple replica for the Gerrit StatefulSet, -scaling of Gerrit is currently not supported, since no mechanism to guarantee a -consistent state is currently in place. This is planned to be implemented in the -future. -*** - -| Parameter | Description | Default | -|-----------|-------------|---------| -| `gerrit.images.gerritInit` | Image name of the Gerrit init container image | `k8sgerrit/gerrit-init` | -| `gerrit.images.gerrit` | Image name of the Gerrit container image | `k8sgerrit/gerrit` | -| `gerrit.tolerations` | Taints and tolerations work together to ensure that pods are not scheduled onto inappropriate nodes. For more information, please refer to the following documents. [Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration) | [] | -| `gerrit.topologySpreadConstraints` | Control how Pods are spread across your cluster among failure-domains. For more information, please refer to the following documents. [Pod Topology Spread Constraints](https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints) | {} | -| `gerrit.nodeSelector` | Assigns a Pod to the specified Nodes. For more information, please refer to the following documents. [Assign Pods to Nodes](https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes/). [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) | {} | -| `gerrit.affinity` | Assigns a Pod to the specified Nodes. For more information, please refer to the following documents. [Assign Pods to Nodes using Node Affinity](https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/). [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) | {} | -| `gerrit.additionalAnnotations` | Additional annotations for the Pods | {} | -| `gerrit.additionalPodLabels` | Additional labels for Pods | `{}` | -| `gerrit.replicas` | Number of replica pods to deploy | `1` | -| `gerrit.updatePartition` | Ordinal at which to start updating pods. Pods with a lower ordinal will not be updated. | `0` | -| `gerrit.resources` | Configure the amount of resources the pod requests/is allowed | `requests.cpu: 1` | -| | | `requests.memory: 5Gi` | -| | | `limits.cpu: 1` | -| | | `limits.memory: 6Gi` | -| `gerrit.persistence.enabled` | Whether to persist the Gerrit site | `true` | -| `gerrit.persistence.size` | Storage size for persisted Gerrit site | `10Gi` | -| `gerrit.probeScheme` | Scheme for probes, for example HTTPS | `nil` | -| `gerrit.livenessProbe` | Configuration of the liveness probe timings | `{initialDelaySeconds: 30, periodSeconds: 5}` | -| `gerrit.readinessProbe` | Configuration of the readiness probe timings | `{initialDelaySeconds: 5, periodSeconds: 1}` | -| `gerrit.startupProbe` | Configuration of the startup probe timings | `{initialDelaySeconds: 10, periodSeconds: 5}` | -| `gerrit.gracefulStopTimeout` | Time in seconds Kubernetes will wait until killing the pod during termination (has to be longer then Gerrit's httpd.gracefulStopTimeout to allow graceful shutdown of Gerrit) | `90` | -| `gerrit.networkPolicy.ingress` | Custom ingress-network policy for gerrit pods | `nil` | -| `gerrit.networkPolicy.egress` | Custom egress-network policy for gerrit pods | `nil` | -| `gerrit.service.additionalAnnotations` | Additional annotations for the Service | `{}` | -| `gerrit.service.loadBalancerSourceRanges` | The list of allowed IPs for the Service | `[]` | -| `gerrit.service.type` | Which kind of Service to deploy | `NodePort` | -| `gerrit.service.externalTrafficPolicy` | Specify how traffic from external is handled | `Cluster` | -| `gerrit.service.http.port` | Port over which to expose HTTP | `80` | -| `gerrit.service.ssh.enabled` | Whether to enable SSH | `false` | -| `gerrit.service.ssh.port` | Port over which to expose SSH | `29418` | -| `gerrit.keystore` | base64-encoded Java keystore (`cat keystore.jks \| base64`) to be used by Gerrit, when using SSL | `nil` | -| `gerrit.index.type` | Index type used by Gerrit (either `lucene` or `elasticsearch`) | `lucene` | -| `gerrit.pluginManagement.plugins` | List of Gerrit plugins to install | `[]` | -| `gerrit.pluginManagement.plugins[0].name` | Name of plugin | `nil` | -| `gerrit.pluginManagement.plugins[0].url` | Download url of plugin. If given the plugin will be downloaded, otherwise it will be installed from the gerrit.war-file. | `nil` | -| `gerrit.pluginManagement.plugins[0].sha1` | SHA1 sum of plugin jar used to ensure file integrity and version (optional) | `nil` | -| `gerrit.pluginManagement.plugins[0].installAsLibrary` | Whether the plugin should be symlinked to the lib-dir in the Gerrit site. | `nil` | -| `gerrit.pluginManagement.libs` | List of Gerrit library modules to install | `[]` | -| `gerrit.pluginManagement.libs[0].name` | Name of the lib module | `nil` | -| `gerrit.pluginManagement.libs[0].url` | Download url of lib module. | `nil` | -| `gerrit.pluginManagement.libs[0].sha1` | SHA1 sum of plugin jar used to ensure file integrity and version | `nil` | -| `gerrit.pluginManagement.cache.enabled` | Whether to cache downloaded plugins | `false` | -| `gerrit.pluginManagement.cache.size` | Size of the volume used to store cached plugins | `1Gi` | -| `gerrit.priorityClassName` | Name of the PriorityClass to apply to the master pod | `nil` | -| `gerrit.etc.config` | Map of config files (e.g. `gerrit.config`) that will be mounted to `$GERRIT_SITE/etc`by a ConfigMap | `{gerrit.config: ..., replication.config: ...}`[see here](#Gerrit-config-files) | -| `gerrit.etc.secret` | Map of config files (e.g. `secure.config`) that will be mounted to `$GERRIT_SITE/etc`by a Secret | `{secure.config: ...}` [see here](#Gerrit-config-files) | -| `gerrit.additionalConfigMaps` | Allows to mount additional ConfigMaps into a subdirectory of `$SITE/data` | `[]` | -| `gerrit.additionalConfigMaps[*].name` | Name of the ConfigMap | `nil` | -| `gerrit.additionalConfigMaps[*].subDir` | Subdirectory under `$SITE/data` into which the files should be symlinked | `nil` | -| `gerrit.additionalConfigMaps[*].data` | Data of the ConfigMap. If not set, ConfigMap has to be created manually | `nil` | - -### Gerrit config files - -The gerrit chart provides a ConfigMap containing the configuration files -used by Gerrit, e.g. `gerrit.config` and a Secret containing sensitive configuration -like the `secure.config` to configure the Gerrit installation in the Gerrit -component. The content of the config files can be set in the `values.yaml` under -the keys `gerrit.etc.config` and `gerrit.etc.secret` respectively. -The key has to be the filename (eg. `gerrit.config`) and the file's contents -the value. This way an arbitrary number of configuration files can be loaded into -the `$GERRIT_SITE/etc`-directory, e.g. for plugins. -All configuration options for Gerrit are described in detail in the -[official documentation of Gerrit](https://gerrit-review.googlesource.com/Documentation/config-gerrit.html). -Some options however have to be set in a specified way for Gerrit to work as -intended with the chart: - -- `gerrit.basePath` - - Path to the directory containing the repositories. The chart mounts this - directory from a persistent volume to `/var/gerrit/git` in the container. For - Gerrit to find the correct directory, this has to be set to `git`. - -- `gerrit.serverId` - - In Gerrit-version higher than 2.14 Gerrit needs a server ID, which is used by - NoteDB. Gerrit would usually generate a random ID on startup, but since the - gerrit.config file is read only, when mounted as a ConfigMap this fails. - Thus the server ID has to be set manually! - -- `gerrit.canonicalWebUrl` - - The canonical web URL has to be set to the Ingress host. - -- `httpd.listenURL` - - This has to be set to `proxy-http://*:8080/` or `proxy-https://*:8080`, - depending of TLS is enabled in the Ingress or not, otherwise the Jetty - servlet will run into an endless redirect loop. - -- `httpd.gracefulStopTimeout` / `sshd.gracefulStopTimeout` - - To enable graceful shutdown of the embedded jetty server and SSHD, a timeout - has to be set with this option. This will be the maximum time, Gerrit will wait - for HTTP requests to finish before shutdown. - -- `container.user` - - The technical user in the Gerrit container is called `gerrit`. Thus, this - value is required to be `gerrit`. - -- `container.javaHome` - - This has to be set to `/usr/lib/jvm/java-11-openjdk-amd64`, since this is - the path of the Java installation in the container. - -- `container.javaOptions` - - The maximum heap size has to be set. And its value has to be lower than the - memory resource limit set for the container (e.g. `-Xmx4g`). In your calculation, - allow memory for other components running in the container. - -To enable liveness- and readiness probes, the healthcheck plugin will be installed -by default. Note, that by configuring to use a packaged or downloaded version of -the healthcheck plugin, the configured version will take precedence over the default -version. The plugin is by default configured to disable the `querychanges` and -`auth` healthchecks, since these would not work on a new and empty Gerrit server. -The default configuration can be overwritten by adding the `healthcheck.config` -file as a key-value pair to `gerrit.etc.config` as for every other configuration. - -SSH keys should be configured via the helm-chart using the `gerrit.etc.secret` -map. Gerrit will create its own keys, if none are present in the site, but if -multiple Gerrit pods are running, each Gerrit instance would have its own keys. -Users accessing Gerrit via a load balancer would get issues due to changing -host keys. - -### Installing Gerrit plugins - -There are several different ways to install plugins for Gerrit: - -- **RECOMMENDED: Package the plugins to install into the WAR-file containing Gerrit.** - This method provides the most stable way to install plugins, but requires to - use a custom built gerrit-war file and container images, if plugins are required - that are not part of the official `release.war`-file. - -- **Download and cache plugins.** The chart supports downloading the plugin files and - to cache them in a separate volume, that is shared between Gerrit-pods. SHA1- - sums are used to validate plugin-files and versions. - -- **Download plugins, but do not cache them.** This should only be used during - development to save resources (the shared volume). Each pod will download the - plugin-files on its own. Pods will fail to start up, if the download-URL is - not valid anymore at some point in time. - -## Upgrading the Chart - -To upgrade an existing installation of the gerrit chart, e.g. to install -a newer chart version or to use an updated custom `values.yaml`-file, execute -the following command: - -```sh -cd $(git rev-parse --show-toplevel)/helm-charts -helm upgrade \ - \ - ./gerrit \ # path to chart - -f .yaml -``` - -## Uninstalling the Chart - -To delete the chart from the cluster, use: - -```sh -helm delete -``` diff --git a/charts/gerrit/docs/nfs-provisioner.md b/charts/gerrit/docs/nfs-provisioner.md deleted file mode 100644 index 9e83d47..0000000 --- a/charts/gerrit/docs/nfs-provisioner.md +++ /dev/null @@ -1,64 +0,0 @@ -# Installing a NFS-provisioner - -Gerrit requires access to a persistent volume capable of running in -`Read Write Many (RWM)`-mode to store the git repositories, since the repositories -have to be accessed by mutiple pods. One possibility to provide such volumes -is to install a provisioner for NFS-volumes into the same Kubernetes-cluster. -This document will guide through the process. - -The [Kubernetes external-storage project](https://github.com/kubernetes-incubator/external-storage) -provides an out-of-tree dynamic [provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/nfs) -for NFS volumes. A chart exists for easy deployment of the project onto a -Kubernetes cluster. The chart's sources can be found [here](https://github.com/helm/charts/tree/master/stable/nfs-server-provisioner). - -## Prerequisites - -This guide will use Helm to install the NFS-provisioner. Thus, Helm has to be -installed. - -## Installing the nfs-server-provisioner chart - -A custom `values.yaml`-file containing a configuration tested with the -gerrit charts can be found in the `supplements/nfs`-directory in the -gerrit chart's root directory. In addition a file stating the tested -version of the nfs-server-provisioner chart is present in the same directory. - -If needed, adapt the `values.yaml`-file for the nfs-server-provisioner chart -further and then run: - -```sh -cd $(git rev-parse --show-toplevel)/helm-charts/gerrit/supplements/nfs -helm install nfs \ - stable/nfs-server-provisioner \ - -f values.yaml \ - --version $(cat VERSION) -``` - -For a description of the configuration options, refer to the -[chart's documentation](https://github.com/helm/charts/blob/master/stable/nfs-server-provisioner/README.md). - -Here are some tips for configuring the nfs-server-provisioner chart to work with -the gerrit chart: - -- Deploying more than 1 `replica` led to some reliability issues in tests and - should be further tested for now, if required. -- The name of the StorageClass created for NFS-volumes has to be the same as the - one defined in the gerrit chart for `storageClasses.shared.name` -- The StorageClas for NFS-volumes needs to have the parameter `mountOptions: vers=4.1`, - due to compatibility [issues](https://github.com/kubernetes-incubator/external-storage/issues/223) - with Ganesha. - -## Deleting the nfs-server-provisioner chart - -***note -**Attention:** Never delete the nfs-server-provisioner chart, if there is still a -PersistentVolumeClaim and Pods using a NFS-volume provisioned by the NFS server -provisioner. This will lead to crashed pods, that will not be terminated correctly. -*** - -If no Pod or PVC is using a NFS-volume provisioned by the NFS server provisioner -anymore, delete it like any other chart: - -```sh -helm delete nfs -``` diff --git a/charts/gerrit/supplements/nfs/VERSION b/charts/gerrit/supplements/nfs/VERSION deleted file mode 100644 index 7dff5b8..0000000 --- a/charts/gerrit/supplements/nfs/VERSION +++ /dev/null @@ -1 +0,0 @@ -0.2.1 \ No newline at end of file diff --git a/charts/gerrit/supplements/nfs/values.yaml b/charts/gerrit/supplements/nfs/values.yaml deleted file mode 100644 index a413d8a..0000000 --- a/charts/gerrit/supplements/nfs/values.yaml +++ /dev/null @@ -1,42 +0,0 @@ -# Deploying more than 1 `replica` led to some reliability issues in tests and -# should be further tested for now, if required. -replicaCount: 1 - -image: - repository: quay.io/kubernetes_incubator/nfs-provisioner - tag: v1.0.9 - pullPolicy: IfNotPresent - -service: - type: ClusterIP - nfsPort: 2049 - mountdPort: 20048 - rpcbindPort: 51413 - -persistence: - enabled: true - storageClass: default - accessMode: ReadWriteOnce - size: 7.5Gi - -storageClass: - create: true - defaultClass: false - # The name of the StorageClass has to be the same as the one defined in the - # gerrit chart for `storageClasses.shared.name` - name: shared-storage - parameters: - # Required! - mountOptions: vers=4.1 - reclaimPolicy: Delete - -rbac: - create: true - -resources: - requests: - cpu: 100m - memory: 256Mi - limits: - cpu: 100m - memory: 256Mi diff --git a/charts/gerrit/templates/NOTES.txt b/charts/gerrit/templates/NOTES.txt deleted file mode 100644 index b71b3b0..0000000 --- a/charts/gerrit/templates/NOTES.txt +++ /dev/null @@ -1,4 +0,0 @@ -A primary Gerrit instance has been deployed. -================================== - -Gerrit may be accessed under: {{ .Values.ingress.host }} diff --git a/charts/gerrit/templates/_helpers.tpl b/charts/gerrit/templates/_helpers.tpl deleted file mode 100644 index bace6fe..0000000 --- a/charts/gerrit/templates/_helpers.tpl +++ /dev/null @@ -1,20 +0,0 @@ -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "gerrit.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create secret to access docker registry -*/}} -{{- define "imagePullSecret" }} -{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.images.registry.name (printf "%s:%s" .Values.images.registry.ImagePullSecret.username .Values.images.registry.ImagePullSecret.password | b64enc) | b64enc }} -{{- end }} - -{{/* -Add '/' to registry if needed. -*/}} -{{- define "registry" -}} -{{ if .Values.images.registry.name }}{{- printf "%s/" .Values.images.registry.name -}}{{end}} -{{- end -}} diff --git a/charts/gerrit/templates/gerrit.configmap.yaml b/charts/gerrit/templates/gerrit.configmap.yaml deleted file mode 100644 index 83c188c..0000000 --- a/charts/gerrit/templates/gerrit.configmap.yaml +++ /dev/null @@ -1,78 +0,0 @@ -{{- $root := . -}} - -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ .Release.Name }}-gerrit-configmap - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -data: - {{- range $key, $value := .Values.gerrit.etc.config }} - {{ $key }}: -{{ toYaml $value | indent 4 }} - {{- end }} - {{- if not (hasKey .Values.gerrit.etc.config "healthcheck.config") }} - healthcheck.config: |- - [healthcheck "auth"] - # On new instances there may be no users to use for healthchecks - enabled = false - [healthcheck "querychanges"] - # On new instances there won't be any changes to query - enabled = false - {{- end }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ .Release.Name }}-gerrit-init-configmap - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -data: - gerrit-init.yaml: |- - {{ if .Values.caCert -}} - caCertPath: /var/config/ca.crt - {{- end }} - pluginCacheEnabled: {{ .Values.gerrit.pluginManagement.cache.enabled }} - pluginCacheDir: /var/mnt/plugins - {{- if .Values.gerrit.pluginManagement.plugins }} - plugins: -{{ toYaml .Values.gerrit.pluginManagement.plugins | indent 6}} - {{- end }} - {{- if .Values.gerrit.pluginManagement.libs }} - libs: -{{ toYaml .Values.gerrit.pluginManagement.libs | indent 6}} - {{- end }} -{{- range .Values.gerrit.additionalConfigMaps -}} -{{- if .data }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ $root.Release.Name }}-{{ .name }} - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ $root.Release.Name }} - chart: {{ template "gerrit.chart" $root }} - heritage: {{ $root.Release.Service }} - release: {{ $root.Release.Name }} - {{- if $root.Values.additionalLabels }} -{{ toYaml $root.Values.additionalLabels | indent 4 }} - {{- end }} -data: -{{ toYaml .data | indent 2 }} -{{- end }} -{{- end }} diff --git a/charts/gerrit/templates/gerrit.secrets.yaml b/charts/gerrit/templates/gerrit.secrets.yaml deleted file mode 100644 index 72cfad3..0000000 --- a/charts/gerrit/templates/gerrit.secrets.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ .Release.Name }}-gerrit-secure-config - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -data: - {{ if .Values.gerrit.keystore -}} - keystore: {{ .Values.gerrit.keystore }} - {{- end }} - {{- range $key, $value := .Values.gerrit.etc.secret }} - {{ $key }}: {{ $value | b64enc }} - {{- end }} -type: Opaque diff --git a/charts/gerrit/templates/gerrit.service.yaml b/charts/gerrit/templates/gerrit.service.yaml deleted file mode 100644 index fe16d45..0000000 --- a/charts/gerrit/templates/gerrit.service.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ .Release.Name }}-gerrit-service - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} - {{- if .Values.gerrit.service.additionalAnnotations }} - annotations: -{{ toYaml .Values.gerrit.service.additionalAnnotations | indent 4 }} - {{- end }} -spec: - {{ with .Values.gerrit.service }} - {{- if .loadBalancerSourceRanges -}} - loadBalancerSourceRanges: -{{- range .loadBalancerSourceRanges }} - - {{ . | quote }} -{{- end }} - {{- end }} - ports: - - name: http - port: {{ .http.port }} - targetPort: 8080 - {{- if .ssh.enabled }} - - name: ssh - port: {{ .ssh.port }} - targetPort: 29418 - {{- end }} - type: {{ .type }} - externalTrafficPolicy: {{ .externalTrafficPolicy }} - {{- end }} - selector: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - diff --git a/charts/gerrit/templates/gerrit.stateful-set.yaml b/charts/gerrit/templates/gerrit.stateful-set.yaml deleted file mode 100644 index 2669325..0000000 --- a/charts/gerrit/templates/gerrit.stateful-set.yaml +++ /dev/null @@ -1,299 +0,0 @@ -{{- $root := . -}} - -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: {{ .Release.Name }}-gerrit-stateful-set - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -spec: - serviceName: {{ .Release.Name }}-gerrit-service - replicas: {{ .Values.gerrit.replicas }} - updateStrategy: - rollingUpdate: - partition: {{ .Values.gerrit.updatePartition }} - selector: - matchLabels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - template: - metadata: - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 8 }} - {{- end }} - {{- if .Values.gerrit.additionalPodLabels }} -{{ toYaml .Values.gerrit.additionalPodLabels | indent 8 }} - {{- end }} - annotations: - chartRevision: "{{ .Release.Revision }}" - {{- if .Values.gerrit.additionalAnnotations }} -{{ toYaml .Values.gerrit.additionalAnnotations | indent 8 }} - {{- end }} - spec: - {{- with .Values.gerrit.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.gerrit.topologySpreadConstraints }} - topologySpreadConstraints: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.gerrit.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.gerrit.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.gerrit.priorityClassName }} - priorityClassName: {{ . }} - {{- end }} - terminationGracePeriodSeconds: {{ .Values.gerrit.gracefulStopTimeout }} - securityContext: - fsGroup: 100 - {{ if .Values.images.registry.ImagePullSecret.name -}} - imagePullSecrets: - - name: {{ .Values.images.registry.ImagePullSecret.name }} - {{- range .Values.images.additionalImagePullSecrets }} - - name: {{ . }} - {{- end }} - {{- end }} - initContainers: - {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.chownOnStartup }} - - name: nfs-init - image: {{ .Values.images.busybox.registry -}}/busybox:{{- .Values.images.busybox.tag }} - command: - - sh - - -c - args: - - | - chown 1000:100 /var/mnt/logs - chown 1000:100 /var/mnt/git - env: - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - volumeMounts: - - name: logs - subPathExpr: "gerrit-replica/$(POD_NAME)" - mountPath: "/var/mnt/logs" - - name: git-repositories - mountPath: "/var/mnt/git" - {{- if .Values.nfsWorkaround.idDomain }} - - name: nfs-config - mountPath: "/etc/idmapd.conf" - subPath: idmapd.conf - {{- end }} - {{- end }} - - name: gerrit-init - image: {{ template "registry" . }}{{ .Values.gerrit.images.gerritInit }}:{{ .Values.images.version }} - imagePullPolicy: {{ .Values.images.imagePullPolicy }} - env: - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - volumeMounts: - - name: gerrit-site - mountPath: "/var/gerrit" - - name: git-repositories - mountPath: "/var/mnt/git" - - name: logs - subPathExpr: "gerrit/$(POD_NAME)" - mountPath: "/var/mnt/logs" - - name: gerrit-init-config - mountPath: "/var/config/gerrit-init.yaml" - subPath: gerrit-init.yaml - {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.idDomain }} - - name: nfs-config - mountPath: "/etc/idmapd.conf" - subPath: idmapd.conf - {{- end }} - {{- if and .Values.gerrit.pluginManagement.cache.enabled }} - - name: gerrit-plugin-cache - mountPath: "/var/mnt/plugins" - {{- end }} - {{ if eq .Values.gerrit.index.type "elasticsearch" -}} - - name: gerrit-index-config - mountPath: "/var/mnt/index" - {{- end }} - - name: gerrit-config - mountPath: "/var/mnt/etc/config" - - name: gerrit-secure-config - mountPath: "/var/mnt/etc/secret" - {{ if .Values.caCert -}} - - name: tls-ca - subPath: ca.crt - mountPath: "/var/config/ca.crt" - {{- end }} - {{- range .Values.gerrit.additionalConfigMaps }} - - name: {{ .name }} - mountPath: "/var/mnt/data/{{ .subDir }}" - {{- end }} - containers: - - name: gerrit - image: {{ template "registry" . }}{{ .Values.gerrit.images.gerrit }}:{{ .Values.images.version }} - imagePullPolicy: {{ .Values.images.imagePullPolicy }} - env: - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - lifecycle: - preStop: - exec: - command: - - "/bin/ash" - - "-c" - - "kill -2 $(pidof java) && tail --pid=$(pidof java) -f /dev/null" - ports: - - name: gerrit-port - containerPort: 8080 - {{- if .Values.gerrit.service.ssh.enabled }} - - name: gerrit-ssh - containerPort: 29418 - {{- end }} - volumeMounts: - - name: gerrit-site - mountPath: "/var/gerrit" - - name: git-repositories - mountPath: "/var/mnt/git" - - name: logs - subPathExpr: "gerrit/$(POD_NAME)" - mountPath: "/var/mnt/logs" - {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.idDomain }} - - name: nfs-config - mountPath: "/etc/idmapd.conf" - subPath: idmapd.conf - {{- end }} - {{ if eq .Values.gerrit.index.type "elasticsearch" -}} - - name: gerrit-index-config - mountPath: "/var/mnt/index" - {{- end }} - - name: gerrit-config - mountPath: "/var/mnt/etc/config" - - name: gerrit-secure-config - mountPath: "/var/mnt/etc/secret" - {{- range .Values.gerrit.additionalConfigMaps }} - - name: {{ .name }} - mountPath: "/var/mnt/data/{{ .subDir }}" - {{- end }} - resources: -{{ toYaml .Values.gerrit.resources | indent 10 }} - livenessProbe: - httpGet: - path: /config/server/healthcheck~status - port: gerrit-port -{{- if .Values.gerrit.probeScheme }} - scheme: {{ .Values.gerrit.probeScheme }} -{{- end }} -{{ toYaml .Values.gerrit.livenessProbe | indent 10 }} - readinessProbe: - httpGet: - path: /config/server/healthcheck~status - port: gerrit-port -{{- if .Values.gerrit.probeScheme }} - scheme: {{ .Values.gerrit.probeScheme }} -{{- end }} -{{ toYaml .Values.gerrit.readinessProbe | indent 10 }} - startupProbe: - httpGet: - path: /config/server/healthcheck~status - port: gerrit-port -{{- if .Values.gerrit.probeScheme }} - scheme: {{ .Values.gerrit.probeScheme }} -{{- end }} -{{ toYaml .Values.gerrit.startupProbe | indent 10 }} - volumes: - {{ if not .Values.gerrit.persistence.enabled -}} - - name: gerrit-site - emptyDir: {} - {{- end }} - {{- if and .Values.gerrit.pluginManagement.cache.enabled }} - - name: gerrit-plugin-cache - persistentVolumeClaim: - claimName: {{ .Release.Name }}-plugin-cache-pvc - {{- end }} - - name: git-repositories - persistentVolumeClaim: - {{- if .Values.gitRepositoryStorage.externalPVC.use }} - claimName: {{ .Values.gitRepositoryStorage.externalPVC.name }} - {{- else }} - claimName: {{ .Release.Name }}-git-repositories-pvc - {{- end }} - - name: logs - {{ if .Values.logStorage.enabled -}} - persistentVolumeClaim: - {{- if .Values.logStorage.externalPVC.use }} - claimName: {{ .Values.logStorage.externalPVC.name }} - {{- else }} - claimName: {{ .Release.Name }}-log-pvc - {{- end }} - {{ else -}} - emptyDir: {} - {{- end }} - - name: gerrit-init-config - configMap: - name: {{ .Release.Name }}-gerrit-init-configmap - {{ if eq .Values.gerrit.index.type "elasticsearch" -}} - - name: gerrit-index-config - persistentVolumeClaim: - claimName: {{ .Release.Name }}-gerrit-index-config-pvc - {{- end }} - - name: gerrit-config - configMap: - name: {{ .Release.Name }}-gerrit-configmap - - name: gerrit-secure-config - secret: - secretName: {{ .Release.Name }}-gerrit-secure-config - {{ if .Values.caCert -}} - - name: tls-ca - secret: - secretName: {{ .Release.Name }}-tls-ca - {{- end }} - {{- range .Values.gerrit.additionalConfigMaps }} - - name: {{ .name }} - configMap: - name: {{ if .data }}{{ $root.Release.Name }}-{{ .name }}{{ else }}{{ .name }}{{ end }} - {{- end }} - {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.idDomain }} - - name: nfs-config - configMap: - name: {{ .Release.Name }}-nfs-configmap - {{- end }} - {{ if .Values.gerrit.persistence.enabled -}} - volumeClaimTemplates: - - metadata: - name: gerrit-site - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 8 }} - {{- end }} - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: {{ .Values.gerrit.persistence.size }} - storageClassName: {{ .Values.storageClasses.default.name }} - {{- end }} diff --git a/charts/gerrit/templates/gerrit.storage.yaml b/charts/gerrit/templates/gerrit.storage.yaml deleted file mode 100644 index 1d85fc6..0000000 --- a/charts/gerrit/templates/gerrit.storage.yaml +++ /dev/null @@ -1,45 +0,0 @@ -{{- if and .Values.gerrit.pluginManagement.cache.enabled }} -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ .Release.Name }}-plugin-cache-pvc - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -spec: - accessModes: - - ReadWriteMany - resources: - requests: - storage: {{ .Values.gerrit.pluginManagement.cache.size }} - storageClassName: {{ .Values.storageClasses.shared.name }} -{{- end }} -{{ if eq .Values.gerrit.index.type "elasticsearch" -}} ---- -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ .Release.Name }}-gerrit-index-config-pvc - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -spec: - accessModes: - - ReadWriteMany - resources: - requests: - storage: 10Mi - storageClassName: {{ .Values.storageClasses.shared.name }} -{{- end }} diff --git a/charts/gerrit/templates/git-gc.cronjob.yaml b/charts/gerrit/templates/git-gc.cronjob.yaml deleted file mode 100644 index 8230e5d..0000000 --- a/charts/gerrit/templates/git-gc.cronjob.yaml +++ /dev/null @@ -1,132 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: {{ .Release.Name }}-git-gc - labels: - app.kubernetes.io/component: git-gc - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -spec: - schedule: {{ .Values.gitGC.schedule | quote }} - concurrencyPolicy: "Forbid" - jobTemplate: - spec: - template: - metadata: - labels: - app.kubernetes.io/component: git-gc - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 12 }} - {{- end }} - {{- if .Values.gitGC.additionalPodLabels }} -{{ toYaml .Values.gitGC.additionalPodLabels | indent 12 }} - {{- end }} - annotations: - cluster-autoscaler.kubernetes.io/safe-to-evict: "false" - spec: - {{- with .Values.gitGC.tolerations }} - tolerations: - {{- toYaml . | nindent 10 }} - {{- end }} - {{- with .Values.gitGC.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.gitGC.affinity }} - affinity: - {{- toYaml . | nindent 12 }} - {{- end }} - restartPolicy: OnFailure - securityContext: - runAsUser: 1000 - fsGroup: 100 - {{ if .Values.images.registry.ImagePullSecret.name -}} - imagePullSecrets: - - name: {{ .Values.images.registry.ImagePullSecret.name }} - {{- range .Values.images.additionalImagePullSecrets }} - - name: {{ . }} - {{- end }} - {{- end }} - initContainers: - {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.chownOnStartup }} - - name: nfs-init - image: {{ .Values.images.busybox.registry -}}/busybox:{{- .Values.images.busybox.tag }} - command: - - sh - - -c - args: - - | - chown 1000:100 /var/mnt/logs - chown 1000:100 /var/mnt/git - env: - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - volumeMounts: - - name: logs - subPathExpr: "git-gc/$(POD_NAME)" - mountPath: "/var/mnt/logs" - - name: git-repositories - mountPath: "/var/mnt/git" - {{- if .Values.nfsWorkaround.idDomain }} - - name: nfs-config - mountPath: "/etc/idmapd.conf" - subPath: idmapd.conf - {{- end }} - {{- end }} - containers: - - name: git-gc - imagePullPolicy: {{ .Values.images.imagePullPolicy }} - image: {{ template "registry" . }}{{ .Values.gitGC.image }}:{{ .Values.images.version }} - env: - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - resources: -{{ toYaml .Values.gitGC.resources | indent 14 }} - volumeMounts: - - name: git-repositories - mountPath: "/var/gerrit/git" - - name: logs - subPathExpr: "git-gc/$(POD_NAME)" - mountPath: "/var/log/git" - {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.idDomain }} - - name: nfs-config - mountPath: "/etc/idmapd.conf" - subPath: idmapd.conf - {{- end }} - volumes: - - name: git-repositories - persistentVolumeClaim: - {{- if .Values.gitRepositoryStorage.externalPVC.use }} - claimName: {{ .Values.gitRepositoryStorage.externalPVC.name }} - {{- else }} - claimName: {{ .Release.Name }}-git-repositories-pvc - {{- end }} - - name: logs - {{ if .Values.logStorage.enabled -}} - persistentVolumeClaim: - {{- if .Values.logStorage.externalPVC.use }} - claimName: {{ .Values.logStorage.externalPVC.name }} - {{- else }} - claimName: {{ .Release.Name }}-log-pvc - {{- end }} - {{ else -}} - emptyDir: {} - {{- end }} - {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.idDomain }} - - name: nfs-config - configMap: - name: {{ .Release.Name }}-nfs-configmap - {{- end }} diff --git a/charts/gerrit/templates/git-gc.storage.yaml b/charts/gerrit/templates/git-gc.storage.yaml deleted file mode 100644 index c69a647..0000000 --- a/charts/gerrit/templates/git-gc.storage.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{ if .Values.gitGC.logging.persistence.enabled -}} -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ .Release.Name }}-git-gc-logs-pvc - labels: - app.kubernetes.io/component: git-gc - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: {{ .Values.gitGC.logging.persistence.size }} - storageClassName: {{ .Values.storageClasses.default.name }} -{{- end }} diff --git a/charts/gerrit/templates/global.secrets.yaml b/charts/gerrit/templates/global.secrets.yaml deleted file mode 100644 index b2c3d5d..0000000 --- a/charts/gerrit/templates/global.secrets.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{ if .Values.caCert -}} -apiVersion: v1 -kind: Secret -metadata: - name: {{ .Release.Name }}-tls-ca - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -data: - ca.crt: {{ .Values.caCert | b64enc }} -type: Opaque -{{- end }} diff --git a/charts/gerrit/templates/image-pull.secret.yaml b/charts/gerrit/templates/image-pull.secret.yaml deleted file mode 100644 index d107472..0000000 --- a/charts/gerrit/templates/image-pull.secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -{{ if and .Values.images.registry.ImagePullSecret.name .Values.images.registry.ImagePullSecret.create -}} -apiVersion: v1 -kind: Secret -metadata: - name: {{ .Values.images.registry.ImagePullSecret.name }} -type: kubernetes.io/dockerconfigjson -data: - .dockerconfigjson: {{ template "imagePullSecret" . }} -{{- end }} \ No newline at end of file diff --git a/charts/gerrit/templates/ingress.yaml b/charts/gerrit/templates/ingress.yaml deleted file mode 100644 index eb19655..0000000 --- a/charts/gerrit/templates/ingress.yaml +++ /dev/null @@ -1,64 +0,0 @@ -{{- if .Values.ingress.enabled }} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ .Release.Name }}-gerrit-ingress - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.ingress.additionalLabels }} -{{ toYaml .Values.ingress.additionalLabels | indent 4 }} - {{- end }} - annotations: - nginx.ingress.kubernetes.io/proxy-body-size: {{ .Values.ingress.maxBodySize | default "50m" }} - {{- if .Values.ingress.additionalAnnotations }} -{{ toYaml .Values.ingress.additionalAnnotations | indent 4 }} - {{- end }} -spec: - {{ if .Values.ingress.tls.enabled -}} - tls: - - hosts: - - {{ .Values.ingress.host }} - {{ if .Values.ingress.tls.secret.create -}} - secretName: {{ .Release.Name }}-gerrit-tls-secret - {{- else }} - secretName: {{ .Values.ingress.tls.secret.name }} - {{- end }} - {{- end }} - rules: - - host: {{required "A host URL is required for the Gerrit Ingress. Please set 'ingress.host'" .Values.ingress.host }} - http: - paths: - - pathType: Prefix - path: / - backend: - service: - name: {{ .Release.Name }}-gerrit-service - port: - number: {{ .Values.gerrit.service.http.port }} -{{- end }} ---- -{{ if and .Values.ingress.tls.enabled .Values.ingress.tls.secret.create -}} -apiVersion: v1 -kind: Secret -metadata: - name: {{ .Release.Name }}-gerrit-tls-secret - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.ingress.additionalLabels }} -{{ toYaml .Values.ingress.additionalLabels | indent 4 }} - {{- end }} -type: kubernetes.io/tls -data: - {{ with .Values.ingress.tls -}} - tls.crt: {{ .cert | b64enc }} - tls.key: {{ .key | b64enc }} - {{- end }} -{{- end }} diff --git a/charts/gerrit/templates/log-cleaner.cronjob.yaml b/charts/gerrit/templates/log-cleaner.cronjob.yaml deleted file mode 100644 index c1314f1..0000000 --- a/charts/gerrit/templates/log-cleaner.cronjob.yaml +++ /dev/null @@ -1,65 +0,0 @@ -{{- if and .Values.logStorage.enabled .Values.logStorage.cleanup.enabled }} -apiVersion: batch/v1beta1 -kind: CronJob -metadata: - name: {{ .Release.Name }}-log-cleaner - labels: - app.kubernetes.io/component: log-cleaner - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -spec: - schedule: {{ .Values.logStorage.cleanup.schedule | quote }} - concurrencyPolicy: "Forbid" - jobTemplate: - spec: - template: - metadata: - labels: - app.kubernetes.io/component: log-cleaner - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 12 }} - {{- end }} - {{- if .Values.logStorage.cleanup.additionalPodLabels }} -{{ toYaml .Values.logStorage.cleanup.additionalPodLabels | indent 12 }} - {{- end }} - spec: - restartPolicy: OnFailure - containers: - - name: log-cleaner - imagePullPolicy: {{ .Values.images.imagePullPolicy }} - image: {{ .Values.images.busybox.registry -}}/busybox:{{- .Values.images.busybox.tag }} - command: - - sh - - -c - args: - - | - find /var/logs/ \ - -mindepth 1 \ - -type f \ - -mtime +{{ .Values.logStorage.cleanup.retentionDays }} \ - -print \ - -delete - find /var/logs/ -type d -empty -delete - resources: -{{ toYaml .Values.logStorage.cleanup.resources | indent 14 }} - volumeMounts: - - name: logs - mountPath: "/var/logs" - volumes: - - name: logs - persistentVolumeClaim: - {{- if .Values.logStorage.externalPVC.use }} - claimName: {{ .Values.logStorage.externalPVC.name }} - {{- else }} - claimName: {{ .Release.Name }}-log-pvc - {{- end }} -{{- end }} diff --git a/charts/gerrit/templates/netpol.yaml b/charts/gerrit/templates/netpol.yaml deleted file mode 100644 index c0cbc4d..0000000 --- a/charts/gerrit/templates/netpol.yaml +++ /dev/null @@ -1,122 +0,0 @@ -{{ if .Values.networkPolicies.enabled -}} -kind: NetworkPolicy -apiVersion: networking.k8s.io/v1 -metadata: - name: {{ .Release.Name }}-default-deny-all - labels: - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.networkPolicies.additionalLabels }} -{{ toYaml .Values.networkPolicies.additionalLabels | indent 4 }} - {{- end }} -spec: - podSelector: - matchLabels: - chart: {{ template "gerrit.chart" . }} - release: {{ .Release.Name }} - policyTypes: - - Ingress - - Egress - ingress: [] - egress: [] ---- -{{ if .Values.networkPolicies.dnsPorts -}} -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: {{ .Release.Name }}-allow-dns-access - labels: - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.networkPolicies.additionalLabels }} -{{ toYaml .Values.networkPolicies.additionalLabels | indent 4 }} - {{- end }} -spec: - podSelector: - matchLabels: - chart: {{ template "gerrit.chart" . }} - release: {{ .Release.Name }} - policyTypes: - - Egress - egress: - - ports: - {{ range .Values.networkPolicies.dnsPorts -}} - - port: {{ . }} - protocol: UDP - - port: {{ . }} - protocol: TCP - {{ end }} -{{- end }} ---- -kind: NetworkPolicy -apiVersion: networking.k8s.io/v1 -metadata: - name: gerrit-allow-external - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} -spec: - podSelector: - matchLabels: - chart: {{ template "gerrit.chart" . }} - release: {{ .Release.Name }} - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - ingress: - - ports: - - port: 8080 - from: [] ---- -{{ if or .Values.gerrit.networkPolicy.ingress -}} -kind: NetworkPolicy -apiVersion: networking.k8s.io/v1 -metadata: - name: gerrit-custom-ingress-policies - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} -spec: - policyTypes: - - Ingress - podSelector: - matchLabels: - chart: {{ template "gerrit.chart" . }} - release: {{ .Release.Name }} - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - ingress: -{{ toYaml .Values.gerrit.networkPolicy.ingress | indent 2 }} -{{- end }} ---- -{{ if or .Values.gerrit.networkPolicy.egress -}} -kind: NetworkPolicy -apiVersion: networking.k8s.io/v1 -metadata: - name: gerrit-custom-egress-policies - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} -spec: - policyTypes: - - Egress - podSelector: - matchLabels: - chart: {{ template "gerrit.chart" . }} - release: {{ .Release.Name }} - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - egress: -{{ toYaml .Values.gerrit.networkPolicy.egress | indent 2 }} -{{- end }} -{{- end }} diff --git a/charts/gerrit/templates/nfs.configmap.yaml b/charts/gerrit/templates/nfs.configmap.yaml deleted file mode 100644 index dd2c3dd..0000000 --- a/charts/gerrit/templates/nfs.configmap.yaml +++ /dev/null @@ -1,28 +0,0 @@ -{{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.idDomain -}} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ .Release.Name }}-nfs-configmap - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -data: - idmapd.conf: |- - [General] - - Verbosity = 0 - Pipefs-Directory = /run/rpc_pipefs - # set your own domain here, if it differs from FQDN minus hostname - Domain = {{ .Values.nfsWorkaround.idDomain }} - - [Mapping] - - Nobody-User = nobody - Nobody-Group = nogroup -{{- end }} diff --git a/charts/gerrit/templates/storage.pvc.yaml b/charts/gerrit/templates/storage.pvc.yaml deleted file mode 100644 index b262402..0000000 --- a/charts/gerrit/templates/storage.pvc.yaml +++ /dev/null @@ -1,45 +0,0 @@ -{{- if not .Values.gitRepositoryStorage.externalPVC.use }} -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ .Release.Name }}-git-repositories-pvc - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -spec: - accessModes: - - ReadWriteMany - resources: - requests: - storage: {{ .Values.gitRepositoryStorage.size }} - storageClassName: {{ .Values.storageClasses.shared.name }} -{{- end }} -{{- if and .Values.logStorage.enabled (not .Values.logStorage.externalPVC.use) }} ---- -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ .Release.Name }}-log-pvc - labels: - app.kubernetes.io/component: gerrit - app.kubernetes.io/instance: {{ .Release.Name }} - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -spec: - accessModes: - - ReadWriteMany - resources: - requests: - storage: {{ .Values.logStorage.size }} - storageClassName: {{ .Values.storageClasses.shared.name }} -{{- end }} diff --git a/charts/gerrit/templates/storageclasses.yaml b/charts/gerrit/templates/storageclasses.yaml deleted file mode 100644 index 552cd6a..0000000 --- a/charts/gerrit/templates/storageclasses.yaml +++ /dev/null @@ -1,53 +0,0 @@ -{{ if .Values.storageClasses.default.create -}} -kind: StorageClass -apiVersion: storage.k8s.io/v1 -metadata: - name: {{ .Values.storageClasses.default.name }} - labels: - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -provisioner: {{ .Values.storageClasses.default.provisioner }} -reclaimPolicy: {{ .Values.storageClasses.default.reclaimPolicy }} -{{ if .Values.storageClasses.default.parameters -}} -parameters: -{{- range $key, $value := .Values.storageClasses.default.parameters }} - {{ $key }}: {{ $value }} -{{- end }} -mountOptions: -{{- range $value := .Values.storageClasses.default.mountOptions }} - - {{ $value }} -{{- end }} -allowVolumeExpansion: {{ .Values.storageClasses.default.allowVolumeExpansion }} -{{- end }} -{{- end }} ---- -{{ if .Values.storageClasses.shared.create -}} -kind: StorageClass -apiVersion: storage.k8s.io/v1 -metadata: - name: {{ .Values.storageClasses.shared.name }} - labels: - chart: {{ template "gerrit.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - {{- if .Values.additionalLabels }} -{{ toYaml .Values.additionalLabels | indent 4 }} - {{- end }} -provisioner: {{ .Values.storageClasses.shared.provisioner }} -reclaimPolicy: {{ .Values.storageClasses.shared.reclaimPolicy }} -{{ if .Values.storageClasses.shared.parameters -}} -parameters: -{{- range $key, $value := .Values.storageClasses.shared.parameters }} - {{ $key }}: {{ $value }} -{{- end }} -mountOptions: -{{- range $value := .Values.storageClasses.shared.mountOptions }} - - {{ $value }} -{{- end }} -allowVolumeExpansion: {{ .Values.storageClasses.shared.allowVolumeExpansion }} -{{- end }} -{{- end }} diff --git a/charts/gerrit/values.yaml b/charts/gerrit/values.yaml deleted file mode 100644 index ef27520..0000000 --- a/charts/gerrit/values.yaml +++ /dev/null @@ -1,336 +0,0 @@ -images: - busybox: - registry: docker.io - tag: latest - # Registry used for container images created by this project - registry: - # The registry name must NOT contain a trailing slash - name: - ImagePullSecret: - # Leave blank, if no ImagePullSecret is needed. - name: image-pull-secret - # If set to false, the gerrit chart expects either a ImagePullSecret - # with the name configured above to be present on the cluster or that no - # credentials are needed. - create: false - username: - password: - version: latest - imagePullPolicy: Always - # Additional ImagePullSecrets that already exist and should be used by the - # pods of this chart. E.g. to pull busybox from dockerhub. - additionalImagePullSecrets: [] - -# Additional labels that should be applied to all resources -additionalLabels: {} - -storageClasses: - # Storage class used for storing logs and other pod-specific persisted data - default: - # If create is set to false, an existing StorageClass with the given - # name is expected to exist in the cluster. Setting create to true will - # create a storage class with the parameters given below. - name: default - create: false - provisioner: kubernetes.io/aws-ebs - reclaimPolicy: Delete - # Use the parameters key to set all parameters needed for the provisioner - parameters: - type: gp2 - fsType: ext4 - mountOptions: [] - allowVolumeExpansion: false - # Storage class used for storing git repositories. Has to provide RWM access. - shared: - # If create is set to false, an existing StorageClass with RWM access - # mode and the given name has to be provided. - name: shared-storage - create: false - provisioner: nfs - reclaimPolicy: Delete - # Use the parameters key to set all parameters needed for the provisioner - parameters: - mountOptions: vers=4.1 - mountOptions: [] - allowVolumeExpansion: false - - -nfsWorkaround: - enabled: false - chownOnStartup: false - idDomain: localdomain.com - - -networkPolicies: - enabled: false - dnsPorts: - - 53 - - 8053 - - -gitRepositoryStorage: - externalPVC: - use: false - name: git-repositories-pvc - size: 5Gi - -logStorage: - enabled: false - externalPVC: - use: false - name: gerrit-logs-pvc - size: 5Gi - cleanup: - enabled: false - additionalPodLabels: {} - schedule: "0 0 * * *" - retentionDays: 14 - resources: - requests: - cpu: 100m - memory: 256Mi - limits: - cpu: 100m - memory: 256Mi - -caCert: - -ingress: - enabled: false - host: - # The maximum body size to allow for requests. Use "0" to allow unlimited - # reuqest body sizes. - maxBodySize: 50m - additionalAnnotations: - kubernetes.io/ingress.class: nginx - # nginx.ingress.kubernetes.io/server-alias: example.com - # nginx.ingress.kubernetes.io/whitelist-source-range: xxx.xxx.xxx.xxx - tls: - enabled: false - secret: - create: true - # `name` will only be used, if `create` is set to false to bind an - # existing secret. Otherwise the name will be automatically generated to - # avoid conflicts between multiple chart installations. - name: - # `cert`and `key` will only be used, if the secret will be created by - # this chart. - cert: |- - -----BEGIN CERTIFICATE----- - - -----END CERTIFICATE----- - key: |- - -----BEGIN RSA PRIVATE KEY----- - - -----END RSA PRIVATE KEY----- - - -gitGC: - image: k8sgerrit/git-gc - - tolerations: [] - nodeSelector: {} - affinity: {} - additionalPodLabels: {} - - schedule: 0 6,18 * * * - - resources: - requests: - cpu: 100m - memory: 256Mi - limits: - cpu: 100m - memory: 256Mi - - logging: - persistence: - enabled: true - size: 1Gi - - -gerrit: - images: - gerritInit: k8sgerrit/gerrit-init - gerrit: k8sgerrit/gerrit - - tolerations: [] - topologySpreadConstraints: {} - nodeSelector: {} - affinity: {} - additionalAnnotations: {} - additionalPodLabels: {} - - replicas: 1 - updatePartition: 0 - - # The memory limit has to be higher than the configures heap-size for Java! - resources: - requests: - cpu: 1 - memory: 5Gi - limits: - cpu: 1 - memory: 6Gi - - persistence: - enabled: true - size: 10Gi - - # If no value for probeScheme, the probe will use the default HTTP - probeScheme: HTTP - - livenessProbe: - initialDelaySeconds: 30 - periodSeconds: 5 - - readinessProbe: - initialDelaySeconds: 5 - periodSeconds: 1 - - startupProbe: - initialDelaySeconds: 10 - periodSeconds: 30 - - gracefulStopTimeout: 90 - - # The general NetworkPolicy rules implemented by this chart may be too restrictive - # for some setups, e.g. when trying to replicate to a Gerrit replica. Here - # custom rules may be added to whitelist some additional connections. - networkPolicy: - ingress: [] - egress: [] - # An example for an egress rule to allow replication to a Gerrit replica - # installed with the gerrit-replica setup in the same cluster and namespace - # by using the service as the replication destination - # (e.g. http://gerrit-replica-git-backend-service:80/git/${name}.git): - # - # - to: - # - podSelector: - # matchLabels: - # app: git-backend - - service: - additionalAnnotations: {} - loadBalancerSourceRanges: [] - type: NodePort - externalTrafficPolicy: Cluster - http: - port: 80 - ssh: - enabled: false - port: 29418 - - # `gerrit.keystore` expects a base64-encoded Java-keystore - # Since Java keystores are binary files, adding the unencoded content and - # automatic encoding using helm does not work here. - keystore: - - index: - # Either `lucene` or `elasticsearch` - type: lucene - - pluginManagement: - plugins: [] - # A plugin packaged in the gerrit.war-file - # - name: download-commands - - # A plugin packaged in the gerrit.war-file that will also be installed as a - # lib - # - name: replication - # installAsLibrary: true - - # A plugin that will be downloaded on startup - # - name: delete-project - # url: https://example.com/gerrit-plugins/delete-project.jar - # sha1: - # installAsLibrary: false - - # Only downloaded plugins will be cached. This will be ignored, if no plugins - # are downloaded. - libs: [] - cache: - enabled: false - size: 1Gi - - priorityClassName: - - etc: - # Some values are expected to have a specific value for the deployment installed - # by this chart to work. These are marked with `# FIXED`. - # Do not change them! - config: - gerrit.config: |- - [gerrit] - basePath = git # FIXED - serverId = gerrit-1 - # The canonical web URL has to be set to the Ingress host, if an Ingress - # is used. If a LoadBalancer-service is used, this should be set to the - # LoadBalancer's external IP. This can only be done manually after installing - # the chart, when you know the external IP the LoadBalancer got from the - # cluster. - canonicalWebUrl = http://example.com/ - disableReverseDnsLookup = true - [index] - type = LUCENE - [auth] - type = DEVELOPMENT_BECOME_ANY_ACCOUNT - [httpd] - # If using an ingress use proxy-http or proxy-https - listenUrl = proxy-http://*:8080/ - requestLog = true - gracefulStopTimeout = 1m - [sshd] - listenAddress = off - [transfer] - timeout = 120 s - [user] - name = Gerrit Code Review - email = gerrit@example.com - anonymousCoward = Unnamed User - [cache] - directory = cache - [container] - user = gerrit # FIXED - javaHome = /usr/lib/jvm/java-17-openjdk # FIXED - javaOptions = -Djavax.net.ssl.trustStore=/var/gerrit/etc/keystore # FIXED - javaOptions = -Xms200m - # Has to be lower than 'gerrit.resources.limits.memory'. Also - # consider memories used by other applications in the container. - javaOptions = -Xmx4g - - replication.config: |- - [gerrit] - autoReload = false - replicateOnStartup = true - defaultForceUpdate = true - - # [remote "replica"] - # url = http://gerrit-replica.example.com/git/${name}.git - # replicationDelay = 0 - # timeout = 30 - - secret: - secure.config: |- - # Password for the keystore added as value for 'gerritReplica.keystore' - # Only needed, if SSL is enabled. - #[httpd] - # sslKeyPassword = gerrit - - # Credentials for replication targets - # [remote "replica"] - # username = git - # password = secret - - # ssh_host_ecdsa_key: |- - # -----BEGIN EC PRIVATE KEY----- - - # -----END EC PRIVATE KEY----- - - # ssh_host_ecdsa_key.pub: ecdsa-sha2-nistp256... - - additionalConfigMaps: - # - name: - # subDir: - # data: - # file.txt: test diff --git a/charts/immich/Chart.yaml b/charts/immich/Chart.yaml index 2f3f932..77c61eb 100644 --- a/charts/immich/Chart.yaml +++ b/charts/immich/Chart.yaml @@ -6,7 +6,7 @@ description: | appVersion: 1.105.1 type: application icon: https://avatars.githubusercontent.com/u/109746326?s=200&v=4 -version: 1.0.0 +version: 1.0.1 maintainers: - name: Tommy Skaug email: tommy@skaug.me diff --git a/charts/paperless-ngx/Chart.yaml b/charts/paperless-ngx/Chart.yaml deleted file mode 100644 index a404f42..0000000 --- a/charts/paperless-ngx/Chart.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: v2 -name: paperless-ngx -description: | - document management system that transforms your physical documents into a searchable online archive -# renovate: image=ghcr.io/paperless-ngx/paperless-ngx -appVersion: 2.13.5 -type: application -version: 0.2.3 -maintainers: -- name: Tommy Skaug - email: tommy@skaug.me -icon: https://avatars.githubusercontent.com/u/99562962?s=200&v=4 -keywords: -- documents -- cms -- email -- server -sources: -- https://github.com/paperless-ngx/paperless-ngx -- https://docs.paperless-ngx.com/ diff --git a/charts/paperless-ngx/templates/_helpers.tpl b/charts/paperless-ngx/templates/_helpers.tpl deleted file mode 100644 index 62cdf95..0000000 --- a/charts/paperless-ngx/templates/_helpers.tpl +++ /dev/null @@ -1,30 +0,0 @@ -# Define a template for the chart's full name. -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -*/}} -{{- define "paperless-ngx.fullname" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end }} - -# Define a template for standard labels. -{{/* -Common labels -*/}} -{{- define "paperless-ngx.labels" -}} -helm.sh/chart: {{ include "paperless-ngx.chart" . }} -app.kubernetes.io/name: {{ include "paperless-ngx.fullname" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -app.kubernetes.io/version: {{ .Chart.Version | quote }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -# Define a template for the chart name and version. -{{/* -Generate basic labels -*/}} -{{- define "paperless-ngx.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" -}} -{{- end }} - -# Optionally, add more helper templates as needed. diff --git a/charts/paperless-ngx/templates/db-init.yaml b/charts/paperless-ngx/templates/db-init.yaml deleted file mode 100644 index 2499b62..0000000 --- a/charts/paperless-ngx/templates/db-init.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ include "paperless-ngx.fullname" . }}-db-init - labels: - {{- include "paperless-ngx.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": pre-install - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded -spec: - template: - spec: - restartPolicy: Never - containers: - - name: general-db-init - image: "{{ .Values.initContainers.dbInit.image.repository }}:{{ .Values.initContainers.dbInit.image.tag }}" - envFrom: - - secretRef: - name: {{ .Values.postgres.secretName }} - # Tolerate a few failures, adjust the number as needed - backoffLimit: 3 diff --git a/charts/paperless-ngx/templates/deployment-server.yaml b/charts/paperless-ngx/templates/deployment-server.yaml deleted file mode 100644 index ea037ee..0000000 --- a/charts/paperless-ngx/templates/deployment-server.yaml +++ /dev/null @@ -1,51 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "paperless-ngx.fullname" . }} - labels: - {{- include "paperless-ngx.labels" . | nindent 4 }} -spec: - replicas: 1 - selector: - matchLabels: - app: {{ include "paperless-ngx.fullname" . }} - template: - metadata: - labels: - app: {{ include "paperless-ngx.fullname" . }} - spec: - serviceAccountName: {{ include "paperless-ngx.fullname" . }} - containers: - - name: {{ include "paperless-ngx.fullname" . }} - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} - env: - - name: PAPERLESS_URL - value: {{ .Values.config.externalUrl }} - - name: PAPERLESS_TIME_ZONE - value: {{ .Values.config.timezone }} - - name: PAPERLESS_OCR_LANGUAGE - value: {{ .Values.config.ocrLanguage }} - - name: PAPERLESS_OCR_LANGUAGES - value: {{ .Values.config.textRecognitionLanguages }} - envFrom: &envFrom - - secretRef: - name: {{ .Values.envFromSecret }} - resources: - {{- toYaml .Values.resources | nindent 10 }} - ports: - - containerPort: 80 - name: http - volumeMounts: - - name: {{ include "paperless-ngx.fullname" . }}-media - mountPath: "/opt/paperless/media" - readOnly: false - - name: {{ include "paperless-ngx.fullname" . }}-data - mountPath: "/opt/paperless/data" - readOnly: false - volumes: - - name: {{ include "paperless-ngx.fullname" . }}-media - persistentVolumeClaim: - claimName: {{ .Values.persistence.mediaExistingClaim }} - - name: {{ include "paperless-ngx.fullname" . }}-data - persistentVolumeClaim: - claimName: {{ .Values.persistence.dataExistingClaim }} diff --git a/charts/paperless-ngx/templates/service-server.yaml b/charts/paperless-ngx/templates/service-server.yaml deleted file mode 100644 index a3f5645..0000000 --- a/charts/paperless-ngx/templates/service-server.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ include "paperless-ngx.fullname" . }} - labels: - {{- include "paperless-ngx.labels" . | nindent 4 }} -spec: - selector: - app: {{ include "paperless-ngx.fullname" . }} - ports: - - port: 8000 - targetPort: 8000 \ No newline at end of file diff --git a/charts/paperless-ngx/templates/serviceaccount.yaml b/charts/paperless-ngx/templates/serviceaccount.yaml deleted file mode 100644 index 5571de9..0000000 --- a/charts/paperless-ngx/templates/serviceaccount.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "paperless-ngx.fullname" . }} - labels: - {{- include "paperless-ngx.labels" . | nindent 4 }} \ No newline at end of file diff --git a/charts/paperless-ngx/tests/values.yaml b/charts/paperless-ngx/tests/values.yaml deleted file mode 100644 index 0a77302..0000000 --- a/charts/paperless-ngx/tests/values.yaml +++ /dev/null @@ -1,35 +0,0 @@ -config: - externalUrl: https://paperless.example.com/ - timezone: America/Los_Angeles - ocrLanguage: eng - textRecognitionLanguages: eng nor - -persistence: - mediaExistingClaim: paperless-ngx-media - dataExistingClaim: paperless-ngx-data - -initContainers: - dbInit: - image: - repository: ghcr.io/onedr0p/postgres-init - tag: "16" - envFrom: - - secretRef: - name: paperless-ngx-secret - -envFromSecret: paperless-ngx-secret - -image: - repository: ghcr.io/paperless-ngx/paperless-ngx - tag: 2.7.2 - -postgres: - secretName: paperless-ngx-secret - -resources: - limits: - memory: "3Gi" - cpu: "1000m" -# requests: -# cpu: 100m -# memory: 250Mi diff --git a/charts/paperless-ngx/values.yaml b/charts/paperless-ngx/values.yaml deleted file mode 100644 index bad89b9..0000000 --- a/charts/paperless-ngx/values.yaml +++ /dev/null @@ -1,35 +0,0 @@ -config: - externalUrl: https://paperless.example.com/ - timezone: America/Los_Angeles - ocrLanguage: eng - textRecognitionLanguages: eng nor - -persistence: - mediaExistingClaim: paperless-ngx-media - dataExistingClaim: paperless-ngx-data - -initContainers: - dbInit: - image: - repository: ghcr.io/onedr0p/postgres-init - tag: "16" - envFrom: - - secretRef: - name: paperless-ngx-secret - -envFromSecret: paperless-ngx-secret - -image: - repository: ghcr.io/paperless-ngx/paperless-ngx - tag: 2.13.5 - -postgres: - secretName: paperless-ngx-secret - -resources: - limits: - memory: "2Gi" - cpu: "1000m" - requests: - cpu: 100m - memory: 50Mi diff --git a/charts/vertex-synapse/Chart.yaml b/charts/vertex-synapse/Chart.yaml deleted file mode 100644 index 0d05ea7..0000000 --- a/charts/vertex-synapse/Chart.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# yaml-language-server: $schema=https://json.schemastore.org/chart.json -apiVersion: v2 -type: application -name: vertex-synapse -description: Central intelligence and analysis system. -version: 0.1.0 -# renovate: image=sissbruecker/linkding -appVersion: "2.182.0" -sources: -- https://code.252.no/tommy/helm-charts -- https://vertex.link -keywords: -- vertex -- synapse -- intelligence -- analysis -maintainers: -- name: Tommy Skaug - email: tommy@skaug.me diff --git a/charts/vertex-synapse/templates/_helpers.tpl b/charts/vertex-synapse/templates/_helpers.tpl deleted file mode 100644 index d153005..0000000 --- a/charts/vertex-synapse/templates/_helpers.tpl +++ /dev/null @@ -1,88 +0,0 @@ -{{/* -Expand the name of the chart. -*/}} -{{- define "vertex-synapse.name" -}} -{{- .Values.nameOverride | default .Chart.Name | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "vertex-synapse.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := .Values.nameOverride | default .Chart.Name -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Get the correct image tag name -*/}} -{{- define "vertex-synapse.imageTag" -}} -{{- .Values.image.tag | default (printf "%s" .Chart.AppVersion) -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "vertex-synapse.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "vertex-synapse.labels" -}} -helm.sh/chart: {{ include "vertex-synapse.chart" . }} -app.kubernetes.io/part-of: "vertex-synapse" -environment: {{ .Values.synapse.environment | quote }} -{{ include "vertex-synapse.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "vertex-synapse.selectorLabels" -}} -app.kubernetes.io/name: {{ include "vertex-synapse.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - -{{/* -Create the name of the service account to use -*/}} -{{- define "vertex-synapse.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} -{{- default (include "vertex-synapse.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- default "default" .Values.serviceAccount.name }} -{{- end }} -{{- end }} - - -{{- define "vertex-synapse.probes" -}} -startupProbe: - failureThreshold: 2147483647 - timeoutSeconds: 20 - periodSeconds: 20 - exec: - command: ['python', '-m', 'synapse.tools.healthcheck', '-c', 'cell:///vertex/storage'] -readinessProbe: - failureThreshold: 2 - initialDelaySeconds: 20 - timeoutSeconds: 20 - periodSeconds: 20 - exec: - command: ['python', '-m', 'synapse.tools.healthcheck', '-c', 'cell:///vertex/storage'] -{{- end }} \ No newline at end of file diff --git a/charts/vertex-synapse/templates/db-init.yaml b/charts/vertex-synapse/templates/db-init.yaml deleted file mode 100644 index cf801c1..0000000 --- a/charts/vertex-synapse/templates/db-init.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ include "linkding.fullname" . }}-db-init - labels: - {{- include "linkding.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": pre-install - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded -spec: - template: - spec: - restartPolicy: Never - containers: - - name: general-db-init - image: "{{ .Values.initContainers.dbInit.image.repository }}:{{ .Values.initContainers.dbInit.image.tag }}" - envFrom: - - secretRef: - name: {{ .Values.postgres.secretName }} - backoffLimit: 3 diff --git a/charts/vertex-synapse/templates/deployment-aha.yaml b/charts/vertex-synapse/templates/deployment-aha.yaml deleted file mode 100644 index e2a5c13..0000000 --- a/charts/vertex-synapse/templates/deployment-aha.yaml +++ /dev/null @@ -1,64 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "vertex-synapse.fullname" . }}-aha - namespace: {{ .Release.Namespace }} - labels: - app.kubernetes.io/name: {{ include "vertex-synapse.fullname" . }}-aha - app.kubernetes.io/instance: {{ include "vertex-synapse.fullname" . }}-aha - app.kubernetes.io/component: {{ include "vertex-synapse.fullname" . }}-aha - {{- include "vertex-synapse.labels" . | nindent 4 }} -spec: - replicas: 1 - strategy: - type: Recreate - selector: - matchLabels: - app.kubernetes.io/name: {{ include "vertex-synapse.fullname" . }}-aha - app.kubernetes.io/instance: {{ include "vertex-synapse.fullname" . }}-aha - app.kubernetes.io/component: {{ include "vertex-synapse.fullname" . }}-aha - app: {{ include "vertex-synapse.fullname" . }} - template: - metadata: - labels: - app: {{ include "vertex-synapse.fullname" . }} - spec: - serviceAccountName: {{ include "vertex-synapse.fullname" . }} - containers: - - name: {{ include "vertex-synapse.fullname" . }} - image: {{ .Values.synapse.aha.image.repository }}:{{ include "vertex-synapse.imageTag" . }} - imagePullPolicy: {{ .Values.synapse.aha.image.pullPolicy }} - env: - {{- range $i, $val := .Values.env }} - {{- if $val.value }} - - name: {{ $val.name | quote }} - value: {{ $val.value | quote }} - {{- end }} - {{- end }} - - name: SYN_AHA_AHA_NETWORK - value: {{ .Release.Namespace }}.svc.cluster.local - - name: SYN_AHA_DMON_LISTEN - value: "ssl://0.0.0.0?hostname={{ include "vertex-synapse.fullname" . }}-aha.{{ .Release.Namespace }}.svc.cluster.local&ca={{ .Release.Namespace }}.svc.cluster.local" - - name: SYN_AHA_PROVISION_LISTEN - value: "ssl://0.0.0.0:27272?hostname={{ include "vertex-synapse.fullname" . }}-aha.{{ .Release.Namespace }}.svc.cluster.local" - - name: SYN_AHA_HTTPS_PORT - value: null - # envFrom: - # - secretRef: - # name: {{ .Values.envFromSecret }} - resources: - {{- toYaml .Values.resources | nindent 10 }} - {{- include "vertex-synapse.probes" . | nindent 8 }} - ports: - - containerPort: 27492 - name: telepath - - containerPort: 27272 - name: provisioning - volumeMounts: - - name: {{ include "vertex-synapse.fullname" . }}-data - mountPath: "/vertex/storage" - readOnly: false - volumes: - - name: {{ include "vertex-synapse.fullname" . }}-data - persistentVolumeClaim: - claimName: {{ .Values.synapse.aha.persistence.existingClaim }} diff --git a/charts/vertex-synapse/templates/service-aha.yaml b/charts/vertex-synapse/templates/service-aha.yaml deleted file mode 100644 index edeee5d..0000000 --- a/charts/vertex-synapse/templates/service-aha.yaml +++ /dev/null @@ -1,26 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ include "vertex-synapse.fullname" . }}-aha - labels: - app.kubernetes.io/name: {{ include "vertex-synapse.fullname" . }}-aha - app.kubernetes.io/instance: {{ include "vertex-synapse.fullname" . }}-aha - app.kubernetes.io/component: {{ include "vertex-synapse.fullname" . }}-aha - {{- include "vertex-synapse.labels" . | nindent 4 }} -spec: - type: ClusterIP - selector: - app.kubernetes.io/name: {{ include "vertex-synapse.fullname" . }}-aha - app.kubernetes.io/instance: {{ include "vertex-synapse.fullname" . }}-aha - app.kubernetes.io/component: {{ include "vertex-synapse.fullname" . }}-aha - {{- include "vertex-synapse.labels" . | nindent 4 }} - ports: - - port: 27492 - protocol: TCP - name: telepath - - port: 27272 - protocol: TCP - name: provisioning - selector: - app: {{ include "vertex-synapse.fullname" . }} \ No newline at end of file diff --git a/charts/vertex-synapse/templates/service-cortex.yaml b/charts/vertex-synapse/templates/service-cortex.yaml deleted file mode 100644 index 486c840..0000000 --- a/charts/vertex-synapse/templates/service-cortex.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ include "vertex-synapse.fullname" . }}-cortex - namespace: {{ .Release.Namespace }} - labels: - app.kubernetes.io/name: {{ include "vertex-synapse.fullname" . }}-cortex - app.kubernetes.io/instance: {{ include "vertex-synapse.fullname" . }}-cortex - app.kubernetes.io/component: {{ include "vertex-synapse.fullname" . }}-cortex - {{- include "vertex-synapse.labels" . | nindent 4 }} -spec: - type: ClusterIP - selector: - app.kubernetes.io/name: {{ include "vertex-synapse.fullname" . }}-cortex - app.kubernetes.io/instance: {{ include "vertex-synapse.fullname" . }}-cortex - app.kubernetes.io/component: {{ include "vertex-synapse.fullname" . }}-cortex - {{- include "vertex-synapse.labels" . | nindent 4 }} - ports: - - port: 27492 - protocol: TCP - name: telepath - selector: - app: {{ include "vertex-synapse.fullname" . }} diff --git a/charts/vertex-synapse/templates/serviceaccount.yaml b/charts/vertex-synapse/templates/serviceaccount.yaml deleted file mode 100644 index 0b8390f..0000000 --- a/charts/vertex-synapse/templates/serviceaccount.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "vertex-synapse.fullname" . }} - labels: - {{- include "vertex-synapse.labels" . | nindent 4 }} \ No newline at end of file diff --git a/charts/vertex-synapse/values.yaml b/charts/vertex-synapse/values.yaml deleted file mode 100644 index f95a410..0000000 --- a/charts/vertex-synapse/values.yaml +++ /dev/null @@ -1,117 +0,0 @@ - -initContainers: - dbInit: - image: - repository: ghcr.io/onedr0p/postgres-init - tag: "16" - envFrom: - - secretRef: - name: vertex-synapse-secret - -env: -- name: TZ - value: Europe/Oslo -- name: SYN_LOG_LEVEL - value: DEBUG -- name: SYN_LOG_STRUCT - value: "false" - -envFromSecret: vertex-synapse-env-secret -postgres: - secretName: vertex-synapse-secret - -persistence: - existingClaim: vertex-synapse - - - -synapse: - environment: dev - logging: - structured: true - level: DEBUG - - cortex: - image: - registry: registry.docker.io - repository: vertexproject/synapse-aha - tag: sha256:4cd44ad6624fc562f77c92e8628bfe1ee36d9518541ac3a1a7e507ccaa077453 - pullPolicy: IfNotPresent - pullSecret: "" - persistence: - existingClaim: vertex-synapse-cortex - securityContext: - runAsUser: 999 - runAsGroup: 999 - fsGroup: 999 - - aha: - url: "ssl://aha.default.svc.cluster.local:27272/..." - persistence: - existingClaim: vertex-synapse-aha - resources: - requests: - cpu: 100m - memory: 256Mi - limits: - cpu: 500m - memory: 512Mi - securityContext: - runAsUser: 999 - runAsGroup: 999 - fsGroup: 999 - - axon: - persistence: - existingClaim: vertex-synapse-axon - resources: - requests: - cpu: 100m - memory: 256Mi - limits: - cpu: 500m - memory: 512Mi - securityContext: - runAsUser: 999 - runAsGroup: 999 - fsGroup: 999 - - jsonstor: - persistence: - existingClaim: vertex-synapse-jsonstor - resources: - requests: - cpu: 100m - memory: 256Mi - limits: - cpu: 500m - memory: 512Mi - securityContext: - runAsUser: 999 - runAsGroup: 999 - fsGroup: 999 - -securityContext: {} - -resources: {} -# limits: -# cpu: 100m -# memory: 128Mi -# requests: -# cpu: 100m -# memory: 128Mi - -affinity: {} -# nodeAffinity: -# requiredDuringSchedulingIgnoredDuringExecution: -# nodeSelectorTerms: -# - matchExpressions: -# - key: kubernetes.io/hostname -# operator: In -# values: -# - my-node-xyz - -tolerations: [] -# - key: node-role.kubernetes.io/control-plane -# operator: Exists -# effect: NoSchedule From 4d02d60eaf11ac8bdac9ce1bb40579d85198c945 Mon Sep 17 00:00:00 2001 From: Tommy Skaug Date: Thu, 14 Nov 2024 17:30:53 +0100 Subject: [PATCH 05/10] chore(repo): cleanup unused repos --- charts/vikunja/CHANGELOG.md | 7 --- charts/vikunja/Chart.yaml | 19 -------- charts/vikunja/templates/_helpers.tpl | 30 ------------ charts/vikunja/templates/db-init.yaml | 20 -------- charts/vikunja/templates/deployment.yaml | 48 -------------------- charts/vikunja/templates/service.yaml | 13 ------ charts/vikunja/templates/serviceaccount.yaml | 7 --- charts/vikunja/tests/values.yaml | 33 -------------- charts/vikunja/values.yaml | 33 -------------- 9 files changed, 210 deletions(-) delete mode 100644 charts/vikunja/CHANGELOG.md delete mode 100644 charts/vikunja/Chart.yaml delete mode 100644 charts/vikunja/templates/_helpers.tpl delete mode 100644 charts/vikunja/templates/db-init.yaml delete mode 100644 charts/vikunja/templates/deployment.yaml delete mode 100644 charts/vikunja/templates/service.yaml delete mode 100644 charts/vikunja/templates/serviceaccount.yaml delete mode 100644 charts/vikunja/tests/values.yaml delete mode 100644 charts/vikunja/values.yaml diff --git a/charts/vikunja/CHANGELOG.md b/charts/vikunja/CHANGELOG.md deleted file mode 100644 index 55de8a8..0000000 --- a/charts/vikunja/CHANGELOG.md +++ /dev/null @@ -1,7 +0,0 @@ -The changelog is automatically generated using [git-chglog](https://github.com/git-chglog/git-chglog) and it follows [Keep a Changelog](https://keepachangelog.com) format. - - -## vikunja-0.1.0 - 2024-04-11 -### Features -- add the vikunja todo app - diff --git a/charts/vikunja/Chart.yaml b/charts/vikunja/Chart.yaml deleted file mode 100644 index b4a6630..0000000 --- a/charts/vikunja/Chart.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v2 -name: vikunja -description: | - Todo app with web and dav support -# renovate: image=vikunja/vikunja -appVersion: 0.24.4 -type: application -version: 0.1.1 -maintainers: -- name: Tommy Skaug - email: tommy@skaug.me -keywords: -- vikunja -- todo -- task -- project-management -sources: -- https://vikunja.io/ -- https://hub.docker.com/r/vikunja/vikunja diff --git a/charts/vikunja/templates/_helpers.tpl b/charts/vikunja/templates/_helpers.tpl deleted file mode 100644 index 4899525..0000000 --- a/charts/vikunja/templates/_helpers.tpl +++ /dev/null @@ -1,30 +0,0 @@ -# Define a template for the chart's full name. -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -*/}} -{{- define "vikunja.fullname" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end }} - -# Define a template for standard labels. -{{/* -Common labels -*/}} -{{- define "vikunja.labels" -}} -helm.sh/chart: {{ include "vikunja.chart" . }} -app.kubernetes.io/name: {{ include "vikunja.fullname" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -app.kubernetes.io/version: {{ .Chart.Version | quote }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -# Define a template for the chart name and version. -{{/* -Generate basic labels -*/}} -{{- define "vikunja.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" -}} -{{- end }} - -# Optionally, add more helper templates as needed. diff --git a/charts/vikunja/templates/db-init.yaml b/charts/vikunja/templates/db-init.yaml deleted file mode 100644 index d805333..0000000 --- a/charts/vikunja/templates/db-init.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ include "vikunja.fullname" . }}-db-init - labels: - {{- include "vikunja.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": pre-install - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded -spec: - template: - spec: - restartPolicy: Never - containers: - - name: general-db-init - image: "{{ .Values.initContainers.dbInit.image.repository }}:{{ .Values.initContainers.dbInit.image.tag }}" - envFrom: - - secretRef: - name: {{ .Values.postgres.secretName }} - backoffLimit: 3 diff --git a/charts/vikunja/templates/deployment.yaml b/charts/vikunja/templates/deployment.yaml deleted file mode 100644 index 7403392..0000000 --- a/charts/vikunja/templates/deployment.yaml +++ /dev/null @@ -1,48 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "vikunja.fullname" . }} - labels: - {{- include "vikunja.labels" . | nindent 4 }} -spec: - replicas: 1 - selector: - matchLabels: - app: {{ include "vikunja.fullname" . }} - template: - metadata: - labels: - app: {{ include "vikunja.fullname" . }} - spec: - serviceAccountName: {{ include "vikunja.fullname" . }} - containers: - - name: {{ include "vikunja.fullname" . }} - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} - envFrom: - - secretRef: - name: {{ .Values.envFromSecret }} - env: - - name: VIKUNJA_SERVICE_PUBLICURL - value: {{ .Values.config.externalUrl }} - - name: VIKUNJA_DATABASE_TYPE - value: postgres - resources: - {{- toYaml .Values.resources | nindent 10 }} - ports: - - containerPort: 29316 - name: http - volumeMounts: - - name: {{ include "vikunja.fullname" . }} - mountPath: "/app/vikunja/files" - readOnly: false - - name: config - mountPath: "/app/vikunja/config.yml" - subPath: config.yml - readOnly: true - volumes: - - name: {{ include "vikunja.fullname" . }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.existingClaim }} - - name: config - secret: - secretName: {{ .Values.existingSecretConfigMap }} diff --git a/charts/vikunja/templates/service.yaml b/charts/vikunja/templates/service.yaml deleted file mode 100644 index bdad015..0000000 --- a/charts/vikunja/templates/service.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ include "vikunja.fullname" . }} - labels: - {{- include "vikunja.labels" . | nindent 4 }} -spec: - selector: - app: {{ include "vikunja.fullname" . }} - ports: - - port: 8080 - targetPort: 3456 \ No newline at end of file diff --git a/charts/vikunja/templates/serviceaccount.yaml b/charts/vikunja/templates/serviceaccount.yaml deleted file mode 100644 index 1d40e60..0000000 --- a/charts/vikunja/templates/serviceaccount.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "vikunja.fullname" . }} - labels: - {{- include "vikunja.labels" . | nindent 4 }} \ No newline at end of file diff --git a/charts/vikunja/tests/values.yaml b/charts/vikunja/tests/values.yaml deleted file mode 100644 index 3008b60..0000000 --- a/charts/vikunja/tests/values.yaml +++ /dev/null @@ -1,33 +0,0 @@ -config: - externalUrl: https://vikunja.example.com/ - -existingSecretConfigMap: vikunja-secret - -persistence: - existingClaim: vikunja - -initContainers: - dbInit: - image: - repository: ghcr.io/onedr0p/postgres-init - tag: "16" - envFrom: - - secretRef: - name: vikunja-secret - -envFromSecret: vikunja-secret - -image: - repository: vikunja/vikunja - tag: 0.23.0 - -postgres: - secretName: vikunja-secret - -resources: - limits: - memory: "1Gi" - cpu: "500m" -# requests: -# cpu: 100m -# memory: 250Mi diff --git a/charts/vikunja/values.yaml b/charts/vikunja/values.yaml deleted file mode 100644 index 01205e9..0000000 --- a/charts/vikunja/values.yaml +++ /dev/null @@ -1,33 +0,0 @@ -config: - externalUrl: https://vikunja.example.com/ - -existingSecretConfigMap: vikunja-secret - -persistence: - existingClaim: vikunja - -initContainers: - dbInit: - image: - repository: ghcr.io/onedr0p/postgres-init - tag: "16" - envFrom: - - secretRef: - name: vikunja-secret - -envFromSecret: vikunja-secret - -image: - repository: vikunja/vikunja - tag: 0.24.4 - -postgres: - secretName: vikunja-secret - -resources: - limits: - memory: "1Gi" - cpu: "500m" -# requests: -# cpu: 100m -# memory: 250Mi From 7768df54faed7815b814d6d8fd3a84b0e24e493d Mon Sep 17 00:00:00 2001 From: Tommy Skaug Date: Thu, 14 Nov 2024 19:35:45 +0100 Subject: [PATCH 06/10] chore: remove clutch since it was never put to use --- charts/clutch/.helmignore | 23 ------ charts/clutch/Chart.yaml | 19 ----- charts/clutch/templates/_helpers.tpl | 51 ------------- charts/clutch/templates/configmap.yaml | 8 --- charts/clutch/templates/db-init.yaml | 20 ------ charts/clutch/templates/deployment.yaml | 71 ------------------- charts/clutch/templates/podmonitor.yaml | 15 ---- charts/clutch/templates/sa-account.yaml | 6 -- charts/clutch/templates/sa-clusterrole.yaml | 29 -------- .../templates/sa-clusterrolebinding.yaml | 12 ---- charts/clutch/templates/service.yaml | 21 ------ charts/clutch/values.yaml | 39 ---------- 12 files changed, 314 deletions(-) delete mode 100644 charts/clutch/.helmignore delete mode 100644 charts/clutch/Chart.yaml delete mode 100644 charts/clutch/templates/_helpers.tpl delete mode 100644 charts/clutch/templates/configmap.yaml delete mode 100644 charts/clutch/templates/db-init.yaml delete mode 100644 charts/clutch/templates/deployment.yaml delete mode 100644 charts/clutch/templates/podmonitor.yaml delete mode 100644 charts/clutch/templates/sa-account.yaml delete mode 100644 charts/clutch/templates/sa-clusterrole.yaml delete mode 100644 charts/clutch/templates/sa-clusterrolebinding.yaml delete mode 100644 charts/clutch/templates/service.yaml delete mode 100644 charts/clutch/values.yaml diff --git a/charts/clutch/.helmignore b/charts/clutch/.helmignore deleted file mode 100644 index 0e8a0eb..0000000 --- a/charts/clutch/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/charts/clutch/Chart.yaml b/charts/clutch/Chart.yaml deleted file mode 100644 index 0613202..0000000 --- a/charts/clutch/Chart.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v2 -name: clutch -description: Extensible platform for infrastructure management -type: application -version: 0.1.0 -appVersion: "latest" -maintainers: -- name: Tommy Skaug - email: tommy@skaug.me -keywords: -- clutch -- developer -- portal -- tracking -- index -- infrastructure -- platform -sources: -- https://github.com/lyft/clutch diff --git a/charts/clutch/templates/_helpers.tpl b/charts/clutch/templates/_helpers.tpl deleted file mode 100644 index 56f9c4e..0000000 --- a/charts/clutch/templates/_helpers.tpl +++ /dev/null @@ -1,51 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "clutch.name" -}} -{{- .Values.nameOverride | default .Chart.Name | trunc 63 | trimSuffix "-" -}} -{{- end -}} - - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -*/}} -{{- define "clutch.fullname" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end }} - -{{/* -Get the correct image tag name -*/}} -{{- define "clutch.imageTag" -}} -{{- .Values.image.tag | default (printf "v%s" .Chart.AppVersion) -}} -{{- end -}} - -# Define a template for standard labels. -{{/* -Common labels -*/}} -{{- define "clutch.labels" -}} -helm.sh/chart: {{ include "clutch.chart" . }} -app.kubernetes.io/name: {{ include "clutch.fullname" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -app.kubernetes.io/version: {{ .Chart.Version | quote }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "clutch.selectorLabels" -}} -app.kubernetes.io/name: {{ include "clutch.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end -}} - -# Define a template for the chart name and version. -{{/* -Generate basic labels -*/}} -{{- define "clutch.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" -}} -{{- end }} diff --git a/charts/clutch/templates/configmap.yaml b/charts/clutch/templates/configmap.yaml deleted file mode 100644 index 80ab127..0000000 --- a/charts/clutch/templates/configmap.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: clutch-frontend-config -data: - clutch.config.js: | - module.exports = {} - \ No newline at end of file diff --git a/charts/clutch/templates/db-init.yaml b/charts/clutch/templates/db-init.yaml deleted file mode 100644 index 93c074a..0000000 --- a/charts/clutch/templates/db-init.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ include "clutch.fullname" . }}-db-init - labels: - {{- include "clutch.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": pre-install - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded -spec: - template: - spec: - restartPolicy: Never - containers: - - name: general-db-init - image: "{{ .Values.initContainers.dbInit.image.repository }}:{{ .Values.initContainers.dbInit.image.tag }}" - envFrom: - - secretRef: - name: {{ .Values.initContainers.dbInit.existingSecretName }} - backoffLimit: 3 diff --git a/charts/clutch/templates/deployment.yaml b/charts/clutch/templates/deployment.yaml deleted file mode 100644 index 1678d93..0000000 --- a/charts/clutch/templates/deployment.yaml +++ /dev/null @@ -1,71 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "clutch.fullname" . }} - labels: - {{- include "clutch.labels" . | nindent 4 }} -spec: - replicas: 1 - selector: - matchLabels: - {{- include "clutch.selectorLabels" . | nindent 6 }} - type: clutch - strategy: - rollingUpdate: - maxSurge: 25% - maxUnavailable: 25% - type: RollingUpdate - template: - metadata: - {{- with .Values.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- include "clutch.selectorLabels" . | nindent 8 }} - {{- with .Values.podLabels }} - {{- toYaml . | nindent 8 }} - {{- end }} - type: clutch - spec: - serviceAccount: {{ include "clutch.fullname" . }} - containers: - - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default (printf "v%s" .Chart.AppVersion) }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - command: ["./clutch"] - args: ["-c", "/config/clutch-config.yaml"] - imagePullPolicy: Always - name: {{ include "clutch.fullname" . }} - ports: - - containerPort: 8080 - resources: - {{- toYaml .Values.resources | nindent 12 }} - volumeMounts: - - name: clutch-config-backend - mountPath: /config - - name: clutch-config-frontend - mountPath: /frontend/src/clutch.config.js - subPath: clutch.config.js - env: - - name: BASE_URL - value: {{ .Values.config.baseUrl }} - volumes: - - name: clutch-config-backend - secret: - secretName: {{ .Values.existingSecretName }} - - name: clutch-config-frontend - configMap: - name: {{ include "clutch.fullname" . }}-frontend-config - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} \ No newline at end of file diff --git a/charts/clutch/templates/podmonitor.yaml b/charts/clutch/templates/podmonitor.yaml deleted file mode 100644 index de28348..0000000 --- a/charts/clutch/templates/podmonitor.yaml +++ /dev/null @@ -1,15 +0,0 @@ -{{- if .Values.prometheus.podmonitor.enabled }} -apiVersion: monitoring.coreos.com/v1 -kind: PodMonitor -metadata: - name: {{ include "clutch.fullname" . }} - labels: - {{- include "clutch.labels" . | nindent 4 }} -spec: - selector: - matchLabels: - {{- include "clutch.selectorLabels" . | nindent 6 }} - podMetricsEndpoints: - - port: metrics - path: "/healthcheck" -{{- end }} \ No newline at end of file diff --git a/charts/clutch/templates/sa-account.yaml b/charts/clutch/templates/sa-account.yaml deleted file mode 100644 index 5173de2..0000000 --- a/charts/clutch/templates/sa-account.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "clutch.fullname" . }} - labels: - {{- include "clutch.labels" . | nindent 4 }} diff --git a/charts/clutch/templates/sa-clusterrole.yaml b/charts/clutch/templates/sa-clusterrole.yaml deleted file mode 100644 index 8320066..0000000 --- a/charts/clutch/templates/sa-clusterrole.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: {{ include "clutch.fullname" . }} -rules: -- apiGroups: [""] - resources: ["nodes"] - verbs: ["list"] -- apiGroups: [""] - resources: ["pods", "pods/status"] - verbs: ["get", "list", "watch", "update"] -- apiGroups: [""] - resources: ["pods"] - verbs: ["delete"] -- apiGroups: ["autoscaling"] - resources: ["horizontalpodautoscalers", "horizontalpodautoscalers/status"] - verbs: ["get", "list", "watch"] -- apiGroups: ["autoscaling"] - resources: ["horizontalpodautoscalers"] - verbs: ["patch", "update"] -- apiGroups: ["extensions", "apps"] - resources: ["deployments", "deployments/scale", "deployments/status"] - verbs: ["get", "list", "watch"] -- apiGroups: ["extensions", "apps"] - resources: ["deployments/scale"] - verbs: ["patch", "update"] -- apiGroups: ["extensions", "apps"] - resources: ["deployments"] - verbs: ["update"] \ No newline at end of file diff --git a/charts/clutch/templates/sa-clusterrolebinding.yaml b/charts/clutch/templates/sa-clusterrolebinding.yaml deleted file mode 100644 index 62183ad..0000000 --- a/charts/clutch/templates/sa-clusterrolebinding.yaml +++ /dev/null @@ -1,12 +0,0 @@ -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: {{ include "clutch.fullname" . }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: {{ include "clutch.fullname" . }} -subjects: -- kind: ServiceAccount - name: {{ include "clutch.fullname" . }} - namespace: {{ .Release.Namespace }} \ No newline at end of file diff --git a/charts/clutch/templates/service.yaml b/charts/clutch/templates/service.yaml deleted file mode 100644 index 0cbe0a7..0000000 --- a/charts/clutch/templates/service.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "clutch.fullname" . }} - labels: - {{- include "clutch.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - port: 80 - protocol: TCP - targetPort: 8080 - name: clutch2 - - port: 8080 - protocol: TCP - targetPort: 8080 - name: clutch - selector: - selector: - {{- include "clutch.selectorLabels" . | nindent 4 }} - type: clutch diff --git a/charts/clutch/values.yaml b/charts/clutch/values.yaml deleted file mode 100644 index dae3a2d..0000000 --- a/charts/clutch/values.yaml +++ /dev/null @@ -1,39 +0,0 @@ -config: - baseUrl: https://infrastructure.252.no - -image: - repository: index.docker.io/lyft/clutch - pullPolicy: IfNotPresent - # Overrides the image tag whose default is the chart appVersion. - tag: "latest" - -existingSecretName: clutch-config-secret - -initContainers: - dbInit: - image: - repository: ghcr.io/onedr0p/postgres-init - tag: "16" - existingSecretName: clutch-dbinit-secret - -prometheus: - podmonitor: - enabled: true - -resources: {} -limits: - cpu: 500m - memory: 768Mi -# requests: -# cpu: 100m -# memory: 128Mi - -nodeSelector: {} - -tolerations: [] - -affinity: {} - -podLabels: {} - -podAnnotations: {} From 1dfde2eb7ac4573227f891164deb1c4c4a401a32 Mon Sep 17 00:00:00 2001 From: Tommy Skaug Date: Thu, 14 Nov 2024 20:35:45 +0100 Subject: [PATCH 07/10] chore(hashr): general additions and changes for the earlier unfinished chart --- charts/hashr/Chart.yaml | 2 +- charts/hashr/templates/_helpers.tpl | 13 +++++ .../{pod-data-manager.yaml => pod.yaml} | 2 + charts/hashr/values.yaml | 54 +++++++++++++++++++ 4 files changed, 70 insertions(+), 1 deletion(-) rename charts/hashr/templates/{pod-data-manager.yaml => pod.yaml} (84%) create mode 100644 charts/hashr/values.yaml diff --git a/charts/hashr/Chart.yaml b/charts/hashr/Chart.yaml index 4cee47e..88da4d3 100644 --- a/charts/hashr/Chart.yaml +++ b/charts/hashr/Chart.yaml @@ -7,7 +7,7 @@ description: | # renovate: image=us-docker.pkg.dev/osdfir-registry/hashr/release/hashr appVersion: "20240508" type: application -version: 0.2.1 +version: 0.2.2 maintainers: - name: Tommy Skaug email: tommy@skaug.me diff --git a/charts/hashr/templates/_helpers.tpl b/charts/hashr/templates/_helpers.tpl index 26489d7..4cba691 100644 --- a/charts/hashr/templates/_helpers.tpl +++ b/charts/hashr/templates/_helpers.tpl @@ -42,4 +42,17 @@ Create the upload path. */}} {{- define "hashr.uploadPath" -}} {{- printf "/data/upload" }} +{{- end }} + +{{/* +Create the data path. +*/}} +{{- define "hashr.dataPath" -}} +{{- $pvcName := .Values.persistence.name -}} +{{- if .Values.global -}} + {{- if .Values.global.existingPVC -}} + {{- $pvcName = .Values.global.existingPVC -}} + {{- end -}} +{{- printf "/mnt/%s/data" $pvcName }} +{{- end }} {{- end }} \ No newline at end of file diff --git a/charts/hashr/templates/pod-data-manager.yaml b/charts/hashr/templates/pod.yaml similarity index 84% rename from charts/hashr/templates/pod-data-manager.yaml rename to charts/hashr/templates/pod.yaml index 0c4d630..ec18664 100644 --- a/charts/hashr/templates/pod-data-manager.yaml +++ b/charts/hashr/templates/pod.yaml @@ -3,6 +3,8 @@ kind: Pod metadata: name: {{ .Release.Name }}-hashr-data-manager spec: + serviceAccountName: {{ include "hashr.fullname" . }} + automountServiceAccountToken: false containers: - name: hashr-data-manager image: busybox:latest diff --git a/charts/hashr/values.yaml b/charts/hashr/values.yaml new file mode 100644 index 0000000..d8c4e97 --- /dev/null +++ b/charts/hashr/values.yaml @@ -0,0 +1,54 @@ +global: + # Recommended start size of pvc is 20GB + existingPVC: "" + +image: + repository: us-docker.pkg.dev/osdfir-registry/hashr/release/hashr + pullPolicy: IfNotPresent + tag: latest + # imagePullSecrets: + # - myRegistryKeySecretName + imagePullSecrets: [] + +hashr: + importers: + aws: + # TODO: Add cronjob file! + enabled: false + schedule: "0 9 * * 1" + gcp: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 1" + gcp_projects: "" + hashr_gcp_project: "" + hashr_gcs_bucket: "" + targz: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 2" + windows: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 3" + wsus: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 4" + rpm: + enabled: false + schedule: "0 3 * * 5" + zip: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 6" + gcr: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 7" + iso9660: + enabled: false + schedule: "0 15 * * 1" + deb: + enabled: false + schedule: "0 15 * * 2" From 42e8b4009d886a2ad07d2912d5f917cb6d775e71 Mon Sep 17 00:00:00 2001 From: Tommy Skaug Date: Thu, 14 Nov 2024 20:39:37 +0100 Subject: [PATCH 08/10] chore(hashr): general additions and changes for the earlier unfinished chart --- charts/hashr/templates/_helpers.tpl | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/charts/hashr/templates/_helpers.tpl b/charts/hashr/templates/_helpers.tpl index 4cba691..677f242 100644 --- a/charts/hashr/templates/_helpers.tpl +++ b/charts/hashr/templates/_helpers.tpl @@ -48,11 +48,5 @@ Create the upload path. Create the data path. */}} {{- define "hashr.dataPath" -}} -{{- $pvcName := .Values.persistence.name -}} -{{- if .Values.global -}} - {{- if .Values.global.existingPVC -}} - {{- $pvcName = .Values.global.existingPVC -}} - {{- end -}} -{{- printf "/mnt/%s/data" $pvcName }} -{{- end }} +{{- printf "/data/processing" }} {{- end }} \ No newline at end of file From dd5af0e962174a19b6701b9b751f1c37f57ea907 Mon Sep 17 00:00:00 2001 From: Tommy Skaug Date: Thu, 14 Nov 2024 20:53:39 +0100 Subject: [PATCH 09/10] chore(hashr): claim name was wrong --- charts/hashr/templates/pod.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/hashr/templates/pod.yaml b/charts/hashr/templates/pod.yaml index ec18664..a3dd791 100644 --- a/charts/hashr/templates/pod.yaml +++ b/charts/hashr/templates/pod.yaml @@ -17,5 +17,5 @@ spec: volumes: - name: hashrvolume persistentVolumeClaim: - claimName: {{ include "hashr.pvc.name" . }} + claimName: {{ .Values.global.existingPVC }} readOnly: false \ No newline at end of file From b2812a774c26c708edf0c78e1dcba2a45298bf88 Mon Sep 17 00:00:00 2001 From: Tommy Skaug Date: Thu, 14 Nov 2024 21:31:22 +0100 Subject: [PATCH 10/10] chore(hashr): rework values, add zip cronjob, other fixes --- charts/hashr/ci/pluto-values.yaml | 73 +++++++++++++++++++++++ charts/hashr/templates/cronjob-zip.yaml | 79 +++++++++++++++++++++++++ charts/hashr/templates/db-init.yaml | 42 +++++++++++++ charts/hashr/templates/pod.yaml | 33 ++++++++++- charts/hashr/values.yaml | 33 ++++++++--- 5 files changed, 250 insertions(+), 10 deletions(-) create mode 100644 charts/hashr/templates/cronjob-zip.yaml create mode 100644 charts/hashr/templates/db-init.yaml diff --git a/charts/hashr/ci/pluto-values.yaml b/charts/hashr/ci/pluto-values.yaml index e69de29..633286b 100644 --- a/charts/hashr/ci/pluto-values.yaml +++ b/charts/hashr/ci/pluto-values.yaml @@ -0,0 +1,73 @@ +# Recommended start size of pvc is 20GB +existingPVC: "" +existingSecretName: hashr-secret + +initContainers: + dbInit: + image: + repository: ghcr.io/onedr0p/postgres-init + tag: "16" + existingSecretName: hashr-postgres-init-secret + +postgres: + hostname: "postgres-rw.databases.svc.cluster.local" + database_name: "hashr" + port: "5432" + secretName: hashr-secret + +image: + repository: us-docker.pkg.dev/osdfir-registry/hashr/release/hashr + pullPolicy: IfNotPresent + tag: latest + # imagePullSecrets: + # - myRegistryKeySecretName + imagePullSecrets: [] + +hashr: + importers: + zip: + enabled: false + schedule: "0 3 * * 6" + resources: + limits: + cpu: 500m + memory: 1Gi + requests: + cpu: 50m + memory: 128Mi + aws: + # TODO: Add cronjob file! + enabled: false + schedule: "0 9 * * 1" + gcp: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 1" + gcp_projects: "" + hashr_gcp_project: "" + hashr_gcs_bucket: "" + targz: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 2" + windows: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 3" + wsus: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 4" + rpm: + enabled: false + schedule: "0 3 * * 5" + gcr: + # TODO: Add cronjob file! + enabled: false + schedule: "0 3 * * 7" + iso9660: + enabled: false + schedule: "0 15 * * 1" + deb: + enabled: false + schedule: "0 15 * * 2" diff --git a/charts/hashr/templates/cronjob-zip.yaml b/charts/hashr/templates/cronjob-zip.yaml new file mode 100644 index 0000000..f7a5477 --- /dev/null +++ b/charts/hashr/templates/cronjob-zip.yaml @@ -0,0 +1,79 @@ +{{- if .Values.hashr.importers.zip.enabled -}} +apiVersion: batch/v1 +kind: CronJob +metadata: + name: {{ .Release.Name }}-hashr-zip +spec: + schedule: {{ .Values.hashr.importers.zip.schedule | quote }} + concurrencyPolicy: Forbid + successfulJobsHistoryLimit: 2 + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + template: + metadata: + labels: + app.kubernetes.io/instance: {{ .Release.Name }} + spec: + priorityClassName: {{ .Values.priorityClassName | default "default" }} + containers: + - name: hashr-zip + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: IfNotPresent + args: + - --logtostderr=1 + - -storage + - postgres + - -exporters + - postgres + - -postgres_host + - "$(POSTGRES_HOST)" + - -postgres_port + - "$(POSTGRES_PORT)" + - -postgres_user + - "$(POSTGRES_USERNAME)" + - -postgres_password + - "$(POSTGRES_PASSWORD)" + - -postgres_db + - "$(POSTGRES_DATABASE)" + - -importers + - zip + - -zip_repo_path + - {{ (include "hashr.dataPath" .) }}/zip/ + env: + - name: POSTGRES_USERNAME + valueFrom: + secretKeyRef: + name: {{ .Values.postgres.secretName }} + key: POSTGRES_USERNAME + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: {{ .Values.postgres.secretName }} + key: POSTGRES_PASSWORD + - name: POSTGRES_HOST + value: {{ .Values.postgres.host }} + - name: POSTGRES_PORT + value: {{ .Values.postgres.port }} + - name: POSTGRES_DATABASE + value: {{ .Values.postgres.database }} + volumeMounts: + - name: hashrvolume + mountPath: {{ (include "hashr.dataPath" .) | quote }} + resources: + {{- toYaml .Values.hashr.importers.zip.resources | nindent 14 }} + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsNonRoot: true + capabilities: + drop: ["ALL"] + seccompProfile: + type: RuntimeDefault + restartPolicy: Never + volumes: + - name: hashrvolume + persistentVolumeClaim: + claimName: {{ .Values.existingPVC }} + readOnly: false +{{- end }} diff --git a/charts/hashr/templates/db-init.yaml b/charts/hashr/templates/db-init.yaml new file mode 100644 index 0000000..8ebad97 --- /dev/null +++ b/charts/hashr/templates/db-init.yaml @@ -0,0 +1,42 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "hashr.fullname" . }}-db-init + labels: + {{- include "hashr.labels" . | nindent 4 }} +spec: + template: + spec: + restartPolicy: Never + automountServiceAccountToken: false + priorityClassName: "high-priority" + securityContext: + runAsUser: 1000 + runAsGroup: 3000 + fsGroup: 2000 + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + containers: + - name: general-db-init + image: "{{ .Values.initContainers.dbInit.image.repository }}:{{ .Values.initContainers.dbInit.image.tag }}" + imagePullPolicy: IfNotPresent + env: + - name: INIT_POSTGRES_HOST + value: {{ .Values.postgres.host }} + envFrom: + - secretRef: + name: {{ .Values.initContainers.dbInit.existingSecretName }} + securityContext: + runAsUser: 1000 + allowPrivilegeEscalation: false + capabilities: + drop: ["ALL"] + resources: + requests: + memory: "512Mi" + cpu: "250m" + limits: + memory: "1Gi" + cpu: "500m" + backoffLimit: 3 diff --git a/charts/hashr/templates/pod.yaml b/charts/hashr/templates/pod.yaml index a3dd791..03317e4 100644 --- a/charts/hashr/templates/pod.yaml +++ b/charts/hashr/templates/pod.yaml @@ -2,20 +2,47 @@ apiVersion: v1 kind: Pod metadata: name: {{ .Release.Name }}-hashr-data-manager + labels: + app.kubernetes.io/instance: {{ .Release.Name }} spec: serviceAccountName: {{ include "hashr.fullname" . }} automountServiceAccountToken: false + priorityClassName: {{ .Values.priorityClassName | default "default" }} + topologySpreadConstraints: + - maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: DoNotSchedule + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} containers: - name: hashr-data-manager - image: busybox:latest + image: busybox:stable imagePullPolicy: IfNotPresent command: ["sh", "-c", "while true; do sleep 1800; done;"] volumeMounts: - name: hashrvolume mountPath: {{ (include "hashr.dataPath" .) | quote }} + resources: + limits: + cpu: "500m" + memory: "512Mi" + requests: + cpu: "250m" + memory: "256Mi" + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsNonRoot: true + capabilities: + drop: ["ALL"] + seccompProfile: + type: RuntimeDefault + initialDelaySeconds: 5 + periodSeconds: 10 restartPolicy: Always volumes: - name: hashrvolume persistentVolumeClaim: - claimName: {{ .Values.global.existingPVC }} - readOnly: false \ No newline at end of file + claimName: {{ .Values.existingPVC }} + readOnly: false diff --git a/charts/hashr/values.yaml b/charts/hashr/values.yaml index d8c4e97..633286b 100644 --- a/charts/hashr/values.yaml +++ b/charts/hashr/values.yaml @@ -1,6 +1,19 @@ -global: - # Recommended start size of pvc is 20GB - existingPVC: "" +# Recommended start size of pvc is 20GB +existingPVC: "" +existingSecretName: hashr-secret + +initContainers: + dbInit: + image: + repository: ghcr.io/onedr0p/postgres-init + tag: "16" + existingSecretName: hashr-postgres-init-secret + +postgres: + hostname: "postgres-rw.databases.svc.cluster.local" + database_name: "hashr" + port: "5432" + secretName: hashr-secret image: repository: us-docker.pkg.dev/osdfir-registry/hashr/release/hashr @@ -12,6 +25,16 @@ image: hashr: importers: + zip: + enabled: false + schedule: "0 3 * * 6" + resources: + limits: + cpu: 500m + memory: 1Gi + requests: + cpu: 50m + memory: 128Mi aws: # TODO: Add cronjob file! enabled: false @@ -38,10 +61,6 @@ hashr: rpm: enabled: false schedule: "0 3 * * 5" - zip: - # TODO: Add cronjob file! - enabled: false - schedule: "0 3 * * 6" gcr: # TODO: Add cronjob file! enabled: false