Skip to content

Commit

Permalink
Fix typo
Browse files Browse the repository at this point in the history
  • Loading branch information
isindir committed Jan 12, 2024
1 parent 5f3651d commit 1b437de
Show file tree
Hide file tree
Showing 3 changed files with 209 additions and 147 deletions.
280 changes: 134 additions & 146 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
push:
branches:
- '**'
- '!master'
- '!main'

jobs:
build:
Expand All @@ -12,161 +14,147 @@ jobs:
environment: ci-cd
runs-on: ubuntu-20.04
env:
# https://github.com/github/hub/releases
HUB_VERSION: 2.14.2
# https://github.com/docker/buildx/releases
BUILDX_BINARY_VERSION: 0.12.0
# https://hub.docker.com/r/rancher/k3s/tags
K3S_VERSION: v1.28.5-k3s1
# https://github.com/helm-unittest/helm-unittest/releases
HELM_UNITTEST_VERSION: 0.4.1
# https://github.com/kubernetes-sigs/controller-tools/releases
CONTROLLER_GEN_VERSION: "v0.13.0"
# https://github.com/kubernetes-sigs/controller-runtime/releases
CONTROLLER_RUNTIME_VERSION: "v0.16.3"

steps:

- uses: actions/checkout@v2
name: Check out code

#- name: Install asdf tools
# uses: asdf-vm/actions/install@v2

#- name: install gpg2
# run: |
# sudo apt update
# sudo apt install -f
# sudo apt-get install gnupg2 -y
# sudo apt-get install qemu-user-static -y
#- name: install hub
# run: |
# curl -sSLO https://github.com/github/hub/releases/download/v${HUB_VERSION}/hub-linux-amd64-${HUB_VERSION}.tgz
# tar -xzf hub-linux-amd64-${HUB_VERSION}.tgz
# chmod +x hub-linux-amd64-${HUB_VERSION}/bin/hub
# sudo mv hub-linux-amd64-${HUB_VERSION}/bin/hub /usr/local/bin/
#- name: install helm unittest plugin
# run: |
# helm plugin install https://github.com/helm-unittest/helm-unittest --version ${HELM_UNITTEST_VERSION}
# helm unittest --help
#- name: Install setup-envtest
# run: |
# go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
# asdf reshim golang

#- name: start k3d
# run: |
# docker version
# k3d cluster create operator --agents 1 --image rancher/k3s:${K3S_VERSION}
# JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}';
# until kubectl get nodes -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do
# sleep 1;
# done

# # Dump cluster info
# kubectl cluster-info
# which kubectl
# kubectl version
# kubectl describe node k3d-operator-server-0
# kubectl describe node k3d-operator-agent-0

#- name: Test helm charts
# run: make test-helm

#- name: Unit tests and envtest integration tests
# run: make test

## k3d integration tests
#- name: In cluster integration tests
# run: |
# export GNUPGHOME="$(mktemp -d)"
# cat >$GNUPGHOME/foo <<EOF
# %echo Generating a basic OpenPGP key
# Key-Type: DSA
# Key-Length: 1024
# Subkey-Type: ELG-E
# Subkey-Length: 1024
# Name-Real: Joe Tester
# Name-Comment: with stupid passphrase
# Name-Email: [email protected]
# Expire-Date: 0
# Passphrase: abc
# %no-protection
# %commit
# %echo done
# EOF
# gpg2 --batch --gen-key $GNUPGHOME/foo
# export SOPS_GPG_EXEC=$( which gpg2 )
# export FP=$( gpg2 --with-colons --fingerprint | awk -F: '$1 == "fpr" {print $10; exit}' )
# echo "Fingreprint: $FP ; gpg executable: $SOPS_GPG_EXEC"

