Skip to content

Commit

Permalink
precommit
Browse files Browse the repository at this point in the history
  • Loading branch information
eugenestarchenko committed Sep 5, 2021
1 parent c846183 commit 1b6184c
Show file tree
Hide file tree
Showing 21 changed files with 143 additions and 78 deletions.
2 changes: 1 addition & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ venv
._*

.vscode
.idea
.idea
5 changes: 5 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[flake8]
ignore = E203, E266, E501, W503, F403, F401
max-line-length = 79
max-complexity = 18
select = B,C,E,F,W,T4,B9
2 changes: 1 addition & 1 deletion .github/workflows/dockerhub.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ jobs:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
labels: ${{ steps.meta.outputs.labels }}
4 changes: 2 additions & 2 deletions .github/workflows/helm.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
on: push
name: Helm Check
name: Helm Check
jobs:
helm-check:
runs-on: ubuntu-latest
Expand All @@ -9,4 +9,4 @@ jobs:
uses: igabaydulin/[email protected]
env:
CHART_LOCATION: ./chart
CHART_VALUES: ./chart/values.yaml
CHART_VALUES: ./chart/values.yaml
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ jobs:
- name: Run tests
run: pytest tests/ --cov=api --cov-report=term-missing:skip-covered --cov-report=xml
- name: Upload coverage
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v1
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ ENV/
env.bak/
venv.bak/

# VS Code
# VS Code
.vscode

# other
# other
.DS_Store

# secrets
Expand Down Expand Up @@ -102,4 +102,4 @@ override.tf.json


#Ignore kubeconfigs
*kubeconfig*
*kubeconfig*
14 changes: 13 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
exclude: ^chart/templates/
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 21.6b0
hooks:
- id: black
- id: black
language_version: python3.9
- repo: https://gitlab.com/pycqa/flake8
rev: 3.7.9
hooks:
- id: flake8
15 changes: 15 additions & 0 deletions .toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[tool.black]
line-length = 79
include = '\.pyi?$'
exclude = '''
/(
\.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| _build
| build
| dist
)/
'''
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ COPY . /src/

EXPOSE 8000

CMD ["uvicorn", "api.main:app", "--reload", "--host", "0.0.0.0", "--port", "8000", "--log-level", "debug"]
CMD ["uvicorn", "api.main:app", "--reload", "--host", "0.0.0.0", "--port", "8000", "--log-level", "debug"]
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,4 @@ http://k8s-default-cryptoap-e3b7b4884b-375603982.us-east-1.elb.amazonaws.com/doc
curl -X 'GET' \
'http://k8s-default-cryptoap-e3b7b4884b-375603982.us-east-1.elb.amazonaws.com/v1/currency?ticker=CAD' \
-H 'accept: application/json'
```
```
43 changes: 38 additions & 5 deletions api/v1/endpoints/currency.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,48 @@
router = APIRouter()

# Tickers
tickers = ['USD', "EUR", "RUB", "CAD", 'PHP', 'DKK', 'HUF', 'CZK', 'AUD', 'RON', 'SEK', 'IDR',
'INR', 'BRL', 'RUB', 'HRK', 'JPY', 'THB', 'CHF', 'SGD', 'PLN', 'BGN', 'TRY',
'CNY', 'NOK', 'NZD', 'ZAR', 'MXN', 'ILS', 'GBP', 'KRW', 'MYR', 'CAD']
tickers = [
"USD",
"EUR",
"RUB",
"CAD",
"PHP",
"DKK",
"HUF",
"CZK",
"AUD",
"RON",
"SEK",
"IDR",
"INR",
"BRL",
"RUB",
"HRK",
"JPY",
"THB",
"CHF",
"SGD",
"PLN",
"BGN",
"TRY",
"CNY",
"NOK",
"NZD",
"ZAR",
"MXN",
"ILS",
"GBP",
"KRW",
"MYR",
"CAD",
]


