Add test and docker build step to ci (#24)
closes #21
closes #22
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ec277a9..1aaa224 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -38,7 +38,16 @@
- uses: pre-commit/action@v1.0.1
build:
- name: Build
+ name: Build docker
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v2
+ - name: Build
+ run: docker build . -t "ci"
+
+ tests:
+ name: Tests
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.13
@@ -46,9 +55,14 @@
with:
go-version: 1.13
id: go
- - name: Check out code into the Go module directory
+ - name: Check out code
uses: actions/checkout@v2
- - name: Get dependencies
- run: go mod download
- - name: Build
- run: go build -v .
+ - name: Install kubebuilder
+ run: |
+ os=$(go env GOOS) && \
+ arch=$(go env GOARCH) && \
+ curl -L https://go.kubebuilder.io/dl/2.3.0/$os/$arch | tar -xz -C /tmp/ && \
+ sudo mv /tmp/kubebuilder_2.3.0_${os}_${arch} /usr/local/kubebuilder && \
+ export PATH=$PATH:/usr/local/kubebuilder/bin
+ - name: Run test
+ run: make test
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 40d062a..859bee5 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -46,7 +46,7 @@
hooks:
- id: insert-license
name: Add license for all yaml files
- exclude: ^vendor/.*$
+ exclude: ^vendor/.*$|^config/crd/bases/.*$|^config/rbac/role.yaml$|^config/webhook/manifests.yaml$
types: [yaml]
args:
- --comment-style
@@ -67,7 +67,7 @@
- id: insert-license
name: Add license for all go files
files: \.go$
- exclude: ^vendor/.*$|^zz_generated.*$
+ exclude: ^vendor/.*$|api/v1alpha1/zz_generated.deepcopy.go
args:
- --comment-style
- "//"
diff --git a/Dockerfile b/Dockerfile
index 240f095..9bfc700 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -17,6 +17,7 @@
FROM golang:1.13 as builder
WORKDIR /workspace
+COPY vendor/ vendor/
# Copy the Go Modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
diff --git a/Makefile b/Makefile
index 90fbeed..79bc972 100644
--- a/Makefile
+++ b/Makefile
@@ -33,14 +33,14 @@
# Produce CRDs that work back to Kubernetes 1.11 (no version conversion)
CRD_OPTIONS ?= "crd:trivialVersions=true"
-all: test manager
+all: test build
# Run tests
-test: generate fmt vet manifests
+test: generate manifests
go test ./controllers/... -coverprofile cover.out
# Build manager binary
-manager: generate fmt vet
+build: generate fmt vet
go build -o bin/manager main.go
# Run against the configured Kubernetes cluster in ~/.kube/config
diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
index 03c7bc3..75cff99 100644
--- a/api/v1alpha1/zz_generated.deepcopy.go
+++ b/api/v1alpha1/zz_generated.deepcopy.go
@@ -1,20 +1,5 @@
// +build !ignore_autogenerated
-// 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.
-
// Code generated by controller-gen. DO NOT EDIT.
package v1alpha1
diff --git a/config/crd/bases/airflow.apache.org_airflowbases.yaml b/config/crd/bases/airflow.apache.org_airflowbases.yaml
index ad21748..488ac23 100644
--- a/config/crd/bases/airflow.apache.org_airflowbases.yaml
+++ b/config/crd/bases/airflow.apache.org_airflowbases.yaml
@@ -1,17 +1,3 @@
-# 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: apiextensions.k8s.io/v1beta1
@@ -108,8 +94,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchFields:
@@ -142,8 +128,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
type: object
@@ -153,8 +139,8 @@
format: int32
type: integer
required:
- - preference
- - weight
+ - preference
+ - weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
@@ -204,8 +190,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchFields:
@@ -238,14 +224,14 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
type: object
type: array
required:
- - nodeSelectorTerms
+ - nodeSelectorTerms
type: object
type: object
podAffinity:
@@ -304,8 +290,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -336,7 +322,7 @@
is running. Empty topologyKey is not allowed.
type: string
required:
- - topologyKey
+ - topologyKey
type: object
weight:
description: weight associated with matching the corresponding
@@ -344,8 +330,8 @@
format: int32
type: integer
required:
- - podAffinityTerm
- - weight
+ - podAffinityTerm
+ - weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
@@ -399,8 +385,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -430,7 +416,7 @@
topologyKey is not allowed.
type: string
required:
- - topologyKey
+ - topologyKey
type: object
type: array
type: object
@@ -492,8 +478,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -524,7 +510,7 @@
is running. Empty topologyKey is not allowed.
type: string
required:
- - topologyKey
+ - topologyKey
type: object
weight:
description: weight associated with matching the corresponding
@@ -532,8 +518,8 @@
format: int32
type: integer
required:
- - podAffinityTerm
- - weight
+ - podAffinityTerm
+ - weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
@@ -587,8 +573,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -618,7 +604,7 @@
topologyKey is not allowed.
type: string
required:
- - topologyKey
+ - topologyKey
type: object
type: array
type: object
@@ -668,11 +654,11 @@
and restore e.g. s3, oci-s3-compat, aws-s3, gce-s3, etc.
type: string
required:
- - storageprovider
+ - storageprovider
type: object
required:
- - schedule
- - storage
+ - schedule
+ - storage
type: object
backupVolumeClaimTemplate:
description: BackupVolumeClaimTemplate allows a user to specify
@@ -729,8 +715,8 @@
description: Name is the name of resource being referenced
type: string
required:
- - kind
- - name
+ - kind
+ - name
type: object
resources:
description: 'Resources represents the minimum resources
@@ -784,8 +770,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -863,8 +849,8 @@
a valid value of PersistentVolumeClaimCondition.Type
type: string
required:
- - status
- - type
+ - status
+ - type
type: object
type: array
phase:
@@ -966,8 +952,8 @@
description: Name is the name of resource being referenced
type: string
required:
- - kind
- - name
+ - kind
+ - name
type: object
resources:
description: 'Resources represents the minimum resources
@@ -1021,8 +1007,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -1100,8 +1086,8 @@
a valid value of PersistentVolumeClaimCondition.Type
type: string
required:
- - status
- - type
+ - status
+ - type
type: object
type: array
phase:
@@ -1118,7 +1104,7 @@
type: object
postgres:
description: 'PostgresSpec defines the attributes and desired state
- of Postgres Component TODO - minimum spec needed .. for now it is
+ of Postgres Component TODO - minimum spec needed .. for now it is
version: "" need to consider empty mysql'
properties:
image:
@@ -1215,8 +1201,8 @@
description: Name is the name of resource being referenced
type: string
required:
- - kind
- - name
+ - kind
+ - name
type: object
resources:
description: 'Resources represents the minimum resources
@@ -1270,8 +1256,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -1349,8 +1335,8 @@
a valid value of PersistentVolumeClaimCondition.Type
type: string
required:
- - status
- - type
+ - status
+ - type
type: object
type: array
phase:
@@ -1402,10 +1388,10 @@
description: Version defines the SQL Proxy docker image version.
type: string
required:
- - instance
- - project
- - region
- - type
+ - instance
+ - project
+ - region
+ - type
type: object
storage:
description: Spec for NFS component.
@@ -1489,8 +1475,8 @@
description: Name is the name of resource being referenced
type: string
required:
- - kind
- - name
+ - kind
+ - name
type: object
resources:
description: 'Resources represents the minimum resources
@@ -1544,8 +1530,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -1623,8 +1609,8 @@
a valid value of PersistentVolumeClaimCondition.Type
type: string
required:
- - status
- - type
+ - status
+ - type
type: object
type: array
phase:
@@ -1666,8 +1652,8 @@
format: int32
type: integer
required:
- - currenthealthy
- - desiredhealthy
+ - currenthealthy
+ - desiredhealthy
type: object
status:
description: 'Status. Values: InProgress, Ready, Unknown'
@@ -1695,10 +1681,10 @@
format: int32
type: integer
required:
- - currentcount
- - progress
- - readycount
- - replicas
+ - currentcount
+ - progress
+ - readycount
+ - replicas
type: object
type: object
type: array
@@ -1731,8 +1717,8 @@
description: Type of condition.
type: string
required:
- - status
- - type
+ - status
+ - type
type: object
type: array
observedGeneration:
@@ -1745,9 +1731,9 @@
type: object
version: v1alpha1
versions:
- - name: v1alpha1
- served: true
- storage: true
+ - name: v1alpha1
+ served: true
+ storage: true
status:
acceptedNames:
kind: ""
diff --git a/config/crd/bases/airflow.apache.org_airflowclusters.yaml b/config/crd/bases/airflow.apache.org_airflowclusters.yaml
index 1fc064e..71cc63b 100644
--- a/config/crd/bases/airflow.apache.org_airflowclusters.yaml
+++ b/config/crd/bases/airflow.apache.org_airflowclusters.yaml
@@ -1,17 +1,3 @@
-# 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: apiextensions.k8s.io/v1beta1
@@ -108,8 +94,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchFields:
@@ -142,8 +128,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
type: object
@@ -153,8 +139,8 @@
format: int32
type: integer
required:
- - preference
- - weight
+ - preference
+ - weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
@@ -204,8 +190,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchFields:
@@ -238,14 +224,14 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
type: object
type: array
required:
- - nodeSelectorTerms
+ - nodeSelectorTerms
type: object
type: object
podAffinity:
@@ -304,8 +290,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -336,7 +322,7 @@
is running. Empty topologyKey is not allowed.
type: string
required:
- - topologyKey
+ - topologyKey
type: object
weight:
description: weight associated with matching the corresponding
@@ -344,8 +330,8 @@
format: int32
type: integer
required:
- - podAffinityTerm
- - weight
+ - podAffinityTerm
+ - weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
@@ -399,8 +385,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -430,7 +416,7 @@
topologyKey is not allowed.
type: string
required:
- - topologyKey
+ - topologyKey
type: object
type: array
type: object
@@ -492,8 +478,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -524,7 +510,7 @@
is running. Empty topologyKey is not allowed.
type: string
required:
- - topologyKey
+ - topologyKey
type: object
weight:
description: weight associated with matching the corresponding
@@ -532,8 +518,8 @@
format: int32
type: integer
required:
- - podAffinityTerm
- - weight
+ - podAffinityTerm
+ - weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
@@ -587,8 +573,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -618,7 +604,7 @@
topologyKey is not allowed.
type: string
required:
- - topologyKey
+ - topologyKey
type: object
type: array
type: object
@@ -672,7 +658,8 @@
description: Bucket describes the GCS bucket
type: string
once:
- description: Once syncs initially and quits (use init container instead of sidecar)
+ description: Once syncs initially and quits (use init container
+ instead of sidecar)
type: boolean
type: object
git:
@@ -683,7 +670,8 @@
description: Branch describes the branch name to be synced
type: string
cred:
- description: Reference to git credentials (user, password, ssh etc)
+ description: Reference to git credentials (user, password, ssh
+ etc)
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
@@ -704,7 +692,7 @@
description: User for git access
type: string
required:
- - repo
+ - repo
type: object
nfspv:
description: NfsPVSpec
@@ -759,8 +747,8 @@
description: Name is the name of resource being referenced
type: string
required:
- - kind
- - name
+ - kind
+ - name
type: object
resources:
description: 'Resources represents the minimum resources
@@ -814,8 +802,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -893,8 +881,8 @@
a valid value of PersistentVolumeClaimCondition.Type
type: string
required:
- - status
- - type
+ - status
+ - type
type: object
type: array
phase:
@@ -928,7 +916,7 @@
restore e.g. s3, oci-s3-compat, aws-s3, gce-s3, etc.
type: string
required:
- - storageprovider
+ - storageprovider
type: object
subdir:
description: DagSubdir is the directory under source where the dags
@@ -1047,8 +1035,8 @@
format: int32
type: integer
required:
- - currenthealthy
- - desiredhealthy
+ - currenthealthy
+ - desiredhealthy
type: object
status:
description: 'Status. Values: InProgress, Ready, Unknown'
@@ -1078,10 +1066,10 @@
format: int32
type: integer
required:
- - currentcount
- - progress
- - readycount
- - replicas
+ - currentcount
+ - progress
+ - readycount
+ - replicas
type: object
type: object
type: array
@@ -1115,8 +1103,8 @@
description: Type of condition.
type: string
required:
- - status
- - type
+ - status
+ - type
type: object
type: array
createTime:
@@ -1155,8 +1143,8 @@
description: 'Tier: Required. The service tier of the instance.'
type: string
required:
- - project
- - region
+ - project
+ - region
type: object
nodeSelector:
additionalProperties:
@@ -1264,8 +1252,8 @@
description: Name is the name of resource being referenced
type: string
required:
- - kind
- - name
+ - kind
+ - name
type: object
resources:
description: 'Resources represents the minimum resources
@@ -1319,8 +1307,8 @@
type: string
type: array
required:
- - key
- - operator
+ - key
+ - operator
type: object
type: array
matchLabels:
@@ -1398,8 +1386,8 @@
a valid value of PersistentVolumeClaimCondition.Type
type: string
required:
- - status
- - type
+ - status
+ - type
type: object
type: array
phase:
@@ -1543,8 +1531,8 @@
format: int32
type: integer
required:
- - currenthealthy
- - desiredhealthy
+ - currenthealthy
+ - desiredhealthy
type: object
status:
description: 'Status. Values: InProgress, Ready, Unknown'
@@ -1572,10 +1560,10 @@
format: int32
type: integer
required:
- - currentcount
- - progress
- - readycount
- - replicas
+ - currentcount
+ - progress
+ - readycount
+ - replicas
type: object
type: object
type: array
@@ -1608,8 +1596,8 @@
description: Type of condition.
type: string
required:
- - status
- - type
+ - status
+ - type
type: object
type: array
observedGeneration:
@@ -1622,9 +1610,9 @@
type: object
version: v1alpha1
versions:
- - name: v1alpha1
- served: true
- storage: true
+ - name: v1alpha1
+ served: true
+ storage: true
status:
acceptedNames:
kind: ""
diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml
index 2f05014..7c2331d 100644
--- a/config/rbac/role.yaml
+++ b/config/rbac/role.yaml
@@ -1,17 +1,3 @@
-# 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: rbac.authorization.k8s.io/v1
@@ -20,143 +6,143 @@
creationTimestamp: null
name: manager-role
rules:
- - resources:
- - configmaps
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- - resources:
- - secrets
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- - resources:
- - serviceaccounts
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- - resources:
- - services
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- - apiGroups:
- - airflow.apache.org
- resources:
- - airflowbases
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- - apiGroups:
- - airflow.apache.org
- resources:
- - airflowbases/status
- verbs:
- - get
- - patch
- - update
- - apiGroups:
- - airflow.apache.org
- resources:
- - airflowclusters
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- - apiGroups:
- - airflow.apache.org
- resources:
- - airflowclusters/status
- verbs:
- - get
- - patch
- - update
- - apiGroups:
- - app.k8s.io
- resources:
- - applications
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- - apiGroups:
- - apps
- resources:
- - statefulsets
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- - apiGroups:
- - policy
- resources:
- - poddisruptionbudgets
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- - apiGroups:
- - rbac.authorization.k8s.io
- resources:
- - rolebindings
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- - apiGroups:
- - storage.k8s.io
- resources:
- - storageclasses
- verbs:
- - create
- - delete
- - get
- - list
- - patch
- - update
- - watch
+- resources:
+ - configmaps
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- resources:
+ - secrets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- resources:
+ - serviceaccounts
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- resources:
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - airflow.apache.org
+ resources:
+ - airflowbases
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - airflow.apache.org
+ resources:
+ - airflowbases/status
+ verbs:
+ - get
+ - patch
+ - update
+- apiGroups:
+ - airflow.apache.org
+ resources:
+ - airflowclusters
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - airflow.apache.org
+ resources:
+ - airflowclusters/status
+ verbs:
+ - get
+ - patch
+ - update
+- apiGroups:
+ - app.k8s.io
+ resources:
+ - applications
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - apps
+ resources:
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - rbac.authorization.k8s.io
+ resources:
+ - rolebindings
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - storage.k8s.io
+ resources:
+ - storageclasses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/config/webhook/manifests.yaml b/config/webhook/manifests.yaml
index ec20143..e69de29 100644
--- a/config/webhook/manifests.yaml
+++ b/config/webhook/manifests.yaml
@@ -1,14 +0,0 @@
-# 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.
diff --git a/docs/development.md b/docs/development.md
index 02b43cc..b4288f6 100644
--- a/docs/development.md
+++ b/docs/development.md
@@ -17,7 +17,8 @@
# Development
You should have kubeconfig setup to point to your cluster.
-In case you want to build the Airflow Operator from the source code, e.g., to test a fix or a feature you write, you can do so following the instructions below.
+In case you want to build the Airflow Operator from the source code, e.g.,
+to test a fix or a feature you write, you can do so following the instructions below.
## Cloning the repo:
```bash
@@ -26,6 +27,22 @@
$ git clone git@github.com:apache/airflow-on-k8s-operator.git
```
+## Install kubebuilder
+You have to install the [kubebuilder](https://book.kubebuilder.io/quick-start.html):
+```shell script
+os=$(go env GOOS)
+arch=$(go env GOARCH)
+
+# download kubebuilder and extract it to tmp
+curl -L https://go.kubebuilder.io/dl/2.3.0/${os}/${arch} | tar -xz -C /tmp/
+
+# move to a long-term location and put it on your path
+# (you'll need to set the KUBEBUILDER_ASSETS env var if you put it somewhere else)
+sudo mv /tmp/kubebuilder_2.3.0_${os}_${arch} /usr/local/kubebuilder
+export PATH=$PATH:/usr/local/kubebuilder/bin
+```
+
+
## Building and running locally:
```bash
# build
@@ -34,6 +51,7 @@
# run locally
make run
```
+
## Building docker image
#### GCP
When working with GCP ensure that gcloud is setup and gcr(container registry) is enabled for the current project.
diff --git a/yamllint-config.yaml b/yamllint-config.yaml
index bd85d17..8395ada 100644
--- a/yamllint-config.yaml
+++ b/yamllint-config.yaml
@@ -17,6 +17,11 @@
---
extends: default
+ignore: |
+ /config/crd/bases/*
+ /config/rbac/role.yaml
+ /config/webhook/manifests.yaml
+
rules:
line-length:
max: 200