# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.

apiVersion: v1
entries:
  airflow:
  - apiVersion: v2
    appVersion: 2.1.4
    created: "2021-09-24T16:15:53.053177-06:00"
    dependencies:
    - condition: postgresql.enabled
      name: postgresql
      repository: https://charts.bitnami.com/bitnami
      version: 10.5.3
    description: The official Helm chart to deploy Apache Airflow, a platform to programmatically
      author, schedule, and monitor workflows
    digest: 96bce4de0d06df5f556c2800655fb713b23af78432696f61c0bf66e337bc7d9d
    home: https://airflow.apache.org/
    icon: https://airflow.apache.org/docs/apache-airflow/stable/_images/pin_large.png
    keywords:
    - apache
    - airflow
    - workflow
    - scheduler
    maintainers:
    - email: dev@airflow.apache.org
      name: Apache Airflow PMC
    name: airflow
    sources:
    - https://github.com/apache/airflow
    type: application
    urls:
    - https://downloads.apache.org/airflow/helm-chart/1.2.0/airflow-1.2.0.tgz
    version: 1.2.0
  - apiVersion: v2
    appVersion: 2.1.2
    created: "2021-07-22T20:03:33.816211+01:00"
    dependencies:
    - condition: postgresql.enabled
      name: postgresql
      repository: https://charts.bitnami.com/bitnami
      version: 10.5.3
    description: The official Helm chart to deploy Apache Airflow, a platform to programmatically
      author, schedule, and monitor workflows
    digest: 571a0b77fa283b4db4686bcc45324448964516c32fbe76bfcf9575c2355808c3
    home: https://airflow.apache.org/
    icon: https://airflow.apache.org/docs/apache-airflow/stable/_images/pin_large.png
    keywords:
    - apache
    - airflow
    - workflow
    - scheduler
    maintainers:
    - email: dev@airflow.apache.org
      name: Apache Airflow PMC
    name: airflow
    sources:
    - https://github.com/apache/airflow
    type: application
    urls:
    - https://archive.apache.org/dist/airflow/helm-chart/1.1.0/airflow-1.1.0.tgz
    version: 1.1.0
  - apiVersion: v1
    appVersion: 2.0.2
    created: "2021-05-16T02:11:02.558176+01:00"
    dependencies:
    - condition: postgresql.enabled
      name: postgresql
      repository: https://charts.bitnami.com/bitnami
      version: 6.3.12
    description: Helm chart to deploy Apache Airflow, a platform to programmatically
      author, schedule, and monitor workflows
    digest: 6cd3f13fc93d60424a771a1a8a4121c4439f7b6b48fab946436da0ab70d5a507
    home: https://airflow.apache.org/
    icon: https://airflow.apache.org/docs/apache-airflow/stable/_images/pin_large.png
    keywords:
    - apache
    - airflow
    - workflow
    - scheduler
    maintainers:
    - email: dev@airflow.apache.org
      name: Apache Airflow PMC
    name: airflow
    sources:
    - https://github.com/apache/airflow
    urls:
    - https://archive.apache.org/dist/airflow/helm-chart/1.0.0/airflow-1.0.0.tgz
    version: 1.0.0
generated: "2021-09-24T16:15:53.043406-06:00"
