github.com/nais/knorten@v0.0.0-20240104110906-55926958e361/pkg/helm/airflow.go (about)

     1  package helm
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/nais/knorten/pkg/database/gensql"
     7  )
     8  
     9  func (c Client) createKnauditInitContainer(ctx context.Context) (map[string]any, error) {
    10  	knauditImage, err := c.repo.GlobalValueGet(ctx, gensql.ChartTypeAirflow, "knauditImage,omit")
    11  	if err != nil {
    12  		return nil, err
    13  	}
    14  
    15  	return map[string]any{
    16  		"workers": map[string]any{
    17  			"extraInitContainers": []map[string]any{
    18  				{
    19  					"name":  "knaudit",
    20  					"image": knauditImage.Value,
    21  					"env": []map[string]any{
    22  						{
    23  							"name":      "NAMESPACE",
    24  							"valueFrom": map[string]any{"fieldRef": map[string]string{"fieldPath": "metadata.namespace"}},
    25  						},
    26  						{
    27  							"name":  "KNAUDIT_PROXY_URL",
    28  							"value": "http://knaudit-proxy.knada-system.svc.cluster.local",
    29  						},
    30  						{
    31  							"name":  "CA_CERT_PATH",
    32  							"value": "/etc/pki/tls/certs/ca-bundle.crt",
    33  						},
    34  						{
    35  							"name":  "GIT_REPO_PATH",
    36  							"value": "/dags",
    37  						},
    38  						{
    39  							"name":      "AIRFLOW_DAG_ID",
    40  							"valueFrom": map[string]any{"fieldRef": map[string]string{"fieldPath": "metadata.annotations['dag_id']"}},
    41  						},
    42  						{
    43  							"name":      "AIRFLOW_RUN_ID",
    44  							"valueFrom": map[string]any{"fieldRef": map[string]string{"fieldPath": "metadata.annotations['run_id']"}},
    45  						},
    46  						{
    47  							"name":      "AIRFLOW_TASK_ID",
    48  							"valueFrom": map[string]any{"fieldRef": map[string]string{"fieldPath": "metadata.annotations['task_id']"}},
    49  						},
    50  						{
    51  							"name":      "AIRFLOW_DB_URL",
    52  							"valueFrom": map[string]any{"secretKeyRef": map[string]string{"name": "airflow-db", "key": "connection"}},
    53  						},
    54  					},
    55  					"resources": map[string]any{
    56  						"requests": map[string]string{
    57  							"cpu":    "200m",
    58  							"memory": "128Mi",
    59  						},
    60  					},
    61  					"volumeMounts": []map[string]any{
    62  						{
    63  							"mountPath": "/dags",
    64  							"name":      "dags",
    65  						},
    66  						{
    67  							"mountPath": "/etc/pki/tls/certs/ca-bundle.crt",
    68  							"name":      "ca-bundle-pem",
    69  							"readOnly":  true,
    70  							"subPath":   "ca-bundle.pem",
    71  						},
    72  					},
    73  				},
    74  			},
    75  		},
    76  	}, nil
    77  }