## Problem
The helm chart does not implement a way for SequentialExecutor Airflow 2 deployments to serve logs; without using elasticsearch.

## Details
Prior implementations utilize the CLI function `serve_logs`. This function has been deprecated as of v2.

In `airflow/templates/scheduler/scheduler-deployment.yaml`:
```yaml
    181 {{- if and $local (not $elasticsearch) }}
    182         # Start the sidecar log server if we're in local mode and
    183         # we don't have elasticsearch enabled.
    184         - name: scheduler-logs
    185           image: {{ template "airflow_image" . }}
    186           imagePullPolicy: {{ .Values.images.airflow.pullPolicy }}
    187           args: ["serve_logs"]
```

This will cause the helm deployment to break; and the scheduler will perpetually fail to start the `scheduler-logs` container inside of the scheduler deployment.

Snippet from airflow [upgrade guide](https://airflow.apache.org/docs/apache-airflow/stable/upgrading-to-2.html).

```
Remove serve_logs command from CLI

The serve_logs command has been deleted. This command should be run only by internal application mechanisms and there is no need for it to be accessible from the CLI interface.
```

## Partial Solution
Not sure how the non-elastic method for serving logs going forward.

Astronomer branches yaml by:
```yaml
{{- if semverCompare ">=1.10.12" .Values.airflowVersion }}
...
{{- else }}
...
{{- end }}
```
airflow/cli/cli_parser.py
"""
    def _format_action(self, action: Action):
        if isinstance(action, argparse._SubParsersAction):  # py
            parts = []
            action_header = self._format_action_invocation(action)
            action_header = '%*s%s\n' % (self._current_indent, '', action_header)
            parts.append(action_header)
            self._indent()
            subactions = action._get_subactions()  # py
            action_subcommands, group_subcommands = partition(
                lambda d: isinstance(ALL_COMMANDS_DICT[d.dest], GroupCommand), subactions
            )
            parts.append("\n")
            parts.append('%*s%s:\n' % (self._current_indent, '', "Groups"))
            self._indent()
            for subaction in group_subcommands:
                parts.append(self._format_action(subaction))
            self._dedent()
            parts.append("\n")
            parts.append('%*s%s:\n' % (self._current_indent, '', "Commands"))
            self._indent()
            for subaction in action_subcommands:
                parts.append(self._format_action(subaction))
            self._dedent()
            self._dedent()
            # re
            return self._join_parts(parts)
        return super()._format_action(action)
@lru_cache(maxsize=None)
def get_parser(dag_parser: bool = False) -> argparse.ArgumentParser: