Skip to content

Commit

Permalink
Merge branch 'master' into dependency_deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
ashangit authored Apr 23, 2021
2 parents 497df68 + 35fa368 commit 3147c80
Show file tree
Hide file tree
Showing 101 changed files with 1,483 additions and 8,622 deletions.
12 changes: 9 additions & 3 deletions .github/workflows/go.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ on:
pull_request:
branches:
- '**'
types:
- opened
- edited
- reopened
- synchronize
schedule:
- cron: '0 23 * * *' # daily at 11pm

Expand Down Expand Up @@ -144,9 +149,10 @@ jobs:
- name: Build image
run: |
set -x
podman build --squash -f ./Dockerfile -t '${{ env.image_repo_ref }}:ci' .
podman images '${{ env.image_repo_ref }}:ci'
podman save '${{ env.image_repo_ref }}:ci' | lz4 - ~/operatorimage.tar.lz4
# Avoid podman permission error on Ubuntu 20.04 by using it as root, although it shouldn't be needed.
sudo podman build --squash -f ./Dockerfile -t '${{ env.image_repo_ref }}:ci' .
sudo podman images '${{ env.image_repo_ref }}:ci'
sudo podman save '${{ env.image_repo_ref }}:ci' | lz4 - ~/operatorimage.tar.lz4
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
Expand Down
108 changes: 92 additions & 16 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ GO_TEST_ARGS ?=
GO_TEST_EXTRA_ARGS ?=
GO_TEST_E2E_EXTRA_ARGS ?=

YQ ?=yq

HELM ?=helm
HELM_CHANNEL ?=latest
HELM_CHARTS ?=scylla-operator scylla-manager scylla
HELM_CHARTS_DIR ?=helm
Expand Down Expand Up @@ -160,7 +163,6 @@ update-gofmt:

# We need to force localle so different envs sort files the same way for recursive traversals
diff :=LC_COLLATE=C diff --no-dereference -N
diff_dir :=LC_COLLATE=C diff -rq -N

# $1 - temporary directory
define restore-deps
Expand Down Expand Up @@ -244,22 +246,96 @@ verify-crd:
$(diff) '$(tmp_file)' '$(CRD_PATH)' || (echo 'File $(CRD_PATH) is not up-to date. Please run `make update-crd` to update it.' && false)
.PHONY: verify-crd

