Browse Source

minio package creation

Signed-off-by: webbuilder_pel7ppc64lebuilder0 <webbuilder@powerel.org>
master
webbuilder_pel7ppc64lebuilder0 4 years ago
parent
commit
60f5f7f8fb
  1. 18
      SOURCES/minio-gateway.config
  2. 16
      SOURCES/minio-gateway.service
  3. 148
      SOURCES/minio-server.config
  4. 17
      SOURCES/minio-server.service
  5. 133
      SPECS/minio.spec

18
SOURCES/minio-gateway.config

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
### Minio Gateway Config file

### MAIN
#GATEWAY_TYPE
#GATEWAY_URI

### MINIO
#MINIO_ACCESS_KEY=
#MINIO_SECRET_KEY=

### AWS
#AWS_ACCESS_KEY_ID=

### AZURE
#MINIO_AZURE_CHUNK_SIZE_MB=0.25

### GCS
#GOOGLE_APPLICATION_CREDENTIALS=

16
SOURCES/minio-gateway.service

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
[Unit]
Description=Minio Gateway
After=syslog.target
After=network-online.target

[Service]
Type=simple
User=minio
Group=minio
WorkingDirectory=/var/lib/minio/
EnvironmentFile=/etc/minio/gateway
ExecStart=/usr/bin/minio gateway $GATEWAY_TYPE $GATEWAY_URI
Restart=always

[Install]
WantedBy=multi-user.target

148
SOURCES/minio-server.config

@ -0,0 +1,148 @@ @@ -0,0 +1,148 @@
### Minio Config File

### MAIN
#SERVER_VOLUMES=""
#SERVER_ADDRESS="--address"
#SERVER_CERTS_DIR="--certs-dir /etc/minio/certs/"

### MINIO
#MINIO_ACCESS_KEY=minio_access
#MINIO_SECRET_KEY=minio_secret
#MINIO_REGION_NAME="europe-belgium"
#MINIO_REGION_COMMENT="Belgium a country in Europe"
#MINIO_STORAGE_CLASS_STANDARD="EC:4"
#MINIO_STORAGE_CLASS_RRS="EC:2"
#MINIO_STORAGE_CLASS_COMMENT=""
#MINIO_CACHE_DRIVES="/var/lib/minio/cache0,/var/lib/minio/cache1,"
#MINIO_CACHE_EXPIRY="90"
#MINIO_CACHE_QUOTA="90"
#MINIO_CACHE_EXCLUDE="bucket/*.tmp,*.exe"
#MINIO_CACHE_AFTER="1"
#MINIO_CACHE_COMMENT=""
#MINIO_DISK_USAGE_CRAWL_DELAY=30
#MINIO_BROWSER=off
#MINIO_DOMAIN=mydomain.com
#MINIO_API_REQUESTS_MAX=""
#MINIO_API_REQUESTS_DEADLINE=""


### ETCD
#MINIO_ETCD_ENDPOINTS=""
#MINIO_ETCD_PATH_PREFIX=""
#MINIO_ETCD_COREDNS_PATH=""
#MINIO_ETCD_CLIENT_CERT=""
#MINIO_ETCD_CLIENT_CERT_KEY=""
#MINIO_ETCD_COMMENT=""

### AMQP
#MINIO_NOTIFY_AMQP_ENABLE
#MINIO_NOTIFY_AMQP_URL
#MINIO_NOTIFY_AMQP_EXCHANGE
#MINIO_NOTIFY_AMQP_EXCHANGE_TYPE
#MINIO_NOTIFY_AMQP_ROUTING_KEY
#MINIO_NOTIFY_AMQP_MANDATORY
#MINIO_NOTIFY_AMQP_DURABLE
#MINIO_NOTIFY_AMQP_NO_WAIT
#MINIO_NOTIFY_AMQP_INTERNAL
#MINIO_NOTIFY_AMQP_AUTO_DELETED
#MINIO_NOTIFY_AMQP_DELIVERY_MODE
#MINIO_NOTIFY_AMQP_QUEUE_DIR
#MINIO_NOTIFY_AMQP_QUEUE_LIMIT
#MINIO_NOTIFY_AMQP_COMMENT

### MQTT
#MINIO_NOTIFY_MQTT_ENABLE
#MINIO_NOTIFY_MQTT_BROKER
#MINIO_NOTIFY_MQTT_TOPIC
#MINIO_NOTIFY_MQTT_USERNAME
#MINIO_NOTIFY_MQTT_PASSWORD
#MINIO_NOTIFY_MQTT_QOS
#MINIO_NOTIFY_MQTT_KEEP_ALIVE_INTERVAL
#MINIO_NOTIFY_MQTT_RECONNECT_INTERVAL
#MINIO_NOTIFY_MQTT_QUEUE_DIR
#MINIO_NOTIFY_MQTT_QUEUE_LIMIT
#MINIO_NOTIFY_MQTT_COMMENT

