diff --git a/packs/crossplane-2.1.1/README.md b/packs/crossplane-2.1.1/README.md new file mode 100644 index 00000000..0c5d3648 --- /dev/null +++ b/packs/crossplane-2.1.1/README.md @@ -0,0 +1,37 @@ +# Crossplane + +Crossplane is an open source Kubernetes extension that transforms your Kubernetes cluster into a universal control plane. + +Crossplane lets you manage anything, anywhere, all through standard Kubernetes APIs. Crossplane can even let you order a pizza directly from Kubernetes. If it has an API, Crossplane can connect to it. + +With Crossplane, platform teams can create new abstractions and custom APIs with the full power of Kubernetes policies, namespaces, role based access controls and more. Crossplane brings all your non-Kubernetes resources under one roof. + +Custom APIs, created by platform teams, allow security and compliance enforcement across resources or clouds, without exposing any complexity to the developers. A single API call can create multiple resources, in multiple clouds and use Kubernetes as the control plane for everything. + +## Prerequisites + +Kubernetes >= 1.27.0 + +## Usage + +Installing a provider creates new Kubernetes resources representing the Provider’s APIs. Installing a provider also creates a Provider pod that’s responsible for reconciling the Provider’s APIs into the Kubernetes cluster. Providers constantly watch the state of the desired managed resources and create any external resources that are missing. + +Install a Provider with a Crossplane Provider object setting the spec.package value to the location of the provider package. Additional providers can be found in the [Upboud Marketplace](https://marketplace.upbound.io/) + +*For Example* +Install the [Palette Provider](https://marketplace.upbound.io/providers/crossplane-contrib/provider-palette/v0.19.2) + +```yaml +apiVersion: pkg.crossplane.io/v1 +kind: Provider +metadata: + name: provider-palette +spec: + package: xpkg.upbound.io/crossplane-contrib/provider-palette:v0.23.5 +``` + +## References + +Crossplane Provider Guide - +Crossplane Concepts - +Upbound Marketplace - diff --git a/packs/crossplane-2.1.1/charts/crossplane-2.1.1.tgz b/packs/crossplane-2.1.1/charts/crossplane-2.1.1.tgz new file mode 100644 index 00000000..52f13ae0 Binary files /dev/null and b/packs/crossplane-2.1.1/charts/crossplane-2.1.1.tgz differ diff --git a/packs/crossplane-2.1.1/logo.png b/packs/crossplane-2.1.1/logo.png new file mode 100644 index 00000000..94280b87 Binary files /dev/null and b/packs/crossplane-2.1.1/logo.png differ diff --git a/packs/crossplane-2.1.1/pack.json b/packs/crossplane-2.1.1/pack.json new file mode 100644 index 00000000..4e538e1f --- /dev/null +++ b/packs/crossplane-2.1.1/pack.json @@ -0,0 +1,18 @@ +{ + "addonType": "system app", + "annotations": { + "source": "community", + "contributor" : "spectrocloud" + }, + "cloudTypes": [ + "all" + ], + "displayName": "Crossplane", + "charts": [ + "charts/crossplane-2.1.1.tgz" + ], + "layer":"addon", + "name": "crossplane", + "version": "2.1.1" + } + \ No newline at end of file diff --git a/packs/crossplane-2.1.1/values.yaml b/packs/crossplane-2.1.1/values.yaml new file mode 100644 index 00000000..c61d8ecf --- /dev/null +++ b/packs/crossplane-2.1.1/values.yaml @@ -0,0 +1,226 @@ +pack: + #The namespace (on the target cluster) to install this chart + #When not found, a new namespace will be created + namespace: "crossplane-system" + content: + images: + - image: xpkg.upbound.io/crossplane/crossplane:v2.1.1 + + +charts: + crossplane: + # helm-docs renders these comments into markdown. Use markdown formatting where + # appropiate. + # + # -- The number of Crossplane pod `replicas` to deploy. + replicas: 1 + + # -- The number of Crossplane ReplicaSets to retain. + revisionHistoryLimit: null + + # -- The deployment strategy for the Crossplane and RBAC Manager pods. + deploymentStrategy: RollingUpdate + + image: + # -- Repository for the Crossplane pod image. + repository: xpkg.crossplane.io/crossplane/crossplane + # -- The Crossplane image tag. Defaults to the value of `appVersion` in `Chart.yaml`. + tag: "" + # -- The image pull policy used for Crossplane and RBAC Manager pods. + pullPolicy: IfNotPresent + # -- Do not use the {{ .image.tag }} value to compute the image uri. + ignoreTag: false + + # -- Add `nodeSelectors` to the Crossplane pod deployment. + nodeSelector: {} + # -- Add `tolerations` to the Crossplane pod deployment. + tolerations: [] + # -- Add `affinities` to the Crossplane pod deployment. + affinity: {} + # -- Add `topologySpreadConstraints` to the Crossplane pod deployment. + topologySpreadConstraints: [] + + # -- Enable `hostNetwork` for the Crossplane deployment. Caution: enabling `hostNetwork` grants the Crossplane Pod access to the host network namespace. Consider setting `dnsPolicy` to `ClusterFirstWithHostNet`. + hostNetwork: false + + # -- Specify the `dnsPolicy` to be used by the Crossplane pod. + dnsPolicy: "" + + # -- Add custom `labels` to the Crossplane pod deployment. + customLabels: {} + + # -- Add custom `annotations` to the Crossplane pod deployment. + customAnnotations: {} + + serviceAccount: + # -- Specifies whether Crossplane ServiceAccount should be created + create: true + # -- Provide the name of an already created Crossplane ServiceAccount. Required when `serviceAccount.create` is `false` + name: "" + # -- Add custom `annotations` to the Crossplane ServiceAccount. + customAnnotations: {} + + # -- Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the Crossplane pod. + leaderElection: true + # -- Add custom arguments to the Crossplane pod. + args: [] + + provider: + # -- A list of Provider packages to install. + packages: [] + # -- Define entries for the default managed resource activation policy. If defined, a default MRAP will contain these activations. + defaultActivations: ["*"] + + configuration: + # -- A list of Configuration packages to install. + packages: [] + + function: + # -- A list of Function packages to install + packages: [] + + # -- The imagePullSecret names to add to the Crossplane ServiceAccount. + imagePullSecrets: [] + + registryCaBundleConfig: + # -- The ConfigMap name containing a custom CA bundle to enable fetching packages from registries with unknown or untrusted certificates. + name: "" + # -- The ConfigMap key containing a custom CA bundle to enable fetching packages from registries with unknown or untrusted certificates. + key: "" + + service: + # -- Configure annotations on the service object. Only enabled when webhooks.enabled = true + customAnnotations: {} + + webhooks: + # -- Enable webhooks for Crossplane and installed Provider packages. + enabled: true + # -- The port the webhook server listens on. + port: "" + + rbacManager: + # -- Deploy the RBAC Manager pod and its required roles. + deploy: true + # -- Don't install aggregated Crossplane ClusterRoles. + skipAggregatedClusterRoles: false + # -- The number of RBAC Manager pod `replicas` to deploy. + replicas: 1 + # -- The number of RBAC Manager ReplicaSets to retain. + revisionHistoryLimit: null + # -- Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the RBAC Manager pod. + leaderElection: true + # -- Add custom arguments to the RBAC Manager pod. + args: [] + # -- Add `nodeSelectors` to the RBAC Manager pod deployment. + nodeSelector: {} + # -- Add `tolerations` to the RBAC Manager pod deployment. + tolerations: [] + # -- Add `affinities` to the RBAC Manager pod deployment. + affinity: {} + # -- Add `topologySpreadConstraints` to the RBAC Manager pod deployment. + topologySpreadConstraints: [] + + # -- The PriorityClass name to apply to the Crossplane and RBAC Manager pods. + priorityClassName: "" + + # -- The runtimeClassName name to apply to the Crossplane and RBAC Manager pods. + runtimeClassName: "" + + resourcesCrossplane: + limits: + # -- CPU resource limits for the Crossplane pod. + cpu: 500m + # -- Memory resource limits for the Crossplane pod. + memory: 1024Mi + requests: + # -- CPU resource requests for the Crossplane pod. + cpu: 100m + # -- Memory resource requests for the Crossplane pod. + memory: 256Mi + + securityContextCrossplane: + # -- The user ID used by the Crossplane pod. + runAsUser: 65532 + # -- The group ID used by the Crossplane pod. + runAsGroup: 65532 + # -- Enable `allowPrivilegeEscalation` for the Crossplane pod. + allowPrivilegeEscalation: false + # -- Set the Crossplane pod root file system as read-only. + readOnlyRootFilesystem: true + + packageCache: + # -- Set to `Memory` to hold the package cache in a RAM backed file system. Useful for Crossplane development. + medium: "" + # -- The size limit for the package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. + sizeLimit: 20Mi + # -- The name of a PersistentVolumeClaim to use as the package cache. Disables the default package cache `emptyDir` Volume. + pvc: "" + # -- The name of a ConfigMap to use as the package cache. Disables the default package cache `emptyDir` Volume. + configMap: "" + + functionCache: + # -- Set to `Memory` to hold the function cache in a RAM backed file system. Useful for Crossplane development. + medium: "" + # -- The size limit for the function cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. + sizeLimit: 512Mi + # -- The name of a PersistentVolumeClaim to use as the function cache. Disables the default function cache `emptyDir` Volume. + pvc: "" + + resourcesRBACManager: + limits: + # -- CPU resource limits for the RBAC Manager pod. + cpu: 100m + # -- Memory resource limits for the RBAC Manager pod. + memory: 512Mi + requests: + # -- CPU resource requests for the RBAC Manager pod. + cpu: 100m + # -- Memory resource requests for the RBAC Manager pod. + memory: 256Mi + + securityContextRBACManager: + # -- The user ID used by the RBAC Manager pod. + runAsUser: 65532 + # -- The group ID used by the RBAC Manager pod. + runAsGroup: 65532 + # -- Enable `allowPrivilegeEscalation` for the RBAC Manager pod. + allowPrivilegeEscalation: false + # -- Set the RBAC Manager pod root file system as read-only. + readOnlyRootFilesystem: true + + metrics: + # -- Enable Prometheus path, port and scrape annotations and expose port 8080 for both the Crossplane and RBAC Manager pods. + enabled: false + # -- The port the metrics server listens on. + port: "" + + readiness: + # -- The port the readyz server listens on. + port: "" + + # -- Add custom environmental variables to the Crossplane pod deployment init container. + # Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. + extraEnvVarsCrossplaneInit: {} + + # -- Add custom environmental variables to the Crossplane pod deployment application container. + # Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. + extraEnvVarsCrossplane: {} + + # -- Add custom environmental variables to the RBAC Manager pod deployment. + # Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. + extraEnvVarsRBACManager: {} + + # -- Add a custom `securityContext` to the Crossplane pod. + podSecurityContextCrossplane: {} + + # -- Add a custom `securityContext` to the RBAC Manager pod. + podSecurityContextRBACManager: {} + + # -- Add custom `volumes` to the Crossplane pod. + extraVolumesCrossplane: {} + + # -- Add custom `volumeMounts` to the Crossplane pod. + extraVolumeMountsCrossplane: {} + + # -- To add arbitrary Kubernetes Objects during a Helm Install + extraObjects: [] diff --git a/packs/crossplane-2.1.4/README.md b/packs/crossplane-2.1.4/README.md new file mode 100644 index 00000000..46e9fbe6 --- /dev/null +++ b/packs/crossplane-2.1.4/README.md @@ -0,0 +1,107 @@ +# Crossplane + +Crossplane is an open source Kubernetes extension that transforms a Kubernetes +cluster into a universal control plane. + +It allows platform teams to provision, manage, and compose infrastructure and +services using Kubernetes-style APIs, enabling consistent governance, security, +and automation across multiple environments and cloud providers. + +--- + +## Prerequisites + +To use this package, you must have: + +- A Kubernetes cluster, minimum version **v1.27.0** +- Cluster-admin permissions +- Helm **v3.0.0+** (required for installing Crossplane via Helm) +- Internet access to pull container images and packages from OCI registries + +--- + +## Parameters + +Crossplane can be configured using Helm values during installation or upgrade. +The most relevant parameters are listed below. + +### General Configuration + +| Parameter | Description | Default | +|---------|-------------|---------| +| `replicas` | Number of Crossplane controller replicas | `1` | +| `leaderElection` | Enable leader election for Crossplane | `true` | +| `deploymentStrategy` | Deployment strategy for the pods | `RollingUpdate` | +| `hostNetwork` | Enable host networking for the pod | `false` | + +### Image Configuration + +| Parameter | Description | Default | +|---------|-------------|---------| +| `image.repository` | Crossplane image repository | `xpkg.crossplane.io/crossplane/crossplane` | +| `image.tag` | Crossplane image tag | Chart `appVersion` | +| `image.pullPolicy` | Image pull policy | `IfNotPresent` | + +### Package Management + +| Parameter | Description | Default | +|---------|-------------|---------| +| `provider.packages` | List of Provider packages to install | `[]` | +| `configuration.packages` | List of Configuration packages to install | `[]` | +| `function.packages` | List of Function packages to install | `[]` | + +### Resources + +| Parameter | Description | Default | +|---------|-------------|---------| +| `resourcesCrossplane.requests.cpu` | CPU request | `100m` | +| `resourcesCrossplane.requests.memory` | Memory request | `256Mi` | +| `resourcesCrossplane.limits.cpu` | CPU limit | `500m` | +| `resourcesCrossplane.limits.memory` | Memory limit | `1024Mi` | + +> For the complete list of supported parameters, refer to the `values.yaml` file +> provided with this package. + +--- + +## Upgrade + +To upgrade Crossplane using Helm: + +```bash +helm repo update + +helm upgrade crossplane \ + --namespace crossplane-system \ + crossplane-stable/crossplane +``` + +--- + +## Usage + +Crossplane is installed into a Kubernetes cluster and acts as a control plane +for managing infrastructure and services using Kubernetes APIs. + +After installation, functionality is extended by installing Provider, +Configuration, or Function packages, which enable Crossplane to reconcile +external resources and compose higher-level abstractions. + +Example of installing a Provider: + +```yaml +apiVersion: pkg.crossplane.io/v1 +kind: Provider +metadata: + name: provider-palette +spec: + package: xpkg.upbound.io/crossplane-contrib/provider-palette:v0.23.5 +``` + +--- + +## References +https://docs.crossplane.io/ +https://docs.crossplane.io/latest/concepts/ +https://docs.crossplane.io/latest/concepts/providers/ +https://marketplace.upbound.io/ \ No newline at end of file diff --git a/packs/crossplane-2.1.4/charts/crossplane-2.1.4.tgz b/packs/crossplane-2.1.4/charts/crossplane-2.1.4.tgz new file mode 100644 index 00000000..e53a5699 Binary files /dev/null and b/packs/crossplane-2.1.4/charts/crossplane-2.1.4.tgz differ diff --git a/packs/crossplane-2.1.4/logo.png b/packs/crossplane-2.1.4/logo.png new file mode 100644 index 00000000..94280b87 Binary files /dev/null and b/packs/crossplane-2.1.4/logo.png differ diff --git a/packs/crossplane-2.1.4/pack.json b/packs/crossplane-2.1.4/pack.json new file mode 100644 index 00000000..a59d434f --- /dev/null +++ b/packs/crossplane-2.1.4/pack.json @@ -0,0 +1,38 @@ +{ + "addonType": "system app", + "annotations": { + "source": "community", + "contributor": "spectrocloud" + }, + "cloudTypes": [ + "all" + ], + "displayName": "Crossplane", + "charts": [ + "charts/crossplane-2.1.4.tgz" + ], + "layer": "addon", + "name": "crossplane", + "version": "2.1.4", + "constraints": { + "dependencies": [ + { + "packName": "kubernetes", + "layer": "k8s", + "minVersion": "1.27", + "maxVersion": "", + "type": "optional" + } + ], + "resources": [ + { + "type": "cpu", + "minLimit": 100 + }, + { + "type": "memory", + "minLimit": 256 + } + ] + } +} \ No newline at end of file diff --git a/packs/crossplane-2.1.4/values.yaml b/packs/crossplane-2.1.4/values.yaml new file mode 100644 index 00000000..b3ee4eaa --- /dev/null +++ b/packs/crossplane-2.1.4/values.yaml @@ -0,0 +1,226 @@ +pack: + #The namespace (on the target cluster) to install this chart + #When not found, a new namespace will be created + namespace: "crossplane-system" + content: + images: + - image: xpkg.upbound.io/crossplane/crossplane:v2.1.4 + + +charts: + crossplane: + # helm-docs renders these comments into markdown. Use markdown formatting where + # appropiate. + # + # -- The number of Crossplane pod `replicas` to deploy. + replicas: 1 + + # -- The number of Crossplane ReplicaSets to retain. + revisionHistoryLimit: null + + # -- The deployment strategy for the Crossplane and RBAC Manager pods. + deploymentStrategy: RollingUpdate + + image: + # -- Repository for the Crossplane pod image. + repository: xpkg.crossplane.io/crossplane/crossplane + # -- The Crossplane image tag. Defaults to the value of `appVersion` in `Chart.yaml`. + tag: "" + # -- The image pull policy used for Crossplane and RBAC Manager pods. + pullPolicy: IfNotPresent + # -- Do not use the {{ .image.tag }} value to compute the image uri. + ignoreTag: false + + # -- Add `nodeSelectors` to the Crossplane pod deployment. + nodeSelector: {} + # -- Add `tolerations` to the Crossplane pod deployment. + tolerations: [] + # -- Add `affinities` to the Crossplane pod deployment. + affinity: {} + # -- Add `topologySpreadConstraints` to the Crossplane pod deployment. + topologySpreadConstraints: [] + + # -- Enable `hostNetwork` for the Crossplane deployment. Caution: enabling `hostNetwork` grants the Crossplane Pod access to the host network namespace. Consider setting `dnsPolicy` to `ClusterFirstWithHostNet`. + hostNetwork: false + + # -- Specify the `dnsPolicy` to be used by the Crossplane pod. + dnsPolicy: "" + + # -- Add custom `labels` to the Crossplane pod deployment. + customLabels: {} + + # -- Add custom `annotations` to the Crossplane pod deployment. + customAnnotations: {} + + serviceAccount: + # -- Specifies whether Crossplane ServiceAccount should be created + create: true + # -- Provide the name of an already created Crossplane ServiceAccount. Required when `serviceAccount.create` is `false` + name: "" + # -- Add custom `annotations` to the Crossplane ServiceAccount. + customAnnotations: {} + + # -- Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the Crossplane pod. + leaderElection: true + # -- Add custom arguments to the Crossplane pod. + args: [] + + provider: + # -- A list of Provider packages to install. + packages: [] + # -- Define entries for the default managed resource activation policy. If defined, a default MRAP will contain these activations. + defaultActivations: ["*"] + + configuration: + # -- A list of Configuration packages to install. + packages: [] + + function: + # -- A list of Function packages to install + packages: [] + + # -- The imagePullSecret names to add to the Crossplane ServiceAccount. + imagePullSecrets: [] + + registryCaBundleConfig: + # -- The ConfigMap name containing a custom CA bundle to enable fetching packages from registries with unknown or untrusted certificates. + name: "" + # -- The ConfigMap key containing a custom CA bundle to enable fetching packages from registries with unknown or untrusted certificates. + key: "" + + service: + # -- Configure annotations on the service object. Only enabled when webhooks.enabled = true + customAnnotations: {} + + webhooks: + # -- Enable webhooks for Crossplane and installed Provider packages. + enabled: true + # -- The port the webhook server listens on. + port: "" + + rbacManager: + # -- Deploy the RBAC Manager pod and its required roles. + deploy: true + # -- Don't install aggregated Crossplane ClusterRoles. + skipAggregatedClusterRoles: false + # -- The number of RBAC Manager pod `replicas` to deploy. + replicas: 1 + # -- The number of RBAC Manager ReplicaSets to retain. + revisionHistoryLimit: null + # -- Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the RBAC Manager pod. + leaderElection: true + # -- Add custom arguments to the RBAC Manager pod. + args: [] + # -- Add `nodeSelectors` to the RBAC Manager pod deployment. + nodeSelector: {} + # -- Add `tolerations` to the RBAC Manager pod deployment. + tolerations: [] + # -- Add `affinities` to the RBAC Manager pod deployment. + affinity: {} + # -- Add `topologySpreadConstraints` to the RBAC Manager pod deployment. + topologySpreadConstraints: [] + + # -- The PriorityClass name to apply to the Crossplane and RBAC Manager pods. + priorityClassName: "" + + # -- The runtimeClassName name to apply to the Crossplane and RBAC Manager pods. + runtimeClassName: "" + + resourcesCrossplane: + limits: + # -- CPU resource limits for the Crossplane pod. + cpu: 500m + # -- Memory resource limits for the Crossplane pod. + memory: 1024Mi + requests: + # -- CPU resource requests for the Crossplane pod. + cpu: 100m + # -- Memory resource requests for the Crossplane pod. + memory: 256Mi + + securityContextCrossplane: + # -- The user ID used by the Crossplane pod. + runAsUser: 65532 + # -- The group ID used by the Crossplane pod. + runAsGroup: 65532 + # -- Enable `allowPrivilegeEscalation` for the Crossplane pod. + allowPrivilegeEscalation: false + # -- Set the Crossplane pod root file system as read-only. + readOnlyRootFilesystem: true + + packageCache: + # -- Set to `Memory` to hold the package cache in a RAM backed file system. Useful for Crossplane development. + medium: "" + # -- The size limit for the package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. + sizeLimit: 20Mi + # -- The name of a PersistentVolumeClaim to use as the package cache. Disables the default package cache `emptyDir` Volume. + pvc: "" + # -- The name of a ConfigMap to use as the package cache. Disables the default package cache `emptyDir` Volume. + configMap: "" + + functionCache: + # -- Set to `Memory` to hold the function cache in a RAM backed file system. Useful for Crossplane development. + medium: "" + # -- The size limit for the function cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. + sizeLimit: 512Mi + # -- The name of a PersistentVolumeClaim to use as the function cache. Disables the default function cache `emptyDir` Volume. + pvc: "" + + resourcesRBACManager: + limits: + # -- CPU resource limits for the RBAC Manager pod. + cpu: 100m + # -- Memory resource limits for the RBAC Manager pod. + memory: 512Mi + requests: + # -- CPU resource requests for the RBAC Manager pod. + cpu: 100m + # -- Memory resource requests for the RBAC Manager pod. + memory: 256Mi + + securityContextRBACManager: + # -- The user ID used by the RBAC Manager pod. + runAsUser: 65532 + # -- The group ID used by the RBAC Manager pod. + runAsGroup: 65532 + # -- Enable `allowPrivilegeEscalation` for the RBAC Manager pod. + allowPrivilegeEscalation: false + # -- Set the RBAC Manager pod root file system as read-only. + readOnlyRootFilesystem: true + + metrics: + # -- Enable Prometheus path, port and scrape annotations and expose port 8080 for both the Crossplane and RBAC Manager pods. + enabled: false + # -- The port the metrics server listens on. + port: "" + + readiness: + # -- The port the readyz server listens on. + port: "" + + # -- Add custom environmental variables to the Crossplane pod deployment init container. + # Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. + extraEnvVarsCrossplaneInit: {} + + # -- Add custom environmental variables to the Crossplane pod deployment application container. + # Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. + extraEnvVarsCrossplane: {} + + # -- Add custom environmental variables to the RBAC Manager pod deployment. + # Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. + extraEnvVarsRBACManager: {} + + # -- Add a custom `securityContext` to the Crossplane pod. + podSecurityContextCrossplane: {} + + # -- Add a custom `securityContext` to the RBAC Manager pod. + podSecurityContextRBACManager: {} + + # -- Add custom `volumes` to the Crossplane pod. + extraVolumesCrossplane: {} + + # -- Add custom `volumeMounts` to the Crossplane pod. + extraVolumeMountsCrossplane: {} + + # -- To add arbitrary Kubernetes Objects during a Helm Install + extraObjects: [] diff --git a/packs/fluentbit-4.1.0/values.yaml b/packs/fluentbit-4.1.0/values.yaml index afdf1936..6586967a 100644 --- a/packs/fluentbit-4.1.0/values.yaml +++ b/packs/fluentbit-4.1.0/values.yaml @@ -1,4 +1,12 @@ pack: + content: + images: + - image: cr.fluentbit.io/fluent/fluent-bit:4.1.0 + + charts: + - repo: https://fluentbit.io/ + name: fluent-bit + version: 4.1.0 #The namespace (on the target cluster) to install this chart #When not found, a new namespace will be created namespace: "fluent-bit" @@ -20,7 +28,7 @@ charts: repository: cr.fluentbit.io/fluent/fluent-bit # Overrides the image tag whose default is {{ .Chart.AppVersion }} # Set to "-" to not use the default value - tag: + tag: "4.1.0" digest: pullPolicy: IfNotPresent diff --git a/packs/fluentbit-4.1.1/README.md b/packs/fluentbit-4.1.1/README.md new file mode 100644 index 00000000..ed26192f --- /dev/null +++ b/packs/fluentbit-4.1.1/README.md @@ -0,0 +1,70 @@ +# Fluent Bit + +Fluent Bit is a lightweight and high-performance log processor and forwarder. It allows you to collect data or logs from different sources, unify them, and send them to multiple destinations including Elasticsearch, OpenSearch, Kafka, Datadog, and more. + +## Prerequisites + +- Kubernetes **1.27** and higher are supported. +- Supported cloud types: **All clouds**. + +## Parameters + +| **Parameter** | **Description** | **Type** | **Default Value** | **Required** | +|---|---|---|---|---| +| charts.fluent-bit.kind | Kubernetes controller to use (DaemonSet or Deployment) | string | DaemonSet | Yes | +| charts.fluent-bit.image.repository | Image repository for Fluent Bit | string | cr.fluentbit.io/fluent/fluent-bit | Yes | +| charts.fluent-bit.image.pullPolicy | Image pull policy | string | IfNotPresent | No | +| charts.fluent-bit.flush | Interval (in seconds) to flush the logs | integer | 1 | No | +| charts.fluent-bit.logLevel | Logging level for Fluent Bit | string | info | No | +| charts.fluent-bit.metricsPort | Port for exposing metrics | integer | 2020 | No | +| charts.fluent-bit.config.service | Main Fluent Bit service configuration | string | See values.yaml | Yes | +| charts.fluent-bit.config.inputs | Log input configuration | string | See values.yaml | Yes | +| charts.fluent-bit.config.filters | Filters applied to logs (e.g. Kubernetes metadata) | string | See values.yaml | Yes | +| charts.fluent-bit.config.outputs | Log output configuration | string | See values.yaml | Yes | +| charts.fluent-bit.config.customParsers | Custom parsers for log messages | string | See values.yaml | No | +| charts.fluent-bit.daemonSetVolumes | Volumes to mount for log access | list | /var/log, /var/lib/docker/containers, /etc/machine-id | Yes | +| charts.fluent-bit.daemonSetVolumeMounts | Mount points in Fluent Bit containers | list | See values.yaml | Yes | +| charts.fluent-bit.service.port | Port exposed by the Fluent Bit service | integer | 2020 | No | +| charts.fluent-bit.rbac.create | Whether to create RBAC resources | bool | true | No | +| charts.fluent-bit.podSecurityPolicy.create | Whether to create PodSecurityPolicy | bool | false | No | +| charts.fluent-bit.hotReload.enabled | Enable configmap hot reload with sidecar | bool | false | No | +| charts.fluent-bit.autoscaling.enabled | Enable horizontal pod autoscaler (only for Deployment) | bool | false | No | + +## Upgrade + +- Ensure compatibility with the Kubernetes version (1.27 or higher) before upgrading. +- Review any changes in the Fluent Bit Helm chart configuration that could impact existing parameters. +- If upgrading from a previous major version, verify that configuration blocks (inputs, filters, outputs) maintain their structure and names. + +> [!CAUTION] +> Upgrades from a manifest-based pack to a Helm chart-based pack might not be compatible. + +## Usage + +Fluent Bit runs as a **DaemonSet** in a Kubernetes cluster and collects logs from each node. +The logs are parsed, filtered, and enriched with Kubernetes metadata before being shipped to the specified backend. + +- The default configuration collects: + - Container logs from `/var/log/containers/*.log` + - System logs via `systemd` +- Logs are filtered using Kubernetes metadata. +- Output is sent to the defined destination, such as **Elasticsearch**. + +You can customize this configuration through `values.yaml`, adjusting sections such as `inputs`, `filters`, and `outputs`. + +> [!NOTE] +> Fluent Bit’s configuration allows flexible integrations with other monitoring tools like **Datadog**, **OpenSearch**, or **Kafka**. + +## References + +- [Fluent Bit Official Docs](https://docs.fluentbit.io/manual) +- [Fluent Bit Helm Chart](https://github.com/fluent/helm-charts/tree/main/charts/fluent-bit) +- [Spectro Cloud Docs - Fluent Bit](https://docs.spectrocloud.com/integrations/fluentbit) + +--- + +**Maintainer:** Spectro Cloud +**Version:** 4.0.3 +**Source:** Community +**Contributor:** Spectro Cloud + diff --git a/packs/fluentbit-4.1.1/charts/fluent-bit-0.54.1.tgz b/packs/fluentbit-4.1.1/charts/fluent-bit-0.54.1.tgz new file mode 100644 index 00000000..747933eb Binary files /dev/null and b/packs/fluentbit-4.1.1/charts/fluent-bit-0.54.1.tgz differ diff --git a/packs/fluentbit-4.1.1/charts/fluent-bit-0.54.1.tgz.orig b/packs/fluentbit-4.1.1/charts/fluent-bit-0.54.1.tgz.orig new file mode 100644 index 00000000..82ae177c Binary files /dev/null and b/packs/fluentbit-4.1.1/charts/fluent-bit-0.54.1.tgz.orig differ diff --git a/packs/fluentbit-4.1.1/charts/fluent-bit/.helmignore b/packs/fluentbit-4.1.1/charts/fluent-bit/.helmignore new file mode 100644 index 00000000..0e8a0eb3 --- /dev/null +++ b/packs/fluentbit-4.1.1/charts/fluent-bit/.helmignore @@ -0,0 +1,23 @@ +# 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/packs/fluentbit-4.1.1/charts/fluent-bit/Chart.yaml b/packs/fluentbit-4.1.1/charts/fluent-bit/Chart.yaml new file mode 100644 index 00000000..5d230842 --- /dev/null +++ b/packs/fluentbit-4.1.1/charts/fluent-bit/Chart.yaml @@ -0,0 +1,27 @@ +annotations: + artifacthub.io/changes: | + - kind: changed + description: "Update Fluent Bit OCI image to 4.1.1." +apiVersion: v1 +appVersion: 4.1.1 +description: Fast and lightweight log processor and forwarder or Linux, OSX and BSD + family operating systems. +home: https://fluentbit.io/ +icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/fluentd/fluentbit/icon/fluentbit-icon-color.svg +keywords: +- logging +- fluent-bit +- fluentd +maintainers: +- email: eduardo@calyptia.com + name: edsiper +- email: naseem@transit.app + name: naseemkullah +- email: towmeykaw@gmail.com + name: Towmeykaw +- email: steve.hipwell@gmail.com + name: stevehipwell +name: fluent-bit +sources: +- https://github.com/fluent/fluent-bit/ +version: 0.54.1 diff --git a/packs/fluentbit-4.1.1/charts/fluent-bit/README.md b/packs/fluentbit-4.1.1/charts/fluent-bit/README.md new file mode 100644 index 00000000..2a4224c6 --- /dev/null +++ b/packs/fluentbit-4.1.1/charts/fluent-bit/README.md @@ -0,0 +1,57 @@ +# Fluent Bit Helm chart + +[Fluent Bit](https://fluentbit.io) is a fast and lightweight log processor and forwarder or Linux, OSX and BSD family operating systems. + +## Installation + +To add the `fluent` helm repo, run: + +```sh +helm repo add fluent https://fluent.github.io/helm-charts +``` + +To install a release named `fluent-bit`, run: + +```sh +helm install fluent-bit fluent/fluent-bit +``` + +## Chart values + +```sh +helm show values fluent/fluent-bit +``` + +## Using Lua scripts +Fluent Bit allows us to build filter to modify the incoming records using custom [Lua scripts.](https://docs.fluentbit.io/manual/pipeline/filters/lua) + +### How to use Lua scripts with this Chart + +First, you should add your Lua scripts to `luaScripts` in values.yaml, templating is supported. + +```yaml +luaScripts: + filter_example.lua: | + function filter_name(tag, timestamp, record) + -- put your lua code here. + end +``` + +After that, the Lua scripts will be ready to be used as filters. So next step is to add your Fluent bit [filter](https://docs.fluentbit.io/manual/concepts/data-pipeline/filter) to `config.filters` in values.yaml, for example: + +```yaml +config: + filters: | + [FILTER] + Name lua + Match + script /fluent-bit/scripts/filter_example.lua + call filter_name +``` +Under the hood, the chart will: +- Create a configmap using `luaScripts`. +- Add a volumeMounts for each Lua scripts using the path `/fluent-bit/scripts/