Skip to content

Commit

Permalink
Initial CSI driver version
Browse files Browse the repository at this point in the history
---------

Signed-off-by: Pierre-Emmanuel Jacquier <[email protected]>
  • Loading branch information
pierre-emmanuelJ committed Jan 18, 2024
1 parent 2586f9e commit fd62922
Show file tree
Hide file tree
Showing 3,271 changed files with 1,180,180 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
attributes:
label: Current Behavior
description: A concise description of what you're experiencing.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
1. With this config...
1. Run '...'
1. See error...
validations:
required: false
- type: input
id: csi_version
attributes:
label: CSI Version
description: What version of the CSI are you running?
validations:
required: true
- type: input
id: k8s_version
attributes:
label: Kubernetes version
description: What version of Kubernetes are you using?
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
blank_issues_enabled: false
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: Feature Request
description: File a feature request
title: "[Feature Request]: "
labels: ["feature request"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request!
- type: textarea
id: what-feature
attributes:
label: What feature would you like to have in the provider?
description: Also tell us, what would you expect to happen?
placeholder: Tell us what you want!
validations:
required: true
16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/other_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: Other Request
description: File a request
title: "[Request]: "
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this request!
- type: textarea
id: request
attributes:
label: Your request
description: Describe your request
validations:
required: true
19 changes: 19 additions & 0 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: "Build"
runs:
using: "composite"
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- run: git submodule update --init --recursive go.mk
shell: bash
- uses: ./go.mk/.github/actions/setup

- uses: ./go.mk/.github/actions/pre-check

- run: make build
shell: bash

- run: make test-verbose
shell: bash
20 changes: 20 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Description
<!--
* Prefix: the title with the component name being changed. Add a short and self describing sentence to ease the review
* Please add a few lines providing context and describing the change
* Please self comment changes whenever applicable to help with the review process
* Please keep the checklist as part of the PR. Tick what applies to this change.
-->

## Checklist
(For exoscale contributors)

* [ ] Changelog updated (under *Unreleased* block)
* [ ] Integration tests OK

## Testing

<!--
Describe the tests you did
-->

26 changes: 26 additions & 0 deletions .github/workflows/docker-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: DockerPush

# TODO this workflow is a temporary measure, remove it once CI release workflow is in place.

on:
workflow_dispatch: # Let's us invoke the workflow manually
push:
branches:
- 'main'

jobs:
docker-push:
runs-on: ubuntu-latest
steps:
- name: Log in to Docker Hub
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- uses: actions/checkout@v3
- run: git submodule update --init --recursive go.mk
- uses: ./go.mk/.github/actions/setup
- name: Build Docker image
run: make docker
- name: Push Docker image
run: make docker-push
52 changes: 52 additions & 0 deletions .github/workflows/integ-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: integ-tests

on:
workflow_dispatch:
push:

concurrency:
group: csi-pr-integ-test

jobs:
integ-tests:
runs-on: ubuntu-latest

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

- uses: actions/checkout@v3
with:
fetch-depth: 0

- run: git submodule update --init --recursive go.mk

- uses: ./go.mk/.github/actions/setup

- name: Build Docker image
run: make docker

- name: Tag Docker Image
run: |
docker tag exoscale/csi-driver:latest exoscale/csi-driver-integ-test:csi-pr-integ-test
- name: Push Docker Image
run: |
docker push exoscale/csi-driver-integ-test:csi-pr-integ-test
- name: run integ tests
run: |
cd internal/integ/ && go test \
-v \
--create-cluster \
--tear-down-csi \
--image exoscale/csi-driver-integ-test:csi-pr-integ-test \
--cluster-name csi-pr-integ-test \
--zone ch-gva-2
shell: bash
env:
EXOSCALE_API_KEY: ${{ secrets.EXOSCALE_API_KEY }}
EXOSCALE_API_SECRET: ${{ secrets.EXOSCALE_API_SECRET }}
30 changes: 30 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: CI

on:
push:
branches:
- '**'
paths-ignore:
- '**.md'
tags-ignore:
- 'v**' # Don't run CI tests on release tags

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: ./.github/actions/build

docker-build:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: git submodule update --init --recursive go.mk
- uses: ./go.mk/.github/actions/setup
- name: Build Docker image
run: make docker
39 changes: 39 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: release

on:
push:
tags:
- 'v[0-9]+\.[0-9]+\.[0-9]+'

jobs:
goreleaser:
runs-on: ubuntu-latest

permissions:
contents: write

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: ./.github/actions/build

- run: make clean
shell: bash

- name: Import GPG key
# This is a third-party GitHub action and we trust it with our GPG key.
# To be on the safer side, we should always pin to the commit SHA.
# It's not a perfect mitigation, but we should always do some due diligence before upgrading.
# The author seems trustworthy, as the author is part of the docker and goreleaser organizations on GitHub.
uses: crazy-max/ghaction-import-gpg@72b6676b71ab476b77e676928516f6982eef7a41
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}

