Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Documentation] Update Supported K8S Versions and Charts #1687

Merged
merged 1 commit into from
Jul 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .circleci/continue_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ jobs:
echo "This is not a pull request. Skipping..."
exit 0
fi
make tidy update-generated synchronize-v2alpha1-with-v1 generate-internal fmt yamlfmt
make tidy update-generated synchronize-v2alpha1-with-v1 generate-internal sync fmt yamlfmt
git checkout -- go.sum # ignore changes in go.sum
if [ ! -z "$(git status --porcelain)" ]; then
echo "There are uncommited changes!"
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
- (Feature) Expose HTTP Client Config
- (Bugfix) MarkedToRemove Condition Check
- (Bugfix) Fix HTTP Client NPE
- (Documentation) Update Supported K8S Versions and Charts

## [1.2.41](https://github.com/arangodb/kube-arangodb/tree/1.2.41) (2024-05-24)
- (Maintenance) Bump Prometheus API Version
Expand Down
46 changes: 45 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,9 @@ SOURCES := $(shell $(SOURCES_QUERY))
NON_EE_SOURCES_QUERY := $(SOURCES_QUERY) ! -name '*.enterprise.go'
NON_EE_SOURCES := $(shell $(NON_EE_SOURCES_QUERY))

YAML_EXCLUDE_DIRS := vendor .gobuild deps tools pkg/generated/clientset pkg/generated/informers pkg/generated/listers chart/kube-arangodb/templates chart/kube-arangodb-crd/templates chart/arangodb-ingress-proxy/templates
YAML_EXCLUDE_DIRS := vendor .gobuild deps tools pkg/generated/clientset pkg/generated/informers pkg/generated/listers \
chart/kube-arangodb/templates chart/kube-arangodb-arm64/templates chart/kube-arangodb-enterprise/templates chart/kube-arangodb-enterprise-arm64/templates \
chart/kube-arangodb-crd/templates chart/arangodb-ingress-proxy/templates
YAML_EXCLUDE_FILES :=
YAML_QUERY := find ./ -type f -name '*.yaml' $(foreach EXCLUDE_DIR,$(YAML_EXCLUDE_DIRS), ! -path "*/$(EXCLUDE_DIR)/*") $(foreach EXCLUDE_FILE,$(YAML_EXCLUDE_FILES), ! -path "*/$(EXCLUDE_FILE)")
YAMLS := $(shell $(YAML_QUERY))
Expand Down Expand Up @@ -616,6 +618,30 @@ chart-operator: helm

manifests: chart-operator

.PHONY: chart-operator-enterprise
chart-operator-enterprise: export CHART_NAME := kube-arangodb-enterprise
chart-operator-enterprise: helm
@mkdir -p "$(ROOTDIR)/bin/charts"
@$(HELM_PACKAGE_CMD)

manifests: chart-operator-enterprise

.PHONY: chart-operator-arm64
chart-operator-arm64: export CHART_NAME := kube-arangodb-arm64
chart-operator-arm64: helm
@mkdir -p "$(ROOTDIR)/bin/charts"
@$(HELM_PACKAGE_CMD)

manifests: chart-operator-arm64

.PHONY: chart-operator-enterprise-arm64
chart-operator-enterprise-arm64: export CHART_NAME := kube-arangodb-enterprise-arm64
chart-operator-enterprise-arm64: helm
@mkdir -p "$(ROOTDIR)/bin/charts"
@$(HELM_PACKAGE_CMD)

manifests: chart-operator-enterprise-arm64

.PHONY: manifests-verify
manifests-verify:
$(MAKE) manifest-verify-plain-ce
Expand Down Expand Up @@ -870,6 +896,24 @@ CRDS:=apps-job \
scheduler-profile \
analytics-graphanalyticsengine

.PHONY: sync
sync:

.PHONY: sync-crds
sync-crds:
@cp $(foreach FILE,$(CRDS),"$(ROOT)/chart/kube-arangodb/crds/$(FILE).yaml" ) "$(ROOT)/pkg/crd/crds/"

sync: sync-crds

.PHONY: sync-charts
sync-charts:
@(cd "$(ROOT)/chart/kube-arangodb"; find . -type d -not -name values.yaml -exec mkdir -p "$(ROOT)/chart/kube-arangodb-enterprise/{}" \;)
@(cd "$(ROOT)/chart/kube-arangodb"; find . -type f -not -name values.yaml -not -name Chart.yaml -exec cp "$(ROOT)/chart/kube-arangodb/{}" "$(ROOT)/chart/kube-arangodb-enterprise/{}" \;)

@(cd "$(ROOT)/chart/kube-arangodb"; find . -type d -not -name values.yaml -exec mkdir -p "$(ROOT)/chart/kube-arangodb-enterprise-arm64/{}" \;)
@(cd "$(ROOT)/chart/kube-arangodb"; find . -type f -not -name values.yaml -not -name Chart.yaml -exec cp "$(ROOT)/chart/kube-arangodb/{}" "$(ROOT)/chart/kube-arangodb-enterprise-arm64/{}" \;)

@(cd "$(ROOT)/chart/kube-arangodb"; find . -type d -not -name values.yaml -exec mkdir -p "$(ROOT)/chart/kube-arangodb-arm64/{}" \;)
@(cd "$(ROOT)/chart/kube-arangodb"; find . -type f -not -name values.yaml -not -name Chart.yaml -exec cp "$(ROOT)/chart/kube-arangodb/{}" "$(ROOT)/chart/kube-arangodb-arm64/{}" \;)

sync: sync-charts
48 changes: 37 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,17 +54,17 @@ covers individual newer features separately.

| Platform | Kubernetes Version | ArangoDB Version | State | Remarks | Provider Remarks |
|:--------------------|:-------------------|:-----------------|:-----------|:------------------------------------------|:-----------------------------------|
| Google GKE | 1.21-1.28 | >= 3.8.0 | Production | Don't use micro nodes | |
| Azure AKS | 1.21-1.28 | >= 3.8.0 | Production | | |
| Amazon EKS | 1.21-1.28 | >= 3.8.0 | Production | | [Amazon EKS](./docs/providers/eks) |
| Google GKE | 1.25-1.30 | >= 3.8.0 | Production | Don't use micro nodes | |
| Azure AKS | 1.25-1.30 | >= 3.8.0 | Production | | |
| Amazon EKS | 1.25-1.30 | >= 3.8.0 | Production | | [Amazon EKS](./docs/providers/eks) |
| IBM Cloud | <= 1.20 | >= 3.8.0 | Deprecated | Support will be dropped in Operator 1.5.0 | |
| IBM Cloud | 1.21-1.28 | >= 3.8.0 | Production | | |
| IBM Cloud | 1.25-1.30 | >= 3.8.0 | Production | | |
| OpenShift | 3.11 | >= 3.8.0 | Deprecated | Support will be dropped in Operator 1.5.0 | |
| OpenShift | 4.2-4.14 | >= 3.8.0 | Production | | |
| BareMetal (kubeadm) | <= 1.20 | >= 3.8.0 | Deprecated | Support will be dropped in Operator 1.5.0 | |
| BareMetal (kubeadm) | 1.21-1.28 | >= 3.8.0 | Production | | |
| Minikube | 1.21-1.28 | >= 3.8.0 | Devel Only | | |
| Other | 1.21-1.28 | >= 3.8.0 | Devel Only | | |
| BareMetal (kubeadm) | 1.25-1.30 | >= 3.8.0 | Production | | |
| Minikube | 1.25-1.30 | >= 3.8.0 | Devel Only | | |
| Other | 1.25-1.30 | >= 3.8.0 | Devel Only | | |

[END_INJECT]: # (kubernetesVersionsTable)