# $1 - target dir
define generate-dev-manifests
mkdir -p '$(1)' && \
cp deploy/manager/prod/*.yaml '$(1)' && \
yq eval '.spec.cpuset=false | .spec.datacenter.racks[] = (.spec.datacenter.racks[] | .resources.limits.cpu="200m" | .resources.limits.memory="200Mi" | .resources.requests.cpu="10m" | .resources.requests.memory="100Mi" )' -i '$(1)'/10_scylla_scyllacluster.yaml
# $1 - name
# $2 - chart path
# $3 - values path
# $4 - target dir
define generate-manifests-from-helm
$(HELM) template '$(1)' '$(2)' --namespace='$(1)' --values='$(3)' --output-dir='$(4)'
find '$(4)' -name '*.yaml' -exec sed -i -e '/^---$$/d' -e '/^# Source: /d' {} \;
endef

update-deploy-dev:
$(call generate-dev-manifests,deploy/manager/dev)
.PHONY: update-deploy-dev
# $1 - Helm values file
# $2 - output_dir
# $3 - tmp_dir
define generate-operator-manifests
$(call generate-manifests-from-helm,scylla-operator,helm/scylla-operator,$(1),$(3))

mv '$(3)'/scylla-operator/templates/clusterrole.yaml '$(2)'/00_clusterrole.yaml
mv '$(3)'/scylla-operator/templates/view_clusterrole.yaml '$(2)'/00_scyllacluster_clusterrole_view.yaml
mv '$(3)'/scylla-operator/templates/edit_clusterrole.yaml '$(2)'/00_scyllacluster_clusterrole_edit.yaml
mv '$(3)'/scylla-operator/templates/scyllacluster_member_clusterrole.yaml '$(2)'/00_scyllacluster_member_clusterrole.yaml

mv '$(3)'/scylla-operator/templates/issuer.yaml '$(2)'/10_issuer.yaml
mv '$(3)'/scylla-operator/templates/certificate.yaml '$(2)'/10_certificate.yaml
mv '$(3)'/scylla-operator/templates/validatingwebhook.yaml '$(2)'/10_validatingwebhook.yaml
mv '$(3)'/scylla-operator/templates/service.yaml '$(2)'/10_service.yaml
mv '$(3)'/scylla-operator/templates/serviceaccount.yaml '$(2)'/10_serviceaccount.yaml
mv '$(3)'/scylla-operator/templates/pdb.yaml '$(2)'/10_pdb.yaml

mv '$(3)'/scylla-operator/templates/clusterrolebinding.yaml '$(2)'/20_clusterrolebinding.yaml

mv '$(3)'/scylla-operator/templates/deployment.yaml '$(2)'/50_deployment.yaml

@leftovers=$$( find '$(3)'/scylla-operator/ -mindepth 1 -type f ) && [[ "$${leftovers}" == "" ]] || \
( echo -e "Internal error: Unhandled helm files: \n$${leftovers}" && false )
endef

# $1 - Helm values file
# $2 - output_dir
# $3 - tmp_dir
define generate-manager-manifests-prod
$(call generate-manifests-from-helm,scylla-manager,helm/scylla-manager,$(1),$(3))

mv '$(3)'/scylla-manager/templates/controller_clusterrole.yaml '$(2)'/00_controller_clusterrole.yaml

mv '$(3)'/scylla-manager/templates/controller_serviceaccount.yaml '$(2)'/10_controller_serviceaccount.yaml
mv '$(3)'/scylla-manager/templates/controller_pdb.yaml '$(2)'/10_controller_pdb.yaml
mv '$(3)'/scylla-manager/templates/manager_service.yaml '$(2)'/10_manager_service.yaml
mv '$(3)'/scylla-manager/templates/manager_configmap.yaml '$(2)'/10_manager_configmap.yaml
mv '$(3)'/scylla-manager/charts/scylla/templates/serviceaccount.yaml '$(2)'/10_scyllacluster_serviceaccount.yaml

mv '$(3)'/scylla-manager/templates/controller_clusterrolebinding.yaml '$(2)'/20_controller_clusterrolebinding.yaml
mv '$(3)'/scylla-manager/charts/scylla/templates/rolebinding.yaml '$(2)'/20_scyllacluster_rolebinding.yaml

mv '$(3)'/scylla-manager/charts/scylla/templates/scyllacluster.yaml '$(2)'/50_scyllacluster.yaml
mv '$(3)'/scylla-manager/templates/controller_deployment.yaml '$(2)'/50_controller_deployment.yaml
mv '$(3)'/scylla-manager/templates/manager_deployment.yaml '$(2)'/50_manager_deployment.yaml

@leftovers=$$( find '$(3)'/scylla-manager/ -mindepth 1 -type f ) && [[ "$${leftovers}" == "" ]] || \
( echo -e "Internal error: Unhandled helm files: \n$${leftovers}" && false )
endef

# $1 - output_dir
define generate-manager-manifests-dev
cp -r deploy/manager/prod/. '$(1)'/.
$(YQ) eval -i -P '.spec.cpuset = false | .spec.datacenter.racks[0].resources = {"limits": {"cpu": "200m", "memory": "200Mi"}, "requests": {"cpu": "10m", "memory": "100Mi"}}' '$(1)'/50_scyllacluster.yaml
endef

update-deploy: tmp_dir:=$(shell mktemp -d)
update-deploy:
$(call generate-operator-manifests,helm/deploy/operator.yaml,deploy/operator,$(tmp_dir))
$(call generate-manager-manifests-prod,helm/deploy/manager_prod.yaml,deploy/manager/prod,$(tmp_dir))
$(call generate-manager-manifests-dev,deploy/manager/dev)
.PHONY: update-deploy

verify-deploy: tmp_dir :=$(shell mktemp -d)
verify-deploy: tmp_dir_generate :=$(shell mktemp -d)
verify-deploy:
mkdir -p $(tmp_dir)/{operator,manager/{prod,dev}}

cp -r deploy/operator/. $(tmp_dir)/operator/.
$(call generate-operator-manifests,helm/deploy/operator.yaml,$(tmp_dir)/operator,$(tmp_dir_generate))
$(diff) -r '$(tmp_dir)'/operator deploy/operator

cp -r deploy/manager/prod/. $(tmp_dir)/manager/prod/.
$(call generate-manager-manifests-prod,helm/deploy/manager_prod.yaml,$(tmp_dir)/manager/prod,$(tmp_dir_generate))
$(diff) -r '$(tmp_dir)'/manager/prod deploy/manager/prod

$(call generate-manager-manifests-dev,$(tmp_dir)/manager/dev)
$(diff) -r '$(tmp_dir)'/manager/dev deploy/manager/dev

verify-deploy-dev: tmp_dir :=$(shell mktemp -d)
verify-deploy-dev:
$(call generate-dev-manifests,$(tmp_dir))
$(diff_dir) '$(tmp_dir)' deploy/manager/dev || ( echo 'Deploy manifests are not up-to date. Please run `make update-deploy-dev` to update them.' && false )
.PHONY: verify-deploy-dev
.PHONY: verify-deploy

update-examples-operator:
$(call concat-manifests,$(sort $(wildcard deploy/operator/*.yaml)),examples/common/operator.yaml)
Expand Down Expand Up @@ -294,10 +370,10 @@ verify-codegen:
$(call run-informer-gen,--verify-only)
.PHONY: verify-codegen

verify: verify-gofmt verify-codegen verify-crd verify-examples verify-deploy-dev verify-govet verify-helm
verify: verify-gofmt verify-codegen verify-crd verify-examples verify-deploy verify-govet verify-helm
.PHONY: verify

update: update-gofmt update-codegen update-crd update-examples update-deploy-dev
update: update-gofmt update-codegen update-crd update-examples update-deploy
.PHONY: update

test-unit:
Expand Down
1 change: 1 addition & 0 deletions deploy/manager/dev/10_controller_pdb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ spec:
selector:
matchLabels:
app.kubernetes.io/name: scylla-manager-controller
app.kubernetes.io/instance: scylla-manager
3 changes: 3 additions & 0 deletions deploy/manager/dev/10_controller_serviceaccount.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ kind: ServiceAccount
metadata:
name: scylla-manager-controller
namespace: scylla-manager
labels:
app.kubernetes.io/name: scylla-manager-controller
app.kubernetes.io/instance: scylla-manager
2 changes: 2 additions & 0 deletions deploy/manager/dev/10_manager_service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ kind: Service
metadata:
labels:
app.kubernetes.io/name: scylla-manager
app.kubernetes.io/instance: scylla-manager
name: scylla-manager
namespace: scylla-manager
spec:
Expand All @@ -17,3 +18,4 @@ spec:
targetPort: 5090
selector:
app.kubernetes.io/name: scylla-manager
app.kubernetes.io/instance: scylla-manager
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ kind: ServiceAccount
metadata:
name: scylla-manager-cluster-member
namespace: scylla-manager
labels:
app.kubernetes.io/name: scylla
app.kubernetes.io/instance: scylla-manager
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: scylla-manager-controller
name: scylla-manager-controller
namespace: scylla-manager
labels:
app.kubernetes.io/name: scylla-manager-controller
app.kubernetes.io/instance: scylla-manager
spec:
replicas: 2
selector:
matchLabels:
app.kubernetes.io/name: scylla-manager-controller
app.kubernetes.io/instance: scylla-manager
strategy:
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: scylla-manager-controller
app.kubernetes.io/instance: scylla-manager
spec:
serviceAccountName: scylla-manager-controller
containers:
Expand All @@ -33,7 +36,7 @@ spec:
fieldPath: metadata.namespace
args:
- manager-controller
- --log-level=debug
- --log-level=info
resources:
requests:
cpu: 10m
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,26 @@ kind: Deployment
metadata:
name: scylla-manager
namespace: scylla-manager
labels:
app.kubernetes.io/name: scylla-manager
app.kubernetes.io/instance: scylla-manager
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: scylla-manager
app.kubernetes.io/instance: scylla-manager
strategy:
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: scylla-manager
app.kubernetes.io/instance: scylla-manager
spec:
containers:
- name: scylla-manager
image: docker.io/scylladb/scylla-manager:2.2.0
image: docker.io/scylladb/scylla-manager:2.2.4
imagePullPolicy: IfNotPresent
command:
- /usr/bin/scylla-manager
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,25 @@ metadata:
name: scylla-manager-cluster
namespace: scylla-manager
spec:
agentVersion: 2.2.0
version: 4.3.2
agentVersion: 2.2.4
repository: docker.io/scylladb/scylla
agentRepository: docker.io/scylladb/scylla-manager-agent
developerMode: true
cpuset: false
datacenter:
name: manager-dc
racks:
- members: 1
name: manager-rack
- name: manager-rack
scyllaConfig: scylla-config
scyllaAgentConfig: scylla-agent-config
members: 1
storage:
capacity: 5Gi
resources:
limits:
cpu: 200m
memory: 200Mi
requests:
cpu: 10m
memory: 100Mi
scyllaAgentConfig: scylla-agent-config
scyllaConfig: scylla-config
storage:
capacity: 5Gi
developerMode: true
cpuset: false
version: 4.2.0
1 change: 1 addition & 0 deletions deploy/manager/prod/10_controller_pdb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ spec:
selector:
matchLabels:
app.kubernetes.io/name: scylla-manager-controller
app.kubernetes.io/instance: scylla-manager
3 changes: 3 additions & 0 deletions deploy/manager/prod/10_controller_serviceaccount.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ kind: ServiceAccount
metadata:
name: scylla-manager-controller
namespace: scylla-manager
labels:
app.kubernetes.io/name: scylla-manager-controller
app.kubernetes.io/instance: scylla-manager
2 changes: 2 additions & 0 deletions deploy/manager/prod/10_manager_service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ kind: Service
metadata:
labels:
app.kubernetes.io/name: scylla-manager
app.kubernetes.io/instance: scylla-manager
name: scylla-manager
namespace: scylla-manager
spec:
Expand All @@ -17,3 +18,4 @@ spec:
targetPort: 5090
selector:
app.kubernetes.io/name: scylla-manager
app.kubernetes.io/instance: scylla-manager
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ kind: ServiceAccount
metadata:
name: scylla-manager-cluster-member
namespace: scylla-manager
labels:
app.kubernetes.io/name: scylla
app.kubernetes.io/instance: scylla-manager
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: scylla-manager-controller
name: scylla-manager-controller
namespace: scylla-manager
labels:
app.kubernetes.io/name: scylla-manager-controller
app.kubernetes.io/instance: scylla-manager
spec:
replicas: 2
selector:
matchLabels:
app.kubernetes.io/name: scylla-manager-controller
app.kubernetes.io/instance: scylla-manager
strategy:
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: scylla-manager-controller
app.kubernetes.io/instance: scylla-manager
spec:
serviceAccountName: scylla-manager-controller
containers:
Expand All @@ -33,7 +36,7 @@ spec:
fieldPath: metadata.namespace
args:
- manager-controller
- --log-level=debug
- --log-level=info
resources:
requests:
cpu: 10m
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,26 @@ kind: Deployment
metadata:
name: scylla-manager
namespace: scylla-manager
labels:
app.kubernetes.io/name: scylla-manager
app.kubernetes.io/instance: scylla-manager
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: scylla-manager
app.kubernetes.io/instance: scylla-manager
strategy:
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: scylla-manager
app.kubernetes.io/instance: scylla-manager
spec:
containers:
- name: scylla-manager
image: docker.io/scylladb/scylla-manager:2.2.0
image: docker.io/scylladb/scylla-manager:2.2.4
imagePullPolicy: IfNotPresent
command:
- /usr/bin/scylla-manager
Expand Down
Loading

0 comments on commit 3147c80

Please sign in to comment.