Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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