Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31aef36ffd | ||
|
|
aef6a98f98 | ||
|
|
99e4fa3c79 | ||
|
|
f9cc52cc83 |
@@ -1,34 +1,34 @@
|
||||
variables:
|
||||
CI_PROJECT_DIR: "."
|
||||
CI_REGISTRY_IMAGE: hub.ducoterra.net/ducoterra/python-docs-2020
|
||||
DEPLOY: pythondocs2020
|
||||
# variables:
|
||||
# CI_PROJECT_DIR: "."
|
||||
# CI_REGISTRY_IMAGE: hub.ducoterra.net/ducoterra/python-docs-2020
|
||||
# DEPLOY: pythondocs2020
|
||||
|
||||
stages:
|
||||
- build
|
||||
- deploy
|
||||
# stages:
|
||||
# - build
|
||||
# - deploy
|
||||
|
||||
build:
|
||||
only:
|
||||
variables:
|
||||
- $CI_COMMIT_TAG
|
||||
stage: build
|
||||
image:
|
||||
name: gcr.io/kaniko-project/executor:debug
|
||||
entrypoint: [""]
|
||||
script:
|
||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
|
||||
# build:
|
||||
# only:
|
||||
# variables:
|
||||
# - $CI_COMMIT_TAG
|
||||
# stage: build
|
||||
# image:
|
||||
# name: gcr.io/kaniko-project/executor:debug
|
||||
# entrypoint: [""]
|
||||
# script:
|
||||
# - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
|
||||
|
||||
deploy:
|
||||
stage: deploy
|
||||
only:
|
||||
variables:
|
||||
- $CI_COMMIT_TAG
|
||||
image:
|
||||
name: debian:10
|
||||
entrypoint: [""]
|
||||
script:
|
||||
- apt -qq update >> /dev/null && apt -qq install -y curl gettext >> /dev/null
|
||||
- curl -o /usr/bin/kubectl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
|
||||
- chmod +x /usr/bin/kubectl
|
||||
- curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
|
||||
- helm upgrade --install $DEPLOY ./helm --set image=$CI_REGISTRY_IMAGE --set tag=$CI_COMMIT_TAG
|
||||
# deploy:
|
||||
# stage: deploy
|
||||
# only:
|
||||
# variables:
|
||||
# - $CI_COMMIT_TAG
|
||||
# image:
|
||||
# name: debian:10
|
||||
# entrypoint: [""]
|
||||
# script:
|
||||
# - apt -qq update >> /dev/null && apt -qq install -y curl gettext >> /dev/null
|
||||
# - curl -o /usr/bin/kubectl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
|
||||
# - chmod +x /usr/bin/kubectl
|
||||
# - curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
|
||||
# - helm upgrade --install $DEPLOY ./helm --set image=$CI_REGISTRY_IMAGE --set tag=$CI_COMMIT_TAG
|
||||
|
||||
24
docs/day5.md
24
docs/day5.md
@@ -336,3 +336,27 @@ If we want our menu functions to be useful outside our menu app we have some wor
|
||||
12. Now type `update = menu.update_people()` and press ++enter++. Nothing should print.
|
||||
13. Wait a moment for "successfully updated people." to print to the terminal
|
||||
14. Type `people = menu.list_people(update)`. Your people should list! You successfully turned your menu into an importable package!
|
||||
15. Type `exit()` to exit.
|
||||
|
||||
### Using our imported menu
|
||||
|
||||
For our last trick we'll use our menu functions in a new program.
|
||||
|
||||
1. Create a new file named "print_people.py"
|
||||
|
||||

|
||||
|
||||
2. Add the following:
|
||||
|
||||
```python
|
||||
from menu import update_people, list_people
|
||||
from concurrent.futures import wait
|
||||
|
||||
update = update_people()
|
||||
wait([update])
|
||||
list_people(update)
|
||||
```
|
||||
|
||||
3. Type `python print_people.py` and press ++enter++ to run your program. You should see your people print after a while.
|
||||
|
||||
Congratulations! You've just imported a program you wrote to communciate with an API and used it to do something automatically.
|
||||
BIN
docs/img/day5/print.gif
Normal file
BIN
docs/img/day5/print.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
@@ -38,4 +38,5 @@
|
||||
### [Day 5](day5.md): import
|
||||
|
||||
- "import"
|
||||
-
|
||||
- Breaking apart our terrible weather app
|
||||
- Importing our menu
|
||||
@@ -1,78 +1,36 @@
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: IngressRoute
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ .Release.Name }}-internal-tls
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: traefik-internal
|
||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||
kubernetes.io/ingress.class: nginx
|
||||
name: {{ .Release.Name }}
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
rules:
|
||||
- host: {{ .Release.Name }}.ducoterra.net
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: {{ .Release.Name }}
|
||||
port:
|
||||
number: {{ .Values.port }}
|
||||
path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
certResolver: myresolver
|
||||
domains:
|
||||
- main: "*.ducoterra.net"
|
||||
routes:
|
||||
- match: Host(`{{ .Release.Name }}.ducoterra.net`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: {{ .Release.Name }}
|
||||
port: {{ .Values.port }}
|
||||
|
||||
- hosts:
|
||||
- {{ .Release.Name }}.ducoterra.net
|
||||
secretName: {{.Release.Name}}-tls-cert
|
||||
---
|
||||
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: IngressRoute
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: {{ .Release.Name }}-internal-web
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: traefik-internal
|
||||
name: {{.Release.Name}}.ducoterra.net
|
||||
spec:
|
||||
entryPoints:
|
||||
- web
|
||||
routes:
|
||||
- match: Host(`{{ .Release.Name }}.ducoterra.net`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: {{ .Release.Name }}
|
||||
port: {{ .Values.port }}
|
||||
middlewares:
|
||||
- name: httpsredirect
|
||||
|
||||
---
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: {{ .Release.Name }}-external-tls
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: traefik-external
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
tls:
|
||||
certResolver: myresolver
|
||||
routes:
|
||||
- match: Host(`{{ .Release.Name }}.ducoterra.net`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: {{ .Release.Name }}
|
||||
port: {{ .Values.port }}
|
||||
|
||||
---
|
||||
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: {{ .Release.Name }}-external-web
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: traefik-external
|
||||
spec:
|
||||
entryPoints:
|
||||
- web
|
||||
routes:
|
||||
- match: Host(`{{ .Release.Name }}.ducoterra.net`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: {{ .Release.Name }}
|
||||
port: {{ .Values.port }}
|
||||
middlewares:
|
||||
- name: httpsredirect
|
||||
secretName: {{.Release.Name}}-tls-cert
|
||||
issuerRef:
|
||||
name: letsencrypt-prod
|
||||
kind: ClusterIssuer
|
||||
commonName: {{.Release.Name}}.ducoterra.net
|
||||
dnsNames:
|
||||
- {{.Release.Name}}.ducoterra.net
|
||||
|
||||
@@ -6,6 +6,7 @@ nav:
|
||||
- Day 2: day2.md
|
||||
- Day 3: day3.md
|
||||
- Day 4: day4.md
|
||||
- Day 5: day5.md
|
||||
theme:
|
||||
name: material
|
||||
markdown_extensions:
|
||||
|
||||
Reference in New Issue
Block a user