# # Run k8s related commands
# kubectl create namespace sops
# make install
# sleep 3
# sops -e -p $FP \
# --encrypted-suffix='Templates' \
# config/samples/isindir_v1alpha3_sopssecret.yaml \
# > config/samples/isindir_v1alpha3_sopssecret.enc.yaml
# file config/samples/isindir_v1alpha3_sopssecret.enc.yaml
# echo "====================================="
# cat config/samples/isindir_v1alpha3_sopssecret.enc.yaml
# echo "====================================="
# kubectl apply -f config/samples/isindir_v1alpha3_sopssecret.enc.yaml --namespace sops
# sleep 3
# nohup make run &
# sleep 150
# kubectl get sops --namespace sops
# echo
# kubectl get secrets --namespace sops
# echo
# export SECRETS_NUMBER=$( kubectl get secrets --namespace sops --no-headers \
# | awk '$0 !~ /default-token/ { print $1; }' \
# | wc -l )
# if [[ $SECRETS_NUMBER -ne 5 ]]; then
# echo "Expected number of secrets in sops namespace is 5 - Failed"
# tail -40 nohup.out
# exit 1
# fi
# # Check specific k8s for amount of data entries
# ## my-secret-name-0
# export DATA_ENTRIES=$( kubectl get secrets my-secret-name-0 --namespace sops --no-headers \
# | awk '{print $3}' )
# if [[ $DATA_ENTRIES -ne 2 ]]; then
# echo "Expected number of data entries in my-secret-name-0 is 2 - Failed"
# tail -40 nohup.out
# exit 1
# fi
# ## my-secret-name-1
# export DATA_ENTRIES=$( kubectl get secrets my-secret-name-1 --namespace sops --no-headers \
# | awk '{print $3}' )
# if [[ $DATA_ENTRIES -ne 3 ]]; then
# echo "Expected number of data entries in my-secret-name-1 is 3 - Failed"
# tail -40 nohup.out
# exit 1
# fi
# ## my-secret-name-2
# export DATA_ENTRIES=$( kubectl get secrets my-secret-name-2 --namespace sops --no-headers \
# | awk '{print $3}' )
# if [[ $DATA_ENTRIES -ne 2 ]]; then
# echo "Expected number of data entries in my-secret-name-2 is 2 - Failed"
# tail -40 nohup.out
# exit 1
# fi
# # Delete to check GC works
# kubectl delete -f config/samples/isindir_v1alpha3_sopssecret.enc.yaml --namespace sops
# sleep 15
# kubectl get sops --namespace sops
# echo
# kubectl get secrets --namespace sops
# echo
# export SECRETS_NUMBER=$( kubectl get secrets --namespace sops \
# | awk '$0!~/default-token/ && $0!~/NAME/ { print $1; }' \
# | wc -l )
# if [[ $SECRETS_NUMBER -ne 0 ]]; then
# echo "Expected number of secrets in sops namespace is 0 - Failed"
# exit 1
# fi
# rm -fr $GNUPGHOME
- name: Install asdf tools
uses: asdf-vm/actions/install@v2

- name: install gpg2
run: |
sudo apt update
sudo apt install -f
sudo apt-get install gnupg2 -y
sudo apt-get install qemu-user-static -y
- name: install helm unittest plugin
run: |
helm plugin install https://github.com/helm-unittest/helm-unittest --version ${HELM_UNITTEST_VERSION}
helm unittest --help
- name: Test helm charts
run: make test-helm

- name: Unit tests and envtest integration tests
run: make test