### ELASTICSEARCH
#MINIO_NOTIFY_ELASTICSEARCH_ENABLE
#MINIO_NOTIFY_ELASTICSEARCH_URL
#MINIO_NOTIFY_ELASTICSEARCH_INDEX
##MINIO_NOTIFY_ELASTICSEARCH_FORMAT
#MINIO_NOTIFY_ELASTICSEARCH_QUEUE_DIR
#MINIO_NOTIFY_ELASTICSEARCH_QUEUE_LIMIT
#MINIO_NOTIFY_ELASTICSEARCH_COMMENT

### REDIS
#MINIO_NOTIFY_REDIS_ENABLE
#MINIO_NOTIFY_REDIS_KEY
#MINIO_NOTIFY_REDIS_FORMAT
#MINIO_NOTIFY_REDIS_PASSWORD
#MINIO_NOTIFY_REDIS_QUEUE_DIR
#MINIO_NOTIFY_REDIS_QUEUE_LIMIT
#MINIO_NOTIFY_REDIS_COMMENT

### NATS
#MINIO_NOTIFY_NATS_ENABLE
#MINIO_NOTIFY_NATS_ADDRESS
#MINIO_NOTIFY_NATS_SUBJECT
#MINIO_NOTIFY_NATS_USERNAME
#MINIO_NOTIFY_NATS_PASSWORD
#MINIO_NOTIFY_NATS_TOKEN
#MINIO_NOTIFY_NATS_TLS
#MINIO_NOTIFY_NATS_TLS_SKIP_VERIFY
#MINIO_NOTIFY_NATS_PING_INTERVAL
#MINIO_NOTIFY_NATS_STREAMING
#MINIO_NOTIFY_NATS_STREAMING_ASYNC
#MINIO_NOTIFY_NATS_STREAMING_MAX_PUB_ACKS_IN_FLIGHT
#MINIO_NOTIFY_NATS_STREAMING_CLUSTER_ID
#MINIO_NOTIFY_NATS_CERT_AUTHORITY
#MINIO_NOTIFY_NATS_CLIENT_CERT
#MINIO_NOTIFY_NATS_CLIENT_KEY
#MINIO_NOTIFY_NATS_QUEUE_DIR
#MINIO_NOTIFY_NATS_QUEUE_LIMIT
#MINIO_NOTIFY_NATS_COMMENT

### POSTGRESQL
#MINIO_NOTIFY_POSTGRES_ENABLE
#MINIO_NOTIFY_POSTGRES_CONNECTION_STRING
#MINIO_NOTIFY_POSTGRES_TABLE
#MINIO_NOTIFY_POSTGRES_FORMAT
#MINIO_NOTIFY_POSTGRES_QUEUE_DIR
#MINIO_NOTIFY_POSTGRES_QUEUE_LIMIT
#MINIO_NOTIFY_POSTGRES_COMMENT

### KAFKA
#MINIO_NOTIFY_KAFKA_ENABLE
#MINIO_NOTIFY_KAFKA_BROKERS
#MINIO_NOTIFY_KAFKA_TOPIC
#MINIO_NOTIFY_KAFKA_SASL_USERNAME
#MINIO_NOTIFY_KAFKA_SASL_PASSWORD
#MINIO_NOTIFY_KAFKA_SASL_MECHANISM
#MINIO_NOTIFY_KAFKA_TLS_CLIENT_AUTH
#MINIO_NOTIFY_KAFKA_SASL
#MINIO_NOTIFY_KAFKA_TLS
#MINIO_NOTIFY_KAFKA_TLS_SKIP_VERIFY
#MINIO_NOTIFY_KAFKA_CLIENT_TLS_CERT
#MINIO_NOTIFY_KAFKA_CLIENT_TLS_KEY
#MINIO_NOTIFY_KAFKA_QUEUE_DIR
#MINIO_NOTIFY_KAFKA_QUEUE_LIMIT
#MINIO_NOTIFY_KAFKA_COMMENT
#MINIO_NOTIFY_KAFKA_VERSION

### WEBHOOK
#MINIO_NOTIFY_WEBHOOK_ENABLE
#MINIO_NOTIFY_WEBHOOK_ENDPOINT
#MINIO_NOTIFY_WEBHOOK_AUTH_TOKEN
#MINIO_NOTIFY_WEBHOOK_QUEUE_DIR
#MINIO_NOTIFY_WEBHOOK_QUEUE_LIMIT
#MINIO_NOTIFY_WEBHOOK_COMMENT

### NSQ
#MINIO_NOTIFY_NSQ_ENABLE
#MINIO_NOTIFY_NSQ_NSQD_ADDRESS
#MINIO_NOTIFY_NSQ_TOPIC
#MINIO_NOTIFY_NSQ_TLS
#MINIO_NOTIFY_NSQ_TLS_SKIP_VERIFY
#MINIO_NOTIFY_NSQ_QUEUE_DIR
#MINIO_NOTIFY_NSQ_QUEUE_LIMIT
#MINIO_NOTIFY_NSQ_COMMENT