Expand Down Expand Up @@ -285,6 +285,32 @@ resources:

Only use this procedure for clean installation of the operator. For upgrades see next section

#### From Chart Repository

##### Chart Installation

```bash
# Add helm repository
helm repo add kube-arangodb https://arangodb.github.io/kube-arangodb
```

##### Community Edition
```bash
# The following will install the operator and basic CRDs resources.
helm install --generate-name kube-arangodb/kube-arangodb
# To use `ArangoLocalStorage`, set field `operator.features.storage` to true
helm install --generate-name kube-arangodb/kube-arangodb --set "operator.features.storage=true"
```

##### Enterprise Edition
```bash
helm install --generate-name kube-arangodb/kube-arangodb-enterprise
# To use `ArangoLocalStorage`, set field `operator.features.storage` to true
helm install --generate-name kube-arangodb/kube-arangodb-enterprise --set "operator.features.storage=true"
```

#### From Chart Release

##### Community Edition
```bash
# The following will install the operator and basic CRDs resources.
Expand All @@ -296,9 +322,9 @@ helm install --generate-name https://github.com/arangodb/kube-arangodb/releases/
##### Enterprise Edition
```bash
# The following will install the operator and basic CRDs resources.
helm install --generate-name https://github.com/arangodb/kube-arangodb/releases/download/1.2.41/kube-arangodb-1.2.41.tgz --set "operator.image=arangodb/kube-arangodb-enterprise:1.2.41"
helm install --generate-name https://github.com/arangodb/kube-arangodb/releases/download/1.2.41/kube-arangodb-enterprise-1.2.41.tgz
# To use `ArangoLocalStorage`, set field `operator.features.storage` to true
helm install --generate-name https://github.com/arangodb/kube-arangodb/releases/download/1.2.41/kube-arangodb-1.2.41.tgz --set "operator.image=arangodb/kube-arangodb-enterprise:1.2.41" --set "operator.features.storage=true"
helm install --generate-name https://github.com/arangodb/kube-arangodb/releases/download/1.2.41/kube-arangodb-enterprise-1.2.41.tgz --set "operator.features.storage=true"
```

### Upgrading the operator using Helm
Expand Down Expand Up @@ -335,9 +361,9 @@ helm install --generate-name https://github.com/arangodb/kube-arangodb/releases/
##### Enterprise Edition
```bash
# The following will install the operator and basic CRDs resources.
helm install --generate-name https://github.com/arangodb/kube-arangodb/releases/download/1.2.41/kube-arangodb-1.2.41.tgz --set "operator.image=arangodb/kube-arangodb-enterprise:1.2.41"
helm install --generate-name https://github.com/arangodb/kube-arangodb/releases/download/1.2.41/kube-arangodb-enterprise-1.2.41.tgz
# To use `ArangoLocalStorage`, set field `operator.features.storage` to true
helm install --generate-name https://github.com/arangodb/kube-arangodb/releases/download/1.2.41/kube-arangodb-1.2.41.tgz --set "operator.image=arangodb/kube-arangodb-enterprise:1.2.41" --set "operator.features.storage=true"
helm install --generate-name https://github.com/arangodb/kube-arangodb/releases/download/1.2.41/kube-arangodb-enterprise-1.2.41.tgz --set "operator.features.storage=true"
```

## Building
Expand Down
5 changes: 5 additions & 0 deletions chart/kube-arangodb-arm64/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# do not switch to V2 yet - we still need to support Helm 2
apiVersion: v1
name: kube-arangodb-arm64
version: 1.2.41
description: "ArangoDB Kubernetes Operator with ARM64 defaults"
15 changes: 15 additions & 0 deletions chart/kube-arangodb-arm64/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany

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.

Copyright holder is ArangoDB GmbH, Cologne, Germany
206 changes: 206 additions & 0 deletions chart/kube-arangodb-arm64/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
# Introduction

Kubernetes ArangoDB Operator.

# Chart Details

Chart will install fully operational ArangoDB Kubernetes Operator.

# Resources Required

In default installation deployment with 1 pod will be created. The operator pod require 256MB of ram and 250m of CPU.

# Installing the Chart

Chart can be installed in two methods:
- With all Operators in single Helm Release
- One Helm Release per Operator

Possible Operators:
- `ArangoDeployment` - enabled by default
- `ArangoDeploymentReplications` - enabled by default
- `ArangoLocalStorage` - disabled by default
- `ArangoBackup` - disabled by default
- `ArangoJob` - disabled by default
- `ArangoClusterSynchronization` - disabled by default

To install Operators in mode "One per Helm Release" we can use:

```
helm install --name arango-deployment kube-arangodb.tar.gz \
--set operator.features.deployment=true \
--set operator.features.deploymentReplications=false \
--set operator.features.storage=false \
--set operator.features.backup=false \
--set operator.features.apps=false \
--set operator.features.k8sToK8sClusterSync=false
```


# Configuration

### `operator.image`

Image used for the ArangoDB Operator.

Default: `arangodb/kube-arangodb:latest`

### `operator.imagePullPolicy`

Image pull policy for Operator images.

Default: `IfNotPresent`

### `operator.imagePullSecrets`

List of the Image Pull Secrets for Operator images.

Default: `[]string`

### `operator.scope`

Scope on which Operator will be configured.

Default: `legacy`

Supported modes:
- `legacy` - mode with limited cluster scope access
- `namespaced` - mode with namespace access only

### `operator.service.type`

Type of the Operator service.

Default: `ClusterIP`

### `operator.annotations`

Annotations passed to the Operator Deployment definition.

Default: `[]string`

### `operator.resources.limits.cpu`

CPU limits for operator pods.

Default: `1`

### `operator.resources.limits.memory`

Memory limits for operator pods.

Default: `256Mi`

### `operator.resources.requested.cpu`

Requested CPI by Operator pods.

Default: `250m`

### `operator.resources.requested.memory`

Requested memory for operator pods.

Default: `256Mi`

### `operator.nodeSelector`

NodeSelector for Deployment pods.

Default: `{}`

### `operator.tolerations`

Tolerations for Deployment pods.

There is built in configuration (can not be changed):
```yaml
tolerations:
- key: "node.kubernetes.io/unreachable"
operator: "Exists"
effect: "NoExecute"
tolerationSeconds: 5
- key: "node.kubernetes.io/not-ready"
operator: "Exists"
effect: "NoExecute"
tolerationSeconds: 5
```

which can be extended by additional entries e.g.:
```yaml
tolerations:
- key: devops
operator: Exists
effect: NoSchedule
```
Default (empty): `[]`

### `operator.securityContext.runAsUser`

Controls which user ID the containers are run with.

Default: `1000`

### `operator.replicaCount`

Replication count for Operator deployment.

Default: `1`

### `operator.updateStrategy`

Update strategy for operator pod.

Default: `Recreate`

### `operator.features.deployment`

Define if ArangoDeployment Operator should be enabled.

Default: `true`

### `operator.features.deploymentReplications`

Define if ArangoDeploymentReplications Operator should be enabled.

Default: `true`

### `operator.features.storage`

Define if ArangoLocalStorage Operator should be enabled.

Default: `false`

### `operator.features.backup`

Define if ArangoBackup Operator should be enabled.

Default: `false`

### `operator.features.apps`

Define if ArangoJob Operator should be enabled.

Default: `false`

### `operator.features.k8sToK8sClusterSync`

Define if ArangoClusterSynchronization Operator should be enabled.

Default: `false`

### `rbac.enabled`

Define if RBAC should be enabled.

Default: `true`

### `operator.architectures`

List of supported architectures.

Default: `[]string{"amd64"}`

# Limitations

N/A
Loading