- name: start k3d
run: |
docker version
k3d cluster create operator --agents 1 --image rancher/k3s:${K3S_VERSION}
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}';
until kubectl get nodes -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do
sleep 1;
done
# Dump cluster info
kubectl cluster-info
which kubectl
kubectl version
kubectl describe node k3d-operator-server-0
kubectl describe node k3d-operator-agent-0
# k3d integration tests
- name: In cluster integration tests
run: |
export GNUPGHOME="$(mktemp -d)"
cat >$GNUPGHOME/foo <<EOF
%echo Generating a basic OpenPGP key
Key-Type: DSA
Key-Length: 1024
Subkey-Type: ELG-E
Subkey-Length: 1024
Name-Real: Joe Tester
Name-Comment: with stupid passphrase
Name-Email: [email protected]
Expire-Date: 0
Passphrase: abc
%no-protection
%commit
%echo done
EOF
gpg2 --batch --gen-key $GNUPGHOME/foo
export SOPS_GPG_EXEC=$( which gpg2 )
export FP=$( gpg2 --with-colons --fingerprint | awk -F: '$1 == "fpr" {print $10; exit}' )
echo "Fingreprint: $FP ; gpg executable: $SOPS_GPG_EXEC"
# Run k8s related commands
kubectl create namespace sops
make install
sleep 3
sops -e -p $FP \
--encrypted-suffix='Templates' \
config/samples/isindir_v1alpha3_sopssecret.yaml \
> config/samples/isindir_v1alpha3_sopssecret.enc.yaml
file config/samples/isindir_v1alpha3_sopssecret.enc.yaml
echo "====================================="
cat config/samples/isindir_v1alpha3_sopssecret.enc.yaml
echo "====================================="
kubectl apply -f config/samples/isindir_v1alpha3_sopssecret.enc.yaml --namespace sops
sleep 3
nohup make run &
sleep 150
kubectl get sops --namespace sops
echo
kubectl get secrets --namespace sops
echo
export SECRETS_NUMBER=$( kubectl get secrets --namespace sops --no-headers \
| awk '$0 !~ /default-token/ { print $1; }' \
| wc -l )
if [[ $SECRETS_NUMBER -ne 5 ]]; then
echo "Expected number of secrets in sops namespace is 5 - Failed"
tail -40 nohup.out
exit 1
fi
# Check specific k8s for amount of data entries
## my-secret-name-0
export DATA_ENTRIES=$( kubectl get secrets my-secret-name-0 --namespace sops --no-headers \
| awk '{print $3}' )
if [[ $DATA_ENTRIES -ne 2 ]]; then
echo "Expected number of data entries in my-secret-name-0 is 2 - Failed"
tail -40 nohup.out
exit 1
fi
## my-secret-name-1
export DATA_ENTRIES=$( kubectl get secrets my-secret-name-1 --namespace sops --no-headers \
| awk '{print $3}' )
if [[ $DATA_ENTRIES -ne 3 ]]; then
echo "Expected number of data entries in my-secret-name-1 is 3 - Failed"
tail -40 nohup.out
exit 1
fi
## my-secret-name-2
export DATA_ENTRIES=$( kubectl get secrets my-secret-name-2 --namespace sops --no-headers \
| awk '{print $3}' )
if [[ $DATA_ENTRIES -ne 2 ]]; then
echo "Expected number of data entries in my-secret-name-2 is 2 - Failed"
tail -40 nohup.out
exit 1
fi
# Delete to check GC works
kubectl delete -f config/samples/isindir_v1alpha3_sopssecret.enc.yaml --namespace sops
sleep 15
kubectl get sops --namespace sops
echo
kubectl get secrets --namespace sops
echo
export SECRETS_NUMBER=$( kubectl get secrets --namespace sops \
| awk '$0!~/default-token/ && $0!~/NAME/ { print $1; }' \
| wc -l )
if [[ $SECRETS_NUMBER -ne 0 ]]; then
echo "Expected number of secrets in sops namespace is 0 - Failed"
exit 1
fi
rm -fr $GNUPGHOME
- name: Set Variable
id: set_variable
run: |
Expand Down
74 changes: 74 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: release
on:
workflow_dispatch:
push:
branches:
- 'master'

jobs:
build:

name: Release
environment: ci-cd
runs-on: ubuntu-20.04
env:
# https://github.com/github/hub/releases
HUB_VERSION: 2.14.2

steps:

- uses: actions/checkout@v2
name: Check out code

- name: Install asdf tools
uses: asdf-vm/actions/install@v2

- name: install hub
run: |
curl -sSLO https://github.com/github/hub/releases/download/v${HUB_VERSION}/hub-linux-amd64-${HUB_VERSION}.tgz
tar -xzf hub-linux-amd64-${HUB_VERSION}.tgz
chmod +x hub-linux-amd64-${HUB_VERSION}/bin/hub
sudo mv hub-linux-amd64-${HUB_VERSION}/bin/hub /usr/local/bin/
- name: Set Variable
id: set_variable
run: |
echo "SOPS_SEC_OPERATOR_VERSION=$(make image_tag)" >> $GITHUB_ENV
echo "IMAGE_FULL_NAME=$(make image_full_name)" >> $GITHUB_ENV
echo "IMAGE_LATEST_NAME=$(make image_latest_name)" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASS }}

- name: Tag and release
run: |
set +e
git tag "${SOPS_SEC_OPERATOR_VERSION}"
tagResult=$?
if [[ $tagResult -ne 0 ]]; then
echo "Release '${SOPS_SEC_OPERATOR_VERSION}' exists - skipping"
exit 1
else
set -e
git-chglog "${SOPS_SEC_OPERATOR_VERSION}" > chglog.tmp
hub release create -F chglog.tmp "${SOPS_SEC_OPERATOR_VERSION}"
fi
- name: Docker build
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ steps.set_variable.outputs.IMAGE_LATEST_NAME }},${{ steps.set_variable.outputs.IMAGE_FULL_NAME }}
platforms: linux/amd64,linux/arm64
cache-from: type=registry,ref=isindir/sops-secrets-operator:cache
cache-to: type=registry,ref=isindir/sops-secrets-operator:cache,mode=max
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ RUN CGO_ENABLED=0 GO111MODULE=on go build -a -o manager cmd/main.go

############################################################
# UPDATE_HERE
FROM ubuntu:lunar-20231128
FROM ubuntu:noble-20231221

# Install build tools
RUN apt-get -y update \
Expand Down

0 comments on commit 1b437de

Please sign in to comment.