- uses: ./go.mk/.github/actions/release
with:
release_github_token: ${{ secrets.GITHUB_TOKEN }}
registry_username: ${{ secrets.DOCKERHUB_USERNAME }}
registry_password: ${{ secrets.DOCKERHUB_TOKEN }}
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,8 @@

# Go workspace file
go.work
go.work.sum

kubeconfig

release
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "go.mk"]
path = go.mk
url = https://github.com/exoscale/go.mk.git
47 changes: 47 additions & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
builds:
- id: exoscale-csi-driver
binary: exoscale-csi-driver
main: ./cmd/exoscale-csi-driver
env:
- CGO_ENABLED=0
- GO_PKG=github.com/exoscale/exoscale-csi-driver
flags:
- -mod=vendor
- -trimpath
ldflags:
- -s -w -X {{.Env.GO_PKG}}/exoscale.version={{.Version}} -X {{.Env.GO_PKG}}/exoscale.commit={{.ShortCommit}}
goos:
- linux
goarch:
- amd64

dockers:
- goos: linux
goarch: amd64
image_templates:
- "exoscale/csi-driver:latest"
- "exoscale/csi-driver:{{ .Major }}"
- "exoscale/csi-driver:{{ .Major }}.{{ .Minor }}"
- "exoscale/csi-driver:{{ .Major }}.{{ .Minor }}.{{ .Patch }}"
dockerfile: Dockerfile
build_flag_templates:
- --pull
- --build-arg="VERSION={{.Version}}"
- --build-arg="VCS_REF={{.ShortCommit}}"
- --build-arg="BUILD_DATE={{.Date}}"

signs:
- cmd: gpg
args: ["--default-key", "7100E8BFD6199CE0374CB7F003686F8CDE378D41", "--detach-sign", "${artifact}"]
artifacts: all

checksum:
name_template: 'checksums.txt'

snapshot:
name_template: "{{ .Tag }}-snapshot"

release:
github:
owner: exoscale
name: exoscale-csi-driver
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Changelog

## 0.29.0

### Features

* Initial CSI driver version
33 changes: 33 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# This Dockerfile is intended for usage with GoReleaser, which expects that a prebuilt go binary is copied into the image.
# To avoid having to maintain and use two different Dockerfiles(one for local development and one for releasing) we follow the GoReleaser approach for local development as well.
# Please build your image using `make docker` instead of a direct docker command.

FROM alpine:3.18

RUN apk update
RUN apk add --no-cache \
e2fsprogs \
e2fsprogs-extra \
xfsprogs \
xfsprogs-extra \
cryptsetup \
ca-certificates \
blkid \
btrfs-progs
RUN update-ca-certificates

COPY exoscale-csi-driver /

ARG VERSION
ARG VCS_REF
ARG BUILD_DATE
LABEL org.label-schema.build-date=${BUILD_DATE} \
org.label-schema.vcs-ref=${VCS_REF} \
org.label-schema.vcs-url="https://github.com/exoscale/exoscale-csi-driver" \
org.label-schema.version=${VERSION} \
org.label-schema.name="exoscale-csi-driver" \
org.label-schema.vendor="Exoscale" \
org.label-schema.description="Exoscale Scalable Blockstorage Container Storage Interface Driver" \
org.label-schema.schema-version="1.0"

ENTRYPOINT ["/exoscale-csi-driver"]
Loading

0 comments on commit fd62922

Please sign in to comment.