@router.get("/currency")
async def get_spot_prices(
ticker: Optional[str] = "USD"
ticker: Optional[str] = "USD",
): # can also use EUR, GBP and JPY, etc.
""" Get real-time price for the currency of your choice containing spot price data from Coinbase """
"""Get real-time price for the currency of your choice containing spot price data from Coinbase"""
r = requests.get(f"https://api.coinbase.com/v2/prices/spot?currency={ticker}")
data = r.json()
if ticker not in tickers:
Expand Down
2 changes: 1 addition & 1 deletion chart/.helmignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
.project
.idea/
*.tmproj
.vscode/
.vscode/
2 changes: 1 addition & 1 deletion chart/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
apiVersion: v1
name: crypto-api-demo
version: 0.1.0
version: 0.1.0
2 changes: 1 addition & 1 deletion chart/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,4 @@ app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{- end -}}
8 changes: 4 additions & 4 deletions chart/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "api.fullname" . }}
labels:
labels:
{{ include "api.labels" . | indent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "api.name" . }}
Expand All @@ -17,7 +17,7 @@ spec:
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
containers:
- name: {{ .Chart.Name }}
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
ports:
- containerPort: 8000
- containerPort: 8000
2 changes: 1 addition & 1 deletion chart/templates/ingress.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,4 @@ spec:
servicePort: 80
{{- end }}
{{- end }}
{{- end }}
{{- end }}
2 changes: 1 addition & 1 deletion chart/templates/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ spec:
name: http
selector:
app.kubernetes.io/name: {{ include "api.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
2 changes: 1 addition & 1 deletion chart/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,4 @@ ingress:

# tolerations: []

# affinity: {}
# affinity: {}
2 changes: 1 addition & 1 deletion docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ services:
volumes:
- .:/api
ports:
- 8000:8000
- 8000:8000
100 changes: 50 additions & 50 deletions infra/INFRA.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,56 +48,56 @@ pulumi preview
```
pulumi up
Type Name Plan
+ pulumi:pulumi:Stack crypto-api-infra-infra create...
+ ├─ pulumi:providers:aws aws-provider create
+ ├─ aws:ecr:Repository crypto-api-demo create..
+ ├─ aws:iam:Policy ecr-access-iam-policy create..
+ ├─ aws:ec2:Vpc eks-vpc create
+ ├─ aws:ecr:RepositoryPolicy crypto-api-demo-ecr-repo-policy create
+ ├─ aws:ec2:InternetGateway eks-igw create
+ ├─ aws:ec2:Subnet eks-public-subnet-us-east-1b create..
+ ├─ aws:ec2:Subnet eks-public-subnet-us-east-1a create
+ ├─ aws:ec2:RouteTable eks-route-table create
+ ├─ aws:ec2:RouteTableAssociation eks-public-rta-us-east-1a create
+ ├─ aws:ec2:RouteTableAssociation eks-public-rta-us-east-1b create
+ pulumi:pulumi:Stack crypto-api-infra-infra create..
+ ├─ eks:index:ServiceRole eks-demo-eksRole create
+ ├─ eks:index:ServiceRole eks-demo-instanceRole create
+ ├─ aws:ec2:SecurityGroup eks-demo-eksClusterSecurityGroup create
+ ├─ aws:ec2:SecurityGroup eks-demo-eksClusterSecurityGroup create
+ ├─ aws:ec2:SecurityGroup eks-demo-eksClusterSecurityGroup create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksClusterInternetEgressRule create
+ ├─ aws:eks:Cluster eks-demo-eksCluster create
+ ├─ aws:iam:InstanceProfile eks-demo-instanceProfile create
+ ├─ eks:index:VpcCni eks-demo-vpc-cni create
+ ├─ aws:iam:OpenIdConnectProvider eks-demo-oidcProvider create
+ ├─ pulumi:providers:kubernetes eks-demo-eks-k8s create
+ ├─ aws:ec2:SecurityGroup eks-demo-nodeSecurityGroup create
+ ├─ kubernetes:core/v1:ConfigMap eks-demo-nodeAccess create
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksNodeIngressRule create..
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksClusterIngressRule create
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksExtApiServerClusterIngressRule create..
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksNodeClusterIngressRule create..
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksNodeInternetEgressRule create
+ ├─ aws:ec2:LaunchConfiguration eks-demo-nodeLaunchConfiguration create
+ ├─ aws:cloudformation:Stack eks-demo-nodes create
+ │ └─ pulumi:providers:kubernetes eks-demo-provider create
+ ├─ pulumi:providers:kubernetes provider create
+ ├─ aws:iam:Role aws-loadbalancer-controller-role create
+ ├─ aws:iam:Role aws-loadbalancer-controller-role create
+ │ └─ aws:iam:Policy aws-loadbalancer-controller-policy create
+ │ └─ aws:iam:Policy aws-loadbalancer-controller-policy create
+ │ └─ aws:iam:PolicyAttachment aws-loadbalancer-controller-attachment create
+ ├─ aws:iam:RolePolicyAttachment eks-NodeInstanceRole-policy-attach create
+ pulumi:pulumi:Stack crypto-api-infra-infra create
Type Name Plan
+ pulumi:pulumi:Stack crypto-api-infra-infra create...
+ ├─ pulumi:providers:aws aws-provider create
+ ├─ aws:ecr:Repository crypto-api-demo create..
+ ├─ aws:iam:Policy ecr-access-iam-policy create..
+ ├─ aws:ec2:Vpc eks-vpc create
+ ├─ aws:ecr:RepositoryPolicy crypto-api-demo-ecr-repo-policy create
+ ├─ aws:ec2:InternetGateway eks-igw create
+ ├─ aws:ec2:Subnet eks-public-subnet-us-east-1b create..
+ ├─ aws:ec2:Subnet eks-public-subnet-us-east-1a create
+ ├─ aws:ec2:RouteTable eks-route-table create
+ ├─ aws:ec2:RouteTableAssociation eks-public-rta-us-east-1a create
+ ├─ aws:ec2:RouteTableAssociation eks-public-rta-us-east-1b create
+ pulumi:pulumi:Stack crypto-api-infra-infra create..
+ ├─ eks:index:ServiceRole eks-demo-eksRole create
+ ├─ eks:index:ServiceRole eks-demo-instanceRole create
+ ├─ aws:ec2:SecurityGroup eks-demo-eksClusterSecurityGroup create
+ ├─ aws:ec2:SecurityGroup eks-demo-eksClusterSecurityGroup create
+ ├─ aws:ec2:SecurityGroup eks-demo-eksClusterSecurityGroup create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ eks:index:RandomSuffix eks-demo-cfnStackName create
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksClusterInternetEgressRule create
+ ├─ aws:eks:Cluster eks-demo-eksCluster create
+ ├─ aws:iam:InstanceProfile eks-demo-instanceProfile create
+ ├─ eks:index:VpcCni eks-demo-vpc-cni create
+ ├─ aws:iam:OpenIdConnectProvider eks-demo-oidcProvider create
+ ├─ pulumi:providers:kubernetes eks-demo-eks-k8s create
+ ├─ aws:ec2:SecurityGroup eks-demo-nodeSecurityGroup create
+ ├─ kubernetes:core/v1:ConfigMap eks-demo-nodeAccess create
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksNodeIngressRule create..
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksClusterIngressRule create
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksExtApiServerClusterIngressRule create..
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksNodeClusterIngressRule create..
+ ├─ aws:ec2:SecurityGroupRule eks-demo-eksNodeInternetEgressRule create
+ ├─ aws:ec2:LaunchConfiguration eks-demo-nodeLaunchConfiguration create
+ ├─ aws:cloudformation:Stack eks-demo-nodes create
+ │ └─ pulumi:providers:kubernetes eks-demo-provider create
+ ├─ pulumi:providers:kubernetes provider create
+ ├─ aws:iam:Role aws-loadbalancer-controller-role create
+ ├─ aws:iam:Role aws-loadbalancer-controller-role create
+ │ └─ aws:iam:Policy aws-loadbalancer-controller-policy create
+ │ └─ aws:iam:Policy aws-loadbalancer-controller-policy create
+ │ └─ aws:iam:PolicyAttachment aws-loadbalancer-controller-attachment create
+ ├─ aws:iam:RolePolicyAttachment eks-NodeInstanceRole-policy-attach create
+ pulumi:pulumi:Stack crypto-api-infra-infra create
Resources:
+ 48 to create
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ fastapi==0.63.0
uvicorn==0.13.4
requests==2.26.0
pytest==6.2.5
pytest-cov==2.12.1
pytest-cov==2.12.1

0 comments on commit 1b6184c

Please sign in to comment.