17
SOURCES/minio-server.service

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
[Unit]
Description=Minio Server
After=syslog.target
After=network-online.target
After=postgresql.service memcached.service redis.service

[Service]
Type=simple
User=minio
Group=minio
WorkingDirectory=/var/lib/minio/
EnvironmentFile=/etc/minio/server
ExecStart=/usr/bin/minio server $SERVER_ADDRESS $SERVER_CERTS_DIR $SERVER_VOLUMES
Restart=always

[Install]
WantedBy=multi-user.target

133
SPECS/minio.spec

@ -0,0 +1,133 @@ @@ -0,0 +1,133 @@
%define fullversion 2020-05-08T02-40-49Z
%define realversion %(echo %{fullversion} | sed -e 's/[^0-9]//g' | cut -c -8)

%global _hardened_build 1
%define minio_user minio
%define minio_group minio
%define minio_home /var/lib/minio/

Name : minio
Version : %{realversion}
Release : 1%{?dist}
Summary : Web Object Cloud Storage Server
Group : System/Web
License : Apache License
URL : https://min.io
#Source0 : https://github.com/minio/minio/archive/RELEASE.2020-05-08T02-40-49Z.tar.gz
Source1 : minio-server.config
Source2 : minio-gateway.config
Source3 : minio-server.service
Source4 : minio-gateway.service
BuildRequires : golang
BuildRequires : git


%description
MinIO is an object storage server.
It is compatible with Amazon S3 cloud storage service.
It is best suited for storing unstructured data such as photos, videos, log
files, backups and container / VM images.
Size of an object can range from a few KBs to a maximum of 5TiB.


%package server
Summary: Web Object Cloud Storage Server
Requires: minio
%description server
Minio Server Package


%package gateway
Summary: Web Object Cloud Storage Server
Requires: minio
%description gateway
Minio Gateway Package


%prep
%setup -T -q -c %{name}-%{realversion}
export GOPATH=`pwd`
export GO111MODULE=on
mkdir -p src/github.com/minio/
cd src/github.com/minio/
git clone https://github.com/minio/minio


%build
export GOPATH=`pwd`
export GO111MODULE=on
export CGO_ENABLED=0
cd src/github.com/minio/minio
git checkout tags/RELEASE.%{fullversion}
export COMMIT=$(git rev-parse HEAD)
export SHORTCOMMIT=$(git rev-parse --short HEAD)
export BUILDDATE=$(date +%Y%m%d)
sed 's/goGetTag = "DEVELOPMENT.GOGET"/goGetTag = "RELEASE.%{fullversion}"/' -i cmd/build-constants.go
sed 's/Version = goGetTag/Version = "%{fullversion}"/' -i cmd/build-constants.go
sed 's/ReleaseTag = goGetTag/ReleaseTag = "RELEASE.%{fullversion}"/' -i cmd/build-constants.go
sed 's/CommitID = goGetTag/CommitID = "'$COMMIT'"/' -i cmd/build-constants.go
sed 's/ShortCommitID = CommitID\[:12\]/ShortCommitID = "'$SHORTCOMMIT'"/' -i cmd/build-constants.go
go build -v -tags kqueue -trimpath --ldflags "
-X github.com/minio/minio/cmd.ReleaseTag=RELEASE.%{fullversion}
-X github.com/minio/minio/cmd.CommitID=$COMMIT
-X github.com/minio/minio/cmd.ShortCommitID=$SHORTCOMMIT
-X github.com/minio/minio/cmd.Version=%{version}
-extldflags -s -w -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n')
-buildid %{version}" -o minio


%install
install -p -D -m 0555 src/github.com/minio/minio/minio %{buildroot}%{_bindir}/minio
install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/minio/server
install -p -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/minio/gateway
install -p -D -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/minio-server.service
install -p -D -m 0644 %{SOURCE4} %{buildroot}%{_unitdir}/minio-gateway.service
install -p -d -m 0700 %{buildroot}%{minio_home}


%pre
getent group %{minio_group} > /dev/null || groupadd -r %{minio_group}
getent passwd %{minio_user} > /dev/null || useradd -r -d %{minio_home} -g %{minio_group} -s /bin/bash -c "minio user" %{minio_user}
exit 0


%post server
%systemd_post minio-server.service
%preun server
%systemd_preun minio-server.service
%postun server
%systemd_postun minio-server.service


%post gateway
%systemd_post minio-gateway.service
%preun gateway
%systemd_preun minio-gateway.service
%postun gateway
%systemd_postun minio-gateway.service


%check
cd src/github.com/minio/minio
./minio --version | tee v
v=$(awk '/version/{print $3}' v)
test "$v" = RELEASE.%{fullversion}


%files
%doc
%{_bindir}/minio
%attr(700,%{minio_user},%{minio_group}) %dir %{minio_home}


%files server
%config(noreplace) %{_sysconfdir}/%{name}/server
%{_unitdir}/minio-server.service


%files gateway
%config(noreplace) %{_sysconfdir}/%{name}/gateway
%{_unitdir}/minio-gateway.service


%changelog
Loading…
Cancel
Save