Skip to content

Commit

Permalink
Cleanup local dev setup + docs (#520)
Browse files Browse the repository at this point in the history
* Remove deprecated charts

* Refactor

* Update github actions

* Fix some docs

* Simplify action

* "

* Refactor action
  • Loading branch information
eberlep authored Oct 18, 2023
1 parent 8ac877b commit 9683d25
Show file tree
Hide file tree
Showing 29 changed files with 76 additions and 1,867 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/latest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
uses: actions/checkout@v2

- name: Docker Login
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
registry: ${{ secrets.DOCKER_REGISTRY }}
username: ${{ secrets.DOCKER_REGISTRY_USER }}
Expand Down
14 changes: 6 additions & 8 deletions .github/workflows/pull_request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:
jobs:
build:
runs-on: ubuntu-latest
env:
docker_registry_token: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v2
Expand All @@ -24,7 +26,7 @@ jobs:

- name: Get Kubebuilder Version
id: get-kubebuilder-version
run: echo "::set-output name=version::$(make kubebuilder-version-ci)"
run: echo "version=$(make kubebuilder-version-ci)" >> $GITHUB_OUTPUT
shell: bash

- name: Ensure etcd
Expand Down Expand Up @@ -54,17 +56,13 @@ jobs:
- name: Run tests
run: make test

- name: Figure out if running fork PR
id: fork
run: '["${{ secrets.DOCKER_REGISTRY_TOKEN }}" == ""] && echo "::set-output name=is_fork_pr::true" || echo "::set-output name=is_fork_pr::false"'

- name: Docker Login
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
registry: ${{ secrets.DOCKER_REGISTRY }}
username: ${{ secrets.DOCKER_REGISTRY_USER }}
password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
if: steps.fork.outputs.is_fork_pr == 'false'
if: ${{ env.docker_registry_token != '' }}

- name: Build Docker image
run: |
Expand All @@ -76,4 +74,4 @@ jobs:
# pull request images are prefixed with 'pr' to prevent them from overriding released images
export DOCKER_TAG=pr-$(echo ${GITHUB_HEAD_REF} | tr '/' '-')
make docker-push
if: steps.fork.outputs.is_fork_pr == 'false'
if: ${{ env.docker_registry_token != '' }}
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
uses: actions/checkout@v2

- name: Docker Login
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
registry: ${{ secrets.DOCKER_REGISTRY }}
username: ${{ secrets.DOCKER_REGISTRY_USER }}
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ bin
*~

# control-plane kubeconfig file
*kubeconfig
kubeconfig
kubeconfig-ctrl
kubeconfig-svc

# helm files
charts/postgreslet/Chart.lock
Expand Down
124 changes: 62 additions & 62 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,15 @@ run: generate fmt vet manifests install-configmap-sidecars install-crd-cwnp
-port-range-size 8000

# Install CRDs into a cluster
install: manifests
kubectl kustomize config/crd | kubectl --kubeconfig kubeconfig apply -f -
localkube-install-crd: manifests
kubectl kustomize config/crd | kubectl --kubeconfig kubeconfig-ctrl apply -f -

# Uninstall CRDs from a cluster
uninstall: manifests
kubectl kustomize config/crd | kubectl --kubeconfig kubeconfig delete -f -
# # Uninstall CRDs from a cluster
# localkube-uninstall: manifests
# kubectl kustomize config/crd | kubectl --kubeconfig kubeconfig-ctrl delete -f -

# Deploy controller in the configured Kubernetes cluster in ~/.kube/config
deploy: install-crd-cwnp manifests secret kind-load-image
deploy: install-crd-cwnp manifests secret localkube-load-image
cd config/manager && kubectl kustomize edit set image controller=${IMG}:${VERSION}
kubectl kustomize config/default | kubectl apply -f -

Expand Down Expand Up @@ -106,8 +106,8 @@ cacheobjs: cacheobjs-daily-base
docker-push:
docker push ${IMG}:${VERSION}

kind-load-image: cacheobjs
kind load docker-image ${IMG}:${VERSION} -v 1
localkube-load-image: cacheobjs
kind load docker-image --name svc ${IMG}:${VERSION} -v 1

# find or download controller-gen
# download controller-gen if necessary
Expand Down Expand Up @@ -146,8 +146,8 @@ svc-postgres-operator-yaml:
-f $(POSTGRES_OPERATOR_URL)/api-service.yaml \
--dry-run=client -o yaml > external/svc-postgres-operator.yaml

crd-postgresql-yaml:
kubectl apply -f $(POSTGRES_CRD_URL) --dry-run=client -o yaml > external/crd-postgresql.yaml
# crd-postgresql-yaml:
# kubectl apply -f $(POSTGRES_CRD_URL) --dry-run=client -o yaml > external/crd-postgresql.yaml

secret:
@{ \
Expand All @@ -160,38 +160,30 @@ secret:
kubectl create secret generic postgreslet -n $$NS --from-file $$SECRET_DIR/ --dry-run=client -o yaml | kubectl apply -f - ;\
}

create-postgres:
kubectl create ns metal-extension-cloud --dry-run=client --save-config -o yaml | kubectl --kubeconfig kubeconfig apply -f -
kubectl --kubeconfig kubeconfig apply -f config/samples/complete.yaml
localkube-create-postgres:
kubectl create ns metal-extension-cloud --dry-run=client --save-config -o yaml | kubectl --kubeconfig kubeconfig-ctrl apply -f -
kubectl --kubeconfig kubeconfig-ctrl apply -f config/samples/complete.yaml

delete-postgres:
kubectl --kubeconfig kubeconfig delete -f config/samples/complete.yaml

helm-clean:
rm -f charts/postgreslet/Chart.lock
rm -f charts/postgreslet/charts/*

helm:
helm dependency build charts/postgreslet/
helm package charts/postgreslet/
localkube-delete-postgres:
kubectl --kubeconfig kubeconfig-ctrl delete -f config/samples/complete.yaml

test-cwnp:
./hack/test-cwnp.sh

install-crd-cwnp:
kubectl apply -f https://raw.githubusercontent.com/metal-stack/firewall-controller/master/config/crd/bases/metal-stack.io_clusterwidenetworkpolicies.yaml
kubectl create ns firewall --dry-run=client --save-config -o yaml | kubectl apply -f -
localkube-install-crd-cwnp:
kubectl apply --kubeconfig ./kubeconfig-svc -f https://raw.githubusercontent.com/metal-stack/firewall-controller/master/config/crd/bases/metal-stack.io_clusterwidenetworkpolicies.yaml
kubectl create ns firewall --kubeconfig ./kubeconfig-svc --dry-run=client --save-config -o yaml | kubectl apply --kubeconfig ./kubeconfig-svc -f -

uninstall-crd-cwnp:
kubectl delete ns firewall
kubectl delete -f https://raw.githubusercontent.com/metal-stack/firewall-controller/master/config/crd/bases/metal-stack.io_clusterwidenetworkpolicies.yaml
# localkube-uninstall-crd-cwnp:
# kubectl delete ns firewall
# kubectl delete -f https://raw.githubusercontent.com/metal-stack/firewall-controller/master/config/crd/bases/metal-stack.io_clusterwidenetworkpolicies.yaml

configmap-sidecars:
helm template postgreslet --namespace postgreslet-system charts/postgreslet --show-only templates/configmap-sidecars.yaml > external/test/configmap-sidecars.yaml
# configmap-sidecars:
# helm template postgreslet --namespace postgreslet-system charts/postgreslet --show-only templates/configmap-sidecars.yaml > external/test/configmap-sidecars.yaml

install-configmap-sidecars:
kubectl create ns postgreslet-system --dry-run=client --save-config -o yaml | kubectl apply -f -
kubectl apply -f external/test/configmap-sidecars.yaml
# install-configmap-sidecars:
# kubectl create ns postgreslet-system --dry-run=client --save-config -o yaml | kubectl apply -f -
# kubectl apply -f external/test/configmap-sidecars.yaml

# Todo: Add release version when the changes in main branch are released
crd-cwnp-for-testing:
Expand All @@ -213,43 +205,51 @@ endif
kubebuilder-version-ci:
@echo ${KUBEBUILDER_VERSION}

two-kind-clusters:
localkube-setup:
################################################################################
# #
# Control Cluster #
# #
################################################################################
#
## control-plane-cluster
########################
kind create cluster --name ctrl --kubeconfig ./kubeconfig --image kindest/node:v1.24.15
container_ip=$$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 'ctrl-control-plane') ;\
kubectl --kubeconfig=kubeconfig config set-cluster 'kind-ctrl' --server="https://$${container_ip}:6443"
make install
make create-postgres
make localkube-ctrl
#
## service-cluster
########################
kind create cluster --image kindest/node:v1.24.15
sed 's/z.Spec.Volume.StorageClass/\/\/z.Spec.Volume.StorageClass/' -i api/v1/postgres_types.go
make kind-load-image
sed 's/\/\/z.Spec.Volume.StorageClass/z.Spec.Volume.StorageClass/' -i api/v1/postgres_types.go
kubectl create ns postgreslet-system --dry-run=client --save-config -o yaml | kubectl apply -f -
make install-crd-cwnp
make install-crd-servicemonitor
# helm repo add metal-stack https://helm.metal-stack.io # stable repo
# helm upgrade --install postgreslet metal-stack/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig
helm repo add metal-stack-30 https://helm.metal-stack.io/pull_requests/custom-operator-image # PR repo
helm upgrade --install postgreslet metal-stack-30/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig
################################################################################
# #
# Service Cluster #
# #
################################################################################
#
make localkube-svc

destroy-two-kind-clusters:
localkube-ctrl:
kind create cluster --name ctrl --kubeconfig ./kubeconfig-ctrl --image kindest/node:v1.24.15
container_ip=$$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 'ctrl-control-plane') ;\
kubectl --kubeconfig=kubeconfig-ctrl config set-cluster 'kind-ctrl' --server="https://$${container_ip}:6443"
make localkube-install-crd
make localkube-create-postgres

localkube-svc:
kind create cluster --name svc --kubeconfig ./kubeconfig-svc --image kindest/node:v1.24.15
# make localkube-load-image
kubectl create ns postgreslet-system --dry-run=client --save-config -o yaml --kubeconfig ./kubeconfig-svc | kubectl apply --kubeconfig ./kubeconfig-svc -f -
make localkube-install-crd-cwnp
make localkube-install-crd-servicemonitor
make localkube-reinstall-postgreslet

localkube-teardown:
kind delete cluster --name ctrl
kind delete cluster --name kind
kind delete cluster --name svc

install-crd-servicemonitor:
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.45.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.45.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
localkube-install-crd-servicemonitor:
kubectl apply --kubeconfig ./kubeconfig-svc -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.45.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
kubectl apply --kubeconfig ./kubeconfig-svc -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.45.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml

reinstall-postgreslet: kind-load-image
localkube-reinstall-postgreslet: localkube-load-image
# helm repo add metal-stack https://helm.metal-stack.io # stable repo
# helm upgrade --install postgreslet metal-stack/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig
helm repo add metal-stack-30 https://helm.metal-stack.io/pull_requests/custom-operator-image # PR repo
helm upgrade --install postgreslet metal-stack-30/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig
helm upgrade --install postgreslet metal-stack-30/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig-ctrl --kubeconfig ./kubeconfig-svc

lint:
golangci-lint run -p bugs -p unused --timeout=5m
23 changes: 0 additions & 23 deletions charts/postgreslet-support/.helmignore

This file was deleted.

24 changes: 0 additions & 24 deletions charts/postgreslet-support/Chart.yaml

This file was deleted.

Loading

0 comments on commit 9683d25

Please sign in to comment.